{"version":3,"sources":["webpack:///./node_modules/@react-spring/rafz/dist/react-spring-rafz.esm.js","webpack:///./node_modules/@react-spring/shared/dist/react-spring-shared.esm.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/xstate/es/utils.js","webpack:///./app/javascript/ats/src/components/shared/Button/index.js","webpack:///./app/javascript/ats/src/lib/utils/structure.js","webpack:///./app/javascript/shared/queryHooks/api.ts","webpack:///./node_modules/xstate/es/_virtual/_tslib.js","webpack:///./app/javascript/ats/src/components/shared/Icon/index.js","webpack:///./node_modules/yup/lib/index.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/recharts/es6/util/DataUtils.js","webpack:///./app/javascript/ats/styles/theme.ts","webpack:///./node_modules/orderedmap/index.es.js","webpack:///./node_modules/prosemirror-model/dist/index.es.js","webpack:///./app/javascript/shared/context/ToastContext.tsx","webpack:///./app/javascript/shared/styles/colors.ts","webpack:///./app/javascript/shared/context/ModalContext.tsx","webpack:///./node_modules/prosemirror-state/dist/index.es.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/react-router/node_modules/prop-types/index.js","webpack:///./node_modules/react-pdf/node_modules/prop-types/index.js","webpack:///./node_modules/xstate/es/actions.js","webpack:///./app/javascript/ats/src/components/forms/FormSelect/index.js","webpack:///./app/javascript/ats/src/components/forms/FormInput/index.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./app/javascript/ats/src/context/CurrentSessionContext.tsx","webpack:///./app/javascript/ats/src/components/shared/LoadingIndicator/index.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./app/javascript/ats/src/lib/lookups.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./app/javascript/ats/src/components/forms/FormContainer/index.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/@sentry/utils/esm/misc.js","webpack:///./node_modules/@sentry/utils/esm/logger.js","webpack:///./node_modules/react-helmet/lib/Helmet.js","webpack:///./node_modules/react-spring/dist/react-spring.esm.js","webpack:///./node_modules/@sentry/utils/esm/is.js","webpack:///./app/javascript/ats/src/components/modals/CenterModal.tsx","webpack:///./app/javascript/ats/src/components/forms/FormSection/index.js","webpack:///./app/javascript/ats/src/components/forms/FormLabel/index.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/@sentry/tracing/esm/utils.js","webpack:///./node_modules/xstate/es/actionTypes.js","webpack:///./node_modules/@reach/utils/dist/utils.esm.js","webpack:///./node_modules/@reach/auto-id/dist/auto-id.esm.js","webpack:///./node_modules/@reach/portal/dist/portal.esm.js","webpack:///./node_modules/@reach/visually-hidden/dist/visually-hidden.esm.js","webpack:///./node_modules/@reach/observe-rect/dist/observe-rect.esm.js","webpack:///./node_modules/@reach/rect/dist/rect.esm.js","webpack:///./node_modules/@reach/tooltip/dist/tooltip.esm.js","webpack:///./app/javascript/ats/src/components/shared/Tooltip.tsx","webpack:///./node_modules/@react-spring/animated/dist/react-spring-animated.esm.js","webpack:///./node_modules/xstate/es/types.js","webpack:///./app/javascript/shared/components/Box.ts","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./app/javascript/shared/styles/breakpoints.ts","webpack:///./node_modules/recharts-scale/es6/util/utils.js","webpack:///./node_modules/recharts-scale/es6/util/arithmetic.js","webpack:///./node_modules/recharts-scale/es6/getNiceTickValues.js","webpack:///./node_modules/d3-shape/src/offset/none.js","webpack:///./node_modules/d3-shape/src/order/none.js","webpack:///./node_modules/d3-shape/src/stack.js","webpack:///./node_modules/recharts/es6/util/ChartUtils.js","webpack:///./node_modules/d3-shape/src/offset/expand.js","webpack:///./node_modules/d3-shape/src/offset/silhouette.js","webpack:///./node_modules/d3-shape/src/offset/wiggle.js","webpack:///./app/javascript/shared/lib/formHelpers.ts","webpack:///./node_modules/recharts/node_modules/lodash/isNil.js","webpack:///./app/javascript/ats/src/components/shared/DropdownMenu.tsx","webpack:///./node_modules/recharts/es6/util/types.js","webpack:///./node_modules/recharts/node_modules/lodash/isFunction.js","webpack:///./app/javascript/shared/lib/utils.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/@sentry/tracing/esm/spanstatus.js","webpack:///./app/javascript/shared/lib/validateWithYup.ts","webpack:///./app/javascript/shared/components/Text.tsx","webpack:///./app/javascript/ats/src/components/shared/PathNavLink.tsx","webpack:///./app/javascript/ats/src/components/shared/NavItem.tsx","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/@sentry/minimal/esm/index.js","webpack:///./app/javascript/shared/queryHooks/useJob.ts","webpack:///./node_modules/@sentry/utils/esm/object.js","webpack:///./app/javascript/ats/src/lib/utils/helpers.ts","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/xstate/es/environment.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./app/javascript/ats/src/components/shared/EmptyState.tsx","webpack:///./node_modules/prosemirror-transform/dist/index.es.js","webpack:///./node_modules/xstate/es/stateUtils.js","webpack:///./app/javascript/shared/context/ColorSchemeContext.tsx","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/recharts/node_modules/lodash/isArray.js","webpack:///./node_modules/query-string/index.js","webpack:///./app/javascript/shared/queryHooks/useMe.ts","webpack:///./app/javascript/ats/src/components/modals/ConfirmationModal.tsx","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./app/javascript/shared/queryHooks/useOrganization.ts","webpack:///./node_modules/date-fns/esm/toDate/index.js","webpack:///./node_modules/date-fns/esm/isValid/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack:///./node_modules/date-fns/esm/addMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/subMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack:///./node_modules/date-fns/esm/format/index.js","webpack:///./node_modules/date-fns/esm/compareAsc/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack:///./node_modules/date-fns/esm/differenceInMonths/index.js","webpack:///./node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/differenceInSeconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/assign/index.js","webpack:///./node_modules/date-fns/esm/_lib/cloneObject/index.js","webpack:///./node_modules/date-fns/esm/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/formatDistanceToNow/index.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCDay/index.js","webpack:///./node_modules/date-fns/esm/parse/_lib/parsers/index.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCISODay/index.js","webpack:///./node_modules/date-fns/esm/parse/index.js","webpack:///./app/javascript/shared/lib/time.ts","webpack:///./node_modules/date-fns/esm/isAfter/index.js","webpack:///./node_modules/recharts/es6/util/ReactUtils.js","webpack:///./node_modules/d3-scale/src/init.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/xstate/es/State.js","webpack:///./node_modules/decimal.js-light/decimal.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/yup/node_modules/lodash/isArray.js","webpack:///./node_modules/yup/node_modules/lodash/_root.js","webpack:///./node_modules/joi-browser/dist/joi-browser.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/prop-types/index.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///./node_modules/react-router/es/Router.js","webpack:///./node_modules/react-router/es/MemoryRouter.js","webpack:///./node_modules/react-router/es/Prompt.js","webpack:///./node_modules/react-router/es/Redirect.js","webpack:///./node_modules/react-router/es/matchPath.js","webpack:///./node_modules/react-router/es/Route.js","webpack:///./node_modules/react-router/es/StaticRouter.js","webpack:///./node_modules/react-router/es/Switch.js","webpack:///./node_modules/react-router/es/withRouter.js","webpack:///./app/javascript/ats/src/components/shared/UnsavedChangesGuard.tsx","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./app/javascript/ats/src/components/shared/Banner.tsx","webpack:///./node_modules/react-google-recaptcha/node_modules/prop-types/index.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/yup/node_modules/lodash/isObjectLike.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@sentry/utils/esm/node.js","webpack:///./node_modules/recharts/es6/container/Layer.js","webpack:///./node_modules/react-dropzone/node_modules/prop-types/index.js","webpack:///./app/javascript/ats/src/context/GlobalChannelContext.tsx","webpack:///./node_modules/recharts/es6/util/PolarUtils.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/yup/lib/mixed.js","webpack:///./node_modules/yup/node_modules/lodash/_getNative.js","webpack:///./node_modules/yup/lib/locale.js","webpack:///./node_modules/yup/lib/util/isSchema.js","webpack:///./node_modules/@sentry/tracing/esm/span.js","webpack:///./app/javascript/ats/src/lib/utils/fileUploads.ts","webpack:///./node_modules/@sentry/utils/esm/string.js","webpack:///./node_modules/xstate/es/constants.js","webpack:///./app/javascript/shared/components/NavBar.tsx","webpack:///./node_modules/are-passive-events-supported/dist/are-passive-events-supported.esm.browser.js","webpack:///./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","webpack:///./node_modules/use-latest/dist/use-latest.esm.js","webpack:///./node_modules/use-onclickoutside/dist/use-onclickoutside.esm.browser.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/yup/node_modules/lodash/has.js","webpack:///./node_modules/yup/node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/yup/node_modules/lodash/_Symbol.js","webpack:///./node_modules/yup/node_modules/lodash/isObject.js","webpack:///./node_modules/yup/node_modules/lodash/keys.js","webpack:///./node_modules/yup/lib/util/inherits.js","webpack:///./node_modules/@sentry/tracing/esm/transaction.js","webpack:///./node_modules/@sentry/hub/esm/hub.js","webpack:///./app/javascript/ats/src/components/forms/FormTextarea.tsx","webpack:///./node_modules/recharts/node_modules/lodash/get.js","webpack:///./app/javascript/ats/src/components/shared/InitialsAvatar/index.js","webpack:///./app/javascript/ats/src/components/shared/UserAvatar.tsx","webpack:///./app/javascript/ats/src/components/shared/ShortcutKey.tsx","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/define-properties/index.js","webpack:///./node_modules/yup/node_modules/lodash/toString.js","webpack:///./node_modules/yup/node_modules/lodash/_getTag.js","webpack:///./node_modules/yup/lib/Reference.js","webpack:///./node_modules/@sentry/tracing/esm/hubextensions.js","webpack:///./app/javascript/shared/styles/theme.ts","webpack:///./app/javascript/ats/src/components/forms/FormUploader.tsx","webpack:///./node_modules/@sentry/utils/esm/syncpromise.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/recharts/node_modules/lodash/isObject.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/recharts/es6/util/Events.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/object-prototype-accessors-forced.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/math-expm1.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./node_modules/yup/node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/yup/node_modules/lodash/_ListCache.js","webpack:///./node_modules/yup/node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/yup/node_modules/lodash/_getMapData.js","webpack:///./node_modules/yup/node_modules/lodash/_toKey.js","webpack:///./node_modules/yup/node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/yup/node_modules/lodash/_copyObject.js","webpack:///./node_modules/yup/lib/util/printValue.js","webpack:///./node_modules/property-expr/index.js","webpack:///./node_modules/yup/lib/util/isAbsent.js","webpack:///./node_modules/@react-spring/core/dist/react-spring-core.esm.js","webpack:///./node_modules/@sentry/utils/esm/stacktrace.js","webpack:///./node_modules/@sentry/tracing/esm/idletransaction.js","webpack:///./app/javascript/ats/src/components/shared/BottomButtonBar/index.js","webpack:///./node_modules/@sentry/hub/esm/scope.js","webpack:///./app/javascript/shared/queryHooks/useHiringStage.ts","webpack:///./node_modules/history/PathUtils.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./node_modules/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/ats/src/components/modals/ModalBackdrop/index.js","webpack:///./node_modules/lodash/toLower.js","webpack:///./node_modules/recharts/es6/util/DOMUtils.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/string-pad.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/core-js/internals/math-sign.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/yup/node_modules/lodash/_isKey.js","webpack:///./node_modules/yup/node_modules/lodash/isSymbol.js","webpack:///./node_modules/yup/node_modules/lodash/_MapCache.js","webpack:///./node_modules/yup/node_modules/lodash/eq.js","webpack:///./node_modules/yup/node_modules/lodash/_Map.js","webpack:///./node_modules/yup/node_modules/lodash/isLength.js","webpack:///./node_modules/yup/node_modules/lodash/_Stack.js","webpack:///./node_modules/yup/node_modules/lodash/isBuffer.js","webpack:///./node_modules/yup/node_modules/lodash/_baseUnary.js","webpack:///./node_modules/yup/node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/yup/node_modules/lodash/_isPrototype.js","webpack:///./node_modules/yup/node_modules/lodash/isArrayLike.js","webpack:///./node_modules/yup/node_modules/lodash/keysIn.js","webpack:///./node_modules/yup/node_modules/lodash/_getSymbols.js","webpack:///./node_modules/yup/node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/yup/lib/util/runValidations.js","webpack:///./node_modules/yup/lib/ValidationError.js","webpack:///./app/javascript/shared/styles/lightTheme.ts","webpack:///./node_modules/xstate/es/StateNode.js","webpack:///./node_modules/@sentry/utils/esm/browser.js","webpack:///./node_modules/@sentry/utils/esm/supports.js","webpack:///./node_modules/xstate/es/Actor.js","webpack:///./node_modules/recharts/es6/component/Label.js","webpack:///./node_modules/xstate/es/registry.js","webpack:///./node_modules/recharts/node_modules/lodash/_root.js","webpack:///./node_modules/pdfjs-dist/build/pdf.js","webpack:///./node_modules/make-cancellable-promise/dist/index.js","webpack:///./node_modules/recharts/es6/util/Global.js","webpack:///./node_modules/make-event-props/dist/entry.js","webpack:///./node_modules/recharts/es6/util/LogUtils.js","webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/recharts/es6/util/CartesianUtils.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/keys.js","webpack:///./app/javascript/shared/logger.ts","webpack:///./node_modules/xstate/es/interpreter.js","webpack:///./node_modules/xstate/es/Machine.js","webpack:///./app/javascript/ats/src/components/modals/AlertModal.tsx","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/internals/number-parse-int.js","webpack:///./node_modules/core-js/internals/number-parse-float.js","webpack:///./node_modules/core-js/internals/is-integer.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/internals/math-log1p.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection-weak.js","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/object-is/implementation.js","webpack:///./node_modules/object-is/polyfill.js","webpack:///./node_modules/regexp.prototype.flags/implementation.js","webpack:///./node_modules/regexp.prototype.flags/polyfill.js","webpack:///./node_modules/react-helmet/lib/HelmetConstants.js","webpack:///./node_modules/@react-spring/web/dist/react-spring-web.esm.js","webpack:///./node_modules/@reach/utils/node_modules/warning/warning.js","webpack:///./node_modules/yup/node_modules/lodash/_hasPath.js","webpack:///./node_modules/yup/node_modules/lodash/_castPath.js","webpack:///./node_modules/yup/node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/yup/node_modules/lodash/isFunction.js","webpack:///./node_modules/yup/node_modules/lodash/_toSource.js","webpack:///./node_modules/yup/node_modules/lodash/_arrayMap.js","webpack:///./node_modules/yup/node_modules/lodash/isArguments.js","webpack:///./node_modules/yup/node_modules/lodash/_isIndex.js","webpack:///./node_modules/yup/node_modules/lodash/_assignValue.js","webpack:///./node_modules/yup/node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/yup/node_modules/lodash/isTypedArray.js","webpack:///./node_modules/yup/node_modules/lodash/_overArg.js","webpack:///./node_modules/yup/node_modules/lodash/_copyArray.js","webpack:///./node_modules/yup/node_modules/lodash/stubArray.js","webpack:///./node_modules/yup/node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/yup/node_modules/lodash/_arrayPush.js","webpack:///./node_modules/yup/node_modules/lodash/_getPrototype.js","webpack:///./node_modules/yup/node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/yup/node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/yup/node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/yup/node_modules/lodash/_mapToArray.js","webpack:///./node_modules/yup/node_modules/lodash/_setToArray.js","webpack:///./node_modules/yup/node_modules/lodash/_stringToArray.js","webpack:///./node_modules/yup/node_modules/lodash/_hasUnicode.js","webpack:///./node_modules/synchronous-promise/index.js","webpack:///./node_modules/yup/node_modules/lodash/mapValues.js","webpack:///./node_modules/yup/node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/yup/node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/yup/node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/yup/node_modules/lodash/_equalArrays.js","webpack:///./node_modules/yup/node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/yup/node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/yup/node_modules/lodash/_baseGet.js","webpack:///./node_modules/yup/lib/util/reach.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack:///./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js","webpack:///./node_modules/yup/node_modules/lodash/_createCompounder.js","webpack:///./node_modules/yup/lib/util/makePath.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/recharts/node_modules/lodash/isObjectLike.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/react-query/devtools/index.js","webpack:///./node_modules/use-persisted-state/dist/use-persisted-state.m.js","webpack:///./node_modules/@use-it/event-listener/dist/event-listener.m.js","webpack:///./app/javascript/ats/src/components/shared/ErrorBoundaryFallback.tsx","webpack:///./app/javascript/shared/styles/darkTheme.ts","webpack:///./node_modules/@sentry/utils/esm/memo.js","webpack:///./node_modules/@sentry/tracing/esm/errors.js","webpack:///./app/javascript/shared/hooks/useCookieValue.ts","webpack:///./app/javascript/ats/src/components/modals/MaintenanceCompleteModal.tsx","webpack:///./node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","webpack:///./node_modules/lodash/isString.js","webpack:///./node_modules/@sentry/tracing/esm/browser/backgroundtab.js","webpack:///./node_modules/@sentry/tracing/esm/browser/metrics.js","webpack:///./node_modules/@sentry/tracing/esm/browser/request.js","webpack:///./node_modules/@sentry/tracing/esm/browser/router.js","webpack:///./node_modules/@sentry/tracing/esm/browser/browsertracing.js","webpack:///./node_modules/@sentry/tracing/esm/integrations/express.js","webpack:///./node_modules/@sentry/tracing/esm/index.js","webpack:///./app/javascript/shared/queryHooks/useSupportMessage.tsx","webpack:///./app/javascript/ats/src/components/modals/SupportMessageModal.tsx","webpack:///./app/javascript/shared/components/PolymerBar.tsx","webpack:///./app/javascript/shared/styles/scrollbar.ts","webpack:///./app/javascript/shared/components/GlobalScrollbarStyles.tsx","webpack:///./node_modules/recharts/node_modules/lodash/isString.js","webpack:///./node_modules/recharts/es6/util/ShallowEqual.js","webpack:///./node_modules/react-smooth/es6/setRafTimeout.js","webpack:///./node_modules/react-smooth/es6/AnimateManager.js","webpack:///./node_modules/react-smooth/es6/util.js","webpack:///./node_modules/react-smooth/es6/easing.js","webpack:///./node_modules/react-smooth/es6/configUpdate.js","webpack:///./node_modules/react-smooth/es6/Animate.js","webpack:///./node_modules/react-smooth/es6/AnimateGroupChild.js","webpack:///./node_modules/react-smooth/es6/AnimateGroup.js","webpack:///./node_modules/react-smooth/es6/index.js","webpack:///./node_modules/@sentry/utils/esm/instrument.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/recharts/node_modules/lodash/_getNative.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/xstate/es/scheduler.js","webpack:///./node_modules/lodash/trim.js","webpack:///./node_modules/recharts/node_modules/lodash/upperFirst.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/recharts/es6/component/Text.js","webpack:///./node_modules/recharts/es6/shape/Rectangle.js","webpack:///./node_modules/redux/es/redux.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/recharts/node_modules/lodash/isSymbol.js","webpack:///./node_modules/recharts/node_modules/lodash/identity.js","webpack:///./node_modules/recharts/node_modules/lodash/sortBy.js","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-shape/src/array.js","webpack:///./node_modules/symbol-observable/es/index.js","webpack:///./node_modules/recharts/node_modules/lodash/isNaN.js","webpack:///./node_modules/recharts/node_modules/lodash/range.js","webpack:///./node_modules/recharts/node_modules/lodash/uniqBy.js","webpack:///./node_modules/recharts/es6/cartesian/CartesianAxis.js","webpack:///./node_modules/core-js/stable/index.js","webpack:///./node_modules/core-js/es/index.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/modules/es.symbol.has-instance.js","webpack:///./node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/modules/es.symbol.match.js","webpack:///./node_modules/core-js/modules/es.symbol.match-all.js","webpack:///./node_modules/core-js/modules/es.symbol.replace.js","webpack:///./node_modules/core-js/modules/es.symbol.search.js","webpack:///./node_modules/core-js/modules/es.symbol.species.js","webpack:///./node_modules/core-js/modules/es.symbol.split.js","webpack:///./node_modules/core-js/modules/es.symbol.to-primitive.js","webpack:///./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.symbol.unscopables.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/modules/es.object.create.js","webpack:///./node_modules/core-js/modules/es.object.define-property.js","webpack:///./node_modules/core-js/modules/es.object.define-properties.js","webpack:///./node_modules/core-js/modules/es.object.entries.js","webpack:///./node_modules/core-js/modules/es.object.freeze.js","webpack:///./node_modules/core-js/modules/es.object.from-entries.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-names.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.is.js","webpack:///./node_modules/core-js/modules/es.object.is-extensible.js","webpack:///./node_modules/core-js/modules/es.object.is-frozen.js","webpack:///./node_modules/core-js/modules/es.object.is-sealed.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/modules/es.object.prevent-extensions.js","webpack:///./node_modules/core-js/modules/es.object.seal.js","webpack:///./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.object.define-getter.js","webpack:///./node_modules/core-js/modules/es.object.define-setter.js","webpack:///./node_modules/core-js/modules/es.object.lookup-getter.js","webpack:///./node_modules/core-js/modules/es.object.lookup-setter.js","webpack:///./node_modules/core-js/modules/es.function.bind.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/modules/es.function.has-instance.js","webpack:///./node_modules/core-js/modules/es.global-this.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/modules/es.array.is-array.js","webpack:///./node_modules/core-js/modules/es.array.of.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/modules/es.array.copy-within.js","webpack:///./node_modules/core-js/modules/es.array.every.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./node_modules/core-js/modules/es.array.flat-map.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/core-js/modules/es.array.last-index-of.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/modules/es.array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/modules/es.array.some.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.array.species.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack:///./node_modules/core-js/modules/es.string.from-code-point.js","webpack:///./node_modules/core-js/modules/es.string.raw.js","webpack:///./node_modules/core-js/modules/es.string.code-point-at.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.string.match-all.js","webpack:///./node_modules/core-js/modules/es.string.pad-end.js","webpack:///./node_modules/core-js/modules/es.string.pad-start.js","webpack:///./node_modules/core-js/modules/es.string.repeat.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/modules/es.string.trim-start.js","webpack:///./node_modules/core-js/modules/es.string.trim-end.js","webpack:///./node_modules/core-js/modules/es.string.anchor.js","webpack:///./node_modules/core-js/modules/es.string.big.js","webpack:///./node_modules/core-js/modules/es.string.blink.js","webpack:///./node_modules/core-js/modules/es.string.bold.js","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.fontcolor.js","webpack:///./node_modules/core-js/modules/es.string.fontsize.js","webpack:///./node_modules/core-js/modules/es.string.italics.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/modules/es.string.small.js","webpack:///./node_modules/core-js/modules/es.string.strike.js","webpack:///./node_modules/core-js/modules/es.string.sub.js","webpack:///./node_modules/core-js/modules/es.string.sup.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.regexp.flags.js","webpack:///./node_modules/core-js/modules/es.regexp.sticky.js","webpack:///./node_modules/core-js/modules/es.regexp.test.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es.parse-int.js","webpack:///./node_modules/core-js/modules/es.parse-float.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/modules/es.number.epsilon.js","webpack:///./node_modules/core-js/modules/es.number.is-finite.js","webpack:///./node_modules/core-js/internals/number-is-finite.js","webpack:///./node_modules/core-js/modules/es.number.is-integer.js","webpack:///./node_modules/core-js/modules/es.number.is-nan.js","webpack:///./node_modules/core-js/modules/es.number.is-safe-integer.js","webpack:///./node_modules/core-js/modules/es.number.max-safe-integer.js","webpack:///./node_modules/core-js/modules/es.number.min-safe-integer.js","webpack:///./node_modules/core-js/modules/es.number.parse-float.js","webpack:///./node_modules/core-js/modules/es.number.parse-int.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/core-js/modules/es.number.to-precision.js","webpack:///./node_modules/core-js/modules/es.math.acosh.js","webpack:///./node_modules/core-js/modules/es.math.asinh.js","webpack:///./node_modules/core-js/modules/es.math.atanh.js","webpack:///./node_modules/core-js/modules/es.math.cbrt.js","webpack:///./node_modules/core-js/modules/es.math.clz32.js","webpack:///./node_modules/core-js/modules/es.math.cosh.js","webpack:///./node_modules/core-js/modules/es.math.expm1.js","webpack:///./node_modules/core-js/modules/es.math.fround.js","webpack:///./node_modules/core-js/internals/math-fround.js","webpack:///./node_modules/core-js/modules/es.math.hypot.js","webpack:///./node_modules/core-js/modules/es.math.imul.js","webpack:///./node_modules/core-js/modules/es.math.log10.js","webpack:///./node_modules/core-js/modules/es.math.log1p.js","webpack:///./node_modules/core-js/modules/es.math.log2.js","webpack:///./node_modules/core-js/modules/es.math.sign.js","webpack:///./node_modules/core-js/modules/es.math.sinh.js","webpack:///./node_modules/core-js/modules/es.math.tanh.js","webpack:///./node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.math.trunc.js","webpack:///./node_modules/core-js/modules/es.date.now.js","webpack:///./node_modules/core-js/modules/es.date.to-json.js","webpack:///./node_modules/core-js/modules/es.date.to-iso-string.js","webpack:///./node_modules/core-js/internals/date-to-iso-string.js","webpack:///./node_modules/core-js/modules/es.date.to-string.js","webpack:///./node_modules/core-js/modules/es.date.to-primitive.js","webpack:///./node_modules/core-js/internals/date-to-primitive.js","webpack:///./node_modules/core-js/modules/es.json.stringify.js","webpack:///./node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/modules/es.promise.all-settled.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/modules/es.set.js","webpack:///./node_modules/core-js/modules/es.weak-map.js","webpack:///./node_modules/core-js/modules/es.weak-set.js","webpack:///./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/core-js/modules/es.array-buffer.is-view.js","webpack:///./node_modules/core-js/modules/es.array-buffer.slice.js","webpack:///./node_modules/core-js/modules/es.data-view.js","webpack:///./node_modules/core-js/modules/es.typed-array.int8-array.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.int16-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.int32-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.float64-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.from.js","webpack:///./node_modules/core-js/modules/es.typed-array.of.js","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///./node_modules/core-js/modules/es.reflect.apply.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/modules/es.reflect.define-property.js","webpack:///./node_modules/core-js/modules/es.reflect.delete-property.js","webpack:///./node_modules/core-js/modules/es.reflect.get.js","webpack:///./node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.reflect.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es.reflect.has.js","webpack:///./node_modules/core-js/modules/es.reflect.is-extensible.js","webpack:///./node_modules/core-js/modules/es.reflect.own-keys.js","webpack:///./node_modules/core-js/modules/es.reflect.prevent-extensions.js","webpack:///./node_modules/core-js/modules/es.reflect.set.js","webpack:///./node_modules/core-js/modules/es.reflect.set-prototype-of.js","webpack:///./node_modules/core-js/web/index.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/modules/web.immediate.js","webpack:///./node_modules/core-js/modules/web.queue-microtask.js","webpack:///./node_modules/core-js/modules/web.timers.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/modules/web.url.to-json.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/react-helmet/node_modules/prop-types/index.js","webpack:///./node_modules/react-helmet/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-helmet/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-side-effect/lib/index.js","webpack:///./node_modules/shallowequal/index.js","webpack:///./node_modules/deep-equal/index.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/is-arguments/index.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/has/src/index.js","webpack:///./node_modules/object-is/index.js","webpack:///./node_modules/object-is/shim.js","webpack:///./node_modules/is-regex/index.js","webpack:///./node_modules/regexp.prototype.flags/index.js","webpack:///./node_modules/regexp.prototype.flags/shim.js","webpack:///./node_modules/is-date-object/index.js","webpack:///./node_modules/react-helmet/lib/HelmetUtils.js","webpack:///./node_modules/@reach/rect/node_modules/prop-types/index.js","webpack:///./node_modules/@reach/rect/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/@reach/rect/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/@reach/tooltip/node_modules/prop-types/index.js","webpack:///./node_modules/@reach/tooltip/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/@reach/tooltip/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/yup/node_modules/lodash/_baseHas.js","webpack:///./node_modules/yup/node_modules/lodash/_getRawTag.js","webpack:///./node_modules/yup/node_modules/lodash/_objectToString.js","webpack:///./node_modules/yup/node_modules/lodash/_stringToPath.js","webpack:///./node_modules/yup/node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/yup/node_modules/lodash/memoize.js","webpack:///./node_modules/yup/node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/yup/node_modules/lodash/_Hash.js","webpack:///./node_modules/yup/node_modules/lodash/_hashClear.js","webpack:///./node_modules/yup/node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/yup/node_modules/lodash/_isMasked.js","webpack:///./node_modules/yup/node_modules/lodash/_coreJsData.js","webpack:///./node_modules/yup/node_modules/lodash/_getValue.js","webpack:///./node_modules/yup/node_modules/lodash/_hashDelete.js","webpack:///./node_modules/yup/node_modules/lodash/_hashGet.js","webpack:///./node_modules/yup/node_modules/lodash/_hashHas.js","webpack:///./node_modules/yup/node_modules/lodash/_hashSet.js","webpack:///./node_modules/yup/node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/yup/node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/yup/node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/yup/node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/yup/node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/yup/node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/yup/node_modules/lodash/_isKeyable.js","webpack:///./node_modules/yup/node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/yup/node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/yup/node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/yup/node_modules/lodash/_baseToString.js","webpack:///./node_modules/yup/node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/yup/node_modules/lodash/cloneDeepWith.js","webpack:///./node_modules/yup/node_modules/lodash/_baseClone.js","webpack:///./node_modules/yup/node_modules/lodash/_stackClear.js","webpack:///./node_modules/yup/node_modules/lodash/_stackDelete.js","webpack:///./node_modules/yup/node_modules/lodash/_stackGet.js","webpack:///./node_modules/yup/node_modules/lodash/_stackHas.js","webpack:///./node_modules/yup/node_modules/lodash/_stackSet.js","webpack:///./node_modules/yup/node_modules/lodash/_arrayEach.js","webpack:///./node_modules/yup/node_modules/lodash/_defineProperty.js","webpack:///./node_modules/yup/node_modules/lodash/_baseAssign.js","webpack:///./node_modules/yup/node_modules/lodash/_baseTimes.js","webpack:///./node_modules/yup/node_modules/lodash/stubFalse.js","webpack:///./node_modules/yup/node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/yup/node_modules/lodash/_baseKeys.js","webpack:///./node_modules/yup/node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/yup/node_modules/lodash/_baseAssignIn.js","webpack:///./node_modules/yup/node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/yup/node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/yup/node_modules/lodash/_cloneBuffer.js","webpack:///./node_modules/yup/node_modules/lodash/_copySymbols.js","webpack:///./node_modules/yup/node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/yup/node_modules/lodash/_copySymbolsIn.js","webpack:///./node_modules/yup/node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/yup/node_modules/lodash/_DataView.js","webpack:///./node_modules/yup/node_modules/lodash/_Promise.js","webpack:///./node_modules/yup/node_modules/lodash/_Set.js","webpack:///./node_modules/yup/node_modules/lodash/_WeakMap.js","webpack:///./node_modules/yup/node_modules/lodash/_initCloneArray.js","webpack:///./node_modules/yup/node_modules/lodash/_initCloneByTag.js","webpack:///./node_modules/yup/node_modules/lodash/_cloneDataView.js","webpack:///./node_modules/yup/node_modules/lodash/_cloneRegExp.js","webpack:///./node_modules/yup/node_modules/lodash/_cloneSymbol.js","webpack:///./node_modules/yup/node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/yup/node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/yup/node_modules/lodash/_baseCreate.js","webpack:///./node_modules/yup/node_modules/lodash/isMap.js","webpack:///./node_modules/yup/node_modules/lodash/_baseIsMap.js","webpack:///./node_modules/yup/node_modules/lodash/isSet.js","webpack:///./node_modules/yup/node_modules/lodash/_baseIsSet.js","webpack:///./node_modules/yup/node_modules/lodash/toArray.js","webpack:///./node_modules/yup/node_modules/lodash/isString.js","webpack:///./node_modules/yup/node_modules/lodash/_iteratorToArray.js","webpack:///./node_modules/yup/node_modules/lodash/_asciiToArray.js","webpack:///./node_modules/yup/node_modules/lodash/_unicodeToArray.js","webpack:///./node_modules/yup/node_modules/lodash/values.js","webpack:///./node_modules/yup/node_modules/lodash/_baseValues.js","webpack:///./node_modules/yup/lib/Condition.js","webpack:///./node_modules/yup/lib/util/prependDeep.js","webpack:///./node_modules/yup/lib/util/createValidation.js","webpack:///./node_modules/yup/node_modules/lodash/_baseFor.js","webpack:///./node_modules/yup/node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/yup/node_modules/lodash/_baseMatches.js","webpack:///./node_modules/yup/node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/yup/node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/yup/node_modules/lodash/_SetCache.js","webpack:///./node_modules/yup/node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/yup/node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/yup/node_modules/lodash/_arraySome.js","webpack:///./node_modules/yup/node_modules/lodash/_cacheHas.js","webpack:///./node_modules/yup/node_modules/lodash/_equalByTag.js","webpack:///./node_modules/yup/node_modules/lodash/_equalObjects.js","webpack:///./node_modules/yup/node_modules/lodash/_getMatchData.js","webpack:///./node_modules/yup/node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/yup/node_modules/lodash/get.js","webpack:///./node_modules/yup/node_modules/lodash/hasIn.js","webpack:///./node_modules/yup/node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/yup/node_modules/lodash/identity.js","webpack:///./node_modules/yup/node_modules/lodash/property.js","webpack:///./node_modules/yup/node_modules/lodash/_baseProperty.js","webpack:///./node_modules/yup/node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/yup/lib/boolean.js","webpack:///./node_modules/yup/lib/string.js","webpack:///./node_modules/yup/lib/number.js","webpack:///./node_modules/yup/lib/date.js","webpack:///./node_modules/yup/lib/util/isodate.js","webpack:///./node_modules/yup/lib/object.js","webpack:///./node_modules/yup/node_modules/lodash/snakeCase.js","webpack:///./node_modules/yup/node_modules/lodash/_arrayReduce.js","webpack:///./node_modules/yup/node_modules/lodash/deburr.js","webpack:///./node_modules/yup/node_modules/lodash/_deburrLetter.js","webpack:///./node_modules/yup/node_modules/lodash/_basePropertyOf.js","webpack:///./node_modules/yup/node_modules/lodash/words.js","webpack:///./node_modules/yup/node_modules/lodash/_asciiWords.js","webpack:///./node_modules/yup/node_modules/lodash/_hasUnicodeWord.js","webpack:///./node_modules/yup/node_modules/lodash/_unicodeWords.js","webpack:///./node_modules/yup/node_modules/lodash/camelCase.js","webpack:///./node_modules/yup/node_modules/lodash/capitalize.js","webpack:///./node_modules/yup/node_modules/lodash/upperFirst.js","webpack:///./node_modules/yup/node_modules/lodash/_createCaseFirst.js","webpack:///./node_modules/yup/node_modules/lodash/_castSlice.js","webpack:///./node_modules/yup/node_modules/lodash/_baseSlice.js","webpack:///./node_modules/yup/node_modules/lodash/mapKeys.js","webpack:///./node_modules/yup/lib/util/sortFields.js","webpack:///./node_modules/toposort/index.js","webpack:///./node_modules/yup/lib/util/sortByKeyOrder.js","webpack:///./node_modules/yup/lib/array.js","webpack:///./node_modules/yup/lib/Lazy.js","webpack:///./node_modules/yup/lib/setLocale.js","webpack:///./node_modules/recharts/node_modules/lodash/_Symbol.js","webpack:///./node_modules/recharts/node_modules/lodash/isArrayLike.js","webpack:///./node_modules/redux-localstorage/lib/actionTypes.js","webpack:///./node_modules/xstate/es/mapState.js","webpack:///./node_modules/xstate/es/match.js","webpack:///./node_modules/xstate/es/index.js","webpack:///./node_modules/d3-scale/src/ordinal.js","webpack:///./node_modules/history/createMemoryHistory.js","webpack:///./node_modules/react-router/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/@xstate/react/lib/index.js","webpack:///./node_modules/xstate/es/devTools.js","webpack:///./node_modules/react-async-script/node_modules/prop-types/index.js","webpack:///./node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack:///./node_modules/react-async-script/lib/esm/async-script-loader.js","webpack:///./node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack:///./node_modules/react-google-recaptcha/lib/esm/index.js","webpack:///./node_modules/react-hook-inview/dist/esm/useObserver.js","webpack:///./node_modules/react-hook-inview/dist/esm/useInView.js","webpack:///./app/javascript/ats/src/components/shared/LoadMoreTrigger.tsx","webpack:///./node_modules/recharts/es6/container/Surface.js","webpack:///./node_modules/d3-array/src/number.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack:///./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack:///./node_modules/@sentry/utils/esm/polyfill.js","webpack:///./node_modules/@sentry/utils/esm/error.js","webpack:///./node_modules/@sentry/utils/esm/dsn.js","webpack:///./node_modules/@sentry/core/esm/integration.js","webpack:///./node_modules/@sentry/core/esm/baseclient.js","webpack:///./node_modules/@sentry/types/esm/status.js","webpack:///./node_modules/@sentry/core/esm/transports/noop.js","webpack:///./node_modules/@sentry/types/esm/severity.js","webpack:///./node_modules/@sentry/core/esm/basebackend.js","webpack:///./node_modules/@sentry/browser/esm/tracekit.js","webpack:///./node_modules/@sentry/browser/esm/parsers.js","webpack:///./node_modules/@sentry/browser/esm/eventbuilder.js","webpack:///./node_modules/@sentry/core/esm/request.js","webpack:///./node_modules/@sentry/core/esm/api.js","webpack:///./node_modules/@sentry/utils/esm/promisebuffer.js","webpack:///./node_modules/@sentry/browser/esm/transports/base.js","webpack:///./node_modules/@sentry/browser/esm/transports/fetch.js","webpack:///./node_modules/@sentry/browser/esm/transports/xhr.js","webpack:///./node_modules/@sentry/browser/esm/backend.js","webpack:///./node_modules/@sentry/browser/esm/helpers.js","webpack:///./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack:///./node_modules/@sentry/browser/esm/version.js","webpack:///./node_modules/@sentry/browser/esm/client.js","webpack:///./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack:///./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack:///./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack:///./node_modules/@sentry/browser/esm/integrations/useragent.js","webpack:///./node_modules/@sentry/browser/esm/sdk.js","webpack:///./node_modules/@sentry/core/esm/sdk.js","webpack:///./node_modules/d3-shape/src/math.js","webpack:///./node_modules/d3-shape/src/symbol/circle.js","webpack:///./node_modules/d3-shape/src/symbol/cross.js","webpack:///./node_modules/d3-shape/src/symbol/diamond.js","webpack:///./node_modules/d3-shape/src/symbol/square.js","webpack:///./node_modules/d3-shape/src/symbol/star.js","webpack:///./node_modules/d3-shape/src/symbol/triangle.js","webpack:///./node_modules/d3-shape/src/symbol/wye.js","webpack:///./node_modules/recharts/es6/shape/Symbols.js","webpack:///./node_modules/d3-shape/src/symbol.js","webpack:///./node_modules/recharts/es6/component/DefaultLegendContent.js","webpack:///./node_modules/recharts/es6/component/Legend.js","webpack:///./node_modules/recharts/node_modules/lodash/max.js","webpack:///./node_modules/recharts/node_modules/lodash/min.js","webpack:///./node_modules/recharts/es6/component/DefaultTooltipContent.js","webpack:///./node_modules/recharts/es6/component/Tooltip.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/react-motion/lib/stripStyle.js","webpack:///./node_modules/recharts/node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/recharts/node_modules/lodash/_ListCache.js","webpack:///./node_modules/recharts/node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/recharts/node_modules/lodash/_getMapData.js","webpack:///./node_modules/recharts/node_modules/lodash/_toKey.js","webpack:///./node_modules/recharts/node_modules/lodash/keys.js","webpack:///./node_modules/recharts/node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-format/src/precisionPrefix.js","webpack:///./node_modules/d3-format/src/precisionRound.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/react-copy-to-clipboard/lib/index.js","webpack:///./node_modules/prosemirror-view/dist/index.es.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/assign.js","webpack:///./node_modules/immer/dist/immer.module.js","webpack:///./node_modules/react-select/lib/Async.js","webpack:///./node_modules/recharts/node_modules/lodash/every.js","webpack:///./node_modules/recharts/node_modules/lodash/isEqual.js","webpack:///./node_modules/recharts/es6/shape/Dot.js","webpack:///./node_modules/d3-scale/src/identity.js","webpack:///./node_modules/d3-scale/src/nice.js","webpack:///./node_modules/d3-scale/src/log.js","webpack:///./node_modules/d3-scale/src/symlog.js","webpack:///./node_modules/d3-scale/src/pow.js","webpack:///./node_modules/d3-scale/src/radial.js","webpack:///./node_modules/d3-array/src/max.js","webpack:///./node_modules/d3-array/src/min.js","webpack:///./node_modules/d3-array/src/quickselect.js","webpack:///./node_modules/d3-array/src/quantile.js","webpack:///./node_modules/d3-scale/src/quantile.js","webpack:///./node_modules/d3-scale/src/quantize.js","webpack:///./node_modules/d3-scale/src/threshold.js","webpack:///./node_modules/d3-time/src/duration.js","webpack:///./node_modules/d3-time/src/interval.js","webpack:///./node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/d3-time/src/second.js","webpack:///./node_modules/d3-time/src/minute.js","webpack:///./node_modules/d3-time/src/hour.js","webpack:///./node_modules/d3-time/src/day.js","webpack:///./node_modules/d3-time/src/week.js","webpack:///./node_modules/d3-time/src/month.js","webpack:///./node_modules/d3-time/src/year.js","webpack:///./node_modules/d3-time/src/utcMinute.js","webpack:///./node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/d3-time/src/ticks.js","webpack:///./node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/d3-scale/src/time.js","webpack:///./node_modules/d3-scale/src/utcTime.js","webpack:///./node_modules/d3-scale/src/sequential.js","webpack:///./node_modules/d3-scale/src/sequentialQuantile.js","webpack:///./node_modules/d3-interpolate/src/piecewise.js","webpack:///./node_modules/d3-scale/src/diverging.js","webpack:///./node_modules/react-motion/lib/react-motion.js","webpack:///./node_modules/reduce-css-calc/dist/index.js","webpack:///./node_modules/recharts/es6/util/IfOverflowMatches.js","webpack:///./node_modules/recharts/es6/cartesian/ReferenceDot.js","webpack:///./node_modules/recharts/es6/cartesian/ReferenceLine.js","webpack:///./node_modules/recharts/es6/cartesian/ReferenceArea.js","webpack:///./node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","webpack:///./node_modules/recharts/es6/util/CssPrefixUtils.js","webpack:///./node_modules/recharts/es6/cartesian/Brush.js","webpack:///./node_modules/react-router/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-router/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/@xstate/react/lib/useActor.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/react-motion/lib/mapToZero.js","webpack:///./node_modules/react-motion/lib/stepper.js","webpack:///./node_modules/react-motion/node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/react-motion/lib/shouldStopAnimation.js","webpack:///./node_modules/react-motion/node_modules/prop-types/index.js","webpack:///./node_modules/react-select/lib/components/Menu.js","webpack:///./node_modules/react-select/lib/utils.js","webpack:///./node_modules/react-select/lib/internal/NodeResolver.js","webpack:///./node_modules/react-select/lib/components/indicators.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseGet.js","webpack:///./node_modules/recharts/node_modules/lodash/_isKey.js","webpack:///./node_modules/recharts/node_modules/lodash/_MapCache.js","webpack:///./node_modules/recharts/node_modules/lodash/eq.js","webpack:///./node_modules/recharts/node_modules/lodash/_Map.js","webpack:///./node_modules/recharts/node_modules/lodash/_arrayMap.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseEach.js","webpack:///./node_modules/recharts/node_modules/lodash/isArguments.js","webpack:///./node_modules/recharts/node_modules/lodash/_isIndex.js","webpack:///./node_modules/recharts/node_modules/lodash/isLength.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/recharts/node_modules/lodash/_setToArray.js","webpack:///./node_modules/react-google-recaptcha/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-google-recaptcha/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-async-script/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-async-script/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/d3-array/src/range.js","webpack:///./node_modules/d3-scale/src/band.js","webpack:///./node_modules/pdfjs-dist/lib/web/ui_utils.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/recharts/node_modules/lodash/debounce.js","webpack:///./node_modules/recharts/node_modules/lodash/isNumber.js","webpack:///./node_modules/redux-localstorage/lib/adapters/localStorage/index.js","webpack:///./node_modules/use-prosemirror/dist/index.js","webpack:///./node_modules/lodash/startCase.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/redux-localstorage/lib/index.js","webpack:///./node_modules/d3-shape/src/noop.js","webpack:///./node_modules/d3-shape/src/curve/basis.js","webpack:///./node_modules/d3-shape/src/curve/basisClosed.js","webpack:///./node_modules/d3-shape/src/curve/basisOpen.js","webpack:///./node_modules/d3-shape/src/curve/linearClosed.js","webpack:///./node_modules/d3-shape/src/curve/linear.js","webpack:///./node_modules/d3-shape/src/curve/monotone.js","webpack:///./node_modules/d3-shape/src/curve/natural.js","webpack:///./node_modules/d3-shape/src/curve/step.js","webpack:///./node_modules/d3-shape/src/point.js","webpack:///./node_modules/d3-shape/src/line.js","webpack:///./node_modules/d3-shape/src/area.js","webpack:///./node_modules/recharts/es6/shape/Curve.js","webpack:///./node_modules/@sentry/react/esm/errorboundary.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-pie.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/react-motion/lib/presets.js","webpack:///./node_modules/react-select/lib/components/containers.js","webpack:///./node_modules/react-select/lib/components/Control.js","webpack:///./node_modules/react-select/lib/components/Group.js","webpack:///./node_modules/react-select/lib/components/Input.js","webpack:///./node_modules/react-select/lib/components/MultiValue.js","webpack:///./node_modules/react-select/lib/components/Option.js","webpack:///./node_modules/react-select/lib/components/Placeholder.js","webpack:///./node_modules/react-select/lib/components/SingleValue.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/recharts/node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/recharts/node_modules/lodash/toNumber.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/recharts/node_modules/lodash/_castPath.js","webpack:///./node_modules/recharts/node_modules/lodash/_toSource.js","webpack:///./node_modules/recharts/node_modules/lodash/toString.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/recharts/node_modules/lodash/isBuffer.js","webpack:///./node_modules/recharts/node_modules/lodash/isTypedArray.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseUnary.js","webpack:///./node_modules/recharts/node_modules/lodash/_Stack.js","webpack:///./node_modules/recharts/node_modules/lodash/_equalArrays.js","webpack:///./node_modules/recharts/node_modules/lodash/_SetCache.js","webpack:///./node_modules/recharts/node_modules/lodash/_arraySome.js","webpack:///./node_modules/recharts/node_modules/lodash/_cacheHas.js","webpack:///./node_modules/recharts/node_modules/lodash/_arrayPush.js","webpack:///./node_modules/recharts/node_modules/lodash/_Set.js","webpack:///./node_modules/recharts/node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/recharts/node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/recharts/node_modules/lodash/toFinite.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseFlatten.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseMap.js","webpack:///./node_modules/recharts/node_modules/lodash/_defineProperty.js","webpack:///./node_modules/recharts/node_modules/lodash/_hasUnicode.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseExtremum.js","webpack:///./node_modules/reduce-css-calc/dist/lib/reducer.js","webpack:///./node_modules/lodash/findKey.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/create.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js","webpack:///./node_modules/symbol-observable/es/ponyfill.js","webpack:///./node_modules/pdfjs-dist/lib/web/pdf_link_service.js","webpack:///./node_modules/attr-accept/dist/es/index.js","webpack:///./node_modules/indefinite/dist/indefinite.js","webpack:///./node_modules/react-resize-detector/build/withPolyfill.js","webpack:///./node_modules/recharts/es6/chart/generateCategoricalChart.js","webpack:///./node_modules/recharts/node_modules/lodash/find.js","webpack:///./node_modules/recharts/node_modules/lodash/throttle.js","webpack:///./node_modules/recharts/node_modules/lodash/isBoolean.js","webpack:///./node_modules/recharts/node_modules/lodash/flatMap.js","webpack:///./node_modules/recharts/node_modules/lodash/some.js","webpack:///./node_modules/recharts/node_modules/lodash/mapValues.js","webpack:///./node_modules/fast-equals/dist/fast-equals.js","webpack:///./node_modules/recharts/es6/shape/Cross.js","webpack:///./node_modules/recharts/es6/shape/Sector.js","webpack:///./node_modules/eventemitter3/index.js","webpack:///./node_modules/recharts/node_modules/lodash/last.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/redux-thunk/lib/index.js","webpack:///./node_modules/redux-localstorage-filter/lib/filter.js","webpack:///./node_modules/redux-devtools-extension/index.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/lodash/_baseFindKey.js","webpack:///./node_modules/react-copy-to-clipboard/lib/Component.js","webpack:///./node_modules/copy-to-clipboard/index.js","webpack:///./node_modules/toggle-selection/index.js","webpack:///./node_modules/use-prosemirror/dist/useProseMirror.js","webpack:///./node_modules/use-prosemirror/dist/ProseMirror.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/assign.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.assign.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-assign.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gops.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/keys.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.keys.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/create.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.create.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/set-prototype-of.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_set-proto.js","webpack:///./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gopd.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-motion/lib/Motion.js","webpack:///./node_modules/react-motion/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-motion/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-motion/lib/StaggeredMotion.js","webpack:///./node_modules/react-motion/lib/TransitionMotion.js","webpack:///./node_modules/react-motion/lib/mergeDiff.js","webpack:///./node_modules/react-motion/lib/spring.js","webpack:///./node_modules/react-motion/lib/reorderKeys.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/react-pdf/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-pdf/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-dropzone/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-dropzone/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-select/lib/Select.js","webpack:///./node_modules/react-select/lib/internal/react-fast-compare.js","webpack:///./node_modules/react-select/lib/filters.js","webpack:///./node_modules/react-select/lib/diacritics.js","webpack:///./node_modules/react-select/lib/internal/index.js","webpack:///./node_modules/react-select/lib/internal/A11yText.js","webpack:///./node_modules/react-select/lib/internal/DummyInput.js","webpack:///./node_modules/react-select/lib/internal/ScrollBlock.js","webpack:///./node_modules/react-select/lib/internal/ScrollLock/index.js","webpack:///./node_modules/react-select/lib/internal/ScrollLock/constants.js","webpack:///./node_modules/react-select/lib/internal/ScrollLock/utils.js","webpack:///./node_modules/react-select/lib/internal/ScrollCaptor.js","webpack:///./node_modules/react-select/lib/accessibility/index.js","webpack:///./node_modules/react-select/lib/builtins.js","webpack:///./node_modules/react-select/lib/components/index.js","webpack:///./node_modules/react-select/lib/styles.js","webpack:///./node_modules/react-select/lib/theme.js","webpack:///./node_modules/react-select/lib/stateManager.js","webpack:///./node_modules/lodash/_charsEndIndex.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/lodash/_charsStartIndex.js","webpack:///./node_modules/recharts/node_modules/lodash/now.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseTrim.js","webpack:///./node_modules/recharts/node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/recharts/node_modules/lodash/_getRawTag.js","webpack:///./node_modules/recharts/node_modules/lodash/_objectToString.js","webpack:///./node_modules/recharts/node_modules/lodash/_stringToPath.js","webpack:///./node_modules/recharts/node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/recharts/node_modules/lodash/memoize.js","webpack:///./node_modules/recharts/node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/recharts/node_modules/lodash/_Hash.js","webpack:///./node_modules/recharts/node_modules/lodash/_hashClear.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/recharts/node_modules/lodash/_isMasked.js","webpack:///./node_modules/recharts/node_modules/lodash/_coreJsData.js","webpack:///./node_modules/recharts/node_modules/lodash/_getValue.js","webpack:///./node_modules/recharts/node_modules/lodash/_hashDelete.js","webpack:///./node_modules/recharts/node_modules/lodash/_hashGet.js","webpack:///./node_modules/recharts/node_modules/lodash/_hashHas.js","webpack:///./node_modules/recharts/node_modules/lodash/_hashSet.js","webpack:///./node_modules/recharts/node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/recharts/node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/recharts/node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/recharts/node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/recharts/node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/recharts/node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/recharts/node_modules/lodash/_isKeyable.js","webpack:///./node_modules/recharts/node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/recharts/node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/recharts/node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseToString.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/recharts/node_modules/lodash/_arrayEvery.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseEvery.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseFor.js","webpack:///./node_modules/recharts/node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/recharts/node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseTimes.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/recharts/node_modules/lodash/stubFalse.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/recharts/node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseKeys.js","webpack:///./node_modules/recharts/node_modules/lodash/_isPrototype.js","webpack:///./node_modules/recharts/node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/recharts/node_modules/lodash/_overArg.js","webpack:///./node_modules/recharts/node_modules/lodash/_createBaseEach.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseMatches.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/recharts/node_modules/lodash/_stackClear.js","webpack:///./node_modules/recharts/node_modules/lodash/_stackDelete.js","webpack:///./node_modules/recharts/node_modules/lodash/_stackGet.js","webpack:///./node_modules/recharts/node_modules/lodash/_stackHas.js","webpack:///./node_modules/recharts/node_modules/lodash/_stackSet.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/recharts/node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/recharts/node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/recharts/node_modules/lodash/_equalByTag.js","webpack:///./node_modules/recharts/node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/recharts/node_modules/lodash/_mapToArray.js","webpack:///./node_modules/recharts/node_modules/lodash/_equalObjects.js","webpack:///./node_modules/recharts/node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/recharts/node_modules/lodash/_getSymbols.js","webpack:///./node_modules/recharts/node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/recharts/node_modules/lodash/stubArray.js","webpack:///./node_modules/recharts/node_modules/lodash/_getTag.js","webpack:///./node_modules/recharts/node_modules/lodash/_DataView.js","webpack:///./node_modules/recharts/node_modules/lodash/_Promise.js","webpack:///./node_modules/recharts/node_modules/lodash/_WeakMap.js","webpack:///./node_modules/recharts/node_modules/lodash/_getMatchData.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/recharts/node_modules/lodash/hasIn.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/recharts/node_modules/lodash/_hasPath.js","webpack:///./node_modules/recharts/node_modules/lodash/property.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseProperty.js","webpack:///./node_modules/recharts/node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/recharts/node_modules/lodash/_createFind.js","webpack:///./node_modules/recharts/node_modules/lodash/findIndex.js","webpack:///./node_modules/recharts/node_modules/lodash/toInteger.js","webpack:///./node_modules/recharts/node_modules/lodash/_isFlattenable.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseOrderBy.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseSortBy.js","webpack:///./node_modules/recharts/node_modules/lodash/_compareMultiple.js","webpack:///./node_modules/recharts/node_modules/lodash/_compareAscending.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseRest.js","webpack:///./node_modules/recharts/node_modules/lodash/_overRest.js","webpack:///./node_modules/recharts/node_modules/lodash/_apply.js","webpack:///./node_modules/recharts/node_modules/lodash/_setToString.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/recharts/node_modules/lodash/constant.js","webpack:///./node_modules/recharts/node_modules/lodash/_shortOut.js","webpack:///./node_modules/recharts/node_modules/lodash/_createRange.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseRange.js","webpack:///./node_modules/recharts/node_modules/lodash/_createCaseFirst.js","webpack:///./node_modules/recharts/node_modules/lodash/_castSlice.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseSlice.js","webpack:///./node_modules/recharts/node_modules/lodash/_stringToArray.js","webpack:///./node_modules/recharts/node_modules/lodash/_asciiToArray.js","webpack:///./node_modules/recharts/node_modules/lodash/_unicodeToArray.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseGt.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseLt.js","webpack:///./node_modules/recharts/node_modules/lodash/map.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseUniq.js","webpack:///./node_modules/recharts/node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/recharts/node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/recharts/node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/recharts/node_modules/lodash/_createSet.js","webpack:///./node_modules/recharts/node_modules/lodash/noop.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseSome.js","webpack:///./node_modules/recharts/node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/postcss-value-parser/lib/index.js","webpack:///./node_modules/postcss-value-parser/lib/parse.js","webpack:///./node_modules/postcss-value-parser/lib/walk.js","webpack:///./node_modules/postcss-value-parser/lib/stringify.js","webpack:///./node_modules/postcss-value-parser/lib/unit.js","webpack:///./node_modules/reduce-css-calc/dist/parser.js","webpack:///./node_modules/reduce-css-calc/dist/lib/convert.js","webpack:///./node_modules/css-unit-converter/index.js","webpack:///./node_modules/reduce-css-calc/dist/lib/stringifier.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/redux-localstorage/lib/mergePersistedState.js","webpack:///./node_modules/redux-localstorage/lib/persistState.js","webpack:///./node_modules/redux-localstorage/lib/persistStateMiddleware.js","webpack:///./node_modules/redux-localstorage/lib/bufferActions.js","webpack:///./node_modules/redux-localstorage/lib/adapters/localStorage/adapter.js","webpack:///./app/javascript/ats/src/components/modals/ArchiveJobModal.tsx","webpack:///./app/javascript/ats/src/components/modals/CloningJobModal.tsx","webpack:///./app/javascript/shared/types/organization.ts","webpack:///./app/javascript/ats/src/components/modals/HideJobModal.tsx","webpack:///./app/javascript/ats/src/views/jobs/components/JobListItemMenu.tsx","webpack:///./app/javascript/shared/queryHooks/useBilling.ts","webpack:///./app/javascript/ats/src/components/modals/SubscriptionRequiredModal.tsx","webpack:///./node_modules/zustand/esm/index.js","webpack:///./app/javascript/ats/src/lib/store/zustand/featureFlipperStore.ts","webpack:///./app/javascript/ats/src/components/shared/FeatureFlipper.tsx","webpack:///./app/javascript/ats/src/components/modals/SubscriptionRequiredModalNew.tsx","webpack:///./app/javascript/ats/src/views/jobs/components/JobListItem.tsx","webpack:///./app/javascript/ats/src/components/modals/NewJobCenterModal.tsx","webpack:///./app/javascript/ats/src/components/shared/AuthorizationManager.tsx","webpack:///./app/javascript/ats/src/views/jobs/components/JobListFilter.tsx","webpack:///./app/javascript/ats/src/views/jobs/JobList.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/components/InviteListItem.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/components/MemberListItem.tsx","webpack:///./app/javascript/shared/queryHooks/useInvite.ts","webpack:///./app/javascript/ats/src/views/accountAdmin/components/NewInviteForm.tsx","webpack:///./app/javascript/ats/src/components/modals/InviteModal.tsx","webpack:///./app/javascript/ats/src/components/modals/ConfirmTransferOwnershipModal.tsx","webpack:///./app/javascript/ats/src/components/shared/SettingsContainer.tsx","webpack:///./app/javascript/shared/queryHooks/useUser.ts","webpack:///./app/javascript/shared/queryHooks/useOrganizationUser.ts","webpack:///./app/javascript/ats/src/views/accountAdmin/AccountTeam.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/AccountOrganizationDetails.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountIntegrations/AccountIntegrationsGoogleAnalytics.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountIntegrations/AccountIntegrationsGoogleJobs.tsx","webpack:///./app/javascript/ats/src/components/forms/FormFieldMapper.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountIntegrations/OuathConnectButton.tsx","webpack:///./app/javascript/shared/components/OauthConnectButton.tsx","webpack:///./app/javascript/ats/src/components/modals/OauthReconnectModal.tsx","webpack:///./app/javascript/shared/queryHooks/useOauth.ts","webpack:///./app/javascript/shared/queryHooks/useWebflow.ts","webpack:///./app/javascript/ats/src/views/accountAdmin/accountIntegrations/AccountIntegrationsWebflow.tsx","webpack:///./app/javascript/shared/queryHooks/useSlack.ts","webpack:///./app/javascript/ats/src/components/forms/FormFieldset.tsx","webpack:///./app/javascript/ats/src/components/forms/FormCheckbox/index.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountIntegrations/AccountIntegrationsSlack.tsx","webpack:///./app/javascript/shared/queryHooks/useDiscord.ts","webpack:///./app/javascript/ats/src/views/accountAdmin/accountIntegrations/AccountIntegrationsDiscord.tsx","webpack:///./app/javascript/shared/queryHooks/useRegisteredWebhooks.ts","webpack:///./app/javascript/ats/src/views/accountAdmin/accountIntegrations/AccountIntegrationsPolymerWebhooks.tsx","webpack:///./app/javascript/ats/src/components/shared/CopyField.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountIntegrations/AccountIntegrationsZapier.tsx","webpack:///./app/javascript/ats/src/components/modals/LinkedinIdConfirmationModal.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountIntegrations/AccountIntegrationsLinkedIn.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountIntegrations/AccountIntegrationsXHiring.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountIntegrations/AccountIntegrationsContainer.tsx","webpack:///./app/javascript/ats/src/components/forms/FormConditionalFields.tsx","webpack:///./app/javascript/shared/queryHooks/useCareersPage.ts","webpack:///./app/javascript/ats/src/views/accountAdmin/components/JobBoardLogoUploader.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/components/JobBoardSocialShareImageUploader.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountJobBoard/AccountJobBoardBranding.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountJobBoard/AccountJobBoardSeo.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountJobBoard/AccountJobBoardNavigation.tsx","webpack:///./app/javascript/ats/styles/text.js","webpack:///./node_modules/dequal/dist/index.mjs","webpack:///./node_modules/use-deep-compare-effect/dist/use-deep-compare-effect.esm.js","webpack:///./node_modules/w3c-keyname/index.es.js","webpack:///./node_modules/prosemirror-keymap/dist/index.es.js","webpack:///./node_modules/prosemirror-inputrules/dist/index.es.js","webpack:///./node_modules/rope-sequence/dist/index.es.js","webpack:///./node_modules/prosemirror-history/dist/index.es.js","webpack:///./node_modules/prosemirror-schema-list/dist/index.es.js","webpack:///./node_modules/prosemirror-commands/dist/index.es.js","webpack:///./node_modules/prosemirror-schema-basic/dist/index.es.js","webpack:///./app/javascript/shared/ProseMirror/config/schema.ts","webpack:///./app/javascript/shared/ProseMirror/config/keys.ts","webpack:///./app/javascript/shared/ProseMirror/config/icons.js","webpack:///./app/javascript/shared/ProseMirror/config/menu.ts","webpack:///./app/javascript/ats/src/components/modals/FullModal.tsx","webpack:///./app/javascript/shared/queryHooks/useCommentTemplate.ts","webpack:///./app/javascript/ats/src/components/modals/CommentTemplateSelectionModal.tsx","webpack:///./app/javascript/ats/src/lib/store/zustand/proseMirrorEditorStore.ts","webpack:///./app/javascript/shared/ProseMirror/MenuBar.tsx","webpack:///./app/javascript/shared/ProseMirror/FloatingToolbar.tsx","webpack:///./app/javascript/shared/ProseMirror/SelectionToolbar.tsx","webpack:///./app/javascript/shared/ProseMirror/LinkToolbar.tsx","webpack:///./app/javascript/shared/ProseMirror/ImageToolbar.tsx","webpack:///./app/javascript/shared/ProseMirror/IframeToolbar.tsx","webpack:///./app/javascript/shared/ProseMirror/MessageMailMergeMenuBar.tsx","webpack:///./node_modules/prosemirror-dropcursor/dist/index.es.js","webpack:///./node_modules/prosemirror-gapcursor/node_modules/prosemirror-view/dist/index.es.js","webpack:///./node_modules/prosemirror-gapcursor/dist/index.es.js","webpack:///./app/javascript/shared/ProseMirror/config/rules.ts","webpack:///./app/javascript/shared/ProseMirror/config/plugins.ts","webpack:///./app/javascript/shared/ProseMirror/config/index.ts","webpack:///./app/javascript/shared/ProseMirror/Editor.tsx","webpack:///./app/javascript/shared/hooks/useDebounce.ts","webpack:///./app/javascript/ats/src/views/accountAdmin/components/JobBoardBillboardMediaChooser.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountJobBoard/AccountJobBoardContent.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/components/CustomDomainStatus.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountJobBoard/AccountJobBoardCustomDomain.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountJobBoard/AccountJobBoardEmbed.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountJobBoard/AccountJobBoardContainer.tsx","webpack:///./app/javascript/shared/queryHooks/useJobCategory.ts","webpack:///./app/javascript/ats/src/components/modals/JobCategoryModal.tsx","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/extends.js","webpack:///./node_modules/css-box-model/dist/css-box-model.esm.js","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/redux/es/redux.js","webpack:///./node_modules/raf-schd/dist/raf-schd.esm.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/inheritsLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/react-redux/es/utils/PropTypes.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/react-redux/es/components/Provider.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/react-redux/es/utils/Subscription.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/react-redux/es/components/connectAdvanced.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/react-redux/es/utils/shallowEqual.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/wrapMapToProps.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/mapStateToProps.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/mergeProps.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/selectorFactory.js","webpack:///./node_modules/react-beautiful-dnd/node_modules/react-redux/es/connect/connect.js","webpack:///./node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.js","webpack:///./app/javascript/ats/src/views/accountAdmin/components/JobCategoryList.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/components/JobCategoryListItem.tsx","webpack:///./app/javascript/shared/queryHooks/useJobCategories.ts","webpack:///./app/javascript/ats/src/views/accountAdmin/AccountJobCategories.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/AccountPreferences.tsx","webpack:///./app/javascript/ats/src/components/modals/PromoCodeCenterModal.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/AccountBillingOld.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountBilling/AccountBillingNewPlanChoices.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/accountBilling/AccountBillingCurrentPlan.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/AccountBillingNew.tsx","webpack:///./app/javascript/shared/queryHooks/useChannelMessageTemplate.ts","webpack:///./app/javascript/ats/src/components/modals/ChannelMessageTemplateModal.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/components/ChannelMessageTemplateList.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/components/ChannelMessageTemplateListItem.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/AccountChannelMessageTemplates.tsx","webpack:///./app/javascript/ats/src/components/modals/CommentTemplateModal.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/components/CommentTemplateList.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/components/CommentTemplateListItem.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/AccountCommentTemplates.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/AccountContainer.tsx","webpack:///./app/javascript/shared/queryHooks/useNotification.tsx","webpack:///./app/javascript/ats/src/views/notifications/NotificationListItem.tsx","webpack:///./app/javascript/ats/src/views/notifications/NotificationList.tsx","webpack:///./app/javascript/ats/src/views/notifications/NotificationsContainer.tsx","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/merge-class-names/dist/esm/index.js","webpack:///./node_modules/react-pdf/dist/esm/DocumentContext.js","webpack:///./node_modules/react-pdf/dist/esm/Message.js","webpack:///./node_modules/react-pdf/dist/esm/LinkService.js","webpack:///./node_modules/react-pdf/dist/esm/PasswordResponses.js","webpack:///./node_modules/react-pdf/dist/esm/eventBus.js","webpack:///./node_modules/react-pdf/dist/esm/shared/utils.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/react-pdf/dist/esm/shared/propTypes.js","webpack:///./node_modules/react-pdf/dist/esm/Document.js","webpack:///./node_modules/react-pdf/dist/esm/OutlineContext.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/react-pdf/dist/esm/Ref.js","webpack:///./node_modules/react-pdf/dist/esm/OutlineItem.js","webpack:///./node_modules/react-pdf/dist/esm/Outline.js","webpack:///./node_modules/react-pdf/dist/esm/PageContext.js","webpack:///./node_modules/react-pdf/dist/esm/Page/PageCanvas.js","webpack:///./node_modules/react-pdf/dist/esm/Page/PageSVG.js","webpack:///./node_modules/react-pdf/dist/esm/Page/TextLayerItem.js","webpack:///./node_modules/react-pdf/dist/esm/Page/TextLayer.js","webpack:///./node_modules/react-pdf/dist/esm/Page/AnnotationLayer.js","webpack:///./node_modules/react-pdf/dist/esm/Page.js","webpack:///./node_modules/react-pdf/dist/esm/entry.js","webpack:///./app/javascript/shared/hooks/useMeasure.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/Resume.tsx","webpack:///./app/javascript/ats/src/components/shared/CollapsibleItem.tsx","webpack:///./app/javascript/shared/types/jobApplication.ts","webpack:///./app/javascript/ats/src/views/reviews/CollapsibleQuestionResponses.tsx","webpack:///./app/javascript/shared/queryHooks/useComment.ts","webpack:///./app/javascript/shared/queryHooks/useCandidatePrivateNote.ts","webpack:///./app/javascript/ats/src/views/reviews/ReviewKit.tsx","webpack:///./app/javascript/ats/src/components/shared/FriendlyErrors.tsx","webpack:///./app/javascript/shared/queryHooks/useJobApplication.ts","webpack:///./app/javascript/ats/src/views/reviews/ReviewKitContainer.tsx","webpack:///./app/javascript/shared/queryHooks/admin/useOrganization.ts","webpack:///./app/javascript/ats/src/views/admin/AdminOrganizationEditModal.tsx","webpack:///./app/javascript/ats/src/views/admin/AdminRemoveBadActorModal.tsx","webpack:///./app/javascript/shared/queryHooks/admin/useBecome.ts","webpack:///./app/javascript/ats/src/views/admin/AdminDashboardCustomers.tsx","webpack:///./app/javascript/shared/queryHooks/admin/useDashboard.ts","webpack:///./app/javascript/ats/src/views/admin/AdminDashboardStatistics.tsx","webpack:///./app/javascript/ats/src/views/admin/AdminDashboardContainer.tsx","webpack:///./app/javascript/shared/queryHooks/admin/useUser.ts","webpack:///./app/javascript/ats/src/views/admin/AdminUsersSearch.tsx","webpack:///./app/javascript/shared/queryHooks/admin/useCandidate.ts","webpack:///./app/javascript/ats/src/views/admin/AdminCandidatesSearch.tsx","webpack:///./app/javascript/shared/queryHooks/useFeatureFlippers.ts","webpack:///./app/javascript/ats/src/views/admin/AdminNewFeatureFlagModal.tsx","webpack:///./app/javascript/ats/src/views/admin/AdminFeatureFlippers.tsx","webpack:///./app/javascript/ats/src/views/admin/AdminContainer.tsx","webpack:///./app/javascript/ats/src/context/JobViewContext.tsx","webpack:///./app/javascript/ats/src/websockets/WebsocketGlobalChannelHandler.tsx","webpack:///./app/javascript/ats/src/websockets/WebsocketContext.tsx","webpack:///./app/javascript/ats/src/lib/store/zustand/jobApplicationStore.ts","webpack:///./app/javascript/ats/src/websockets/WebsocketJobChannelHandler.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/candidates/CandidateForm.tsx","webpack:///./app/javascript/shared/queryHooks/useCandidate.ts","webpack:///./app/javascript/ats/src/views/jobApplications/candidates/NewCandidateModal.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobStageAutomationInfo.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/candidates/EditCandidateModal.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationStageMoveModal.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationCloneModal.tsx","webpack:///./app/javascript/ats/src/lib/store/zustand/jobStore.ts","webpack:///./app/javascript/shared/types/candidate.ts","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationSidebarActions.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationSidebar.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/activities/SharedDocumentFeedItem.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/comments/CommentModal.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/comments/CommentListItem.tsx","webpack:///./app/javascript/shared/queryHooks/useInterviewerRequest.ts","webpack:///./app/javascript/shared/queryHooks/useInterviewerInvite.ts","webpack:///./app/javascript/ats/src/components/modals/ReviewRequestModal.tsx","webpack:///./app/javascript/ats/src/views/reviews/ReviewListItem.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/activities/ActivityListItem.tsx","webpack:///./app/javascript/ats/src/components/modals/SharedDocumentModal.tsx","webpack:///./app/javascript/shared/queryHooks/useJobApplicationActivities.ts","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationActivity.tsx","webpack:///./node_modules/file-selector/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/file-selector/dist/es5/file.js","webpack:///./node_modules/file-selector/dist/es5/file-selector.js","webpack:///./node_modules/react-dropzone/dist/es/utils/index.js","webpack:///./node_modules/react-dropzone/dist/es/index.js","webpack:///./app/javascript/ats/src/components/DragAndDropResumeUploader.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationResume.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationNotes.tsx","webpack:///./app/javascript/shared/queryHooks/useChannel.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/channelMessages/OriginalEmailModal.tsx","webpack:///./app/javascript/ats/src/components/shared/OrgLogo.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/channelMessages/ChannelMessageListItem.tsx","webpack:///./app/javascript/shared/queryHooks/useHiringTeamMembership.ts","webpack:///./app/javascript/ats/src/views/jobApplications/channelMessages/ChannelMessageList.tsx","webpack:///./app/javascript/shared/queryHooks/useChannelMessage.ts","webpack:///./app/javascript/ats/src/components/modals/ChannelMessageTemplateSelectionModal.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/channelMessages/ChannelMessageNew.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationMessages.tsx","webpack:///./app/javascript/shared/queryHooks/useJobApplicationFiles.ts","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationFiles.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationContainer.tsx","webpack:///./app/javascript/shared/queryHooks/useBulkMessage.ts","webpack:///./app/javascript/ats/src/components/modals/BulkMessageModal.tsx","webpack:///./app/javascript/ats/src/components/modals/BulkMoveModal.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobStageMenu.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationNavItem.tsx","webpack:///./app/javascript/shared/hooks/useChecklist.ts","webpack:///./app/javascript/ats/src/views/jobApplications/JobApplicationListContainer.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/components/JobCustomShareUrlForm.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/components/JobShareLinks.tsx","webpack:///./app/javascript/ats/src/components/modals/ShareJobModal.tsx","webpack:///./app/javascript/shared/hooks/useScript.js","webpack:///./app/javascript/ats/src/components/forms/FormSelectCity.tsx","webpack:///./app/javascript/ats/src/components/forms/FormSelectGoogleLocation.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/components/JobSocialShareImageUploader.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/JobSetupDetails.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/JobSetupDescription.tsx","webpack:///./app/javascript/ats/src/components/forms/FormSelectBuilder.tsx","webpack:///./app/javascript/ats/src/components/modals/CustomQuestionModal/index.js","webpack:///./app/javascript/ats/src/views/jobs/components/QuestionList/index.js","webpack:///./app/javascript/ats/src/views/jobs/components/QuestionListItem.tsx","webpack:///./app/javascript/shared/queryHooks/useQuestion.ts","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/JobSetupApplicationFormCustomQuestions.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/JobSetupApplicationForm.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/JobSetupDocument.tsx","webpack:///./app/javascript/shared/queryHooks/useHiringTeamInvite.ts","webpack:///./app/javascript/ats/src/components/modals/NewTeamMemberModal.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/components/TeamMemberListItem.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/components/TeamMemberInviteListItem.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/JobSetupTeam.tsx","webpack:///./app/javascript/ats/src/components/modals/HiringStageModal.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/components/HiringStageList.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/components/HiringStageListItem.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/JobSetupHiringStages.tsx","webpack:///./app/javascript/shared/queryHooks/useHiringStageAutomation.ts","webpack:///./app/javascript/ats/src/components/modals/HiringStageAutomationModal.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/components/HiringStageAutomationListItem.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/components/HiringStageAutomationList.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/JobSetupAutomations.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobSetup/JobSetupContainer.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobDistribution/JobDistributionWeWorkRemotely.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobDistribution/JobDistributionContainer.tsx","webpack:///./app/javascript/shared/queryHooks/useAnalytics.ts","webpack:///./node_modules/recharts/es6/component/ResponsiveContainer.js","webpack:///./node_modules/recharts/es6/cartesian/ErrorBar.js","webpack:///./node_modules/recharts/es6/component/Cell.js","webpack:///./node_modules/recharts/es6/component/LabelList.js","webpack:///./node_modules/recharts/es6/cartesian/Bar.js","webpack:///./node_modules/recharts/es6/cartesian/XAxis.js","webpack:///./node_modules/recharts/es6/cartesian/YAxis.js","webpack:///./node_modules/recharts/es6/chart/BarChart.js","webpack:///./node_modules/recharts/es6/cartesian/CartesianGrid.js","webpack:///./app/javascript/ats/src/views/jobApplications/jobMetrics/components/JobMetricsSourceChart.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobMetrics/components/JobMetricsStageFunnelChart.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobMetrics/components/JobMetricsStageTargetPercents.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/jobMetrics/JobMetricsContainer.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobStagesContainer.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobStripeCheckoutRedirectHandler.tsx","webpack:///./app/javascript/shared/queryHooks/useCsvExport.ts","webpack:///./app/javascript/shared/queryHooks/useCsvImport.tsx","webpack:///./app/javascript/ats/src/components/forms/FormFile.tsx","webpack:///./app/javascript/ats/src/components/modals/JobImportCandidatesModal.tsx","webpack:///./app/javascript/ats/src/views/jobApplications/JobContainer.tsx","webpack:///./app/javascript/ats/src/views/interviewer/InterviewerPage.tsx","webpack:///./app/javascript/shared/queryHooks/useUniversalSearch.ts","webpack:///./app/javascript/shared/hooks/useRoveFocus.ts","webpack:///./app/javascript/ats/src/components/shared/UniversalSearch.tsx","webpack:///./app/javascript/ats/src/components/shared/OrgSwitcherLogo.tsx","webpack:///./app/javascript/ats/src/views/layouts/AppHeader.tsx","webpack:///./app/javascript/ats/src/views/layouts/AppContainer.tsx","webpack:///./app/javascript/shared/queryHooks/useSession.ts","webpack:///./app/javascript/ats/src/views/sessions/Logout.tsx","webpack:///./app/javascript/ats/src/components/shared/Logo.tsx","webpack:///./app/javascript/ats/src/views/sessions/components/HeaderBar.tsx","webpack:///./app/javascript/ats/src/views/sessions/components/Styled.tsx","webpack:///./app/javascript/ats/src/views/sessions/NeedsEmailConfirmation.tsx","webpack:///./app/javascript/ats/src/views/sessions/VerifyEmail.tsx","webpack:///./app/javascript/ats/src/views/sessions/components/OrganizationForm.tsx","webpack:///./app/javascript/ats/src/views/sessions/NewOrganization.tsx","webpack:///./app/javascript/ats/src/views/accountAdmin/AccountDeactivated/index.js","webpack:///./app/javascript/ats/src/views/accountAdmin/OrganizationSwitcher.tsx","webpack:///./app/javascript/ats/src/views/sessions/components/LoginForm.tsx","webpack:///./app/javascript/ats/src/views/sessions/Login.tsx","webpack:///./app/javascript/ats/src/views/sessions/components/AuthForm.tsx","webpack:///./app/javascript/ats/src/views/sessions/Auth.tsx","webpack:///./app/javascript/ats/src/views/sessions/components/SignupForm.tsx","webpack:///./app/javascript/ats/src/views/sessions/Signup.tsx","webpack:///./app/javascript/ats/src/views/sessions/PasswordReset.tsx","webpack:///./app/javascript/ats/src/views/sessions/PasswordResetRequest.tsx","webpack:///./app/javascript/ats/src/context/WindowSizeContext.tsx","webpack:///./app/javascript/ats/src/lib/store/zustand/organizationStore.ts","webpack:///./app/javascript/ats/src/views/sessions/components/ProfileForm.tsx","webpack:///./app/javascript/ats/src/views/sessions/OnboardingProfile.tsx","webpack:///./app/javascript/ats/src/views/layouts/AppAuthRouter.tsx","webpack:///./app/javascript/ats/src/views/layouts/App.tsx","webpack:///./app/javascript/ats/src/lib/store/index.js","webpack:///./app/javascript/ats/src/index.js","webpack:///./node_modules/react-query/es/core/infiniteQueryObserver.js","webpack:///./node_modules/react-query/es/react/useInfiniteQuery.js","webpack:///./node_modules/d3-path/src/path.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/d3-format/src/identity.js","webpack:///./node_modules/d3-format/src/locale.js","webpack:///./node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/d3-format/src/formatTrim.js"],"names":["_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","Symbol","iterator","Object","from","_iterableToArray","o","minLen","n","prototype","toString","call","slice","constructor","name","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","length","i","arr2","updateQueue","makeQueue","raf","fn","schedule","writeQueue","write","onStartQueue","onStart","onFrameQueue","onFrame","onFinishQueue","onFinish","timeouts","setTimeout","handler","ms","time","now","timeout","cancel","findIndex","t","splice","__raf","count","findTimeout","sync","batchedUpdates","throttle","lastArgs","queuedFn","apply","throttled","_len","arguments","args","_key","nativeRaf","window","requestAnimationFrame","use","impl","performance","Date","console","error","frameLoop","advance","warn","ts","queue","add","loop","prevTs","eachSafely","flush","Math","min","next","Set","current","has","arg","size","values","each","forEach","value","e","clear","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","done","push","err","_iterableToArrayLimit","_nonIterableRest","noop","defineHidden","obj","key","defineProperty","writable","configurable","is","a","fun","str","num","und","isEqual","b","eachProp","ctx","hasOwnProperty","toArray","items","createStringInterpolator$1","to","flushCalls","colors$1","skipAnimation","willAdvance","freeze","__proto__","assign","globals","colors","createStringInterpolator","startQueue","currentFrame","prevFrame","priority","start","animation","flushStartQueue","startSafely","sort","prevIndex","indexOf","startUnsafely","includes","index","other","dt","nextFrame","idle","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","NUMBER","PERCENTAGE","_len2","parts","_key2","join","rgb","RegExp","rgba","hsl","hsla","hex3","hex4","hex6","hex8","hue2rgb","p","q","hslToRgb","h","s","l","r","g","round","parse255","_int","parseInt","parse360","parseFloat","parse1","parsePercentage","_int3","colorToRgba","input","color","match","int32Color","exec","concat","createInterpolator","range","output","extrapolate","config","outputRange","inputRange","extrapolateLeft","extrapolateRight","easing","findRange","inputMin","inputMax","outputMin","outputMax","map","result","Infinity","interpolate","_extends","target","source","this","$get","$observers","hasFluidValue","Boolean","getFluidValue","getFluidObservers","callFluidObservers","event","observers","observer","eventObserved","callFluidObserver","FluidValue","get","instance","Constructor","_classCallCheck","Error","setFluidGetter","setHidden","addFluidObserver","observerAdded","removeFluidObserver","observerRemoved","namedColorRegex","numberRegex","colorRegex","rgbaRegex","rgbaRound","_","p1","p2","p3","p4","keys","replace","keyframes","Number","interpolators","String","prefix","once","func","called","warnInterpolate","deprecateInterpolate","warnDirectCall","deprecateDirectCall","isAnimatedString","effect","emptyDeps","useForceUpdate","update","mounted","makeMountedRef","unmount","useMemoOne","getResult","inputs","initial","committed","prevCache","cache","prev","areInputsEqual","usePrev","prevRef","useLayoutEffect","document","createElement","_extendStatics","d","setPrototypeOf","__extends","__","create","_assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__values","m","__read","ar","__spread","global","getOwnPropertyDescriptor","f","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","module","exports","options","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","_typeof","matchesState","parentStateId","childStateId","delimiter","parentStateValue","toStateValue","childStateValue","isString","every","getEventType","type","toStatePath","stateId","split","stateValue","state","pathToStateValue","statePath","marker","mapValues","collection","iteratee","collectionKeys","mapFilterValues","predicate","e_1","_a","_b","_c","item","e_1_1","path","props","object","e_2","props_1","props_1_1","e_2_1","nestedPath","accessorProp","e_3","props_2","props_2_1","prop","e_3_1","toStatePaths","flatten","subStateValue","subPath","array","toArrayStrict","mapContext","mapper","context","_event","e_5","isFunction","data","subMapper","e_5_1","isBuiltInEvent","eventType","isPromiseLike","Promise","then","partition","e_6","truthy","falsy","items_1","items_1_1","e_6_1","updateHistoryStates","hist","states","subHist","updateHistoryValue","updateContext","assignActions","reduce","acc","assignAction","e_7","assignment","meta","action","partialUpdate","propAssignment","e_7_1","toGuard","condition","guardMap","isObservable","subscribe","message","symbolObservable","observable","isMachine","uniqueId","currentId","toEventObject","payload","toSCXMLEvent","scxmlEvent","$$type","eventObject","toTransitionConfigArray","configLike","transitionLike","normalizeTarget","reportUnhandledExceptionOnInvocation","originalError","currentError","id","originalStackTrace","stack","stackTrace","Button","children","link","onClick","onMouseDown","disabled","loading","styleType","dangerous","isTracked","trackingPayload","eventName","handleClick","preventDefault","stopPropagation","innerText","handleOnMouseDown","getStyles","dark","typeStyles","getTypeStyles","css","text","medium","rounded","sm","buttonShape","base","px","mq","theme","href","rel","Styled","Loader","data-testid","propTypes","PropTypes","any","isRequired","string","oneOfType","bool","form","defaultProps","loadingAnimation","allKeysToCamel","modifyValues","simpleKeysToCamel","isPlainObject","newObject","camelCase","newCollection","simpleCollectionToCamel","allKeysToSnake","simpleKeysToSnake","snakeCase","simpleCollectionToSnake","apiGet","async","requestPath","axios","headers","Accept","logger","apiPost","variables","skipKeysToSnake","apiMutate","method","apiPut","apiDelete","request","url","Rails","csrfToken","catch","errorObject","response","responseData","normalizedError","reject","clearAndUpper","toUpperCase","Icon","SelectedIcon","Feather","_interopRequireDefault","__esModule","addMethod","schemaType","_isSchema","lazy","ref","_mixed","mixed","_boolean","_string","_number","number","_date","date","_object","_array","_Reference","_Lazy","_ValidationError","ValidationError","_reach","reach","isSchema","_setLocale","setLocale","_boolean2","mathSign","isPercent","isNumber","isNumOrStr","idCounter","getPercentValue","percent","totalValue","defaultValue","validate","getAnyElementOfObject","hasDuplicate","ary","interpolateNumber","numberA","numberB","findEntryInArray","specifiedKey","specifiedValue","find","entry","50","100","200","300","400","500","600","700","800","900","spacing","auto","spacingFromSize","sizeString","charAt","substr","typeScale","xs","lg","xl","xxl","xxxl","breakpoints","md","breakpoint","w","ml","mr","mt","mb","mx","my","pl","pr","pt","pb","sizeKey","py","normal","semibold","bold","forefront","primary","secondary","h1","h2","h3","h4","h5","h6","OrderedMap","content","found","newKey","self","remove","addToStart","addToEnd","addBefore","place","without","prepend","subtract","append","findDiffStart","pos","childCount","childA","child","childB","sameMarkup","isText","j","inner","nodeSize","findDiffEnd","posA","posB","iA","iB","same","minSize","Fragment","prototypeAccessors","firstChild","lastChild","nodesBetween","nodeStart","parent","end","max","descendants","textBetween","blockSeparator","leafText","separated","node","isLeaf","isBlock","last","first","withText","cut","cutByIndex","empty","replaceChild","copy","eq","RangeError","maybeChild","otherPos","retIndex","curPos","toStringInner","toJSON","fromJSON","schema","nodeFromJSON","fromArray","joined","nodes","attrs","defineProperties","offset","compareDeep","p$1","Mark","ReplaceError","addToSet","set","placed","excludes","rank","removeFromSet","isInSet","json","marks","sameSet","setFrom","none","Slice","openStart","openEnd","prototypeAccessors$1","removeRange","ref$1","indexTo","offsetTo","insertInto","dist","insert","canReplace","$from","$to","depth","replaceOuter","$along","extra","resolveNoCache","prepareSliceForReplace","replaceThreeWay","parentOffset","replaceTwoWay","checkJoin","main","sub","compatibleContent","joinable","$before","$after","addNode","addRange","$start","$end","startIndex","endIndex","textOffset","nodeAfter","nodeBefore","validContent","insertAt","fragment","removeBetween","maxOpen","openIsolating","spec","isolating","n$1","ResolvedPos","prototypeAccessors$2","doc","resolveDepth","val","indexAfter","before","after","dOff","posAtIndex","tmp","inclusive","marksAcross","isInline","sharedDepth","blockRange","pred","inlineContent","NodeRange","sameParent","resolve","rem","resolveCached","resolveCache","cached","resolveCachePos","resolveCacheSize","prototypeAccessors$1$1","emptyAttrs","Node","prototypeAccessors$3","textContent","isTextblock","isAtom","startPos","hasMarkup","defaultAttrs","mark","includeParents","nodeAt","childAfter","childBefore","rangeHasMark","toDebugString","wrapMarks","contentMatchAt","contentMatch","matchFragment","replacement","one","two","validEnd","allowsMarks","canReplaceWith","matchType","canAppend","check","markFromJSON","nodeType","TextNode","JSON","stringify","ContentMatch","wrapCache","prototypeAccessors$4","defaultType","edgeCount","parse","nodeTypes","stream","TokenStream","expr","parseExpr","nfa","labeled","explore","nullFrom","out","term","known","states$1","cmp","dfa","connect","compile","edge","edges","exprs","loop$1","cur","i$1","next$1","i$2","next$2","work","dead","hasRequiredAttrs","checkForDeadEnds","frag","compatible","fillBefore","toEnd","seen","search","types","finished","tp","createAndFill","findWrapping","computed","computeWrapping","active","via","shift","reverse","scan","inline","tokens","pop","prototypeAccessors$1$2","parseExprSeq","eat","parseExprSubscript","typeName","type$1","groups","resolveName","parseExprAtom","parseExprRange","parseNum","defaults","attrName","attr","hasDefault","computeAttrs","built","given","initAttrs","Attribute","tok","SyntaxError","NodeType","group","markSet","prototypeAccessors$5","atom","createChecked","allowsMarkType","markType","allowedMarks","topType","topNode","prototypeAccessors$1$3","MarkType","excluded","contentExprCache","prop$1","contentExpr","markExpr","gatherMarks","prop$2","excl","bind","topNodeType","wrappings","ok","mark$1","text$1","DOMParser","rules","this$1","tags","styles","rule","tag","style","normalizeLists","some","dom","ParseContext","addAll","finish","parseSlice","matchTag","matches","namespace","namespaceURI","matchesContext","getAttrs","matchStyle","charCodeAt","schemaRules","parseDOM","rules$1","name$1","fromSchema","domParser","blockTags","address","article","aside","blockquote","canvas","dd","div","dl","fieldset","figcaption","figure","footer","header","hgroup","hr","li","noscript","ol","pre","section","table","tfoot","ul","ignoreTags","head","script","title","listTags","wsOptionsFor","preserveWhitespace","NodeContext","pendingMarks","solid","activeMarks","stashMarks","fill","wrap","popFromStashMark","applyPending","nextType","pending","markMayApply","parser","open","isOpen","topContext","topOptions","topMatch","findPositions","needsBlock","prototypeAccessors$6","top","currentPos","selector","msMatchesSelector","webkitMatchesSelector","mozMatchesSelector","v","returned","addDOM","addTextNode","getAttribute","readStyles","re","trim","parseStyles","addPendingMark","addElement","removePendingMark","nodeValue","domNodeBefore","previousSibling","nodeName","insertNode","findInText","findInside","matchAfter","ruleID","toLowerCase","prevItem","nextSibling","appendChild","normalizeList","ruleFromNode","ignore","skip","closeParent","oldNeedsBlock","leafFallback","addElementByRule","consuming","ownerDocument","createTextNode","continueAfter","enter","startIn","getContent","contentDOM","contentElement","querySelector","findAround","childNodes","findAtPoint","findPlace","route","cx","enterInner","block","textblockFromContext","closeExtra","preserveWS","topOpen","contains","compareDocumentPosition","textNode","option","useRoot","minDepth","part","$context","deflt","findSameMarkInSet","upto","level","lastIndexOf","stashMark","DOMSerializer","gatherToDOM","toDOM","serializeFragment","createDocumentFragment","keep","rendered","spanning","markDOM","serializeMark","serializeNode","renderSpec","onContent","serializeNodeAndMarks","structure","xmlNS","tagName","space","createElementNS","space$1","setAttributeNS","setAttribute","innerContent","domSerializer","nodesFromSchema","marksFromSchema","ToastContext","React","createContext","ToastProvider","toasts","setToasts","useState","refMap","WeakMap","cancelMap","useRef","useTheme","useEffect","prevToasts","limitToastCount","currentToast","timer","delay","clearTimeout","addToast","useCallback","toast","guid","removeToast","filter","transitions","useTransition","opacity","height","offsetHeight","leave","tension","friction","onRest","iconNode","icon","kind","Provider","GrowlList","Container","Message","linkTo","externalLink","useToastContext","useContext","animated","modeStyles","ModalContext","ModalProvider","modal","setModal","animationCompleteCallback","setAnimationCompleteCallback","isVisible","setIsVisible","openModal","removeModal","hasModal","dismissModalWithAnimation","useModalContext","classesById","Selection","$anchor","$head","ranges","SelectionRange","anchor","tr","lastNode","lastParent","mapFrom","steps","mapping","replaceRange","selectionToInsertionEnd","replaceWith","deleteRange","replaceRangeWith","findFrom","$pos","dir","textOnly","TextSelection","findSelectionIn","near","bias","AllSelection","atStart","atEnd","cls","jsonID","selectionClass","getBookmark","between","visible","$cursor","ensureMarks","TextBookmark","dPos","NodeSelection","mapResult","deleted","NodeBookmark","isSelectable","selectable","sel","selection","setSelection","AllBookmark","startLen","step","maps","_from","_to","_newFrom","newTo","Transaction","Transform","curSelection","curSelectionFor","storedMarks","updated","selectionSet","storedMarksSet","isGeneric","scrolledIntoView","setStoredMarks","addStoredMark","removeStoredMark","addStep","setTime","replaceSelection","replaceSelectionWith","inheritMarks","deleteSelection","insertText","setMeta","getMeta","scrollIntoView","FieldDesc","desc","init","baseFields","_marks","_old","Configuration","plugins","fields","pluginsByKey","plugin","EditorState","applyTransaction","filterTransaction","rootTr","transactions","trs","newState","applyInner","haveNew","appendTransaction","oldState","newInstance","field","applyListeners","$config","reconfigure","pluginFields","addApplyListener","removeApplyListener","bindProps","Function","Plugin","createKey","getState","PluginKey","it","globalThis","initEvent","getActionFunction","actionType","actionFunctionMap","toActionObject","actionObject","enumerable","toActionObjects","subAction","toActivityDefinition","raise","send","Internal","resolveRaise","resolveSend","delaysMap","resolvedDelay","resolvedEvent","configDelay","resolvedTarget","sendParent","Parent","sendUpdate","respond","origin","defaultLogExpr","log","label","resolveLog","sendId","activity","activityDef","Start","stop","Stop","delayRef","idSuffix","After","DoneState","doneInvoke","DoneInvoke","ErrorPlatform","forwardTo","escalate","errorData","handleChange","selectedOption","actionObj","scope","setState","errors","onChange","handleInputChange","onInputChange","FormSelect","placeholder","description","isDisabled","isClearable","isCreatable","isMulti","requiredLabel","rest","errorText","errorTextViaYupOrRailsOrJoi","findSelectOptionByValue","selectRef","setSelectRef","Creatable","hasError","classNamePrefix","Select","onKeyDown","keyCode","blur","className","FormInput","inputRef","addEventListener","removeEventListener","useHotkeys","inputId","for","UI","hasPretext","pretext","Pretext","inputType","currentTarget","onBlur","autoFocus","isObject","CurrentSessionContext","CurrentSessionProvider","currentUser","currentOrganization","currentOrganizationUser","useCurrentSession","LoadingIndicator","subtle","Subtle","Label","Bar","Indicator","subtleKeyframe","fails","getOptionLabel","yesOrNoOptions","enabledOrDisabledOptions","questionKindOptions","questionKindNames","jobSettingOptions","note","questionVisibilityOptions","jobSettingNames","careerNavigationOptions","jobBoardLogoVisibilityOptions","socialShareImageTypeOptions","jobOverrideSocialShareImageTypeOptions","billboardMediaTypeOptions","userRoleOptions","roleAbilities","userRoleNames","jobKindOptions","organizationPlanOptions","adminOrganizationFlipperGroupOptions","adminBooleanOptions","adminFraudRatingOptions","countryOptions","countriesData","country","code","unitedStatesOptions","usStatesData","organizationRemotenessOptions","jobRemotenessOptions","remoteRestrictionOverlapHoursOptions","wwrCategoryOptions","wwrUpgradeCosts","good","price","total","better","best","webflowJobFieldMappingOptions","isApiV2","reviewRatingOptions","salaryUnitOptions","salaryCurrencyCodeOptions","currencyCodes","localeCodeOptions","shared","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","FormContainer","Component","isEmpty","handleErrorsArray","handleErrorsObject","keyRegex","upperFirst","lowerCase","customQuestionsErrors","prettyErrorsArray","render","buttons","onSubmit","formErrors","ErrorsContainer","ErrorsLabel","ErrorsList","Buttons","toInteger","argument","NAME","NATIVE_ARRAY_BUFFER","DESCRIPTORS","classof","getPrototypeOf","wellKnownSymbol","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","isPrototypeOf","TO_STRING_TAG","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","isTypedArray","aTypedArray","aTypedArrayConstructor","C","ARRAY","TypedArrayConstructor","exportTypedArrayMethod","KEY","property","exportTypedArrayStaticMethod","isView","klass","fallbackGlobalObject","getGlobalObject","uuid4","crypto","msCrypto","getRandomValues","pad","c","random","parseUrl","query","host","protocol","relative","getEventDescription","exception","event_id","consoleSandbox","callback","originalConsole","wrappedLevels","__sentry_original__","addExceptionTypeValue","addExceptionMechanism","mechanism","_oO","getLocationHref","location","oO","INITIAL_TIME","prevNow","performanceFallback","timeOrigin","crossPlatformPerformance","navigator","product","INITIAL_OFFSET_1","getReactNativePerformanceWrapper","timing","navigationStart","timestampWithMs","parseRetryAfterHeader","headerDelay","isNaN","headerDate","PREFIX","Logger","_enabled","disable","enable","__SENTRY__","Helmet","_createClass","protoProps","staticProps","_react2","_propTypes2","_reactSideEffect2","_deepEqual2","_HelmetUtils","_HelmetConstants","_objectWithoutProperties","_possibleConstructorReturn","ReferenceError","_class","_temp","HelmetSideEffects","reducePropsToState","handleClientStateChange","mapStateOnServer","HelmetExport","_React$Component","HelmetWrapper","subClass","superClass","_inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","nestedChildren","TAG_NAMES","SCRIPT","NOSCRIPT","innerHTML","STYLE","cssText","flattenArrayTypeChildren","_ref","_extends2","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_extends3","_extends4","newProps","TITLE","titleAttributes","BODY","bodyAttributes","HTML","htmlAttributes","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_extends5","warnOnInvalidChildren","mapChildrenToProps","_this2","Children","_child$props","childProps","convertReactPropstoHtmlAttributes","LINK","META","_props","canUseDOM","arrayOf","defaultTitle","defer","encodeSpecialCharacters","onChangeClientState","titleTemplate","peek","rewind","mappedState","baseTag","linkTags","metaTags","noscriptTags","scriptTags","styleTags","renderStatic","isError","wat","isInstanceOf","isErrorEvent","isDOMError","isDOMException","isPrimitive","isEvent","Event","isElement","Element","isRegExp","isThenable","isSyntheticEvent","CenterModal","headerTitleText","onCancel","hasUnsavedChanges","checkUnsavedChanges","transform","clamp","onDestroyed","whenClicked","Content","Title","FormSection","intro","Intro","as","weight","element","poly","primaryText","secondaryText","FormLabel","htmlFor","RequiredLabel","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","O","P","Attributes","TRACEPARENT_REGEXP","hasTracingEnabled","extractTraceparentData","traceparent","parentSampled","traceId","parentSpanId","getActiveTransaction","hub","getScope","getTransaction","msToSec","secToMs","Raise","Send","Cancel","nullEvent","NullEvent","Assign","Log","Init","invoke","Invoke","errorPlatform","ErrorExecution","ErrorCustom","Update","pure","Pure","useIsomorphicLayoutEffect","checkStyles","assignRef","forwardRefWithAs","forwardRef","getOwnerDocument","getOwnerWindow","defaultView","makeId","useForkedRef","_len4","refs","_key4","wrapEvent","theirHandler","ourHandler","defaultPrevented","serverHandoffComplete","genId","_ref$type","mountNode","portalNode","forceUpdate","body","removeChild","rafId","border","clip","margin","overflow","padding","position","width","whiteSpace","wordWrap","observedNodes","Map","run","changedStates","newRect","getBoundingClientRect","rect","callbacks","cb","observe","wasEmpty","hasRectChanged","unobserve","cancelAnimationFrame","useRect","nodeRef","_useState","setElement","initialRectIsSet","initialRefIsSet","_useState2","setRect","onChangeRef","elem","cleanup","_on","_on2","_on3","_on4","_on5","_states","_objectWithoutPropertiesLoose","sourceKeys","restTimeout","leavingVisibleTimer","IDLE","FOCUSED","VISIBLE","LEAVING_VISIBLE","DISMISSED","BLUR","FOCUS","MOUSE_DOWN","MOUSE_ENTER","MOUSE_LEAVE","MOUSE_MOVE","REST","SELECT_WITH_KEYBOARD","TIME_COMPLETE","chart","clearContextId","on","transition","subscriptions","useTooltip","idProp","onMouseEnter","onMouseMove","onMouseLeave","onFocus","forwardedRef","DEBUG_STYLE","idFromProps","initialId","setId","ownRef","triggerRect","listener","__REACH_DISABLE_TOOLTIPS","_ref3","DEPRECATED_ariaLabel","ariaLabel","_ref4","realAriaLabel","_ref4$as","Comp","_ref4$position","hasAriaLabel","tooltipRect","role","visibility","_getDocumentDimension","win","documentElement","clientWidth","innerWidth","clientHeight","innerHeight","getDocumentDimensions","windowWidth","windowHeight","collisions","right","left","bottom","directionUp","pageXOffset","pageYOffset","stateDef","nextState","nextDef","AnimatedTooltipPopup","TooltipPopup","centered","maxLeft","scrollX","scrollY","ReachTooltip","trigger","tooltip","isDarkMode","useColorSchemeContext","spring","useSpring","cloneElement","aria-label","background","boxShadow","borderRadius","fontSize","maxWidth","lineHeight","zIndex","pointerEvents","transformOrigin","Tooltip","_get","receiver","Reflect","_getPrototypeOf","_superPropBase","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","construct","Proxy","valueOf","_isNativeReflectConstruct","Super","NewTarget","_assertThisInitialized","_defineProperties","$node","getAnimated","owner","setAnimated","getPayload","Animated","AnimatedValue","_Animated","_super","_value","_this","elapsedTime","lastPosition","lastVelocity","v0","durationProgress","AnimatedString","_AnimatedValue","_super2","_toString","goal","getValue","TreeContext","dependencies","AnimatedObject","_Animated2","_super3","_this3","setValue","_makePayload","reset","_addToPayload","_this4","AnimatedArray","_AnimatedObject","_super4","makeAnimated","getAnimatedType","parentNode","withAnimated","hasInstance","isReactComponent","givenProps","givenRef","instanceRef","updateRef","_getAnimatedState2","createAnimatedStyle","getAnimatedState","deps","applyAnimatedValues","PropsObserver","observerRef","lastObserver","dep","usedProps","getComponentProps","cacheKey","createHost","components","_ref$applyAnimatedVal","_applyAnimatedValues","_ref$createAnimatedSt","_createAnimatedStyle","_ref$getComponentProp","_getComponentProps","hostConfig","displayName","getDisplayName","ActionTypes","SpecialTargets","Box","requireObjectCoercible","identity","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","newArgs","curry","begin","compose","_len3","_key3","fns","firstFn","tailsFn","res","memoize","lastResult","rangeStep","lt","toNumber","getDigitCount","floor","abs","newA","uninterpolateNumber","x","diff","uninterpolateTruncation","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","lte","digitCount","digitCountValue","pow","stepRatio","stepRatioScale","formatStep","ceil","mul","getTickOfSingleValue","tickCount","middle","isint","absVal","middleIndex","calculateStep","isFinite","tickMin","tickMax","mod","belowCount","upCount","scaleCount","getNiceTickValues","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","getTickValuesFixedDomain","_ref5","_ref6","_getValidInterval3","_getValidInterval4","_ref7","_ref8","_getValidInterval5","_getValidInterval6","series","s0","s1","order","_createForOfIteratorHelper","allowArrayLike","F","normalCompletion","didErr","_e2","stackValue","stackSeries","ownKeys","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","getValueByDataKey","dataKey","getDomainOfDataByKey","filterNil","flattenData","domain","coordinate","_ticks$length","ticks","unsortedTicks","axis","axisType","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","getMainColorOfGraphicItem","_item$props","stroke","legendData","formattedGraphicalItems","legendWidth","legendContent","legendItem","Legend","sectors","iconType","legendType","_item$props2","inactive","hide","getWithHeight","globalSize","barSize","_ref5$stackGroups","stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","cateAxisId","barItems","selfSize","cateId","stackList","barGap","barCategoryGap","bandSize","_ref6$sizeList","sizeList","maxBarSize","realBarGap","useFull","fullBarSize","sum","newRes","_offset","originalSize","legendBox","legendProps","newOffset","box","align","verticalAlign","layout","errorBars","errorBarChild","direction","entryValue","mainValue","errorDomain","prevErrorArr","k","errorValue","lowerValue","upperValue","domains","getDomainOfItemsWithSameAxis","isCategoricalAxis","getCoordinatesOfGrid","hasMin","hasMax","isGrid","isAll","scale","duplicateDomain","bandwidth","niceTicks","scaleContent","isCategorical","categoricalDomain","defaultHandler","parentHandler","childHandler","customizedHandler","arg1","arg2","arg3","arg4","chartType","hasBar","realScaleType","EPS","checkDomainOfScale","findPositionOfBar","barPosition","STACK_OFFSET_MAP","sign","positive","negative","expand","y","silhouette","wiggle","s2","si","sij0","s3","sk","stackItems","offsetType","dataKeys","constant","oz","_step","sz","_iterator","_items","numericAxisId","reverseStackOrder","_item$props3","stackId","axisId","parentGroup","hasStack","childGroup","stackedData","opts","originalDomain","scaleType","tickValues","_domain","getBaseValueOfBar","_ref9","numericAxis","itemIndex","getDomainOfStackGroups","MIN_VALUE_REG","MAX_VALUE_REG","specifiedDomain","dataDomain","allowDataOverflow","isBar","bandWidth","orderedTicks","calculatedDomain","axisChild","graphicalItem","_graphicalItem$props","unit","formatter","tooltipType","fieldError","groupError","DropdownMenu","hpos","vpos","testid","testidPrefix","button","dropdownIsVisible","setDropdownIsVisible","dataTestIdPrefix","useOnClickOutside","handleClickOutside","Toggle","aria-haspopup","aria-expanded","Dropdown","DropdownContent","SVGContainerPropKeys","SVGElementPropKeys","EventKeys","filterProps","includeEvents","isSvg","inputProps","adaptEventHandlers","newHandler","adaptEventsOfChild","originalHandler","getEventHandlerOfChild","baseGetTag","removeHttpPrefix","removeKnownUrlPrefix","removeFromArray","removeFromArrayAtIndex","moveFromIndexToIndex","fromIndex","toIndex","insertIntoArrayAtIndex","convertArrayToSelectOptions","formatPhoneNumber","objectHasEmptyValues","IndexedObject","toObject","toLength","arraySpeciesCreate","createMethod","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","that","specificCreate","boundFunction","SpanStatus","fromHttpCode","httpStatus","Ok","Unauthenticated","PermissionDenied","NotFound","AlreadyExists","FailedPrecondition","ResourceExhausted","InvalidArgument","Unimplemented","Unavailable","DeadlineExceeded","InternalError","UnknownError","NOT_EMPTY","channelMessageTemplateSchema","required","websiteUrl","remoteness","ensure","firstName","lastName","email","password","bulkMessageSchema","jobApplications","hiringStageSchema","hiringStageName","validateSchema","labels","abortEarly","validation","isValid","params","validator","schemaAndLabels","validateNewJob","validateChannelMessageTemplate","validateCommentTemplate","validateBulkMessage","validateHiringStage","validateJobCategory","categoryName","validateWwrCategory","wwrCategory","validateAccountJobBoardNavigation","slug","validateLogin","validateRegistration","validateNewOrganization","validateEmail","validateCreatedEmailSelection","validateInviteEmail","validatePassword","passwordConfirmation","validateComment","validateNewFeatureFlag","validateSupportMessage","subject","validateOnboardingProfile","validateSalaryAmounts","salaryMin","when","typeError","otherwise","nullable","salaryMax","validateTakeoverOrganization","expectedName","organizationName","oneOf","variants","italic","center","justify","Text","PathNavLink","isActive","pathname","NavItem","usePathMatching","Wrapper","StyledPathNavLinkComponent","StyledNavLinkComponent","chevron","StyledLabel","linkStyles","radii","loudText","subtleHover","loudHover","shouldForwardProp","isPropValid","NavLink","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","nativeGetOwnPropertyDescriptor","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","callOnHub","captureException","captureContext","syntheticException","originalException","withScope","createJob","job","updateJob","publishJob","cloneJob","forceWebflowSyncForJob","createBoardWwrListing","jobId","boardWwrListing","updateBoardWwrListing","useCreateJob","queryClient","useQueryClient","useMutation","onSuccess","mutationVariables","invalidateQueries","status","useUpdateJob","useUpdateJobOptimistic","onMutate","newJob","cancelQueries","previousJob","getQueryData","setQueryData","onError","rollback","onSettled","usePublishJob","useCloneJob","refetchQueries","useForceWebflowSyncForJob","useCreateBoardWwrListing","useUpdateBoardWwrListing","useJob","refetchOnWindowFocus","useQuery","getJob","retry","failureCount","useJobs","enabled","statusParam","getJobs","useAllJobs","getAllJobs","original","wrapped","_Oo","urlEncode","encodeURIComponent","getWalkSource","event_1","CustomEvent","detail","jsonSize","encodeURI","utf8Length","normalizeToSize","maxSize","serialized","normalize","normalizeValue","_events","walk","memo","normalized","serializeValue","innerKey","unmemoize","extractExceptionKeysForMessage","maxLength","includedKeys","dropUndefinedKeys","rv","substring","startsWith","searchValue","pluralize","word","capitalizeSingleWord","nextLogical","list","currentItem","currentIndex","hiringStagesForJob","hiringStages","inboxStage","stage","hiredStage","archivedStage","hiringStagesForJobOptions","hiringStage","activeHiringStageAutomation","targetHiringStageId","getActiveHiringStageAutomation","hiringStageAutomation","arrayToObject","prettyBillingPrice","calculatedPrice","billingScheme","tiers","unitAmount","interval","recurring","toLocaleString","minimumFractionDigits","maximumFractionDigits","isInteger","toFixed","definePropertyModule","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","store","wmget","wmhas","wmset","metadata","STATE","getterFor","IS_PRODUCTION","hasOwn","classNames","classes","argType","wrappedWellKnownSymbolModule","thrower","METHOD_NAME","ACCESSORS","argument0","argument1","EmptyState","borderless","roomy","IconWrapper","factor16","recoverIndex","MapResult","recover","StepMap","inverted","recoverOffset","assoc","_map","oldIndex","newIndex","oldSize","newSize","touches","oldStart","newStart","invert","Mapping","mirror","TransformError","appendMap","mirrors","setMirror","appendMapping","startSize","mirr","getMirror","appendMappingInverted","totalSize","inverse","corr","docs","docChanged","mustOverride","maybeStep","failed","getMap","stepsByID","Step","_doc","_mapping","merge","_other","stepType","stepClass","StepResult","fail","fromReplace","ReplaceStep","contentBetween","slice$1","ReplaceAroundStep","gapFrom","gapTo","gap","inserted","canCut","liftTarget","innerRange","around","outer","findWrappingOutside","inside","innerMatch","findWrappingInside","withAttrs","canSplit","typesAfter","innerType","index$1","baseType","canJoin","joinPoint","dropPoint","pass","insertPos","fits","wrapping","mapFragment","mapped","lift","gapStart","gapEnd","splitting","d$1","splitting$1","wrappers","setBlockType","canChangeType","clearIncompatible","startM","endM","setNodeMarkup","newNode","typeAfter","AddMarkStep","oldSlice","RemoveMarkStep","fitsTrivially","addMark","removed","added","removing","adding","newSet","removeMark","matched","toRemove","found$1","parentType","delSteps","allowed","Fitter","fit","replaceStep","unplaced","frontier","dropFromFragment","addToFragment","contentAt","closeNodeStart","contentAfterFits","invalidMarks","closeFragment","oldOpen","newOpen","coveredDepths","findFittable","placeNodes","openMore","dropNode","moveInline","mustMoveInline","placedSize","close","sliceDepth","frontierDepth","inject","openAtEnd","closeFrontierNode","openFrontierNode","taken","openEndCount","findCloseLevel","dropInner","match$1","move","targetDepths","preferredTarget","unshift","defining","preferredTargetIndex","leftNodes","preferredDepth","openDepth","targetDepth","startSteps","point","insertPoint","covered","isLeafNode","stateNode","getChildren","getAllStateNodes","stateNodes","getConfiguration","prevStateNodes","e_4","prevAdjList","getAdjList","configuration","configuration_1","configuration_1_1","adjList","configuration_2","configuration_2_1","_f","sn","initialStateNodes","configuration_3","configuration_3_1","e_4_1","getValueFromAdj","baseNode","childStateNodes","childStateNode","csn","configuration_4","configuration_4_1","rootNode","iterable","member","nextEvents","ownEvents","isInFinalState","ColorSchemeContext","usePolymerThemeState","createPersistedState","ColorSchemeProvider","customThemeState","customTheme","setCustomTheme","isSystemDarkMode","setIsSystemDarkMode","matchMedia","handleModeChange","toggleMode","quot","attribute","S","_e3","strictUriEncode","decodeComponent","encode","strict","decode","keysSorter","extract","queryStart","arrayFormat","accumulator","parserForArrayFormat","ret","_param$replace$split2","encoderForArrayFormat","_step2","_iterator2","value2","getMe","getMyInvites","resendEmailConfirmation","rejectInvite","inviteId","acceptInvite","inviteToken","updateMe","updateSettings","settings","chooseOrganizationUser","organization_user_id","deleteAvatar","deleteMe","useGetMe","URLSearchParams","queryParams","APP_ATS_ROOT_URL","useMyInvites","useResendEmailConfirmation","useRejectInvite","useAcceptInvite","useUpdateMe","useUpdateSettings","useUploadAvatar","useDeleteAvatar","useChooseOrganizationUser","useDeleteMe","ConfirmationModal","subcopy","confirmText","cancelText","onConfirm","isDestructiveConfirm","Instructions","ButtonContainer","deafultProps","isDesctructiveConfirm","aFunction","variable","updateOrganization","organization","createOrganization","getTimestamp","transferOrganizationOwnership","organizationUserId","useUpdateOrganization","useCreateOrganization","useOrganization","organizationId","getOrganization","useOrganizationApiKeys","getOrganizationApiKeys","useTransferOrganizationOwnership","toDate","argStr","getTime","NaN","dirtyDate","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","dirtyOptions","defaultWidth","formats","formatLong","full","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","dirtyString","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","pattern","findKey","valueCallback","formatDistance","token","addSuffix","comparison","formatRelative","_baseDate","_options","localize","ordinalNumber","dirtyNumber","_dirtyOptions","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","weekStartsOn","firstWeekContainsDate","addMilliseconds","dirtyAmount","timestamp","amount","subMilliseconds","addLeadingZeros","targetLength","signedYear","getUTCFullYear","year","M","getUTCMonth","getUTCDate","dayPeriodEnumValue","getUTCHours","H","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","MILLISECONDS_IN_DAY","startOfUTCISOWeek","getUTCDay","setUTCDate","setUTCHours","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","locale","localeWeekStartsOn","defaultWeekStartsOn","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","dayPeriodEnum","formatTimezoneShort","dirtyDelimiter","absOffset","hours","minutes","formatTimezoneWithOptionalMinutes","formatTimezone","G","lightFormatters","Y","signedWeekYear","weekYear","R","u","Q","L","week","I","isoWeek","D","dayOfYear","setUTCMonth","startOfYearTimestamp","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","B","K","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","z","originalDate","T","dateLongFormatter","timeLongFormatter","dateTimeFormat","datePattern","timePattern","getTimezoneOffsetInMilliseconds","baseTimezoneOffset","setSeconds","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","format","dirtyFormatStr","formatStr","utcDate","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","differenceInCalendarMonths","yearDiff","getFullYear","monthDiff","getMonth","differenceInMonths","setMonth","isLastMonthNotFull","differenceInMilliseconds","differenceInSeconds","dirtyObject","cloneObject","MINUTES_IN_DAY","MINUTES_IN_MONTH","dirtyBaseDate","localizeOptions","months","seconds","offsetInSeconds","includeSeconds","days","nearestMonth","monthsSinceStartOfYear","years","formatDistanceToNow","setUTCDay","dirtyDay","currentDay","remainder","dayIndex","numericPatterns","timezonePatterns","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","flags","incompatibleTokens","isTwoDigitYear","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","dirtyWeek","setUTCWeek","dirtyISOWeek","setUTCISOWeek","isLeapYear","wholeWeekDays","setUTCISODay","isPM","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","timestampIsSet","_token","notWhitespaceRegExp","dateToSystemTimezone","convertedDate","setFullYear","setHours","timeAgoInWordsShort","datetime","timeAgoInWordsLong","prettyDate","prettyDateAndTime","prettyDateSimple","prettyTime","distanceInWords","isDeadlineDateAfterCurrent","dateString","dirtyDateToCompare","dateToCompare","isAfter","dirtyDateString","dirtyFormatString","dirtyBackupDate","formatString","subFnOptions","setters","usedTokens","incompatibleToken","usedToken","fullToken","uniquePrioritySetters","setter","setterArray","sourceSymbolKeys","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","lastChildren","findAllByType","childType","findChildByType","validateWidthHeight","el","_el$props","SVG_TAGS","isSvgElement","isChildrenEqual","nextChildren","prevChildren","isSingleChildEqual","nextChild","prevChild","prevProps","renderByOrder","renderMap","elements","record","results","getReactEventByType","parseChildIndex","initRange","initInterpolator","interpolator","PREFERRED_STRING","CORRECT_PROTOTYPE_GETTER","IE_PROTO","stateValuesEqual","aKeys","bKeys","isState","bindActionToState","State","actions","activities","events","_sessionid","historyValue","history","toStrings","inert","valueKeys","globalScope","ONE","MAX_DIGITS","Decimal","precision","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_SAFE_INTEGER","MAX_E","carry","xd","yd","Ctor","checkInt32","digitsToString","ws","indexOfLastWord","getZeroString","absoluteValue","comparedTo","xdL","ydL","decimalPlaces","dp","dividedBy","divide","dividedToIntegerBy","idiv","equals","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isNegative","isneg","isPositive","ispos","isZero","lessThan","lessThanOrEqualTo","logarithm","wpr","ln","minus","modulo","times","naturalExponential","exp","naturalLogarithm","negated","neg","plus","sd","squareRoot","sqrt","toExponential","rL","toDecimalPlaces","todp","rm","toint","toPower","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","multiplyInteger","temp","compare","aL","bL","prod","prodL","qd","remL","rem0","xi","xL","yd0","yL","yz","denominator","getLn10","zs","c0","numerator","x2","parseDecimal","rd","doRound","xdi","xe","xLTy","isExp","ps","clone","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","TAG","freeGlobal","freeSelf","root","factory","_typeof2","modules","installedModules","__webpack_require__","moduleId","getter","Buffer","process","Crypto","Path","Util","Escape","internals","lookup","newObj","cloneDeep","isBuffer","proto","isImmutable","getOwnPropertyNames","isNullOverride","isMergeArrays","assert","applyToDefaults","cloneWithShallow","storage","restore","reachSet","segment","applyToDefaultsWithShallow","deepEqual","_i2","_i3","unique","identifier","mapToObject","intersect","array1","array2","justFirst","common","hash","contain","valuePairs","compareFlags","deep","hasOnly","hasPart","only","misses","_i4","escapeRegex","regex","$0","$1","_i5","_i6","_i7","chain","separator","functions","reachTemplate","template","formatStack","trace","getFileName","getLineNumber","getColumnNumber","getFunctionName","isConstructor","formatTrace","display","row","callStack","v8","prepareStackTrace","capture","captureStackTrace","displayStack","abortThrow","abort","hideStack","env","NODE_ENV","exit","msgs","Bench","elapsed","hrtime","base64urlEncode","encoding","base64urlDecode","buf","escapeHeaderAttribute","escapeHtml","escapeJavaScript","escapeJson","_hoekOnce","isSafeInteger","inherits","_i8","sourcePath","uniqueFilename","extension","pid","randomBytes","shallow","wait","Hoek","validationOptions","isContext","contextPrefix","isJoi","isRef","Ref","Errors","Alternatives","Cast","convert","allowUnknown","skipFunctions","stripUnknown","language","presence","strip","noDefaults","Any","_type","_settings","_valids","_invalids","_tests","_refs","_description","_unit","_notes","_tags","_examples","_meta","_inner","createError","createOverrideError","checkOptions","details","_currentJoi","concatSettings","_baseType","inners","tmpObj","keysToRestore","_j","sourceKey","_test","isStrict","raw","isRaw","allow","valid","allowOnly","invalid","optional","forbidden","applyFunctionToChildren","extraChildren","alternativeOptions","notes","example","_validate","_prepareEmptyValue","reference","originalValue","finalValue","_try","change","reason","_coerce","coerced","insensitive","_base","valids","stripUndefined","Err","_validateWithOptions","describe","flag","examples","invalids","hasRef","_getLabel","def","equal","disallow","not","exist","sKeys","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","ArrayBuffer","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","isEncoding","actual","fromString","checked","buffer","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","src","dst","Joi","alternatives","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","nextTick","browser","argv","version","versions","addListener","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","Language","annotations","wrapArrays","partial","localized","messages","childrenString","hasKey","skipKey","localizedKey","isSecure","override","processErrors","localErrors","itemMessage","_override","annotate","safeStringify","spaces","serializer","cycleReplacer","thisPos","annotated","errorKeys","errorKey","missingKeys","missing","missingKey","stripColorCodes","redFgEscape","redBgEscape","endColor","seg","refAnnotations","replacers","$2","eval","_defaults","Lazy","binary","applyDefaults","alt","attempt","joi","extend","extensions","extensionsSchema","_loop","extensionSchema","ctor","_ctor","coerce","baseRet","_loop2","ruleArgs","validateArgs","rArgs","setup","newSchema","arity","or","_set","_Any","il","schemas","cast","schemaCondition","isoString","invalidDate","isIsoDate","isoDate","multiplier","iso","_isIsoDate","isNow","compareTo","Topo","renames","patterns","safeParse","renamed","rename","targetKeys","matchedTargetKeys","allUndefined","ignoreUndefined","multiple","alias","unprocessed","stripProps","localState","unprocessedKeys","_localState","_item","_j2","_result","objects","unprocessedKey","peers","topo","_child","castErr","unknown","_pattern","ignoreCase","_dependency","xor","_key5","and","_key6","nand","_len5","_key7","requiredKeys","_len6","_key8","optionalKeys","_len7","_key9","forbiddenKeys","_len8","_key10","renameDefaults","groupedChildren","groupChildren","_i9","_i10","typeData","parseErr","grouped","keysToLabels","findLabel","matchingChild","peer","mainWithLabel","peerWithLabel","present","peersWithLabels","presentWithLabels","missingWithLabels","rfc3986","ipv4Cidr","digitOnly","ipv6Cidr","unreserved","alpha","subDelims","pctEncoded","pchar","pcharOnly","decOctect","IPv4address","h16","hexDigitOnly","ls32","IPv6SixHex","IPv6FiveHex","IPv6FourHex","IPv6ThreeHex","IPv6TwoHex","IPv6OneHex","IPv6NoneHex","IPv6address","IPvFuture","scheme","alphaOnly","authority","segmentNz","pathAbEmpty","pathAbsolute","hierPart","relativeRef","generate","escaped","charCode","isSafe","escapeJavaScriptChar","escapeHtmlChar","padLeft","hexValue","namedEscape","namedHtml","safeCharCodes","safe","Punycode","defaultThreshold","maxIPv6Groups","categories","dnsWarn","rfc5321","cfws","deprecated","rfc5322","diagnoses","rfc5321TLD","rfc5321TLDNumeric","rfc5321QuotedString","rfc5321AddressLiteral","cfwsComment","cfwsFWS","deprecatedLocalPart","deprecatedFWS","deprecatedQTEXT","deprecatedQP","deprecatedComment","deprecatedCTEXT","deprecatedIPv6","deprecatedCFWSNearAt","rfc5322Domain","rfc5322TooLong","rfc5322LocalTooLong","rfc5322DomainTooLong","rfc5322LabelTooLong","rfc5322DomainLiteral","rfc5322DomainLiteralOBSDText","rfc5322IPv6GroupCount","rfc5322IPv62x2xColon","rfc5322IPv6BadCharacter","rfc5322IPv6MaxGroups","rfc5322IPv6ColonStart","rfc5322IPv6ColonEnd","errExpectingDTEXT","errNoLocalPart","errNoDomain","errConsecutiveDots","errATEXTAfterCFWS","errATEXTAfterQS","errATEXTAfterDomainLiteral","errExpectingQPair","errExpectingATEXT","errExpectingQTEXT","errExpectingCTEXT","errBackslashEnd","errDotStart","errDotEnd","errDomainHyphenStart","errDomainHyphenEnd","errUnclosedQuotedString","errUnclosedComment","errUnclosedDomainLiteral","errFWSCRLFx2","errFWSCRLFEnd","errCRNoLF","errUnknownTLD","errDomainTooShort","localpart","literal","contextComment","contextFWS","contextQuotedString","contextQuotedPair","specials","codePointAt","c0Controls","c1Controls","ipV4","ipV6","nulNormalize","emailPieces","checkIpV6","validDomain","tldAtom","tldBlacklist","tldWhitelist","diagnose","threshold","errorLevel","minDomainAtoms","maxResult","updateResult","prevToken","parseData","local","atomData","locals","elementCount","elementLength","crlfCount","hyphenFlag","assertEnd","emailLength","fromCodePoint","punycodeLength","addressLiteral","matchesIP","maxGroups","escapeToken","_punycodeLength","finishResult","diag","includesSingle","includesOne","includesOneSingle","includesRequiredUnknowns","includesRequiredKnowns","includesRequiredBoth","excludesSingle","ordered","orderedLength","sparse","javascript","unix","minArity","maxArity","less","greater","integer","alphanum","uri","uriRelativeOnly","uriCustomScheme","hex","hostname","lowercase","uppercase","creditCard","ip","ipVersion","arrays","ordereds","inclusions","exclusions","requireds","wasArray","single","_checkItems","previousErrors","errored","fastSplice","requiredChecks","jl","inclusion","previousCheck","_fillMissedErrors","_fillOrderedErrors","orderedItems","comparator","custom","records","entries","dupePos","dupeValue","_context","knownMisses","unknownMisses","requiredOrdereds","converted","Binary","_encoding","truthySet","falsySet","ObjectType","Func","_ObjectType$construct","precisionRx","divisor","places","Net","Isemail","JoiDate","Uri","Ip","uriRegex","createUriRegex","ipRegex","createIpRegex","guidBrackets","guidVersions","uuidv1","uuidv2","uuidv3","uuidv4","uuidv5","cidrPresences","normalizationForms","toLocaleUpperCase","toLocaleLowerCase","replacements","_char","patternOptions","patternObject","errorCode","isEmailOptions","checkDNS","ipOptions","cidr","uriOptions","customScheme","allowRelative","relativeOnly","toISOString","guidOptions","versionNumbers","versionNumber","guidRegex","base64Options","paddingRequired","isIPv6","uuid","RFC3986","cidrs","ipv4","ipv6","ipvfuture","optionalScheme","withScheme","seq","_sort","others","mergeSort","graph","graphAfters","graphNodes","expandedGroups","graphNodeItems","_group","afterNodes","_group2","_node","ancestors","_node2","_j3","visited","sorted","_j4","shouldSeeCount","seenCount","_k","seqIndex","sortedNodes","sortedItem","b64","placeHoldersCount","placeHolders","Arr","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","normalizeArray","allowAboveRoot","up","splitPathRe","splitPath","filename","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","paths","fromParts","toParts","samePartsLength","outputParts","sep","dirname","basename","extname","__WEBPACK_AMD_DEFINE_RESULT__","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","mapDomain","ucs2decode","counter","ucs2encode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","inputLength","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","superCtor","super_","TempCtor","formatRegExp","isNull","deprecate","msg","isUndefined","noDeprecation","warned","throwDeprecation","traceDeprecation","debugEnviron","debugs","stylize","stylizeNoColor","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","recurseTimes","primitive","formatPrimitive","visibleKeys","idx","arrayToHash","formatError","isDate","braces","toUTCString","formatProperty","formatArray","reduceToSingleString","line","objectToString","debuglog","NODE_DEBUG","isNullOrUndefined","isSymbol","getHours","getMinutes","getSeconds","getDate","webpackPolyfill","activeXDocument","enumBugKeys","html","documentCreateElement","EmptyConstructor","scriptTag","LT","NullProtoObject","ActiveXObject","iframeDocument","iframe","parentWindow","NullProtoObjectViaActiveX","contentWindow","Properties","SPECIES","defaultConstructor","$","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","anInstance","toOffset","typedArrayFrom","setSpecies","getOwnPropertyDescriptorModule","inheritIfRequired","setInternalState","DataView","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","addGetter","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","wrapper","CLAMPED","BYTES","CONSTRUCTOR_NAME","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","view","dummy","typedArrayOffset","$length","$len","Router","computeMatch","getChildContext","router","isExact","componentWillMount","unlisten","listen","componentWillReceiveProps","componentWillUnmount","contextTypes","childContextTypes","MemoryRouter","initialEntries","initialIndex","getUserConfirmation","keyLength","Prompt","unblock","shape","Redirect","isStatic","staticContext","perform","componentDidMount","componentDidUpdate","prevTo","nextTo","patternCache","cacheCount","sensitive","compiledPattern","_options$path","_options$exact","exact","_options$strict","_options$sensitive","_compilePath","Route","computedMatch","component","nextContext","_context$router","_object$pathname","_object$search","_object$hash","methodName","StaticRouter","createHref","handlePush","_this$props","handleReplace","_this$props2","handleListen","handleBlock","go","goBack","goForward","Switch","isValidElement","_element$props","pathProp","wrappedComponentRef","remainingProps","routeComponentProps","WrappedComponent","withRouter","discardChanges","setDiscardChanges","desiredLocation","setDesiredLocation","navigate","handleConfirmNavigation","handleCancelNavigation","bimap","d0","d1","r0","r1","polymap","bisect","transformer","untransform","piecewise","rescale","rangeRound","continuous","Banner","isLoud","loud","getColorStyles","bitmap","UNSCOPABLES","ArrayPrototype","isNodeEnv","dynamicRequire","require","DEFAULT_REQUEST_KEYS","extractNodeRequestData","req","requestData","secure","socket","encrypted","originalUrl","absoluteUrl","cookies","cookie","query_string","Layer","layerClass","GlobalChannelContext","updateAvailable","maintenanceComplete","GlobalChannelContextProvider","setUpdateAvailable","setMaintenanceComplete","enableUpdateAvailable","enabledMaintenanceComplete","disableMaintenanceComplete","useGlobalChannelContext","RADIAN","PI","radianToDegree","angleInRadian","polarToCartesian","cy","radius","angle","cos","sin","getAngleOfPoint","anotherPoint","x1","y1","y2","acos","reverseFormatAngleOfSetor","startAngle","endAngle","startCnt","endCnt","inRangeOfSector","sector","_getAngleOfPoint","innerRadius","outerRadius","inRange","_formatAngleOfSector","formatAngleOfSector","formatAngle","internalObjectKeys","FREEZING","METADATA","isExtensible","setMetadata","objectID","weakData","REQUIRED","fastKey","getWeakData","onFreeze","propertyKey","aPossiblePrototype","CORRECT_SETTER","SchemaType","_has","_cloneDeepWith","_toArray2","_locale","_Condition","_runValidations","_prependDeep","_createValidation","_printValue","RefSet","_proto","_deps","_conditions","recursive","_exclusive","_whitelist","_blacklist","tests","transforms","withMutation","notType","_defaultDefault","__isYupSchema__","_mutate","_label","_default","OPTIONS","isType","_nullable","_typeCheck","conditions","resolvedSchema","_cast","formattedValue","formattedResult","rawValue","_option","endEarly","validationParams","initialTests","_typeError","_whitelistError","_blacklistError","validations","validateSync","isValidSync","getDefault","_isPresent","exclusive","notRequired","isNullable","isExclusive","isSibling","enums","notOneOf","_strip","overrides","_getIn","getIn","parentPath","_arr2","_arr3","baseIsNative","isCast","moreThan","notEqual","noUnknown","SpanRecorder","maxlen","spans","_maxlen","span","spanRecorder","Span","spanContext","spanId","startTimestamp","sampled","op","endTimestamp","startChild","setTag","setData","setStatus","setHttpStatus","spanStatus","isSuccess","toTraceparent","sampledString","getTraceContext","parent_span_id","span_id","trace_id","start_timestamp","fileTypes","image","excel","csv","audio","customQuestionUploadFileTypes","MEGABYTE_IN_BYTES","KILOBYTE_IN_BYTES","isAllowedFileType","expectedFileType","actualFileType","isDocx","contentType","isAllowedFileSize","maxFileSize","actualFileSize","snipLine","colno","newLine","ll","safeJoin","isMatchingPattern","STATE_DELIMITER","EMPTY_ACTIVITY_MAP","DEFAULT_GUARD_TYPE","TARGETLESS_KEY","titleUrl","closeUrl","isBack","backUrl","externalUrl","orgAdminJobsListUrl","navButton","handleClose","backTooltip","closeTooltip","StyledButton","Link","StyledContainer","StyledMain","StyledSecondary","supportsPassiveEvents","passive","TOUCHSTART","handlerRef","isArrayIteratorMethod","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","AS_ENTRIES","IS_ITERATOR","iterFn","getBuiltIn","whitespace","ltrim","rtrim","baseHas","hasPath","_Symbol","getRawTag","symToStringTag","toStringTag","arrayLikeKeys","baseKeys","isArrayLike","transactionContext","_hub","_trimEnd","trimEnd","setName","initSpanRecorder","finishedSpans","captureEvent","contexts","transaction","Hub","client","_version","_stack","bindClient","isOlderThan","getStackTop","setupIntegrations","pushScope","getStack","parentScope","getClient","popScope","hint","eventId","_lastEventId","finalHint","_invokeClient","captureMessage","lastEventId","addBreadcrumb","breadcrumb","getOptions","beforeBreadcrumb","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","setUser","user","setTags","setExtras","extras","setExtra","setContext","configureScope","oldHub","makeMain","getIntegration","integration","startSpan","_callExtensionMethod","startTransaction","customSamplingContext","traceHeaders","carrier","getMainCarrier","sentry","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","hasHubOnCarrier","activeDomain","getActiveDomain","registryHubTopStack","getHubFromActiveDomain","FormTextarea","maxCharacterCount","textAreaRef","characterCount","setCharacterCount","updateSelection","textarea","onSelectionUpdate","selectionStart","selectionEnd","textareaDescription","TextArea","rows","newValue","sliced","onMouseUp","onKeyUp","baseGet","InitialsAvatar","super","Avatar","initials","tinyFont","UserAvatar","hasAvatar","avatarSmall","avatarMedium","ShortcutKey","postfix","toAbsoluteIndex","IS_INCLUDES","feature","detection","POLYFILL","NATIVE","originalArray","preventExtensions","Iterators","ITERATOR","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","V8_VERSION","multiline","dotAll","unicode","sticky","hasSymbols","toStr","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicates","baseToString","toSource","mapTag","promiseTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","_propertyExpr","prefixes","Reference","isValue","__isYupRef","getSpan","sample","samplingContext","givenRate","sampleRate","tracesSampler","tracesSampleRate","rate","isValidSampleRate","_experiments","maxSpans","getDefaultSamplingContext","defaultSamplingContext","requestType_1","IncomingMessage","members","globalObject","_startTransaction","startIdleTransaction","idleTimeout","onScope","addExtensionMethods","shadow","FormUploader","displayType","allowAutomaticUploading","tabIndex","file","fileIsAlreadyUploaded","fileName","onStartDirectUpload","uploadMachine","Machine","noFile","ATTACH_FILE","AUTO_UPLOAD_FILE","HAS_EXISTING_FILE","existingFile","fileSuccessfullyUploaded","fileAttachedForUpload","INVALID_FILE","newFileIsUploading","UPLOAD_COMPLETE","replacementFileIsUploading","sendOnLoadingCallback","isLoading","useMachine","fileToUpload","setFileToUpload","fileExists","buttonText","UIContainer","Input","files","upload","DirectUpload","blob","onCompleteDirectUpload","onInvalidFile","UploadButton","UploadButtonLabel","UploadStatus","APP_TRANSLATIONS","file_attached_label","States","SyncPromise","executor","_state","PENDING","_handlers","_resolve","_setResult","RESOLVED","_reject","REJECTED","_executeHandlers","_attachHandler","cachedHandlers","onfulfilled","onrejected","all","resolvedCollection","_onfulfilled","_onrejected","onfinally","isRejected","EOF","USE_NATIVE_URL","arrayFrom","codeAt","toASCII","setToStringTag","URLSearchParamsModule","NativeURL","URL","getInternalSearchParamsState","getInternalURLState","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","radix","numbersSeen","ipv4Piece","swaps","pieceIndex","compress","pointer","char","serializeHost","ignore0","maxIndex","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","http","https","wss","includesCredentials","username","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","second","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","port","encodedCodePoints","URLConstructor","baseState","urlString","searchParams","searchParamsState","updateSearchParams","updateURL","serializeURL","getOrigin","getProtocol","getUsername","getPassword","getHost","getHostname","getPort","getPathname","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","linearish","tickFormat","specifier","nice","prestep","i0","i1","maxIter","linear","eventCenter","setMaxListeners","SYNC_EVENT","nativePropertyIsEnumerable","NASHORN_BUG","1","V","IS_PURE","__defineSetter__","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","IS_RIGHT","argumentsLength","addToUnscopables","defineIterator","ARRAY_ITERATOR","iterated","Arguments","CONVERT_TO_STRING","MATCH","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","regexp","forceStringMethod","stringMethod","regexMethod","re1","re2","regexpFlags","stickyHelpers","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","charsAdded","strCopy","RE","NewTargetPrototype","nativeExpm1","expm1","InternalMetadataModule","iterate","checkCorrectnessOfIteration","IS_WEAK","ADDER","NativeConstructor","NativePrototype","fixMethod","getConstructor","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","redefineAll","IEEE754","arrayFill","ARRAY_BUFFER","DATA_VIEW","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","isLittleEndian","intIndex","conversion","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","nativeCreate","getNative","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","isKeyable","__data__","assignValue","baseAssignValue","customizer","isNew","quoteStrings","printSimpleValue","errorToString","regExpToString","symbolToString","SYMBOL_REGEXP","typeOf","printNumber","Cache","_maxSize","_size","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","contentSecurityPolicy","pathCache","setCache","getCache","normalizePath","expression","param","isLast","_forEach","isBracket","makeSafe","thisArg","shouldBeQuoted","isQuoted","hasLeadingNumber","hasSpecialChars","setterFallback","getterFallback","segments","_wrapNativeSuper","Class","_cache","_construct","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","callProp","matchProp","resolveProp","getDefaultProp","noopTransform","getDefaultProps","DEFAULT_PROPS","RESERVED_PROPS","pause","immediate","onProps","onPause","onResume","onResolve","trail","expires","callId","parentId","inferTo","forward","getForwardProps","computeGoal","hasProps","isAsyncTo","detachRefs","ctrl","_ctrl$ref","replaceRef","_ctrl$ref2","mass","damping","AnimationConfig","frequency","velocity","restVelocity","progress","duration","bounce","decay","sanitizeConfig","isTensionConfig","emptyArray","Animation","changed","toValues","fromValues","scheduleProps","_props$cancel","paused","resumeQueue","resume","pauseQueue","cancelId","getCombinedResult","cancelled","getCancelledResult","getNoopResult","getFinishedResult","runAsync","asyncTo","prevPromise","promise","regeneratorRuntime","_callee3","preventBail","bail","bailPromise","bailIfEnded","animate","animating","_context3","asyncId","bailSignal","bailResult","BailSignal","skipAnimationSignal","SkipAniamtionSignal","_callee","stopAsync","sent","abrupt","_callee2","_context2","t0","_x","_Error","_Error2","isFrameValue","FrameValue","nextId$1","_FluidValue","_priority","_onPriorityChange","_attach","_detach","$P","hasAnimated","isAnimating","isPaused","setActiveBit","IS_ANIMATING","setPausedBit","SpringValue","_FrameValue","_pendingCalls","_lastCallId","_lastToId","_memoizedDuration","_this5","anim","bounceFactor","canBounce","isGrowing","numSteps","currVal","finalVal","_onChange","_stop","_this6","_focus","_update","_this7","_this$animation","_config","_onStart","_this8","_this9","_start","isLoop","_this10","mergeActiveFn","sendEvent","_prepareNode","isFrozen","checkFinished","_resume","_merge","createLoopUpdate","_this11","hasToProp","hasFromProp","prevFrom","_range$to","_range$from","hasFromChanged","hasToChanged","hasAsyncTo","newConfig","defaultConfig","mergeConfig","isAnimatable","goalType","started","hasValueChanged","ACTIVE_EVENTS","_this12","oldNode","loopRet","createUpdate","_props2","findDefined","declareUpdate","_target$animation$typ2","_target$defaultProps$2","_target$animation$typ","_target$animation","_target$defaultProps$","_target$defaultProps","BATCHED_EVENTS","nextId","Controller","springs","_flush","_initialProps","_lastAsyncId","_active","_changed","_started","_onFrame","prepareKeys","flushUpdateQueue","_this13","_this$_events","_ref10","_ref11","_ref12","_ref13","flushUpdate","_x2","_x3","_x4","_flushUpdate","_callee4","promises","_context4","_ref20","t1","t2","getSprings","prepareSprings","createSpring","setSprings","_excluded$3","SpringContext","inherited","Consumer","SpringRef","_update2","_getProps","_arguments","_arguments2","_this14","_update3","_arguments3","_this15","useSprings","_arguments4","propsFn","layoutId","ctrls","updates","prevLength","declareUpdates","_update4","prevContext","hasContext","isFn","_useSprings","_useSprings2","_useSprings2$","TransitionPhase","_arguments5","_ref14","_ref14$trail","_ref14$expires","propsRef","propsConfig","usedTransitions","prevTransitions","expired","expirationId","getKeys","_ref15","reused","phase","MOUNT","_ref16","keyIndex","changes","prevPhase","propsDelay","ENTER","isLeave","LEAVE","UPDATE","_config2","_p","expiry","expiryMs","_ref17","renderTransitions","nextKey","_ref19","_ref19$keys","Interpolation","_FrameValue2","_super5","_this16","calc","_dt","oldValue","checkIdle","becomeIdle","_this17","_this18","_this19","highest","isIdle","defaultFunctionName","DEFAULT_IDLE_TIMEOUT","IdleTransactionSpanRecorder","_pushActivity","_popActivity","transactionSpanId","IdleTransaction","_idleHub","_idleTimeout","_onScope","_heartbeatTimer","_heartbeatCounter","_finished","_beforeFinishCallbacks","clearActiveTransaction","setSpan","Cancelled","keepSpan","registerBeforeFinishCallback","_initTimeout","_pingHeartbeat","end_1","_beat","heartbeatString","_prevHeartbeatString","BottomButtonBar","static","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_extra","_contexts","newScope","_level","_span","_transactionName","_fingerprint","addScopeListener","addEventProcessor","_notifyScopeListeners","setFingerprint","fingerprint","setLevel","setTransactionName","setTransaction","updatedScope","clearBreadcrumbs","applyToEvent","_applyFingerprint","breadcrumbs","_notifyEventProcessors","getGlobalEventProcessors","processors","processor","_final","globalEventProcessors","addGlobalEventProcessor","createHiringStage","updateHiringStage","deleteHiringStage","useCreateHiringStage","useUpdateHiringStage","useDeleteHiringStage","useHiringStages","getHiringStages","PathUtils","originalModule","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","md51_array","rhex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","hexToBinaryString","SparkMD5","targetArray","sourceArray","appendBinary","contents","_buff","_length","_hash","_finish","destroy","hashBinary","classCallCheck","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","dispatchEvent","eventInit","bubbles","cancelable","createEvent","toArray$1","BlobRecord","checksum","attributes","content_type","byte_size","xhr","XMLHttpRequest","responseType","setRequestHeader","getMetaValue","requestDidLoad","requestDidError","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","delegate","notify","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","alert","uploadRequestDidProgress","DirectUploadsController","querySelectorAll","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","hasAttribute","removeAttribute","focus","submitForm","ActiveStorage","ModalBackdrop","onClose","stringCache","widthCache","SPAN_STYLE","STYLE_LIST","MEASUREMENT_SPAN_ID","getStyleString","getStringSize","isSsr","styleString","measurementSpan","getElementById","measurementSpanStyle","styleKey","getOffset","clientTop","clientLeft","calculateChartCoordinate","chartX","pageX","chartY","pageY","EXISTS","functionToString","mode","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","objectKeys","userAgent","endPos","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","repeat","IS_END","fillString","fillLen","stringFiller","stringLength","fillStr","intMaxLength","whitespaces","channel","IS_IOS","setImmediate","clearImmediate","MessageChannel","Dispatch","ONREADYSTATECHANGE","runner","post","postMessage","port2","port1","onmessage","importScripts","PromiseCapability","$$resolve","$$reject","implementation","GetIntrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","applyBind","reIsDeepProp","reIsPlainProp","isObjectLike","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","stubFalse","freeExports","freeModule","freeProcess","nodeUtil","objectProto","isLength","baseKeysIn","arrayFilter","stubArray","nativeGetSymbols","getSymbols","symbol","arrayBuffer","propagateErrors","settled","collectErrors","_objectWithoutPropertiesLoose2","scopeToValue","_synchronousPromise","SynchronousPromise","fulfilled","unwrapError","nestedErrors","strReg","borderHover","placeholderText","wellCanvas","calloutCanvas","dropdownCanvas","dropdownBorder","dropdownDivider","dropdownHover","dropdownTextHover","cardCanvas","cardBorder","cardDivider","chipBorder","WILDCARD","EMPTY_OBJECT","isStateId","StateNode","__xstatenode","__cache","relativeValue","initialStateValue","initialState","candidates","delayedTransitions","idMap","guards","services","delays","_parent","machine","parallel","stateConfig","dfs","_transient","onEntry","onExit","invokeConfig","invokeSrc","_init","withConfig","withContext","definition","getDelayedTransitions","formatTransitions","getCandidates","sameEventType","afterConfig","mutateEntryExit","configTransition","resolvedTransition","delayedTransition","formatTransition","getStateNodes","getStateNode","subStateKeys","subStateKey","allSubStateNodes","subStateNode","handles","resolveState","transitionLeafNode","transitionCompoundNode","_transition","transitionParallelNode","transitionMap","stateTransitions","enabledTransitions","st","entryNodes","entrySet","exitSet","selectedTransition","nextStateNodes","candidate","cond","stateIn","resolvedContext","isInState","getStateNodeById","guardPassed","evaluateGuard","allNextStateNodes","getRelativeStateNodes","isInternal","internal","nodesFromChild","escapes","guard","guardMeta","condFn","getActions","currentContext","prevState","prevConfig","resolvedConfig","resolvedConfig_1","resolvedConfig_1_1","prevConfig_1","prevConfig_1_1","doneEvents","grandparent","entryStates","exitStates","entryActions","exitActions","currentState","resolvedStateValue","getResolvedPath","stateTransition","resolveTransition","resolveRaisedTransition","originalEvent","currentActions","actions_1","actions_1_1","otherActions","updatedContext","resolvedActions","sendAction","raisedEvents","nonRaisedActions","resolvedConfiguration","isDone","maybeNextState","raisedEvent","stateKey","resolvedStateId","getStateNodeByPath","arrayStatePath","currentStateNode","stateIdentifier","getInitialState","historyConfig","relativeStateId","resolveHistory","initialStateNodePaths","initialPath","getFromRelativePath","relativePath","childStatePath","relativeStateValue","historyTarget","relativeChildPath","subHistoryValue","subStatePath","childStateIds","stateIds","e_8","e_8_1","resolveTarget","_target","isInternalTarget","transitionConfig","normalizedTarget","e_9","onConfig","wildcardConfigs","strictOnConfigs_1","arrayified","hasNonLastUnguardedTarget","eventText","validateArrayifiedTransitions","doneConfig","onDone","invokeDef","settleTransitions","formattedTransitions","delayedTransitions_1","delayedTransitions_1_1","e_9_1","htmlTreeAsString","currentElem","sepLength","nextStr","_htmlElementAsString","allowedAttrs","supportsFetch","Headers","Request","Response","isNativeFetch","supportsNativeFetch","fetch","sandbox","hidden","supportsReferrerPolicy","referrerPolicy","supportsHistory","chrome","isChromePackagedApp","app","runtime","hasHistoryApi","pushState","replaceState","createInvocableActor","invokeDefinition","tempActor","unsubscribe","isActor","renderRadialLabel","labelProps","labelAngle","viewBox","clockWise","deltaAngle","getDeltaAngle","startPoint","endPoint","dominantBaseline","xlinkHref","_props$className","textBreakAll","getLabel","isPolarLabel","isPolar","positionAttrs","midAngle","_polarToCartesian","textAnchor","verticalAnchor","_polarToCartesian2","getAttrsOfPolarLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","getAttrsOfCartesianLabel","breakAll","parseViewBox","labelViewBox","parseLabel","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","sessionIdIndex","bookId","register","actor","free","__w_pdfjs_require__","ns","pdfjsSharedUtil","pdfjsDisplayAPI","pdfjsDisplayTextLayer","pdfjsDisplayAnnotationLayer","pdfjsDisplayDisplayUtils","pdfjsDisplaySVG","pdfjsDisplayWorkerOptions","pdfjsDisplayAPICompatibility","isNodeJS","PDFNodeStream","setPDFNetworkStreamFactory","PDFFetchStream","PDFNetworkStream","isFetchSupported","isValidFetchUrl","build","getDocument","LoopbackPort","PDFDataRangeTransport","PDFWorker","renderTextLayer","AnnotationLayer","createPromiseCapability","PasswordResponses","InvalidPDFException","MissingPDFException","SVGGraphics","NativeImageDecoding","CMapCompressionType","PermissionFlag","UnexpectedResponseException","OPS","VerbosityLevel","UNSUPPORTED_FEATURES","createValidAbsoluteUrl","removeNullCharacters","RenderingCancelledException","getFilenameFromUrl","LinkTarget","addLinkAttributes","loadScript","PDFDateString","GlobalWorkerOptions","apiCompatibilityParams","arrayByteLength","arraysToBytes","resultLength","stringToBytes","itemLength","bytesToString","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","chunk","capability","isSettled","getVerbosityLevel","verbosity","INFOS","isArrayEqual","arr1","isBool","isEmptyObj","isNum","isSameOrigin","baseUrl","otherUrl","_isValidProtocol","ex","NullCharactersRegExp","setVerbosityLevel","string32","stringToPDFString","PDFStringTranslateTable","stringToUTF8String","decodeURIComponent","escape","utf8StringToString","unreachable","IsEvalSupportedCached","IsLittleEndianCached","FormatError","UnknownErrorException","TextRenderingMode","StreamType","PasswordException","AbortException","ImageKind","FontType","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","BaseException","NONE","DECODE","DISPLAY","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","MARKED","REVIEW","UNMARKED","ACCEPTED","CANCELLED","COMPLETED","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","closeStroke","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","forms","javaScript","smask","shadingPattern","font","NEED_PASSWORD","INCORRECT_PASSWORD","_BaseException","_BaseException2","_BaseException3","_BaseException4","_BaseException5","_BaseException6","_super6","_BaseException7","_super7","buffer8","isEvalSupported","rgbBuf","m1","m2","applyTransform","transpose","sx","sy","rect1","rect2","orderedX","orderedY","normalizeRect","digits","forceDataSchema","Blob","ii","b1","b2","b3","d2","d3","d4","PDFPageProxy","PDFDocumentProxy","_util","_display_utils","_font_loader","_api_compatibility","_canvas","_worker_options","_is_node","_message_handler","_metadata","_transport_stream","_webgl","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","createPDFNetworkStream","pdfNetworkStreamFactory","task","PDFDocumentLoadingTask","rangeTransport","worker","pdfBytes","rangeChunkSize","CMapReaderFactory","DOMCMapReaderFactory","ignoreErrors","stopAtErrors","pdfBug","NativeImageDecoderValues","nativeImageDecoderSupport","maxImageSize","disableFontFace","disableRange","disableStream","disableAutoFetch","disableCreateObjectURL","workerParams","workerPort","fromPort","_worker","docId","destroyed","_fetchDocument","workerId","networkStream","PDFDataTransportStream","initialData","progressiveDone","httpHeaders","withCredentials","messageHandler","MessageHandler","postMessageTransfers","transport","WorkerTransport","_transport","_capability","pdfDataRangeTransport","sendWithPromise","apiVersion","docBaseUrl","nextDocumentId","onPassword","onProgress","onUnsupportedFeature","onFulfilled","onRejected","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","_step3","_iterator3","_step4","_iterator4","pdfInfo","_pdfInfo","numPages","pageNumber","getPage","getPageIndex","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","openAction","dest","getAttachments","getJavaScript","getOutline","getPermissions","getMetadata","getData","downloadInfoCapability","getStats","startCleanup","loadingTask","loadingParams","pageIndex","pageInfo","_pageIndex","_pageInfo","_stats","StatTimer","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","intentStates","rotate","userUnit","_ref$rotation","rotation","_ref$offsetX","offsetX","_ref$offsetY","offsetY","_ref$dontFlip","dontFlip","PageViewport","_ref2$intent","intent","annotationsPromise","annotationsIntent","getAnnotations","canvasContext","viewport","_ref3$intent","_ref3$enableWebGL","enableWebGL","_ref3$renderInteracti","renderInteractiveForms","_ref3$transform","_ref3$imageLayer","imageLayer","_ref3$canvasFactory","canvasFactory","_ref3$background","renderingIntent","intentState","streamReaderCancelTimeout","canvasFactoryInstance","DOMCanvasFactory","webGLContext","WebGLContext","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","_pumpOperatorList","complete","renderTasks","internalRenderTask","_tryCleanup","_abortOperatorList","timeEnd","InternalRenderTask","useRequestAnimationFrame","renderTask","transparency","initializeGraphics","operatorListChanged","opListTask","opListReadCapability","_ref4$normalizeWhites","normalizeWhitespace","_ref4$disableCombineT","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","combineTextItems","highWaterMark","readableStream","streamTextContent","reader","getReader","pump","_textContent$items","pageCache","waitOn","force","renderCompleted","resetStats","operatorListChunk","streamReader","_renderPageChunk","_ref7$force","_listeners","_defer","_deferred","transfers","cloned","cloneValue","PDFWorkerClosure","pdfWorkerPorts","isWorkerDisabled","fallbackWorkerSrc","nextFakeWorkerId","fakeWorkerCapability","pdfjsFilePath","currentScript","_getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","mainWorkerMessageHandler","pdfjsWorker","WorkerMessageHandler","setupFakeWorkerGlobal","loader","_callee$","createCDNWrapper","_ref9$name","_ref9$port","_ref9$verbosity","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","Worker","terminateEarly","onWorkerError","terminate","_setupFakeWorker","supportTransfers","sendTest","testObj","workerHandler","fontLoader","FontLoader","_onUnsupportedFeature","_params","cMapUrl","isCompressed","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","page","_destroy","terminated","cancelAllRequests","sink","getFullReader","evt","onPull","enqueue","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","_startRenderPage","_data","exportedData","exportedError","fontRegistry","FontInspector","registerFont","fontAdded","FontFaceObject","_data2","imageData","pageProxy","img","Image","onload","onerror","releaseImageResources","_data3","imageUrl","rgbaLength","tmpCanvas","tmpCtx","getContext","drawImage","getImageData","fetched","builtInCMap","cMapData","featureId","Metadata","contentDispositionFilename","_this20","_objs","objId","resolved","_ensureObj","RenderTask","_internalRenderTask","onContinue","canvasInRendering","WeakSet","_ref14$useRequestAnim","_ref14$pdfBug","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next2","StepperManager","stepper","nextBreakPoint","getNextBreakPoint","_this$params","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","_this21","executeOperatorList","_ref21","_ref21$enabled","urlNullRemoved","onclick","targetStr","SELF","BLANK","PARENT","TOP","DEFAULT_LINK_REL","DOMSVGFactory","SVG_NS","canvasAndContext","_ref15$baseUrl","_ref15$isCompressed","_fetch","compressionType","_this22","baseURI","_ref18","statusText","t3","onreadystatechange","readyState","DONE","responseText","svg","_ref19$offsetX","_ref19$offsetY","_ref19$dontFlip","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","centerX","centerY","_ref20$scale","_ref20$rotation","_ref20$offsetX","_ref20$offsetY","_ref20$dontFlip","topLeft","bottomRight","applyInverseTransform","_util$BaseException","_super8","_this23","pdfDateStringRegex","_step5","outBuf","longest","_iterator5","_step6","_iterator6","_time","padEnd","ReadableStream","hour","minute","universalTimeRelation","offsetHour","offsetMinute","UTC","BaseFontLoader","_ref23","nativeFontFaces","styleElement","_bind","nativeFontFace","fonts","getElementsByTagName","styleSheet","sheet","insertRule","cssRules","_callee5","_this24","_context5","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","supported","fontsToLoad","_BaseFontLoader","GenericFontLoader","_super9","_this25","loadingContext","requests","nextRequestId","loadTestFontId","otherRequest","atob","int32","spliceString","_loadTestFont","XXXX_VALUE","names","loadedName","fontFamily","isFontReady","fillText","translatedData","_ref24","_ref24$isEvalSupporte","_ref24$disableFontFac","_ref24$ignoreErrors","_ref24$onUnsupportedF","_ref24$fontRegistry","compiledGlyphs","FontFace","mimetype","character","cmds","js","cmd","_ii","compatibilityParams","isIE","isIOSChrome","_pattern_helper","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","FULL_CHUNK_HEIGHT","addContextCurrentTransform","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","translate","_originalTransform","_originalSetTransform","setTransform","_transformMatrix","_transformStack","ad_bc","bc_ad","old","cosValue","sinValue","CachedCanvases","getCanvas","trackTransform","canvasEntry","CanvasExtraState","alphaIsShape","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","resumeSMaskCtx","setCurrentPoint","canvasCtx","stateStack","pendingClip","pendingEOFill","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","cachedCanvases","_cachedGetSinglePixelWidth","putBinaryImageData","imgData","ImageData","putImageData","destPos","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","srcDiff","kEnd","kEndUnrolled","mask","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","properties","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","g0","b0","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","composeSMask","layerCtx","maskCtx","scaleX","scaleY","backdrop","isEnabled","composed","layer","subtype","composeFn","hasBackdrop","chunkHeight","genericComposeSMask","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","_ref25","_ref25$transparency","_ref25$background","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","endTime","breakIt","_step7","_iterator7","depObjId","objsPool","endSMaskGroup","endLayout","dashArray","dashPhase","flatness","suspendSMaskGroup","beginSMaskGroup","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","startTransformInverse","mozCurrentTransformInverse","deltaTransform","clearRect","resumeSMaskGroup","ops","getSinglePixelWidth","xw","yh","bezierCurveTo","consumePath","singularValueDecompose2dScale","getPattern","needRestore","pendingTextPaths","beginPath","addToPath","fontRefName","fontObj","fontDirection","isType3Font","typeface","fallbackName","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","getPathGenerator","strokeText","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","glyph","scaledX","scaledY","scaledAccentX","scaledAccentY","vmetric","vx","vy","restoreNeeded","isSpace","fontChar","accent","remeasure","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","isInFont","spacingLength","charProcOperatorList","operatorListId","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","_this26","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","getShadingPatternFromIR","makeCssRgb","patternIR","inv","bl","br","ur","x0","y0","matrix","bbox","isolated","knockout","bounds","getAxialAlignedBoundingBox","canvasBounds","imageSmoothingEnabled","mozImageSmoothingEnabled","domImage","getCanvasPosition","appendImage","isPatternFill","compiled","j0","width1","points","POINT_TYPES","lineSize","data0","outlines","pp","coords","p0","jj","compileType3Glyph","maskCanvas","positions","images","imgToPaint","widthScale","heightScale","HTMLElement","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","shadingIR","ShadingIRs","fromIR","applyBoundingBox","Path2D","region","RadialAxial","colorStops","grad","createLinearGradient","createRadialGradient","addColorStop","createMeshCanvas","drawTriangle","c1","c2","c3","rowSize","x3","y3","xa","car","cag","cab","xb","cbr","cbg","cbb","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","_k2","x1_","x2_","_k3","drawFigure","cs","verticesPerRow","cols","combinesScale","figures","backgroundColor","boundsWidth","boundsHeight","paddedWidth","BORDER_SIZE","paddedHeight","drawFigures","Mesh","matrixScale","temporaryPatternCanvas","createPattern","Dummy","PaintType","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","combinedScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","clipBbox","realOutputSize","bboxWidth","bboxHeight","cssColor","CallbackKind","StreamKind","wrapReason","sourceName","targetName","comObj","_this27","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","_processStreamMessage","_sourceName","_targetName","_createStreamSink","_deleteStreamController2","actionName","ah","_postMessage","queueingStrategy","_this28","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","streamSink","isCancelled","lastDesiredSize","sinkCapability","ready","success","_deleteStreamController","_callee6","_context6","allSettled","_x5","_xml_parser","_repair","xmlDocument","SimpleXMLParser","parseFromString","_metadataMap","_parse","codes","chars","rdf","hasChildNodes","_step8","_iterator8","_step8$value","XMLParserErrorCode","isWhitespace","ch","XMLParserBase","_this29","entity","onResolveEntity","skipWs","attrValue","attrEndChar","attrEndIndex","_resolveEntities","attrStart","onEndElement","pi","_parseProcessingInstruction","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","_parseContent","onBeginElement","onText","SimpleDOMNode","_XMLParserBase","_super10","_this30","_currentFragment","_errorCode","parseXml","isWhitespaceString","lastElement","_this31","_queuedChunks","_progressiveDone","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","addProgressiveDoneListener","_onProgressiveDone","transportReady","_enqueue","_begin","_loaded","firstReader","queuedChunks","PDFDataTransportStreamReader","_progressiveDataLength","PDFDataTransportStreamRangeReader","requestDataRange","_stream","_done","_filename","_step9","_iterator9","_requests","_headersReady","_read","_callee7","requestCapability","_context7","_end","_queuedChunk","_read2","_removeRangeReader","_callee8","_context8","_ref26","_ref26$enable","WebGLUtils","tryInitGL","_ref27","_ref28","loadShader","gl","shaderType","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","errorMsg","getShaderInfoLog","createVertexShader","VERTEX_SHADER","createFragmentShader","FRAGMENT_SHADER","createProgram","shaders","program","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","createTexture","textureId","activeTexture","texture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","texImage2D","RGBA","UNSIGNED_BYTE","currentGL","currentCanvas","generateGL","premultipliedalpha","smaskCache","figuresCache","useProgram","resolutionLocation","getUniformLocation","positionLocation","getAttribLocation","backdropLocation","subtypeLocation","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","bindBuffer","bufferData","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","uniform1i","initSmaskGL","drawingBufferWidth","drawingBufferHeight","uniform2f","uniform4f","TEXTURE0","maskTexture","TEXTURE1","clearColor","BLEND","blendFunc","ONE_MINUS_SRC_ALPHA","COLOR_BUFFER_BIT","drawArrays","TRIANGLES","deleteTexture","deleteBuffer","scaleLocation","offsetLocation","colorLocation","initFiguresGL","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","NonWhitespaceRegexp","appendText","geom","textDiv","textDivProperties","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_textDivProperties","tx","_viewport","atan2","fontName","fontHeight","fontAscent","ascent","descent","_fontInspectorEnabled","dataset","_textContentStream","_layoutText","_enhanceTextSelection","angleCos","angleSin","divWidth","divHeight","_bounds","_canceled","textDivs","textDivsLength","_renderingDone","expanded","boxes","x1New","x2New","expandBoundsLTR","expandBounds","divProperties","findPositiveMin","boxScale","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","used","TextLayerRenderTask","_ref29","_this32","textContentStream","container","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_reader","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","_processItems","styleCache","_textDiv$style","_render","_this33","mozOpaque","textItems","textStyles","_ref30","expandTextDivs","expandDivs","transformBuf","paddingBuf","divProps","renderParameters","AnnotationElementFactory","parameters","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","linkService","downloadManager","imageResourcesPath","svgFactory","_createContainer","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","borderBottomStyle","borderColor","popup","PopupElement","modificationDate","hideWrapper","_AnnotationElement","_super11","newWindow","externalLinkTarget","externalLinkRel","externalLinkEnabled","_bindNamedAction","_bindLink","destination","_this34","getDestinationHash","navigateTo","_this35","getAnchorUrl","executeNamedAction","_AnnotationElement2","_super12","hasPopup","l10nId","l10nArgs","_createPopup","_AnnotationElement3","_super13","_WidgetAnnotationElem","_super14","hasAppearance","fieldValue","multiLine","readOnly","maxLen","comb","combWidth","classList","letterSpacing","_setTextStyle","textAlignment","textAlign","fontWeight","fontStyle","_WidgetAnnotationElem2","_super15","_WidgetAnnotationElem3","_super16","fieldName","buttonValue","_LinkAnnotationElemen","_super17","_WidgetAnnotationElem4","_super18","selectElement","combo","multiSelect","_step10","_iterator10","optionElement","displayValue","exportValue","_AnnotationElement4","_super19","parentElement","parentLeft","parentWidth","pinned","hideElement","dateObject","toDateObject","toLocaleDateString","toLocaleTimeString","_formatContents","_toggle","_show","_hide","lines","pin","unpin","_AnnotationElement5","_super20","_AnnotationElement6","_super21","lineCoordinates","_AnnotationElement7","_super22","square","_AnnotationElement8","_super23","circle","_AnnotationElement9","_super24","_this36","containerClassName","svgElementName","_step11","_iterator11","vertices","polyline","_PolylineAnnotationEl","_super25","_this37","_AnnotationElement10","_super26","_AnnotationElement11","_super27","_this38","_step12","_iterator12","inkLists","_step13","inkList","_iterator13","_AnnotationElement12","_super28","_AnnotationElement13","_super29","_AnnotationElement14","_super30","_AnnotationElement15","_super31","_AnnotationElement16","_super32","_AnnotationElement17","_super33","_this39","_this39$data$file","eventBus","_download","downloadData","_step14","sortedAnnotations","popupAnnotations","_iterator14","_data4","_sortedAnnotations","_step15","_iterator15","pf","SVG_DEFAULTS","XLINK_NS","convertImgDataToPng","PNG_HEADER","crcTable","writePngChunk","crc","crc32","deflateSyncUncompressed","literals","maxBlockLength","deflateBlocks","idat","adler","adler32","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","_y","ihdr","deflateSync","pngLength","CHUNK_WRAPPER_SIZE","SVGExtraState","activeClipUrl","clipGroup","maskId","clipCount","maskCount","shadingCount","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","_this40","_step17","_iterator17","_this41","svgElement","loadDependencies","convertOpList","operatorIdMapping","opList","_step16","opTree","_iterator16","opListElement","opListToTree","_step18","_iterator18","opTreeElement","lineMatrix","xcoords","tspan","txtElement","txtgrp","_step19","_iterator19","charWidth","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","defs","addFontStyle","_makeColorN_Pattern","inverseTransform","_makeShadingPattern","_makeTilingPattern","_args$","tilingId","_util$Util$applyTrans2","tx0","ty0","_util$Util$applyTrans4","tx1","ty1","_util$Util$singularVa2","txstep","tystep","tiling","_util$Util","gradient","shadingId","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","_step20","_iterator20","colorStop","_step21","_iterator21","getAttributeNS","clipId","clipPath","clipElement","cloneNode","_step22","_iterator22","_step22$value","setStrokeAlpha","setFillAlpha","imgObj","imgEl","imgSrc","cliprect","definitions","rootGroup","_ensureClipGroup","_network_utils","fs","fileUriRegex","sourceUrl","parsedUrl","isHttp","isFsUrl","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_storedError","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_read3","_callee9","_context9","_error","_this42","BaseRangeReader","_read4","_callee10","_context10","_this43","createRequestOptions","auth","_BaseFullReader","_super34","_this44","handleResponse","statusCode","_setReadableStream","getResponseHeader","_ref31","validateRangeRequestCapabilities","allowRangeRequests","suggestedLength","extractFilenameFromHeader","_request","_BaseRangeReader","_super35","_this45","_httpHeaders","_BaseFullReader2","_super36","_this46","lstat","createReadStream","_BaseRangeReader2","_super37","_this47","createResponseStatusError","contentDisposition","_content_disposition","getFilenameFromContentDispositionHeader","_ref32","returnValues","validateResponseStatus","needsEncodingFixup","toParamRegExp","rfc2616unquote","fixupEncoding","rfc2047decode","rfc5987decode","_match2","_n2","_matches$_n","_quot","_part","rfc2231getparam","_filename2","attributePattern","textdecode","decoder","TextDecoder","fatal","quotindex","extvalue","encodingend","charset","NetworkManager","getXhr","currXhrId","pendingRequests","xhrId","pendingRequest","expectedStatus","onStateChange","onprogress","onHeadersReceived","xhrStatus","getArrayBuffer","rangeHeader","abortRequest","_source","_manager","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","_onRangeRequestReaderClosed","manager","_onHeadersReceived","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","_read5","fullRequestXhrId","fullRequestXhr","getRequestXhr","_ref33","lengthComputable","_callee11","_context11","isPendingRequest","_requestId","requestRange","_read6","_close","_callee12","_context12","createFetchOptions","abortController","signal","credentials","redirect","createHeaders","PDFFetchStreamReader","PDFFetchStreamRangeReader","_this48","_withCredentials","AbortController","_abortController","_headers","_ref34","_read7","_callee13","_yield$this$_reader$r","_context13","_this49","_read8","_callee14","_yield$this$_reader$r2","_context14","Global","focusEvents","keyboardEvents","touchEvents","mouseEvents","getArgs","eventProps","formatAxisMap","axisMap","chartName","ids","leftMirror","rightMirror","topMirror","bottomMirror","calculatedPadding","needSpace","orientation","_axis$padding","reversed","offsetKey","smallestDistanceBetweenValues","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","_parseScale","finalAxis","rectWithPoints","rectWithCoords","ScaleHelper","bandAware","_offset2","createLabeledScales","scales","coord","isInRange","IS_DEVELOPMENT","CONSOLE_LOG_ENABLED","InterpreterStatus","DEFAULT_SPAWN_OPTIONS","autoForward","withServiceScope","serviceStack","service","Interpreter","defaultOptions","scheduler","delayedEventsMap","contextListeners","stopListeners","doneListeners","eventListeners","sendListeners","initialized","_status","NotStarted","batch","Stopped","deferEvents","Running","sendTo","isParent","sessionId","resolvedOptions","clock","resolvedId","_initialState","execute","actionsConfig","devTools","_g","_h","contextListener","finalChildStateNode","doneData","_l","_m","onTransition","nextListenerOrObserver","errorListener","completeListener","resolvedCompleteListener","onEvent","onSend","onStop","resolvedState","attachDev","initialize","e_10","_o","_q","e_10_1","e_11","batchChanged","batchedActions","_loop_1","events_1","events_1_1","e_11_1","sender","nextEvent","e_12","e_12_1","actionOrExec","serviceCreator","spawnPromise","spawnCallback","spawnObservable","spawnMachine","spawnActivity","stopChild","childId","spawn","spawnActor","childService","doneEvent","canceled","errorEvent","handleError","unsubscribed","callbackStop","receivers","newListener","subscription","dispose","spawnEffect","__REDUX_DEVTOOLS_EXTENSION__","devToolsOptions","autoPause","stateSanitizer","features","jump","interpret","nameOrOptions","resolveSpawnOptions","initialContext","resolvedInitialContext","createMachine","AlertModal","formatDecimalParts","coefficient","SHARED","nativeGetOwnPropertyNames","windowNames","getWindowNames","nativeAssign","A","alphabet","chr","TO_ENTRIES","returnMethod","factories","partArgs","createProperty","arrayLike","mapfn","iteratorMethod","copyWithin","inc","flattenIntoArray","sourceLen","targetIndex","sourceIndex","mapFn","$forEach","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","nativeLastIndexOf","NEGATIVE_ZERO","searchElement","PrototypeOfArrayIteratorPrototype","arrayIterator","STRING_ITERATOR","$parseInt","$parseFloat","trimmedString","log1p","toggle","macrotask","MutationObserver","WebKitMutationObserver","IS_NODE","queueMicrotaskDescriptor","queueMicrotask","characterData","newPromiseCapability","promiseCapability","internalStateGetterFor","define","previous","getEntry","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","ArrayIterationModule","$has","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","toPositiveInteger","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","getIterator","$fetch","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","sequences","percentSequence","percentDecode","sequence","deserialize","replacer","serialize","parseSearchParams","validateArgumentsLength","passed","URLSearchParamsIterator","URLSearchParamsConstructor","entryIterator","entryNext","URLSearchParamsPrototype","getAll","entriesIndex","sliceIndex","isArgs","origKeys","keysShim","originalKeys","shim","callBind","$indexOf","allowMissing","intrinsic","$SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","INTRINSICS","AggregateError","Atomics","BigInt","decodeURI","EvalError","FinalizationRegistry","SharedArrayBuffer","URIError","WeakRef","doEval","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","origSymbol","hasSymbolSham","numberIsNaN","$Object","ATTRIBUTE_NAMES","HEAD","REACT_TAG_MAP","VALID_TAG_NAMES","TAG_PROPERTIES","CHARSET","CSS_TEXT","HREF","HTTPEQUIV","INNER_HTML","ITEM_PROP","PROPERTY","REL","SRC","accesskey","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","DEFAULT_TITLE","DEFER","ENCODE_SPECIAL_CHARACTERS","ON_CHANGE_CLIENT_STATE","TITLE_TEMPLATE","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_excluded$2","isCustomPropRE","dangerousStyleValue","isUnitlessNumber","attributeCache","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","prefixKey","_excluded$1","domTransforms","pxTransforms","degTransforms","addUnit","isValueIdentity","AnimatedStyle","xyz","deg","FluidTransform","_this2$transforms$i2","_excluded","isFilterElement","scrollTop","scrollLeft","setProperty","warning","castPath","isArguments","isIndex","toKey","hasFunc","isKey","funcToString","baseIsArguments","reIsUint","objValue","baseTimes","isArr","isArg","isBuff","skipIndexes","baseIsTypedArray","baseUnary","nodeIsTypedArray","arrayPush","getPrototype","getSymbolsIn","overArg","baseGetAllKeys","keysFunc","symbolsFunc","asciiToArray","hasUnicode","unicodeToArray","reHasUnicode","makeArrayFrom","_continuations","_paused","_continueWith","_failWith","looksLikeAPromise","passThrough","createAggregateErrorFrom","nextFn","catchFn","unresolved","_setParent","_isRejected","catchResult","_chainPromiseData","_runResolutions","_isResolved","_runRejections","ran","runFinally","callbackResult","firstPaused","_findFirstPaused","_findAncestry","firstPending","_findFirstPending","_setResolved","_findFirstAncestor","_isPending","matching","firstRejected","_setRejected","_takeContinuations","continuations","cont","_handleUserFunctionResult","_handleWhenResolvedDataIsPromise","_handleResolutionError","continuation","e2","nextSynchronousPromise","promiseData","newData","newError","newResult","allData","numResolved","rejected","thisResult","doReject","allErrors","numRejected","numSettled","doSettled","RealPromise","installGlobally","__awaiter","__patched","originalAwaiter","patchAwaiterIfRequired","uninstallGlobally","baseForOwn","baseIteratee","baseFor","baseMatches","baseMatchesProperty","baseIsEqualDeep","baseIsEqual","bitmask","SetCache","arraySome","cacheHas","equalFunc","isPartial","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","srcValue","lastPart","lastPartDebug","_subType","_getRequireWildcardCache","hasPropertyDescriptor","strings","arrayReduce","deburr","words","reApos","ReactQueryDevtools","ReactQueryDevtoolsPanel","deregister","localStorage","getItem","setItem","ErrorBoundaryFallback","Memo","_hasWeakSet","registerErrorInstrumentation","errorCallback","activeTransaction","useCookieValue","cookieKey","cookieValue","setCookieValue","MaintenanceCompleteModal","reload","adapters","WebSocket","_adapters$logger","secondsSince","ConnectionMonitor","connection","visibilityDidChange","reconnectAttempts","isRunning","startedAt","stoppedAt","startPolling","getPollInterval","stopPolling","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","pollTimeout","reconnectIfStale","_constructor$pollInte","pollInterval","connectionIsStale","staleThreshold","disconnectedRecently","reopen","visibilityState","INTERNAL","message_types","welcome","disconnect","ping","confirmation","rejection","disconnect_reasons","unauthorized","invalid_request","server_restart","default_mount_path","protocols","supportedProtocols","Connection","consumer","monitor","disconnected","webSocket","uninstallEventHandlers","installEventHandlers","allowReconnect","reopenDelay","isProtocolSupported","_JSON$parse","reconnect","notifyAll","willAttemptReconnect","Subscription","mixin","command","Subscriptions","channelName","ensureActiveConnection","sendCommand","forget","findAll","callbackName","createWebSocketURL","getConfig","createConsumer","MetricsInstrumentation","_lcp","_performanceCursor","_forceLCP","_trackLCP","addPerformanceEntries","getEntries","LCP","entryScriptSrc","entryScriptStartTimestamp","tracingInitMarkStartTime","scripts","startTime","entryType","addPerformanceNavigationTiming","_startChild","responseEnd","requestStart","responseStart","addRequest","addNavigationSpans","measureStartTimestamp","measureEndTimestamp","addMeasureSpans","resourceName","initiatorType","transferSize","encodedBodySize","decodedBodySize","addResourceSpans","firstHiddenTime_1","timeStamp","updateLCP_1","elementId","elementSize","po_1","PerformanceObserver","entryList","buffered","takeRecords","defaultRequestInstrumentionOptions","traceFetch","traceXHR","tracingOrigins","registerRequestInstrumentation","shouldCreateSpanForRequest","urlMap","defaultShouldCreateSpan","origins","shouldCreateSpan","handlerData","fetchData","__span","_fetchCallback","__sentry_xhr__","__sentry_own_request__","__sentry_xhr_span_id__","status_code","xhrCallback","DEFAULT_BROWSER_TRACING_OPTIONS","beforeNavigate","markBackgroundTransactions","maxTransactionDuration","routingInstrumentation","startTransactionOnPageLoad","startTransactionOnLocationChange","startingUrl","BrowserTracing","_metrics","_emitOptionsWarning","setupOnce","_getCurrentHub","_createRouteTransaction","metaName","getHeaderContext","idleTransaction","maxDuration","adjustTransactionDuration","Express","_app","originalAppUse","wrapUseArgs","_req","__sentry_transaction","span_1","Integrations","createSupportMessage","replyToEmail","SupportMessageModal","setErrors","isDirty","setIsDirty","supportMessage","setSupportMessage","mutate","isLoadingCreate","useCreateSupportMessage","handleFormInputChange","handleSendSupportMessage","submitButton","validationErrors","TemplateInput","VariableButtons","userToggle","UserToggle","fullName","DropdownContainer","DropdownToggle","PolymerBar","Logo","xmlns","clipRule","Divider","scrollbarStyles","GlobalScrollbarStyles","shallowEqual","setRafTimeout","currTime","shouldUpdate","_toArray","createAnimateManager","shouldStop","setStyle","_style","_styles","curr","restStyles","_handleChange","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","mapObject","translateStyle","isTransition","camelName","styleVal","generatePrefixStyle","getTransitionVal","ACCURACY","cubicBezierFactor","multyTime","cubicBezier","derivativeCubicBezier","newParams","_easing$1$split$0$spl","_easing$1$split$0$spl2","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","isStepper","configSpring","_config$stiff","stiff","_config$damping","_config$dt","currX","destX","currV","newV","newX","needContinue","calStepperVals","preVals","nextStepVals","_easing2","preObj","nextObj","preTime","beginTime","interKeys","timingStyle","stepperStyle","cafId","currStyle","finalStyle","_PureComponent","Animate","attributeName","handleStyleChange","changeStyle","canBegin","runAnimation","_this$props3","shouldReAnimate","isTriggered","stopJSAnimation","_newState","unSubscribe","onAnimationEnd","onAnimationStart","startAnimation","configUpdate","_steps$","initialStyle","_steps$$duration","initialTime","nextItem","_nextItem$easing","nextProperties","preItem","runJSAnimation","newStyle","propsTo","runStepAnimation","_this$props4","onAnimationReStart","stateStyle","cloneContainer","_container$props","_container$props$styl","parseDurationOfSingleTransition","_Component","AnimateGroupChild","handleEnter","isAppearing","appearOptions","enterOptions","handleStyleActive","handleExit","leaveOptions","onEnter","parseTimeout","AnimateGroup","appear","lastHref","handlers","instrumented","instrument","originalConsoleLevel","triggerHandlers","instrumentConsole","domEventHandler","keypressEventHandler","handleEvent","innerOriginal","__sentry_wrapped__","instrumentDOM","requestKeys","requestValues","xhrproto","originalOpen","onreadystatechangeHandler","requestPos","args_1","readyStateArgs","originalSend","instrumentXHR","originalFetch","commonHandlerData","getFetchMethod","getFetchUrl","instrumentFetch","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","instrumentHistory","_oldOnErrorHandler","column","_oldOnUnhandledRejectionHandler","onunhandledrejection","addInstrumentationHandler","fetchArgs","keypressTimeout","lastCapturedEvent","debounceTimer","debounce","isContentEditable","core","__e","singleMatcher","multiMatcher","decodeComponents","encodedURI","replaceMap","customDecodeURIComponent","Scheduler","processingEvent","flushEvents","nextCallback","castSlice","charsEndIndex","charsStartIndex","stringToArray","reTrim","strSymbols","chrSymbols","createCaseFirst","BREAKING_SPACES","calculateWordWidths","wordsWithComputedWidth","spaceWidth","getWordsWithoutCalculate","getWordsByLines","needCalculate","scaleToFit","wordWidths","initialWordsWithComputedWith","shouldLimitLines","maxLines","calculate","currentLine","originalResult","trimmedResult","checkOverflow","tempText","findLongestLine","iterations","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","prevWidth","prevScaleToFit","prevStyle","prevBreakAll","wordsByLines","dx","dy","capHeight","textProps","startDy","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","isInRectangle","minX","maxX","Rectangle","totalLength","getTotalLength","animationEasing","animationDuration","animationBegin","isAnimationActive","isUpdateAnimationActive","currWidth","currHeight","currY","INIT","createStore","reducer","preloadedState","enhancer","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","isSubscribed","replaceReducer","nextReducer","outerSubscribe","observeState","getUndefinedStateErrorMessage","combineReducers","reducers","reducerKeys","finalReducers","finalReducerKeys","shapeAssertionError","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreator","bindActionCreators","actionCreators","boundActionCreators","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","middleware","baseFlatten","baseOrderBy","baseRest","isIterateeCall","sortBy","iteratees","createRange","baseUniq","CartesianAxis","tick","minTickGap","tickFormatter","getNumberIntervalTicks","getTicksStart","getTicksEnd","preserveEnd","unitSize","tailContent","tailSize","tailGap","tickCoord","isShow","restProps","viewBoxOld","restPropsOld","ty","tickSize","tickMargin","finalTickSize","_this$props5","axisLine","needHeight","needWidth","_this$props6","tickLine","finalTicks","getTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","_this$getTickLineCoor","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","_this$props7","ticksGenerator","_this$props8","noTicksProps","renderAxisLine","renderTicks","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","TO_PRIMITIVE","$Symbol","$stringify","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","$replacer","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","native","$entries","nativeFreeze","fromEntries","FAILS_ON_PRIMITIVES","nativeGetPrototypeOf","nativeIsExtensible","nativeIsFrozen","nativeIsSealed","isSealed","nativeKeys","nativePreventExtensions","nativeSeal","seal","$values","__defineGetter__","__lookupGetter__","__lookupSetter__","FunctionPrototype","FunctionPrototypeToString","nameRE","HAS_INSTANCE","of","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","$every","$filter","HAS_SPECIES_SUPPORT","$find","FIND","SKIPS_HOLES","$findIndex","FIND_INDEX","flat","depthArg","flatMap","$includes","nativeIndexOf","nativeJoin","ES3_STRINGS","$map","$reduce","$reduceRight","reduceRight","nativeReverse","0","nativeSlice","fin","$some","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","comparefn","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","nativeFromCodePoint","rawTemplate","literalSegments","notARegExp","correctIsRegExpLogic","nativeEndsWith","endsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","rx","fullUnicode","matchStr","getRegExpFlags","speciesConstructor","MATCH_ALL","REGEXP_STRING","REGEXP_STRING_ITERATOR","RegExpPrototype","regExpBuiltinExec","nativeMatchAll","matchAll","WORKS_WITH_NON_GLOBAL_REGEX","$RegExpStringIterator","$matchAll","flagsValue","$padEnd","$padStart","padStart","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","UNSAFE_SUBSTITUTE","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","callRegExpExec","MAX_UINT32","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","lim","lastLength","lastLastIndex","separatorCopy","splitter","unicodeMatching","nativeStartsWith","$trim","forcedStringTrimMethod","$trimStart","trimStart","trimLeft","$trimEnd","trimRight","createHTML","forcedStringHTMLMethod","big","blink","fixed","fontcolor","fontsize","italics","small","strike","sup","getFlags","NativeRegExp","CORRECT_NEW","RegExpWrapper","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","objectDefinePropertyModule","regExpFlags","nativeTest","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","parseIntImplementation","parseFloatImplementation","NativeNumber","NumberPrototype","BROKEN_CLASSOF","maxCode","NumberWrapper","EPSILON","globalIsFinite","MIN_SAFE_INTEGER","thisNumberValue","nativeToFixed","fractionDigits","fractDigits","multiply","dataToString","nativeToPrecision","nativeAcosh","acosh","MAX_VALUE","nativeAsinh","asinh","nativeAtanh","atanh","cbrt","LOG2E","clz32","nativeCosh","cosh","fround","EPSILON32","MAX32","MIN32","$abs","$sign","$hypot","hypot","value1","aLen","larg","nativeImul","imul","UINT16","xn","yl","LOG10E","log10","log2","sinh","tanh","trunc","pv","DatePrototype","nativeDateToISOString","INVALID_DATE","nativeDateToString","dateToPrimitive","low","fix","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","PROMISE","getInternalPromiseState","PromiseConstructor","newGenericPromiseCapability","DISPATCH_EVENT","UNHANDLED_REJECTION","PromiseRejectionEvent","FakePromise","INCORRECT_ITERATION","isReject","notified","reactions","exited","reaction","onHandleUnhandled","onUnhandled","isUnhandled","unwrap","internalReject","internalResolve","$promiseResolve","alreadyCalled","race","real","onFinally","collectionStrong","InternalWeakMap","collectionWeak","enforceIternalState","IS_IE11","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","arrayBufferModule","mantissaLength","mantissa","exponentLength","nativeArrayBufferSlice","viewSource","viewTarget","createTypedArrayConstructor","$copyWithin","$fill","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","$lastIndexOf","$slice","$sort","beginIndex","$toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","nativeApply","functionApply","thisArgument","argumentsList","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","deleteProperty","objectGetPrototypeOf","objectIsExtensible","objectPreventExtensions","existingDescriptor","ownDescriptor","objectSetPrototypeOf","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","ArrayIteratorMethods","ArrayValues","isNode","boundArgs","setInterval","OVERFLOW_ERROR","encoded","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","accidentalStrictMode","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","propFullName","secret","getShim","ReactPropTypes","elementType","instanceOf","objectOf","checkPropTypes","_interopDefault","React__default","handleStateChangeOnClient","mountedInstances","emitChange","SideEffect","recordedState","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","valueA","valueB","isRegex","expected","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","ka","kb","objEquiv","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","$toString","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","symObj","syms","ERROR_MESSAGE","funcType","bound","binder","boundLength","Empty","getPolyfill","polyfill","$exec","isRegexMarker","badStringifier","throwRegexMarker","gOPD","flagsBound","TypeErr","getDay","tryDateObject","_objectAssign2","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","headElement","tagNodes","indexToDelete","newElement","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","initAttributes","_ref$title","nativeObjectToString","unmasked","memoizeCapped","resolver","memoized","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","isMasked","reIsHostCtor","funcProto","reIsNative","coreJsData","maskSrcKey","assocIndexOf","getMapData","arrayMap","symbolProto","baseClone","CLONE_DEEP_FLAG","arrayEach","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","keysIn","argsTag","funcTag","objectTag","cloneableTags","isDeep","isFlat","isFull","isFunc","stacked","subValue","pairs","LARGE_ARRAY_SIZE","copyObject","typedArrayTags","isPrototype","nativeKeysIn","isProto","resIndex","cloneArrayBuffer","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","dataView","reFlags","symbolValueOf","typedArray","baseCreate","objectCreate","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","iteratorToArray","mapToArray","setToArray","symIterator","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","baseValues","Condition","branch","prependDeep","sourceVal","targetVal","createErrorFactory","testFn","runTest","validOrError","_mapValues","_ref2$path","_ref2$message","_ref2$type","oldParams","resolveParams","createBaseFor","fromRight","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","equalArrays","equalByTag","equalObjects","arrayTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","setCacheAdd","setCacheHas","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","isStrictComparable","hasIn","baseHasIn","baseProperty","basePropertyDeep","BooleanSchema","StringSchema","_isAbsent","rEmail","rUrl","isTrimmed","_min","_max","excludeEmptyString","NumberSchema","more","avail","_isodate","DateSchema","struct","numericKeys","minutesOffset","isoReg","_interopRequireWildcard","ObjectSchema","_taggedTemplateLiteralLoose2","_snakeCase2","_camelCase2","_mapKeys","_sortFields","_sortByKeyOrder","_makePath","_templateObject2","_templateObject","_nodes","dft","_excludedEdges","intermediateValue","innerOptions","__validating","isChanged","exists","fromGetter","noAllow","transformKeys","constantCase","createCompounder","initAccum","deburrLetter","reLatin","reComboMark","basePropertyOf","asciiWords","hasUnicodeWord","unicodeWords","reAsciiWord","reHasUnicodeWord","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","rsEmoji","reUnicodeWord","capitalize","trailing","baseSlice","depPath","_toposort","toposort","cursor","outgoingEdges","makeOutgoingEdges","nodesHash","makeNodesHash","visit","predecessors","nodeRep","outgoing","uniqueNodes","ArraySchema","_opts","castArray","castElement","subType","compact","rejector","validateAt","validateSyncAt","mapState","stateMap","foundStateId","mappedStateId","matchState","patterns_1","patterns_1_1","implicit","ordinal","createMemoryHistory","REACT_STATICS","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","__assign","react_1","xstate_1","rehydratedState","interpreterOptions","machineConfig","machineRef","serviceRef","setCurrent","useService","useActor_1","useActor","registerService","__xstate__","getDevTools","ReCAPTCHA","handleExpired","handleErrored","handleRecaptchaRef","grecaptcha","_widgetId","getResponse","getWidgetId","_executeRequested","executeAsync","executionResolve","executionReject","onExpired","onErrored","explicitRender","sitekey","stoken","hl","badge","captcha","delayOfCaptchaIframeRemoving","temporaryNode","SCRIPT_MAP","idCount","getScriptURL","recaptchaOptions","useRecaptchaNet","globalName","wrappedComponentName","AsyncScriptLoader","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","obsKey","scriptURL","scriptId","callObserverFuncAndRemoveObserver","observersMap","removeOnUnmount","allScripts","ForwardedComponent","rootMargin","externalState","setTarget","IntersectionObserver","LoadMoreTrigger","onEnterView","useInViewEffect","isIntersecting","minHeight","Surface","svgView","_marked","valueof","originalFunctionToString","FunctionToString","DEFAULT_IGNORE_ERRORS","InboundFilters","clientOptions","_mergeOptions","_shouldDropEvent","_isSentryError","_isIgnoredError","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","ignoreInternal","_getPossibleEventMessages","denyUrls","allowUrls","whitelistUrls","blacklistUrls","stacktrace","frames_1","frames","frames_2","SentryError","_newTarget","DSN_REGEX","Dsn","_fromString","_fromComponents","withPassword","projectId","projectMatch","installedIntegrations","integrations","defaultIntegrations","userIntegrations","userIntegrationsNames_1","pickedIntegrationsNames_1","defaultIntegration","userIntegration","integrationsNames","alwaysLastToRun","getIntegrationsToSetup","setupIntegration","Status","BaseClient","backendClass","_integrations","_processing","_backend","dsn","_dsn","_getBackend","eventFromException","eventFromMessage","_processEvent","finalEvent","getDsn","_isClientProcessing","clearInterval","getTransport","transportFlushed","_isEnabled","ticked","_prepareEvent","normalizeDepth","prepared","_applyClientOptions","_applyIntegrationsMetadata","finalScope","_normalizeEvent","environment","release","maxValueLength","sdkInfo","sdk","integrationsArray","_sendEvent","beforeSend","isTransaction","__sentry__","beforeSendResult","_handleAsyncBeforeSend","processedEvent","Success","RateLimit","Invalid","Failed","Unknown","Severity","NoopTransport","Skipped","BaseBackend","_setupTransport","_exception","_hint","_message","Debug","Info","Warning","Fatal","Critical","UNKNOWN_FUNCTION","gecko","winjs","geckoEval","chromeEval","reactMinifiedRegexp","computeStackTrace","popSize","framesToPop","opera10Regex","opera11Regex","extractMessage","computeStackTraceFromStacktraceProp","popFrames","submatch","isNative","columnNumber","computeStackTraceFromStackProp","exceptionFromStacktrace","prepareFramesForEvent","eventFromStacktrace","localStack","firstFrameFunction","lastFrameFunction","frame","in_app","lineno","eventFromUnknownInput","domException","name_1","eventFromString","__serialized__","eventFromPlainObject","synthetic","attachStacktrace","eventToSentryRequest","api","useEnvelope","getEnvelopeEndpointWithUrlEncodedAuth","getStoreEndpointWithUrlEncodedAuth","envelope","sent_at","API","_dsnObject","getBaseApiEndpoint","getStoreEndpoint","_getIngestEndpoint","_encodedAuth","_getEnvelopeEndpoint","getStoreEndpointPath","getRequestHeaders","clientName","clientVersion","getReportDialogEndpoint","dialogOptions","endpoint","encodedOptions","sentry_key","sentry_version","PromiseBuffer","_limit","_buffer","isReady","drain","capturedSetTimeout","BaseTransport","_api","FetchTransport","_disabledUntil","sentryReq","supports","fetchParameters","retryAfterHeader","XHRTransport","BrowserBackend","handled","transportOptions","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","sentryWrapped","wrappedArguments","injectReportDialog","onLoad","Breadcrumbs","addSentryBreadcrumb","category","_consoleBreadcrumb","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","parsedLoc","parsedFrom","parsedTo","SDK_VERSION","BrowserClient","showReportDialog","platform","packages","DEFAULT_EVENT_TARGET","TryCatch","eventTarget","_wrapTimeFunction","_wrapRAF","_wrapXHR","_wrapEventTarget","originalCallback","xmlHttpRequestProps","wrapOptions","GlobalHandlers","_onErrorHandlerInstalled","_onUnhandledRejectionHandlerInstalled","stackTraceLimit","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","currentHub","hasIntegration","isFailedOwnDelivery","_eventFromIncompleteOnError","_enhanceEventWithInitialFrame","_eventFromIncompleteRejection","LinkedErrors","_handler","linkedErrors","_walkErrorTree","UserAgent","referrer","Referer","window_1","SENTRY_RELEASE","clientClass","debug","initAndBind","tau","draw","arc","tan30","tan30_2","kr","kx","ky","sqrt3","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","Symbols","sizeType","symbolFactory","calculateAreaSize","getPath","registerSymbol","SIZE","DefaultLegendContent","inactiveColor","halfSize","sixthSize","thirdSize","legendIcon","iconProps","iconSize","itemStyle","marginRight","svgStyle","_classNames","finalFormatter","renderIcon","renderItems","defaultUniqBy","getUniqPayload","wrapperNode","boxWidth","boxHeight","chartWidth","updateBBox","_this$state","hPos","vPos","chartHeight","getBBoxSnapshot","_this$state2","onBBoxUpdate","_box3","wrapperStyle","payloadUniqBy","outerStyle","getDefaultPosition","otherProps","renderContent","baseExtremum","baseGt","baseLt","defaultFormatter","DefaultTooltipContent","itemSorter","finalItemStyle","formatted","_formatted","wrapperClassName","contentStyle","labelClassName","labelStyle","labelFormatter","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","CLS_PREFIX","getTranslate","tooltipDimension","viewBoxDimension","allowEscapeViewBox","restricted","unrestricted","translateX","translateY","filterNull","finalPayload","hasPayload","useTranslate3d","cursorStyle","$export","own","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","W","expProto","virtual","U","__g","formatSpecifier","precisionPrefix","precisionRound","precisionFixed","CopyToClipboard","ie_edge","ie_upto10","ie_11up","mac","ie","ie_version","documentMode","gecko_version","chrome_version","safari","vendor","ios","maxTouchPoints","android","webkit","webkit_version","domIndex","reusedRange","textRange","setEnd","setStart","isEquivalentPosition","targetNode","targetOff","scanFor","atomElements","hasBlockDesc","contentEditable","pmViewDesc","selectionCollapsed","domSel","collapsed","isCollapsed","rangeCount","getRangeAt","keyEvent","windowRect","getSide","side","clientRect","scrollRectIntoView","startDOM","scrollThreshold","someProp","scrollMargin","atTop","bounding","moveX","moveY","scrollBy","startX","startY","dX","dY","scrollStack","restoreScrollStack","dTop","preventScrollSupported","findOffsetInNode","closest","coordsClosest","dxClosest","rowBot","rowTop","childIndex","rects","getClientRects","singleRect","inRect","findOffsetInText","elementFromPoint","startI","posAtCoords","assign$1","caretPositionFromPoint","pos$1","offsetNode","caretRangeFromPoint","startContainer","startOffset","elt","draggable","targetKludge","box$1","outside","docView","nearestDesc","posBefore","posAfter","posFromDOM","posFromCaret","posFromElement","posAtStart","BIDI","coordsAtPos","domFromPos","supportEmptyRange","takeSide","flattenV","rectBefore","rectAfter","flattenH","before$1","after$1","target$1","withFlushedState","viewState","activeElement","updateState","maybeRTL","cachedState","cachedDir","cachedResult","endOfTextblock","nearest","endOfTextblockVertical","getSelection","modify","oldRange","focusNode","oldOff","focusOffset","oldBidiLevel","caretBidiLevel","domAfterPos","removeAllRanges","endOfTextblockHorizontal","ViewDesc","dirty","beforePosition","posAtEnd","contentLost","domAtom","matchesWidget","matchesMark","matchesNode","matchesHack","parseRule","stopEvent","posBeforeChild","localPosFromDOM","domBefore","domAfter","desc$1","search$1","onlyNodes","getDesc","nodeDOM","descAt","parseRange","fromOffset","childBase","emptyChildAt","j$1","anchorDOM","headDOM","brKludge","offset$1","anchorNode","anchorOffset","domSelExtended","collapse","DOMException","ignoreMutation","mutation","markDirty","startInside","endInside","markParentsDirty","nothing","WidgetViewDesc","widget","ignoreSelection","CompositionViewDesc","textDOM","mut","MarkViewDesc","nodeViews","replaceNodes","NodeViewDesc","outerDeco","innerDeco","updateChildren","descObj","applyOuterDeco","CustomNodeViewDesc","TextViewDesc","reparseInView","sameOuterDeco","composition","composing","localCompositionNode","updater","ViewTreeUpdater","deco","onWidget","onNode","forChild","decoIndex","restNode","parentIndex","widgets","compareSide","child$1","cutAt","i$3","iterDeco","insideNode","syncToMarks","placeWidget","findNodeMatch","updateNextNode","addTextblockHacks","destroyRest","protectLocalComposition","renderDescs","oldCSS","getComputedStyle","listStyle","iosHacks","nearbyTextNode","textPos","childStart","findTextInFragment","compositionNodes","updateInner","updateOuterDeco","needsWrap","oldDOM","patchOuterDeco","computeOuterDeco","selectNode","deselectNode","docViewDesc","pmIsDeco","inParent","trackWrites","parentDOM","BRHackViewDesc","descs","written","childDOM","insertBefore","OuterDecoLevel","noDeco","outerDOM","prevComputed","curComputed","curDOM","patchAttributes","prevList","curList","removeProperty","lockedNode","lock","preMatch","preMatched","preMatchOffset","selectionFromDOM","inWidget","isOnEdge","selectionBetween","editorOwnsSelection","editable","hasFocus","hasSelection","selectionToDOM","syncNodeSelection","domObserver","disconnectSelection","cursorWrapper","selectCursorWrapper","resetEditableFrom","resetEditableTo","brokenSelectBetweenUneditable","temporarilyEditableNear","resetEditable","hideSelectionGuard","removeClassOnSelectionChange","setCurSelection","connectSelection","getPreMatch","destroyBetween","maxKeep","markDesc","nextDOM","setEditable","wasDraggable","lastSelectedViewDesc","clearNodeSelection","moveSelectionBlock","$side","selectHorizontally","mods","nodePos","nodeLen","isIgnorable","skipIgnoredNodesLeft","moveNode","moveOffset","isBlockNode","setSelFocus","skipIgnoredNodesRight","selectVertically","beyond","stopNativeHorizontalDelete","nextNode","switchEditable","captureKeyDown","ctrlKey","metaKey","altKey","shiftKey","getMods","safariDownArrowBug","readDOMChange","typeOver","addedNodes","lastSelectionTime","lastSelectionOrigin","newSel","tr$1","from_","to_","lastKeyCode","startDoc","editableContent","anchor$1","parseBetween","preferredPos","preferredSide","lastKeyCodeTime","endA","endB","findDiff","lastIOSEnter","sel$1","resolveSelection","domChangeCount","nextSel","inlineChange","$newStart","$newEnd","skipClosingAndOpening","$next","looksLikeJoin","suppressSelectionUpdates","markChange","$from1","chFrom","chTo","curMarks","prevMarks","isMarkChange","sel$2","parsedSel","fromEnd","mayOpen","serializeForClipboard","detachedDoc","wrapMap","parseFromClipboard","plainText","inCode","asText","metas","firstTag","readHTML","contextNode","sliceData","addContext","closeRange","closeSlice","lastWrap","inLast","addToSibling","closeRight","withWrappers","normalizeSiblings","sibling","thead","tbody","caption","colgroup","td","th","_detachedDoc","createHTMLDocument","observeOptions","childList","characterDataOldValue","attributeOldValue","subtree","useCharData","SelectionState","DOMObserver","handleDOMChange","flushingSoon","mutations","removedNodes","flushSoon","currentSelection","onCharData","prevValue","onSelectionChange","suppressingSelectionUpdates","forceFlush","take","ignoreSelectionChange","commonAncestorContainer","result$1","registerMutation","brs","cssChecked","checkCSS","editHandlers","setSelectionOrigin","ensureListeners","currentHandlers","eventHandlers","runCustomHandler","eventCoords","clientX","clientY","runHandlerOnContext","focused","handleSingleClick","selectedNode","selectAt","selectClickedNode","selectClickedLeaf","handleDoubleClick","handleTripleClick","defaultTripleClick","forceDOMFlush","endComposition","keydown","inOrNearComposition","lastIOSEnterFallbackTimeout","keyup","keypress","selectNodeModifier","flushed","lastClick","isNear","mouseDown","MouseDown","targetPos","allowDefault","mightDrag","targetDesc","addAttr","setUneditable","compositionEndedAt","touchdown","timeoutComposition","scheduleComposeEnd","composingTimeout","clearComposition","compositionstart","compositionupdate","markCursor","compositionend","brokenClipboardAPI","doPaste","singleNode","sliceSingleNode","clipboardData","clearData","selectNodeContents","captureCopy","paste","capturePaste","Dragging","dragCopyModifier","dragstart","dataTransfer","dragging","dragend","dragover","dragenter","drop","eventPos","$mouse","beforeInsert","beforeinput","compareObjs","WidgetType","noSpec","oldOffset","Decoration","InlineType","inclusiveStart","inclusiveEnd","DecorationSet","decorations","buildTree","findInner","childOff","mapInner","newLocal","onRemove","oldChildren","oldEnd","newEnd","dSize","mustRebuild","fromLocal","toLocal","childOffset","childNode","gather","mapAndGatherRemainingDecorations","from$1","byPos","mapChildren","addInner","baseOffset","takeSpansForNode","moveSpans","withoutNulls","removeInner","span$1","dec","localSet","DecorationGroup","removeOverlap","localsInner","hasNulls","localStart","working","insertAhead","viewDecorations","EditorView","_root","mount","getEditable","updateCursorWrapper","buildNodeViews","computeDocDeco","eventBelongsToView","initInput","pluginViews","updatePluginViews","handleDOMEvents","updateStateInner","setProps","reconfigured","redraw","updateSel","nA","nB","changedNodeViews","scroll","scrollToSelection","updateDoc","sel1","sel2","refDOM","refTop","newRefTop","oldScrollPos","overflowAnchor","localRect","storeScrollPos","forceSelUpdate","chromeKludge","destroyPluginViews","pluginView","setActive","stored","preventScroll","focusPreventScroll","domAtPos","posAtDOM","destroyInput","dispatchTransaction","NOTHING","DRAFTABLE","DRAFT_STATE","isDraft","isDraftable","shallowCopy","invokeGetters","thing","descriptors","scopes","currentScope","createDraft","draft","clonePotentialDraft","assertUnrevoked","finalizing","prepareCopy","assigned","modified","markChanged","proxyProperty","finalized","revoke","revoked","createHiddenProperty","markChangesRecursively","hasArrayChanges","hasObjectChanges","legacyProxy","willFinalize","baseDraft","needPatches","markChangesSweep","scopes$1","currentScope$1","createDraft$1","drafts","revocable","arrayTraps","objectTraps","source$1","markChanged$1","modernProxy","generatePatches","basePath","patches","inversePatches","minLength","generateArrayPatches","assignedValue","origValue","generateObjectPatches","applyPatches","patch","configDefaults","useProxies","autoFreeze","onAssign","onDelete","onCopy","immer","Immer","setUseProxies","produce","recipe","patchListener","defaultBase","_recipe","finalize","finalizeTree","finalizeProperty","inDraft","setAutoFreeze","makeAsyncSelect","_react","_Select","_utils","_stateManager","cacheOptions","filterOption","SelectComponent","Async","actionMeta","inputValue","lastRequest","loadedInputValue","loadedOptions","passEmptyOptions","optionsCache","loadOptions","select","arrayEvery","baseEvery","Dot","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","logp","powp","transformSymlog","transformSymexp","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","unsquare","radial","squared","quickselect","ascending","newLeft","newRight","quantile","value0","quantileSorted","thresholds","invertExtent","quantiles","quantize","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","newInterval","floori","offseti","millisecond","getMilliseconds","setDate","weekday","sunday","monday","tuesday","wednesday","thursday","friday","saturday","utcMinute","utcHour","utcDay","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcMonth","utcYear","ticker","tickIntervals","tickInterval","bisector","_tickIntervals","_ticker2","utcTicks","utcTickInterval","_ticker4","timeTicks","timeTickInterval","localDate","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","utcTime","locale_dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","utcFormats","parses","parseSpecifier","newFormat","newParse","utcParse","formatLocale","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","_interopRequire","_Motion","Motion","_StaggeredMotion","StaggeredMotion","_TransitionMotion","TransitionMotion","_spring","_presets","presets","_stripStyle","stripStyle","_reorderKeys","reorderKeys","_postcssValueParser2","_parser","_reducer2","_stringifier2","MATCH_CALC","ast","reducedAst","ifOverflowMatches","alwaysShow","ifOverflow","ReferenceDot","clipPathId","isX","isY","xAxis","yAxis","dotProps","renderDot","isFront","xAxisId","yAxisId","ReferenceLine","fixedX","fixedY","endPoints","isFixedX","isFixedY","isSegment","_props$viewBox","yCoord","xCoord","_orientation","_coord","_points","_points2","_endPoints","_endPoints$","_endPoints$2","lineProps","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","rangeMin","rangeMax","renderRect","specifiedTicks","dots","areas","idKey","valueKey","finalDomain","key1","key2","isTouch","changedTouches","Brush","leaveTimer","travellerDragStartHandlers","handleDrag","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleTouchMove","handleDragEnd","detachDragEndListener","handleLeaveWrapper","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","slideMoveStartX","attachDragEndListener","handleTravellerDragStart","endX","renderDefaultTraveller","travellerWidth","updateId","prevData","prevUpdateId","prevTravellerWidth","prevX","scaleValues","minIndex","getIndexInRange","getIndex","movingTravellerId","brushMoveStartX","_this$setState","chartElement","travellerX","traveller","travellerProps","onTouchStart","renderTraveller","_this$props9","_this$state3","getTextOfTick","_this$props10","alwaysShowText","_this$state4","isPanoramic","onTouchMove","renderBackground","renderPanorama","renderSlide","renderTravellerLayer","renderText","actorRef","sub_1","$keys","IObject","defined","secondPerFrame","reusedTuple","getNanoSeconds","loadTime","currentStyle","currentVelocity","styleValue","getMenuPlacement","MenuPortal","menuPortalCSS","LoadingMessage","NoOptionsMessage","loadingMessageCSS","noOptionsMessageCSS","MenuList","menuListCSS","MenuPlacer","menuCSS","_emotion","_reactDom","_propTypes","maxHeight","menuEl","placement","shouldScroll","isFixedPosition","scrollParent","getScrollParent","defaultState","offsetParent","scrollHeight","_menuEl$getBoundingCl","menuBottom","menuHeight","menuTop","containerTop","viewHeight","getScrollTop","marginBottom","marginTop","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","scrollDuration","animatedScrollTo","_constrainedHeight","spaceAbove","controlHeight","scrollTo","_constrainedHeight2","coercePlacement","_ref2$theme","alignToControl","neutral0","menuGutter","_getPrototypeOf2","maxMenuHeight","minMenuHeight","menuPlacement","menuPosition","menuShouldScrollIntoView","getPortalPlacement","getPlacement","placerProps","getUpdatedProps","innerRef","innerProps","cn","menu","baseUnit","overflowY","WebkitOverflowScrolling","noticeCSS","_ref5$theme","neutral40","_Component2","_getPrototypeOf3","appendTo","controlElement","isFixed","getBoundingClientObj","scrollDistance","menuWrapper","createPortal","cssKey","applyPrefixToName","isDocumentElement","normalizedHeight","excludeStaticParent","overflowRx","docEl","overflowX","increment","animateScroll","easeOutCubic","_raf","focusedEl","menuRect","focusedRect","overScroll","offsetTop","isTouchCapable","isMobileDevice","cleanValue","emptyString","NodeResolver","findDOMNode","loadingIndicatorCSS","IndicatorSeparator","indicatorSeparatorCSS","ClearIndicator","clearIndicatorCSS","DropdownIndicator","dropdownIndicatorCSS","DownChevron","CrossIcon","Svg","focusable","baseCSS","isFocused","neutral60","neutral20","neutral80","_ref3$theme","alignSelf","neutral10","keyframesName","keyframesInjected","_ref4$theme","LoadingDot","animationDelay","animationName","animationTimingFunction","marginLeft","isRtl","injectGlobal","baseEach","createBaseEach","bigint","band","ordinalRange","paddingInner","paddingOuter","pointish","isValidRotation","isValidScrollMode","ScrollMode","isValidSpreadMode","SpreadMode","isPortraitOrientation","getGlobalEventBus","dispatchToDOM","globalEventBus","EventBus","getPDFFileNameFromURL","defaultFilename","isDataSchema","reURI","reFilename","splitURI","suggestedFilename","noContextMenuHandler","parseQueryString","backtrackBeforeAllVisibleElements","getVisibleElements","scrollEl","views","sortByVisibility","horizontal","isElementBottomAfterViewTop","isElementRightAfterViewLeft","offsetLeft","numViews","firstVisibleElementInd","binarySearchFirstItem","lastEdge","currentWidth","currentHeight","viewWidth","viewRight","viewBottom","hiddenHeight","hiddenWidth","pc","roundToDivide","getPageSizeInches","_view","changeOrientation","approximateFraction","xinv","x_","getOutputScale","devicePixelRatio","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","pixelRatio","scaled","spot","skipOverflowHiddenElements","scrollWidth","_scaleY","_scaleX","watchScroll","viewAreaElement","debounceScroll","rAF","currentX","lastX","currentY","lastY","down","_eventHandler","normalizeWheelEventDelta","deltaX","deltaY","deltaMode","MOUSE_PIXELS_PER_LINE","waitOnEventOrTimeout","_ref2$delay","_off","eventHandler","WaitOnType","EVENT","timeoutHandler","TIMEOUT","moveToEndOfArray","moved","animationStarted","ProgressBar","NullL10n","TextLayerMode","RendererType","PresentationModeState","VERTICAL_PADDING","SCROLLBAR_PADDING","MAX_AUTO_SCALE","UNKNOWN_SCALE","MAX_SCALE","MIN_SCALE","DEFAULT_SCALE","DEFAULT_SCALE_VALUE","CSS_UNITS","AutoPrintRegExp","NORMAL","CHANGING","FULLSCREEN","CANVAS","SVG","DISABLE","ENABLE","ENABLE_ENHANCE","VERTICAL","HORIZONTAL","WRAPPED","ODD","EVEN","formatL10nValue","getLanguage","getDirection","fallback","pageTop","dispatchDOMEvent","initCustomEvent","_ref3$dispatchToDOM","_dispatchToDOM","externalListeners","_args5","bar","_indeterminate","progressSize","_percent","_updateBar","viewer","scrollbarWidth","offsetWidth","MapShim","class_1","__entries__","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","timeoutCallback","addObserver","connect_","removeObserver","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","ResizeObserver","nativeMax","nativeMin","lastThis","maxWait","timerId","lastInvokeTime","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","_adapterJs","__importDefault","ProseMirror","useProseMirror","useProseMirror_1","ProseMirror_1","startCase","FormatSpecifier","zero","comma","mid","ascendingComparator","_mergePersistedStateJs","mergePersistedState","_actionTypesJs","actionTypes","_persistStateJs","_point","_x0","_x1","_y0","_y1","Basis","areaStart","_line","areaEnd","lineStart","lineEnd","BasisClosed","_y2","_y3","_y4","BasisOpen","LinearClosed","Linear","slope3","h0","slope2","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","_t0","curve","defined0","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveLinear","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","getX","getY","Curve","lineFunction","baseLine","connectNulls","curveFactory","formatPoints","formatBaseLine","areaPoints","pathRef","realPath","INITIAL_STATE","componentStack","ErrorBoundary","resetErrorBoundary","onReset","componentDidCatch","beforeCapture","showDialog","react","onMount","onUnmount","resetError","dP","cof","noWobble","stiffness","gentle","wobbly","IndicatorsContainer","indicatorsContainerCSS","ValueContainer","valueContainerCSS","SelectContainer","containerCSS","alignItems","flexWrap","hasValue","_ref$theme","neutral5","justifyContent","outline","neutral30","menuIsOpen","GroupHeading","groupHeadingCSS","groupCSS","textTransform","cleanProps","selectProps","Heading","headingProps","inputCSS","_reactInputAutosize","inputStyle","isHidden","MultiValueRemove","MultiValueLabel","MultiValueContainer","MultiValueGeneric","multiValueRemoveCSS","multiValueLabelCSS","multiValueCSS","_indicators","minWidth","cropWithEllipsis","textOverflow","dangerLight","danger","MultiValue","removeProps","Remove","containerInnerProps","labelInnerProps","removeInnerProps","optionCSS","isSelected","primary25","userSelect","WebkitTapHighlightColor","primary50","placeholderCSS","neutral50","baseFindIndex","baseIsNaN","strictIndexOf","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","__webpack_amd_options__","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","unenroll","_unrefActive","_onTimeout","INFINITY","isFlattenable","flip","_convert","_convert2","operator","convertMathExpression","flipValue","isValueType","reduceAddSubExpression","reduceDivisionExpression","reduceMultiplicationExpression","reduceMathExpression","baseFindKey","symbolObservablePonyfill","SimpleLinkService","PDFLinkService","_ui_utils","_ref$externalLinkTarg","_ref$externalLinkRel","_ref$externalLinkEnab","_ref$ignoreDestinatio","ignoreDestinationZoom","_ignoreDestinationZoom","pdfDocument","pdfViewer","pdfHistory","_pagesRefCache","currentPageNumber","pagesRotation","goToDestination","namedDest","explicitDest","destRef","_cachedPageNumber","cachePageRef","pagesCount","pushCurrentPosition","scrollPageIntoView","destArray","phraseSearch","nameddest","zoomArgs","zoomArg","zoomArgNumber","allowNegativeOffset","pagemode","destLength","allowNull","isValidExplicitDestination","back","pageNum","pageRef","refStr","isPageVisible","acceptedFiles","acceptedFilesArray","mimeType","baseMimeType","validType","STARTS_WITH_VOWEL","startsWithVowel","ending","irregulars","indefinite","handleOptions","articleOnly","irregularWords","NUMBERS","EIGHT_ELEVEN_EIGHTEEN","ELEVEN_EIGHTEEN","startsWith11Or18","ACRONYM","IRREGULAR_ACRONYM","caseInsensitive","isIrregular","isIrregularAcronym","initialVowel","EXTRAS","getFirst","$inject_window_ResizeObserver","reactDom","_interopDefaultLegacy","_interopNamespace","$inject_window_ResizeObserver__default","React__namespace","commonjsGlobal","isObject_1","root$2","root$1","now_1","reWhitespace","trimmedEndIndex","reTrimStart","_baseTrim","Symbol$1","objectProto$1","nativeObjectToString$1","symToStringTag$1","_getRawTag","isObject$2","isObject$1","debounce_1","throttle_1","patchResizeHandler","resizeCallback","refreshMode","refreshRate","refreshOptions","isSSR","isDOMElement","HTMLDocument","createNotifier","onResize","setSize","handleWidth","handleHeight","ResizeDetector","cancelHandler","resizeHandler","attachObserver","targetRef","observerOptions","getElement","observableElement","resizeObserver","targetDomEl","currentElement","getRenderType","createResizeHandler","notifyResize","skipOnMount","createRef","typedChildren","WrapperTag","nativeProps","PureComponent","useEnhancedEffect","useResizeDetector","skipResize","localRef","patchedResizeHandler","withResizeDetector","ComponentInner","ResizeDetectorHOC","forwardRefWrapper","ORIENT_MAP","originCoordinate","isFinit","deferClear","getDisplayedData","graphicalItems","dataStartIndex","dataEndIndex","itemsData","itemData","getTooltipContent","chartData","activeIndex","activeLabel","tooltipAxis","displayedData","allowDuplicatedCategory","getTooltipData","rangeObj","rangeData","calculateTooltipPos","orderedTooltipTicks","tooltipTicks","activeTooltipIndex","activePayload","activeCoordinate","_angle","_radius","getActiveCoordinate","getAxisMap","_ref4$axisType","AxisComp","axisIdKey","axes","stackOffset","duplicate","errorBarsDomain","axisDomain","getAxisMapByAxes","Axis","getAxisMapByItems","createDefaultState","defaultShowTooltip","brushItem","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","generateCategoricalChart","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","getFormatItems","globalMaxBarSize","_getAxisNameByLayout","hasGraphicalBarItem","formattedItems","childMaxBarSize","axisObj","_objectSpread6","cateAxis","cateTicks","itemIsBar","_getBandSizeOfAxis","barBandSize","_objectSpread7","composedFn","getComposedData","updateStateOfAxisMapsOffsetAndStackGroups","_getAxisNameByLayout2","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","offsetH","offsetV","brushBottom","calculateOffset","legendBBox","cateAxisMap","ticksObj","tooltipAxisBandSize","CategoricalChartWrapper","uniqueChartId","legendInstance","deferId","clearDeferId","handleLegendBBoxUpdate","handleReceiveSyncEvent","cId","chartId","syncId","applySyncEvent","handleBrushChange","triggerSyncEvent","handleMouseEnter","mouse","getMouseInfo","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","tooltipPayload","tooltipPosition","handleItemMouseLeave","handleMouseMove","persist","handleMouseLeave","cancelThrottledTriggerAfterMouseMove","handleOuterEvent","handleMouseDown","handleMouseUp","handleTouchStart","handleTouchEnd","verticalCoordinatesGenerator","horizontalCoordinatesGenerator","axesTicksGenerator","renderCursor","tooltipEventType","getTooltipEventType","cursorComp","getCursorRectangle","_this$getCursorPoints","getCursorPoints","cursorProps","payloadIndex","renderPolarAxis","axisOption","renderXAxis","renderAxis","renderYAxis","renderGrid","renderPolarGrid","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","renderLegend","legend","renderTooltip","tooltipItem","_this$state5","renderBrush","_this$state6","renderReferenceElement","_this$state7","_element$props2","renderActivePoints","activePoint","basePoint","isRange","_item$item$props","activeDot","renderActiveDot","renderGraphicChild","filterFormatItem","_this$state8","_item$item$props2","itemEvents","onCLick","renderCustomized","throttleDelay","containerOffset","_this$state9","xScale","yScale","xValue","yValue","toolTipData","_this$state10","_this$state11","_cx","_cy","innerPoint","outerPoint","_this$state12","tooltipEvents","onTouchEnd","_maxListeners","syncMethod","_this$state13","validateChartX","validateChartY","axisOptions","_this$state$offset","_this$state$xAxisMap","_this$state$xAxisMap$","_this$state$yAxisMap","_this$state$yAxisMap$","chartXY","itemDisplayName","activeBarItem","_activeBarItem","CartesianGrid","XAxis","YAxis","Line","Area","Radar","RadialBar","Scatter","Pie","Funnel","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","renderClipPath","parseEventsOfWrapper","prevHeight","prevLayout","prevStackOffset","prevMargin","_defaultState","keepFromPrevState","updatesToState","newUpdateId","dot","createFind","baseSome","HAS_WEAKSET_SUPPORT","sameValueZeroEqual","isReactElement","$$typeof","getNewCacheFallback","getNewCache","createCircularEqualCreator","_comparator","isCacheableA","isCacheableB","hasA","hasB","areObjectsEqual","reactElementA","reactElementB","HAS_MAP_SUPPORT","HAS_SET_SUPPORT","createComparator","createIsEqual","aShape","bShape","areArraysEqual","areRegExpsEqual","isValueEqual","matchedIndices_1","aValue","aKey","hasMatch_1","matchIndex_1","bValue","bKey","areMapsEqual","matchedIndices_2","hasMatch_2","matchIndex_2","areSetsEqual","circularDeepEqual","circularShallowEqual","createCustomEqual","Cross","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","circleTangency","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","Sector","forceCornerRadius","deltaRadius","cr","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","Events","EE","emitter","_eventsCount","clearEvent","EventEmitter","eventNames","ee","listenerCount","a1","a2","a3","a4","a5","prefixed","createThunkMiddleware","extraArgument","thunk","withExtraArgument","getSubset","subset","nested","finalPaths","put","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","devToolsEnhancer","Color","_darker","_brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgbConvert","rgb_formatHex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","basis","v1","v2","v3","channels","displayable","formatHsl","brighter","darker","gamma","nogamma","exponential","rgbGamma","rgbSpline","spline","isNumberArray","genericArray","nb","na","reA","reB","bm","bs","bi","numberArray","e10","e5","tickIncrement","power","tickStep","step0","step1","_r","_r2","eachFunc","_copyToClipboard","_React$PureComponent","deselectCurrent","clipboardToIE11Formatting","reselectPrevious","webkitUserSelect","MozUserSelect","msUserSelect","execCommand","copyKey","prompt","prosemirror_state_1","__createBinding","k2","__setModuleDefault","__importStar","prosemirror_view_1","initialProps","viewRef","buildProps","useImperativeHandle","createDesc","gOPS","pIE","$assign","isEnum","toIObject","dPs","createDict","buggy","_mapToZero2","_stripStyle2","_stepper4","_performanceNow2","_raf2","_shouldStopAnimation2","msPerFrame","wasAnimating","animationID","prevTime","accumulatedTime","unreadPropStyle","clearUnreadPropStyle","destStyle","lastIdealStyle","lastIdealVelocity","startAnimationIfNecessary","propsStyle","timeDelta","currentFrameCompletion","framesToCatchUp","newLastIdealStyle","newLastIdealVelocity","newCurrentStyle","newCurrentVelocity","newLastIdealStyleValue","newLastIdealVelocityValue","_stepper","_stepper2","nextIdealX","nextIdealV","defaultStyle","renderedChildren","unreadPropStyles","currentStyles","currentVelocities","lastIdealStyles","lastIdealVelocities","someDirty","destStyles","shouldStopAnimationAll","newLastIdealStyles","newLastIdealVelocities","newCurrentStyles","newCurrentVelocities","defaultStyles","_mergeDiff2","rehydrateStyles","mergedPropsStyles","plainStyles","cUnreadPropStyles","mergedPropsStyle","mergeAndSync","willEnter","willLeave","didLeave","oldMergedPropsStyles","oldCurrentStyles","oldCurrentVelocities","oldLastIdealStyles","oldLastIdealVelocities","newMergedPropsStyles","oldMergedPropsStyle","leavingStyle","newMergedPropsStyleCell","foundOldIndex","plainStyle","unmounting","_mergeAndSync","propStyles","_mergeAndSync2","newMergedPropsStyle","styleThatEntered","defaultStyleCell","_mergeAndSync3","hydratedStyles","prevKeyIndex","nextKeyIndex","nextOrderA","nextOrderB","prevOrderA","prevOrderB","pivot","_presets2","toHex","lens","getLens","validLen","placeHoldersLen","_byteLength","curByte","_memoizeOne","_Menu","_reactFastCompare","_filters","_index","_index2","_builtins","_index3","_theme","backspaceRemovesValue","blurInputOnSelect","captureMenuScroll","closeMenuOnSelect","closeMenuOnScroll","controlShouldRenderValue","escapeClearsValue","createFilter","formatGroupLabel","getOptionValue","isSearchable","isOptionDisabled","loadingMessage","menuShouldBlockScroll","noOptionsMessage","openMenuOnFocus","openMenuOnClick","pageSize","screenReaderStatus","tabSelectsValue","instanceId","ariaLiveSelection","ariaLiveContext","focusedOption","focusedValue","inputIsHidden","isComposing","menuOptions","selectValue","controlRef","focusedOptionRef","menuListRef","defaultComponents","focusInput","blurInput","inputIsHiddenAfterUpdate","onMenuClose","clearFocusValueOnUpdate","isOptionSelected","announceAriaLiveSelection","removedValue","lastSelectedValue","instancePrefix","valueEventAriaMessage","instructionsAriaMessage","blockOptionHover","openMenu","openAfterFocus","clearValue","touch","initialTouchX","initialTouchY","userIsDragging","onControlMouseDown","onClearIndicatorMouseDown","onDropdownIndicatorMouseDown","onMenuOpen","announceAriaLiveContext","hideSelectedOptions","focusValue","removeValue","popValue","selectOption","focusOption","cacheComponents","_selectValue","_menuOptions","buildMenuOptions","startListeningComposition","startListeningToTouch","onScroll","getNextFocusedValue","getNextFocusedOption","scrollToFocusedOptionOnUpdate","stopListeningComposition","stopListeningToTouch","openAtIndex","selectedIndex","_this$props11","focusedIndex","nextFocus","defaultTheme","getTheme","nextSelectValue","lastFocusedIndex","lastFocusedOption","_this$props12","formatOptionLabel","onCompositionStart","onCompositionEnd","_props$inputValue","toOption","shouldHideSelectedOptions","onHover","onOptionHover","onSelect","optionId","getElementId","onMouseOver","hasGroups","groupId","_this$props13","focusedValueMsg","valueFocusAriaMessage","focusedOptionMsg","optionFocusAriaMessage","resultsMsg","resultsAriaMessage","screenReaderMessage","countOptions","_this$props14","DummyInput","getInputRef","onInputBlur","onInputFocus","ariaAttributes","_this$commonProps","commonProps","autoCapitalize","autoComplete","autoCorrect","spellCheck","_this$components","SingleValue","Placeholder","_this$props15","opt","singleValue","_this$props16","onClearIndicatorTouchEnd","_this$props17","_this$components2","onDropdownIndicatorTouchEnd","_this$components3","Group","Menu","Option","_this$props18","menuPortalTarget","onMenuScrollToTop","onMenuScrollToBottom","menuUI","getFocusedOptionRef","hasOptions","headingId","menuPlacementProps","menuElement","_ref6$placerProps","onMenuMouseDown","onMenuMouseMove","ScrollCaptor","onTopArrive","onBottomArrive","ScrollBlock","getMenuListRef","_this$props19","A11yText","constructAriaLiveMessage","_this$components4","Control","_this$props20","getCommonProps","renderLiveRegion","getControlRef","onControlTouchEnd","renderPlaceholderOrValue","renderInput","renderClearIndicator","renderLoadingIndicator","renderIndicatorSeparator","renderDropdownIndicator","renderMenu","renderFormField","keyList","hasProp","arrA","arrB","dateA","dateB","regexpA","regexpB","_diacritics","trimString","defaultStringify","rawInput","_ignoreCase$ignoreAcc","ignoreAccents","matchFrom","stripDiacritics","diacritics","letters","_A11yText","_DummyInput","_NodeResolver","_ScrollBlock","_ScrollCaptor","onExited","emotion","touchScrollTarget","blurSelectInput","getScrollTarget","_constants","activeScrollLocks","ScrollLock","accountForScrollbars","targetStyle","STYLE_KEYS","originalStyles","currentPadding","adjustedPadding","LOCK_STYLES","isTouchDevice","preventTouchMove","listenerOptions","preventInertiaScroll","allowTouchMove","totalScroll","currentScroll","onBottomLeave","onTopLeave","_this$scrollTarget","scrollTarget","isDeltaPositive","availableScroll","shouldCancelScroll","isBottom","isTop","cancelScroll","handleEventDelta","touchStart","startListening","stopListening","onWheel","ScrollCaptorSwitch","_containers","_Control","_Group","_Input","_MultiValue","_Option","_Placeholder","_SingleValue","mergeStyles","rsCss","clearIndicator","control","dropdownIndicator","groupHeading","indicatorsContainer","indicatorSeparator","loadingIndicator","menuList","menuPortal","multiValue","multiValueLabel","multiValueRemove","valueContainer","primary75","neutral70","neutral90","defaultInputValue","defaultMenuIsOpen","StateManager","getProp","baseIndexOf","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","attachEvent","findIndexFunc","toFinite","spreadableSymbol","baseMap","baseSortBy","compareMultiple","orders","comparer","compareAscending","objCriteria","criteria","othCriteria","ordersLength","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","overRest","setToString","otherArgs","baseSetToString","shortOut","nativeNow","lastCalled","stamp","baseRange","nativeCeil","arrayIncludes","arrayIncludesWith","createSet","isCommon","seenIndex","ValueParser","bubble","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","slash","colon","star","escapePos","whitespacePos","balanced","unclosed","stringifyNode","customResult","EXP","dotted","sciPos","containsNumber","JisonParserError","ex2","yy","hasPartialLrUpgradeOnConflict","errorRecoveryTokenDiscardCount","symbols_","terminals_","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","TERROR","originalQuoteName","originalParseError","cleanupAfterParse","constructParseErrorInfo","yyMergeLocationInfo","__reentrant_call_depth","__error_infos","__error_recovery_infos","quoteName","id_str","getSymbolName","describeSymbol","terminal_descriptions_","collect_expected_token_set","do_not_describe","tokenset","state_descriptions_","productions_","bp","performAction","yystate","yysp","yyvstack","lexer","bt","defaultActions","bda","parseError","ExceptionClass","recoverable","sstack","vstack","sp","NO_ACTION","__lexer__","sharedState_yy","pre_parse","post_parse","pre_lex","post_lex","fastLex","yyGetSharedState","shallow_copy_noclobber","resultValue","invoke_post_methods","do_not_nuke_errorinfos","cleanupAfterLex","pei","errStr","yytext","token_id","yylineno","new_state","symbol_stack","state_stack","value_stack","stack_pointer","rec","yyrulelen","this_production","lex","yyval","_$","retval","setInput","canIUse","errSymbolDescr","showPosition","ntsymbol","JisonLexerError","ERROR","__currentRuleSet__","__decompressed","_backtrack","_input","_more","_signaled_error_token","conditionStack","yyleng","yylloc","constructLexErrorInfo","show_input_position","prettyPrintRange","pos_str","yyerror","lineno_msg","lexerErrorsAreRecoverable","extra_error_attributes","last_column","first_line","first_column","last_line","rule_re","rule_ids","rule_regexes","rule_new_ids","__rule_regexes","__rule_count","editRemainingInput","cpsArg","slice_len","ch2","unput","pre_lines","backtrack_lexer","pastInput","past","upcomingInput","maxPrefix","maxPostfix","deriveLocationInfo","preceding","following","context_loc","context_loc2","l0","l1","lineno_display_width","ws_prefix","nonempty_line_indexes","lno","errpfx","clip_start","MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT","clip_end","intermediate_line","describeYYLLOC","display_range_too","l2","test_match","indexed_rule","backup","match_str","match_str_len","tempMatch","_currentRules","trackPosition","topState","regexes","pendingInput","activeCondition","conditionStackDepth","popState","stateStackSize","yyrulenumber","YY_START","simpleCaseActionClusters","29","30","31","32","33","34","35","36","37","38","39","Parser","_cssUnitConverter","_cssUnitConverter2","convertAbsoluteLength","conversions","sourceUnit","targetUnit","_reducer","prec","finalState","_actionTypesJs2","defaultStorage","defaultKey","finalStorage","finalKey","finalCallback","_bufferActionsJs2","_persistStateMiddlewareJs2","persistedState","persistState","queuedAction","del","removeItem","ArchiveJobModal","jobStatus","archiveText","CloningJobModal","Plans","POLYMER_HIRE_PLANS","ATS_TIER_GEMINI","ATS_TIER_APOLLO","ATS_TIER_ARTEMIS","HideJobModal","plan","instructions","JobListItemMenu","isLoadingCloneJob","isLoadingUpdateJob","jobUrl","careersPageUrl","handleClickOnViewPreview","handleToggleJobVisibility","toggleJobVisibility","handleClickOnArchive","viewJobPostingButtonNode","visibilityToggleSwitchNode","publishJobButtonNode","archiveJobButtonNode","cloneJobButtonNode","stripeSubscriptionInGoodStanding","isAdmin","createStripeCheckoutSession","priceId","successUrl","cancelUrl","locationPathname","checkoutMode","planType","createSubscription","changeSubscriptionViaStripePortal","subscriptionItemId","returnUrl","applyPromoCode","promoCode","swapCheckoutSessionIdForPaymentMethod","createStripeCustomerPortalSession","getStripeCustomer","getStripeCustomerSubscription","getPrices","syncWithStripe","useCreateStripeCheckoutSession","useCreateStripeCustomerPortalSession","useCreateSubscription","useStripeCustomer","useStripeCustomerSubscription","useBillingPrices","SubscriptionRequiredModal","billingPricesData","isFetching","isFetchingBillingPrices","isLoadingBillingPrices","billingPrices","targetBillingPrice","lookupKey","errorOnCreateCheckoutSession","isLoadingCreateCheckoutSession","serverEnv","SERVER_ENV","submitButtons","STRIPE","redirectToCheckout","createCheckoutSession","create$1","createState","previousState","equalityFn","currentSlice","listenerToAdd","nextSlice","previousSlice","subscribeWithSelector","useStore","newStateSlice","_useReducer","_useReducer2","stateRef","selectorRef","equalityFnRef","erroredRef","currentSliceRef","hasNewStateSlice","stateBeforeSubscriptionRef","nextStateSlice","useFeatureFlipperStore","setFeatures","gateBoolean","gate","gates","gateActors","flipperId","gateGroups","flipperGroup","FeatureFlipper","featureObj","feat","useFeatureFlipper","Features","PLAN_BASED_BILLING","planOptions","JobListItem","planBasedBillingEnabled","isLoadingCreateSubscription","isLoadingPublishJob","handleCreateSubscriptionAndPublishJob","handlePublishJob","jobData","jobPostUrl","labelsNode","unarchivedCount","notVisibleLabel","draftLabel","inReviewLabel","archivedDateLabel","archivedAtTimestamp","detailsNode","JobDetails","jobCategoryName","JobDetailNode","kindPretty","isAllowedRemote","displayLocation","remotenessPretty","applicantCounts","ApplicantCounts","inboxCount","JobInfo","JobTitle","data-filter-by","JobControls","stripeDefaultPaymentMethodOnFile","SubscriptionRequiredModalNew","Seperator","NewJobCenterModal","setTitle","isLoadingCreateJob","isValidRole","minimumRole","roles","org_interviewer","org_user","org_admin","org_owner","god_admin","IfAuthorized","adminOnly","useAuthorization","JobListFilter","authorized","isAuthorized","yourJobsLink","allJobsLink","archivedJobsLink","JobList","hasStatus","webflowUpdatesInfoBannerEnabled","WEBFLOW_UPDATE_ALERTS","hadAnActiveSubscriptionInThePast","publishedJobsCount","shouldDisplayWebflowUpdatesBanner","hasWebflowAuthentication","webflowAuthenticatedViaApiV2","jobsData","refetch","refetchJobs","isLoadingJobs","isFetchingJobs","allJobsData","refetchAllJobs","isLoadingAllJobs","isFetchingAllJobs","jobs","handleClickCreateNewJob","dataLayer","ctaLocation","ctaLabel","transactionId","transactionValue","userData","getWebflowBannerMessage","isAfterDeadline","bannerLinkToWebflow","orginalPathname","itemNodes","emptyContent","buildItemNodes","bannerLinkToContent","stripeSubscriptionStatus","getBanner","NavBar","CreateJobButtonContainer","careersPages","Header","Footer","InviteListItem","invite","newRole","setNewRole","updateInviteRole","rolePretty","statusMessage","Member","Name","Email","Controls","Role","resendInvite","destroyInvite","DisabledAction","MemberListItem","organizationUser","isSelf","isOrgOwner","isCurrentOwner","currentUserRole","setRole","updateOrganizationUserRole","deactivateUser","deactivateOrganizationUser","activateUser","activateOrganizationUser","isActiveButton","roleNode","transferOrgOwnership","createInvite","updateInvite","useGetInvite","getInvite","useAllInvites","getInvites","NewInviteForm","onFormUpdate","isLoadingCreateInvite","useCreateInvite","invitesData","isLoadingInvites","isViableEmail","teamMembersEmails","organizationUsers","invitedTeamMembersEmails","emailDuplicated","invitedEmailDuplicated","toLower","RoleAbilities","InviteModal","ConfirmTransferOwnershipModal","SettingsContainer","fillHeight","sidebar","fullWidthForm","bottomBar","hasSidebar","Form","hasHeader","Row","Actions","Description","Sidebar","updateUser","updateOrganizationUser","AccountTeam","currentUserId","currentOwnerId","ownerId","isLoadingUpdateInvite","useUpdateInvite","isLoadingResendInvite","useResendInvite","isLoadingDestroyInvite","useDestroyInvite","isLoadingUpdateUser","userId","useUpdateUser","isLoadingUpdateOrganizationUser","useUpdateOrganizationUser","isLoadingDeactivateUser","useDeactivateUser","isLoadingDeactivateOrganizationUser","useDeactivateOrganizationUser","transferOwnership","isLoadingTransferOwnership","handleUpdateOrganizationUserRole","handleDeactivateOrganizationUser","general","handleActivateOrganizationUser","handleClickTransferOwnership","handleTranferOwnership","handleResendInvite","handleDestroyInvite","InviteTeamMemberButton","SidebarContent","Team","AccountOrganizationDetails","isLoadingUpdateOrganization","handleSubmit","onFormInputChange","expandedOrganizationRemotenessOptions","bottomBarContent","AccountIntegrationsGoogleAnalytics","setSettings","BottomBar","UnsavedChangesGuard","updatedSettings","APP_JOBBOARD_ROOT_URL","googleAnalyticsTrackingId","AccountIntegrationsGoogleJobs","enableGoogleJobsStructuredData","FormFieldMapper","mappingOptions","selectedValue","Field","OauthConnectButton","Connect","OauthReconnectModal","buttonLabel","deleteOauthAuthentication","provider","useDeleteOauthAuthentication","getWebflowSites","getWebflowCollections","createWebflowIntegration","siteId","siteName","sitePreviewUrl","collectionId","collectionName","fieldMapping","updateWebflowIntegration","webflowIntegrationId","useWebflowCollection","getWebflowCollection","AccountIntegrationsWebflow","webflowIntegration","webflowUpdatesInfoModalEnabled","hasWebflowIntegration","hasWebflowSite","hasWebflowCollection","isLoadingDeleteOauthAuthentication","webflowSitesData","isLoadingWebflowSites","sitesError","sitesStatus","useWebflowSites","webflowCollectionsData","isLoadingWebflowCollections","isFetchingWebflowCollections","collectionsError","collectionsStatus","useWebflowCollections","webflowCollectionData","isLoadingWebflowCollection","useCreateWebflowIntegration","updateSelectedSite","isLoadingUpdateSelectedSite","useUpdateSelectedSite","updateSelectedCollection","isLoadingUpdateSelectedCollection","useUpdateSelectedCollection","updateFieldMapping","isLoadingUpdateFieldMapping","useUpdateFieldMapping","webflowSites","webflowCollection","shouldUseWebflowApiV2","webflowCollections","setWebflowCollections","setFieldMapping","reconnectWebflowModalOpened","setReconnectWebflowModalOpened","isConnectedToWebflow","reactQuery","shouldOpenReconnectWebflowModal","handleAuthenticationUpdate","copyBeforeDeadline","copyAfterDeadline","getNameValue","getRequiredValue","filteredWebflowFields","isEditable","displayNameA","displayNameB","filteredPolymerFieldsOptions","handleWebflowFieldSelection","originFieldValue","mappedFieldValue","ViewLink","requiredWebflowIds","usedWebflowIds","missingWebflowIds","webflowSite","integrationData","previewUrl","site","Loading","Requirements","RequirementInstructions","Requirement","RequirementTitle","FieldsHeader","Fields","filteredWebflowFieldsOptions","selectedMapping","Disconnect","getSlackChannelList","createSlackChannelIntegration","channelId","channelNameNormalized","FormFieldset","Fieldset","FormCheckbox","AccountIntegrationsSlack","isLoadingUpdate","slackIntegrationGranularSettingsEnabled","SLACK_INTEGRATION_GRANULAR_SETTINGS","slackChannelList","isLoadingSlackChannelList","useSlackChannelList","hasSlackAuthentication","isLoadingCreateSlackChannelIntegration","useCreateSlackChannelIntegration","connectionActions","confirmationCopy","handleSlackPreferenceChange","newSettings","descriptionCopy","nameNormalized","slackChannelIntegration","slackNewJobApplications","slackNewChannelMessages","getDiscordChannelList","createDiscordChannelIntegration","AccountIntegrationsDiscord","discordChannelList","isLoadingDiscordChannelList","refetchDiscordChannelList","useDiscordChannelList","hasDiscordAuthentication","isLoadingCreateDiscordChannelIntegration","useCreateDiscordChannelIntegration","Action","discordChannelIntegration","createRegisteredWebhook","updateRegisteredWebhook","deleteRegisteredWebhook","useRegisteredWebhooks","getRegisteredWebhooks","AccountIntegrationsPolymerWebhooks","webhooksData","webhookData","setWebhookData","isLoadingCreateRegisteredWebhook","isLoadingUpdateRegisteredWebhook","isLoadingDeleteRegisteredWebhook","updateMethod","buttonDisabled","CopyField","isLink","CopyLink","AccountIntegrationsZapier","organizationApiKeys","apiKey","zapierApiKey","apiUrl","LinkedinIdConfirmationModal","linkedInCompanyId","confirmedId","setConfirmedId","modalButtons","companyPageUrl","AccountIntegrationsLinkedIn","companyId","setCompanyId","linkedinCompanyId","AccountIntegrationsXHiring","enableXHiring","setEnableXHiring","introDescription","AccountIntegrationsContainer","renderProps","FormConditionalFields","updateCareersPage","careersPage","createCustomDomain","customDomain","deleteCustomDomain","useUpdateCareersPage","useCareersPageCustomDomainStatus","careersPageId","getCareersPageCustomDomainStatus","JobBoardLogoUploader","hasLogo","logoFilename","logoMedium","faviconUrl","mutateAsync","isLoadingUpdateCareersPage","logo","LogoPreview","JobBoardSocialShareImageUploader","socialShareImageUrl","socialShareImageFilename","hasSocialShareImage","socialShareImageType","hasFile","socialShareImage","CardPreview","AccountJobBoardBranding","setCareersPage","logoVisibility","billboardTitle","billboardIntro","billboardVideoUrl","handleOnSubmit","updateCareersPageState","validLogoVisiblity","AccountJobBoardSeo","pageTitle","pageDescription","socialShareTitle","socialShareDescription","AccountJobBoardNavigation","hasCustomNavigation","customNavigationUrl","navigationDescription","tar","dequal","useDeepCompareMemoize","signalRef","40","44","45","46","59","61","91","92","106","107","108","109","110","111","144","145","160","161","162","163","164","165","173","186","187","188","189","190","191","192","219","220","221","222","229","48","49","51","52","53","54","55","56","57","brokenModifierNames","normalizeKeyName","modifiers","keymap","bindings","handleKeyDown","keydownHandler","baseName","keyName","isChar","direct","fromCode","withShift","InputRule","cutOff","textBefore","emDash","ellipsis","smartQuotes","wrappingInputRule","joinPredicate","textblockTypeInputRule","GOOD_LEAF_SIZE","RopeSequence","leafAppend","leafPrepend","appendInner","Append","sliceInner","getInner","forEachInner","forEachInvertedInner","Leaf","leftLen","Branch","eventCount","popEvent","preserveItems","remap","remapping","addAfter","addTransform","histOptions","newItems","oldItems","lastItem","merged","cutPoint","DEPTH_OVERFLOW","mirrorPos","mirrorOffset","addMaps","rebased","rebasedTransform","rebasedCount","rebasedItems","newUntil","iRebased","newMaps","emptyItemCount","newItem","HistoryState","undone","prevRanges","rangesFor","mapRanges","histTransaction","redo","mustPreserveItems","historyKey","newHist","historyState","cachedPreserveItems","cachedPreserveItemsPlugins","historyPreserveItems","closeHistoryKey","olDOM","ulDOM","liDOM","orderedList","bulletList","listItem","wrapInList","listType","doJoin","outerRange","$insert","joinBefore","splitDepth","splitPos","doWrapInList","splitListItem","itemType","grandParent","keepItem","liftListItem","endOfList","liftToOuterList","indexBefore","liftOutOfList","sinkListItem","nestedBefore","textblockAt","findCutBefore","findCutAfter","defaultBlockAt","exitCode","above","splitBlock","can","deleteBarrier","$cut","conn","joinMaybeClear","canDelAfter","joinAt","selAfter","at","wrap$1","end$1","wrapIn","applicable","toggleMark","markApplies","ref$2","$from$1","$to$1","spaceStart","spaceEnd","chainCommands","commands","backspace","pcBaseKeymap","macBaseKeymap","baseKeymap","os","pDOM","blockquoteDOM","hrDOM","preDOM","brDOM","paragraph","horizontal_rule","heading","code_block","hard_break","emDOM","strongDOM","codeDOM","em","strong","checkboxItem","default","class","checkboxList","listNodes","ordered_list","bullet_list","list_item","checkbox_item","checkbox_list","Schema","frameborder","allowfullscreen","subscript","superscript","strikethrough","underline","insertBreak","standardKeys","Backspace","undoable","isInputRules","toUndo","nodeSel","Enter","delete","nodeCanReplace","afterValidConent","canSplitCheckbox","Tab","stuff","messagesKeys","removeHardBreakAndInsertParagraph","insertHardBreak","strokeLinecap","strokeLinejoin","check_list","markActive","blockActive","isBlockquote","canInsert","icons","blocks","FullModal","onCancelWithBackgroundClick","getCommentTemplates","createCommentTemplate","updateCommentTemplate","deleteCommentTemplate","useCommentTemplates","useCommentTemplate","commentTemplateId","getCommentTemplate","useUpdateCommentTemplate","PreviewSelection","commentTemplatePreview","commentTemplatePreviewIsLoading","PreviewContainer","CommentTemplateSelectionModal","commentTemplates","commentTemplate","setCommentTemplate","commentTemplateSelectOptions","ModalContent","FormHeader","handleInsertTemplate","useProseMirrorEditorStore","linkToolbarIsActive","setLinkToolbarIsActive","linkAttrs","setLinkHref","setLinkAttrs","clearLinkStore","handleClickOnLinkMenuItem","editorState","imageToolbarIsActive","imageSrc","clearImageStore","handleClickOnImageMenuItem","iframeToolbarIsActive","iframeSrc","clearIframeStore","handleClickOnIframeMenuItem","BLOCK_STYLE_OPTIONS","MenuBar","enableCheckboxes","enableInsertMenuItems","enableInsertReviewTemplates","showAsTextArea","currentBlockType","currentLevel","currentActiveTextLevel","valueFromLevel","currentSelectedBlockStyleOption","MenuContainer","InsertButton","FloatingToolbar","menuRef","calculateStyle","menuWidth","menuWidthOffset","leftCoordinate","SelectionToolbar","menuSection","SelectionToolbarMenuItems","LinkToolbar","setUrl","handleSaveUrl","isLinkActive","LinkToolbarMenuItems","ImageToolbar","ImageToolbarMenuItems","IframeToolbar","ariaHidden","IframeToolbarMenuItems","MessageMailMergeMenuBar","allowSenderMailMergeFields","handleInsert","DropCursorView","editorView","cursorPos","updateOverlay","setCursor","nodeRect","parentTop","rect$1","scheduleRemoval","dragleave","relatedTarget","fI","dI","GapCursor","GapBookmark","closedBefore","closedAfter","allowGapCursor","mustMove","$cur","$cur$1","arrow","dirStr","$found","drawGapCursor","inputRules","handleTextInput","createSelectionBetween","newGroupDelay","historyTr","appended","newGroup","adjacent","isAdjacentTo","Editor","editorId","enableStaticMenuBar","enableSelectionToolbar","enableMessageMailMergeMenuBar","enableMessageKeys","enableLabel","autoSave","placeholderMessage","linkAround","linkPlugin","HTMLAnchorElement","linkAroundCursor","isAnchor","newSelection","showLinkToolbar","optionalPlugins","setEditorState","editorConfig","debouncedEditorState","debouncedValue","setDebouncedValue","useDebounce","serializedState","clearEditor","replaceEditorContent","insertTextAtCurrentSelection","useDeepCompareEffect","labelNode","toggleCheckboxItemAction","checkboxItemNode","hastaticMenuBar","handleClickOn","RefedEditor","JobBoardBillboardMediaChooser","setBillboardVideoUrl","previewBillboardImageUrl","billboardImageFilename","hasBillboardImage","billboardMediaType","billboardImage","textAreaStyles","AccountJobBoardContent","editorRef","additionalContent","showPublishedAtTimes","defaultEditorValue","CloudflareStatuses","CustomDomainStatus","customDomainInfo","isLoadingCareersPageHerokuDomainInfo","isFetchingCareersPageHerokuDomainInfo","isErrorCareersPageHerokuDomainInfo","careersPageHerokuDomainInfoError","refetchCustomDomainInfo","cloudflareRefetchCount","setCloudflareRefetchCount","careersPageHerokuDomainInfoData","herokuInfo","cloudflareDomainInfo","cloudflareInfo","ssl","INITIALIZING","handleClickOnRefreshDomain","Value","acmStatus","cname","acmStatusReason","isCloudflareCertificateActive","ACTIVE","isHerokuCertificateActive","isCertificateStatusActive","CUSTOM_DOMAIN_CNAME_TARGET","verificationErrors","validationRecords","validationRecord","txtName","txtValue","AccountJobBoardCustomDomain","isLoadingCreateCustomDomain","useCreateCustomDomain","isLoadingDeleteCustomDomain","useDeleteCustomDomain","hasPersistedCustomDomain","viewLink","AccountJobBoardEmbed","careersPageSlug","JOB_BOARD_EMBED_URL","AccountJobBoardContainer","List","Preview","PreviewTitle","PreviewLink","createJobCategory","updateJobCategory","deleteJobCategory","useUpdateJobCategory","JobCategoryModal","isEditing","errorOnCreate","useCreateJobCategory","errorOnUpdate","setCategoryName","handleCreate","handleUpdate","editMessage","jobsCount","getRect","shrink","shrinkBy","noSpacing","createBox","expandBy","borderBox","_ref2$margin","_ref2$border","_ref2$padding","marginBox","paddingBox","contentBox","withScroll","shiftBy","shifted","calculateBox","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","getBox","simpleIsEqual","resultFn","calledOnce","isNewArgEqualToLast","newArg","randomString","PROBE_UNKNOWN_ACTION","_objectSpread2","frameId","wrapperFn","_inheritsLoose","subscriptionShape","trySubscribe","tryUnsubscribe","notifyNestedSubs","storeShape","storeKey","_Provider$childContex","subscriptionKey","CLEARED","nullListeners","parentSub","addNestedSub","hotReloadingVersion","dummyState","connectAdvanced","selectorFactory","_contextTypes","_childContextTypes","_ref2$getDisplayName","_ref2$methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","shouldHandleStateChanges","_ref2$storeKey","_ref2$withRef","withRef","connectOptions","selectorFactoryOptions","renderCount","propsMode","setWrappedInstance","initSelector","initSubscription","getWrappedInstance","wrappedInstance","sourceSelector","makeSelectorStateful","notifyNestedSubsOnComponentDidUpdate","addExtraProps","withExtras","UNSAFE_componentWillReceiveProps","wrapMapToPropsConstant","getConstant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","stateOrDispatch","ownProps","mapDispatchToProps","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextOwnProps","nextStateProps","statePropsChanged","propsChanged","stateChanged","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","strictEqual","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","crossAxisLine","crossAxisStart","crossAxisEnd","crossAxisSize","point2","negate","otherValue","distance","offsetByPosition","getCorners","getMaxScroll","maxScroll","toDroppableList","droppables","draggables","toDraggableList","getDraggablesInsideDroppable","droppable","droppableId","isWithin","lowerBound","upperBound","isPositionInFrame","isWithinVertical","isWithinHorizontal","getRequiredGrowth","existingSpace","requiredSpace","dimensions","endOfDraggables","getWithGrowth","growth","getDroppableOver","previousDroppableOverId","maybe","withPlaceholder","isHome","wasOver","clippedPageMarginBox","requiredGrowth","subjectWithGrowth","closestScrollable","shouldClipSubject","framePageMarginBox","getClippedRectWithPlaceholder","noImpact","movement","displaced","isBeyondStartPosition","getDisplacementMap","displacement","draggableId","isPartiallyVisibleThroughFrame","isPartiallyVisibleVertically","isPartiallyVisibleHorizontally","isBiggerVertically","isBiggerHorizontally","isTotallyVisibleThroughFrame","isVisibleThroughFrameFn","withDisplacement","isVisibleInDroppable","isVisibleInViewport","isTotallyVisible","getDisplacement","previousImpact","isPartiallyVisible","shouldAnimate","withDroppableScroll","getDragImpact","pageBorderBoxCenter","destinationId","home","isWithinHomeDroppable","insideDestination","insideHome","originalCenter","currentCenter","dimension","inHomeList","inForeignList","getHomeLocation","critical","withDroppableDisplacement","moveToEdge","sourceEdge","destinationEdge","destinationAxis","getCorner","corner","centerDiff","signed","movingRelativeTo","homeIndex","_newCenter","_newImpact","impact","isMovingPastOriginalIndex","newCenter","newImpact","isGoingBeforeTarget","proposedIndex","moveCrossAxis","isMovingForward","sourceClipped","isBetweenSourceClipped","targetClipped","isBetweenDestinationClipped","isWithinDroppable","getBestCrossAxisDroppable","distanceToA","distanceToB","getClosestDraggable","isTotallyVisibleInNewLocation","newPageBorderBoxCenter","withFirstAdded","newDisplacement","forceVisibleDisplacement","isVisibleInNewLocation","withFirstRestored","moveToNextIndex","isInHomeList","previousPageBorderBoxCenter","insideDroppable","isMovingTowardStart","scrollJumpRequest","distance$$1","insideForeignDroppable","distanceMoving","getClientSelection","getHomeImpact","isMovementAllowed","getRemainder","_DragDropContext$chil","preparing","clientSelection","newViewport","currentWindowScroll","borderBoxCenter","windowScroll","getPageItemPositions","_action$payload","autoScrollMode","isDragging","_action$payload2","_client","_action$payload3","newScroll","scrollable","scrollDiff","scrollDisplacement","displacedSubject","subjectPageMarginBox","_dimensions","_impact","_extends6","_action$payload4","_updated","_dimensions2","_impact2","_impact3","_extends7","existing","_viewport2","_result2","isMainAxisMovementAllowed","isMovingOnMainAxis","moveInDirection","_extends8","isWaiting","publish","collectionStarting","completeDrop","getMarshal","timeoutId","marshal","scrollOptions","shouldPublishImmediately","_marshal$startPublish","startPublishing","clientOffset","newBorderBoxClientCenter","draggablesInDestination","getNewHomeClientBorderBoxCenter","newHomeOffset","getScrollDisplacement","isAnimationRequired","animateDrop","preset","withTimings","getDragStart","getHooks","announce","lastLocation","lastCritical","_isDragStartPublished","hook","getDefaultMessage","willExpire","wasCalled","isExpired","getExpiringAnnounce","publisher","beforeStart","onBeforeDragStart","onDragStart","hasCriticalChanged","isDraggableEqual","isDroppableEqual","isCriticalEqual","hasLocationChanged","onDragUpdate","onDragEnd","isDragStartPublished","shouldCheckOnAction","hasDroppableOverChanged","maxScrollUpdater","composeEnhancers","getDimensionMarshal","styleMarshal","getScroller","collecting","dropping","resting","stopPublishing","shouldCancel","jumpScroll","fluidScroll","autoScroll","getProvided","advancedUsageWarning","additions","removals","collect","_getProvided","initialWindowScroll","getDimension","getDimensionAndWatchScroll","addDraggable","removeDraggable","addDroppable","removeDroppable","registerDraggable","updateDraggable","unregisterDraggable","registerDroppable","droppableCallbacks","updateDroppable","unregisterDroppable","updateDroppableIsEnabled","scrollDroppable","updateDroppableScroll","getInitialPublish","unwatchScroll","physics","standard","fast","dragHandle","styleContext","dragHandleSelector","dragHandleStyles","grabCursor","blockPointerEvents","draggableStyles","animateMovement","dropAnimating","userCancel","proposed","count$1","visuallyHidden","getScrollableDroppables","getBestScrollableDroppable","_dimension","smallestSigned","getOverlap","targetScroll","overlap","canPartiallyScroll","rawMax","smallestChange","canScrollWindow","canScrollDroppable","closest$$1","percentage","clean$1","getPixelThresholds","startFrom","maxSpeedAt","accelerationPlane","getSpeed","transformed","getRequiredScroll","limited","proposedScroll","isTooBigVertically","isTooBigHorizontally","adjustForSizeLimits","scrollWindow","scheduleWindowScroll","scheduleDroppableScroll","scroller","requiredWindowScroll","requiredFrameScroll","isOverHome","spaceForPlaceholder","newMax","scrollDroppableAsMuchAsItCan","getDroppableOverlap","whatTheDroppableCanScroll","scrollWindowAsMuchAsItCan","getWindowOverlap","whatTheWindowCanScroll","droppableRemainder","windowRemainder","moveByOffset","prefix$1","droppableIdKey","droppableTypeKey","dimensionMarshalKey","styleContextKey","canLiftContextKey","DragDropContext","dimensionMarshal","autoScroller","announcer","canLift","canStartDrag","onFatalError","onWindowError","createAutoScroller","_DroppableDimensionPu","isElementScrollable","isScrollable","getClosestScrollable","getScroll","DroppableDimensionPublisher","watchingScroll","publishedDescriptor","getClosestScroll","memoizedUpdateScroll","updateScroll","scheduleScrollUpdate","onClosestScroll","watching","getMemoizedDescriptor","unpublish","ignoreContainerClipping","isDropDisabled","getDroppableRef","scrollableRef","getDroppableDimension","frameClient","_Droppable$contextTyp","_Droppable$childConte","Droppable","isPlaceholderMounted","onPlaceholderMount","onPlaceholderUnmount","setRef","warnIfPlaceholderNotMounted","getPlaceholder","isDraggingOver","draggingOverWith","provided","droppableProps","snapshot","_DraggableDimensionPu","isStrictEqual","connectedDroppable","getIsDraggingOver","shouldUsePlaceholder","getMapProps","_destination","_isDraggingOver","_draggableId","_draggingOverWith","_draggable","_placeholder","DraggableDimensionPublisher","getDraggableRef","computedStyles","DoubleRenderBlocker","Moveable","_proto2","getFinal","speed","onMoveEnd","isBound","unbind","onWindowFocusChange","_preventedKeys","_scrollJumpKeys","_DragHandle$contextTy","isSVG","draggableRef","retainingFocusFor","listenerOptions$1","clearRetentionOnFocusChange","retainer","dragHandleRef","interactiveTagNames","optgroup","video","isAnInteractiveElement","shouldAllowDraggingFromTarget","canDragInteractiveElements","memoizedMove","onMove","moveUp","onMoveUp","moveDown","onMoveDown","moveRight","onMoveRight","moveLeft","onMoveLeft","windowScrollMove","onWindowScroll","preventedKeys","preventStandardKeyEvents","fromBinding","bindEvents","sharedOptions","unbindEvents","createPostDragEventPreventer","getWindow","preventNext","isMouseDownHandled","isHandled","supportedEventName","mouseDownMarshal","canStartCapturing","isCapturing","postDragEventPreventer","stopDragging","shouldBlockClick","unbindWindowEvents","stopPendingDrag","kill","windowBindings","startDragging","onLift","onDrop","webkitForce","MouseEvent","WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN","forcePressThreshold","bindWindowEvents","startPendingDrag","scrollJumpKeys","noop$1","touchStartMarshal","noop$2","webkitHack","stub","releaseTouchMove","isBlocking","hasMoved","longPressTimerId","_event$touches$","preventHtml5Dnd","DragHandle","mouseSensor","keyboardSensor","touchSensor","sensors","lastDraggableRef","isAnySensorCapturing","sensor","getWindowFromRef","wasDragging","isDropAnimating","_Draggable$contextTyp","zIndexOptions","Draggable","dropAnimationFinished","isDragDisabled","getDraggingStyle","getNotDraggingStyle","shouldAnimateDisplacement","dragHandleProps","draggableStyle","draggableProps","getSnapshot","draggingOver","renderChildren","moveByWindowScroll","shouldAnimateDragMovement","disableInteractiveElementBlocking","getSpeed$1","defaultMapProps","ConnectedDraggable","memoizedOffset","getNotDraggingProps","getDraggingProps","getOutOfTheWayMovement","_draggingOver","draggingSelector","movingOutOfTheWay","movingOutOfTheWaySelector","JobCategoryList","onDragEndJobCategory","JobCategoryListItem","jobCategory","openEditJobCategoryModal","handleOpenJobCategoryModal","handleDeleteJobCategory","JobCategoryText","JobCategoryDetails","getJobCategories","useJobCategories","AccountJobCategories","isLoadingDelete","useDeleteJobCategory","catItems","setCategories","handleClickOnDeleteJobCategory","deleteMessage","openJobCategoryModal","newCategories","AccountPreferences","isLoadingGet","meResponse","emailCommentsNew","emailMessagesNew","emailJobApplicationsNew","handleEmailPreferenceChange","updateEmailPreferences","PromoCodeCenterModal","setPromoCode","isLoadingApplyPromoCode","useApplyPromoCode","handleOnCancel","AccountBilling","stripeCustomerData","isFetchingStripeCustomer","customer","stripeCustomerSubscriptionData","isFetchingStripeCustomerSubscription","currentSubscription","hasActiveSubscription","isLoadingSwapCheckoutSessionIdForPaymentMethod","useSwapCheckoutSessionIdForPaymentMethod","currentPriceObject","currentProductPrice","canRenewSubscription","isTrialing","discount","trialEndDays","trialEnd","hasCoupon","coupon","checkout","session_id","redirect_url","queryString","handleCreateCheckoutSetupSession","handleCreateBillingPortalSession","redirectUrl","manageBillingButton","ctaCopy","noPlanPrice","PricingPrice","invoiceSettings","defaultPaymentMethod","Pricing","SubscriptionRow","ButtonWrapper","quantity","SubscripionActions","stripePromoCode","SubscriptionMenu","Promo","PromoTitle","PromoBadge","percentOff","AccountBillingNewPlanChoices","hasInactiveSubscription","geminiBillingPrices","apolloBillingPrices","Subtitle","PricingOptions","PricingTitle","handleCreateSubscription","handleCreateCheckoutSubscriptionSession","CurrentSubscription","Badge","AccountBillingCurrentPlan","isLoadingChangeSubscriptionViaStripePortal","useChangeSubscriptionViaStripePortal","currentSubscriptionItemId","isOnLegacyPlan","handleOnClickUsePromoCode","currentPlan","handleChangeSubscriptionViaStripePortal","getChannelMessageTemplates","createChannelMessageTemplate","updateChannelMessageTemplate","deleteChannelMessageTemplate","useChannelMessageTemplates","useUpdateChannelMessageTemplate","useMailMerge","jobApplicationId","channelMessageTemplateId","getMailMerge","ChannelMessageTemplateModal","useCreateChannelMessageTemplate","channelMessageTemplate","setChannelMessageTemplate","handleCancel","ChannelMessageTemplateList","onDragEndChannelMessageTemplate","ChannelMessageTemplateListItem","openEditChannelMessageTemplateModal","createdByUserFullName","handleOpenChannelMessageTemplateModal","handleDeleteChannelMessageTemplate","ChannelMessageTemplateText","ChannelMessageTemplateDetails","AccountChannelMessageTemplates","useDeleteChannelMessageTemplate","templateItems","hasTemplateItems","channelMessageTemplates","setChannelMessageTemplates","handleClickOnDeleteChannelMessageTemplate","openChannelMessageTemplateModal","onCloseModal","newChannelMessageTemplates","CommentTemplateModal","useCreateCommentTemplate","CommentTemplateList","onDragEndCommentTemplate","CommentTemplateListItem","openEditCommentTemplateModal","handleOpenCommentTemplateModal","handleDeleteCommentTemplate","CommentTemplateText","CommentTemplateDetails","AccountCommentTemplates","useDeleteCommentTemplate","setCommentTemplates","handleClickOnDeleteCommentTemplate","deleteComment","openCommentTemplateModal","newCommentTemplates","AccountContainer","me","isLoadingGetMe","isLoadingOrganization","returnPathname","memberPathNames","adminUserPathNames","adminOrgPathNames","accountLinks","pathNames","Admin","AccountBillingNew","AccountBillingOld","markNotificationAsRead","markAllNotificationsAsRead","markNotificationAsUnread","deleteNotification","deleteAllNotifications","useInfiniteNotifications","job_id","useInfiniteQuery","pageParam","getInfiniteNotifications","getNextPageParam","lastPage","allPages","useNotificationsHasUnread","getNotificationsHasUnread","useNotificationsSummaryCounts","getNotificationsSummaryCounts","NotificationListItem","unread","createdAtTimestamp","isDismissing","setIsDismissing","errorOnMarkRead","isLoadingMarkRead","useMarkNotificationAsRead","errorOnMarkUnread","isLoadingMarkUnread","useMarkNotificationAsUnread","errorOnDelete","useDeleteNotification","navigationUrl","candidateFullName","jobTitle","markAsReadAndNavigate","Timestamp","NotificationList","searchVariables","isLoadingInfiniteNotifications","isFetchingInfiniteNotifications","fetchMoreNotifications","errorOnMarkAllRead","isLoadingMarkAllRead","useMarkAllNotificationsAsRead","dismissAllNotifications","errorOnDismissAll","isLoadingDismissAll","notificationData","pages","totalCount","hasNotificationData","notifications","ListItemWrapper","Pagination","NotificationsContainer","summaryCountsEnabled","setSearchVariables","isSuccessInfiniteNotifications","isFetchingNextPage","fetchNextPage","hasNextPage","summaryCounts","isFetchingNotificationsSummaryCounts","isSuccessNotificationsSummaryCounts","isLoadingNotificationsSummaryCounts","totalNotifications","countNewJobApplications","byKind","newJobApplication","countNewChannelMessages","newInboundChannelMessage","newOutboundChannelMessage","countNewActivity","newReview","newComment","byJob","isFetchingMore","canFetchMore","mergeClassNames","isLocalFileSystem","isDefined","isProvided","isBlob","isFile","isDataURI","dataURItoUint8Array","dataURI","byteString","ia","consoleOnDev","warnOnDev","errorOnDev","displayCORSWarning","cancelRunningTask","runningTask","makePageCallback","isCancelException","loadFromFile","NOT_FOUND_ERR","NOT_READABLE_ERR","SECURITY_ERR","ABORT_ERR","isClassName","isLinkService","LinkService","isPage","getTextContent","getViewport","isPdf","isRenderMode","isRotate","Document","pdf","onItemClick","onLoadProgress","cancellable","findDocumentSource","onSourceSuccess","onSourceError","onLoadSuccess","onLoadError","setViewer","documentInstance","setDocument","fileUint8Array","otherParams","_fileUint8Array","loadDocument","setupLinkService","DocumentContext","childContext","noData","registerPage","unregisterPage","renderMode","isFunctionOrNode","OutlineItemInternal","getPageNumber","subitems","subitem","subitemIndex","renderSubitems","isDestination","documentContext","OutlineContext","outlineContext","OutlineInternal","loadOutline","renderOutline","PageCanvasInternal","renderer","onRenderSuccess","onRenderError","canvasLayer","_assertThisInitialize2","renderViewport","renderContext","cancelRenderingTask","drawPageOnCanvas","PageCanvas","PageContext","PageSVGInternal","getOperatorList","svgGfx","getSVG","firstElementChild","_this$viewport","renderSVG","_this$viewport2","drawPageOnContainer","PageSVG","TextLayerItemInternal","_alignTextItem","_getFontData","sideways","alignTextItem","fontData","fallbackFontName","targetWidth","actualWidth","getFontData","getElementWidth","WebkitTransform","customTextRenderer","unrotatedViewport","defaultSideways","_transform","fontHeightPx","fontWidthPx","_transform2","_viewport$viewBox","yMin","yMax","_transform3","xMin","TextLayerItem","TextLayerInternal","_yield$cancellable$pr","onGetTextSuccess","onGetTextError","loadTextItems","textItem","renderTextItems","TextLayer","AnnotationLayerInternal","onGetAnnotationsSuccess","onGetAnnotationsError","onRenderAnnotationLayerSuccess","onRenderAnnotationLayerError","loadAnnotations","annotationLayer","renderAnnotationLayer","pageContext","PageInternal","loadPage","pageKeyNoScale","pageKey","renderMainLayer","pageScale","scaleWithDefault","useMeasure","setBounds","Resume","jobApplication","setNumPages","resizeRef","onDocumentLoadSuccess","documentData","handleLoadError","handlePageRenderSuccess","ResumeContainer","resumeUrl","pdfjs","DocumentWrapper","CollapsibleItem","iconName","emptyLabel","defaultHeight","setIsOpen","handleClickCollapsibleItem","expandSpring","collapsibleItemBodySpring","animatedChevron","CollapsibleItemContainer","aria-disabled","CollapsibleItemHeader","aria-controls","CollapsibleItemLabel","AnimatedIcon","CollapsibleItemBody","aria-hidden","VisibilitySetting","CollapsibleQuestionResponses","sortedQuestionResponses","questionResponses","question","adminOnlyLabel","responses","questionResponse","responseArray","DocumentLink","customFileUrl","customFileFilename","Question","questionText","visibilitySetting","PRIVATE","QuestionResponses","createComment","rating","updateComment","commentId","useComments","getComments","useComment","getComment","useReviewDraft","getReviewDraft","useUpdateComment","useDeleteComment","updateCandidatePrivateNote","candidateId","candidatePrivateNoteId","useCandidatePrivateNote","getCandidatePrivateNote","ReviewKit","review","passedReview","updateCommentSilently","errorOnUpdateSilently","isLoadingUpdateSilently","candidatePrivateNote","isLoadingPrivateNote","setReview","setRating","handleAutoSave","handlePublish","ResumeColumn","Profile","phone","hasValidEmail","linkedinUrl","twitterUrl","githubUrl","dribbbleUrl","sharedDocument","Notes","ReviewColumn","ReviewInput","FriendlyErrors","resource","actionUrl","getInfiniteJobApplications","hiringStageId","hiring_stage","updateJobApplication","cloneToNewJobAtHiringStage","moveToNewJobAtHiringStage","bulkMoveJobApplicationsToStage","sourceHiringStageId","includedJobApplicationIds","excludedJobApplicationIds","useUpdateJobApplication","useJobApplication","getJobApplication","ReviewKitContainer","jobApplicationHashId","isLoadingJobApplication","errorGettingJobApplication","comment","isLoadingComment","errorGettingComment","commentDraft","isLoadingCommentDraft","searchOrganizations","searchTerm","takeoverOrganization","useOrganizations","filters","order_by","is_claimed","customers","getOrganizations","AdminOrganizationModal","setOrganization","setOwner","organizationData","canSendBulkMessages","canEnableLinkedin","fraudRating","currentOwner","users","currentOrganizationUserId","organizationMemberOptions","handleOnInputChange","ClaimedBadge","ScrapedURL","TakeoverOrganizationModal","setEmail","enteredOrganizationName","setEnteredOrganizationName","isLoadingTakeoverOrganization","useTakeoverOrganization","handleOnConfirm","handleConfirmation","generalErrors","becomeUser","useBecomeUser","AdminDashboardCustomers","setSearchTerm","searchResults","setSearchResults","customerOrganizations","isFetchingCustomers","isSuccessCustomers","isLoadingBecome","isSuccessSearchOrganizations","organizationNodes","organizations","disableBecome","Tag","handleBecomeUser","AdminOrganizationEditModal","handleOnClickEditOrganization","AdminRemoveBadActorModal","handleOnClickTakeover","orgCount","Table","Filters","getStatistics","AdminDashboardStatistics","statistics","isFetchingStatistics","isSuccessStatistics","Stats","totalPaidSubscribersCount","accountsCreatedThisMonthCount","accountsCreatedLastMonthCount","accountsCreatedThisWeekCount","accountsCreatedLastWeekCount","AdminDashboardContainer","searchUsers","userEmail","AdminUsersSearch","userSearchData","isFetchingUserResults","isSuccessUserResults","resultsNotEmpty","hasConfirmedEmail","userNodes","searchCandidates","candidateEmail","AdminCandidatesSearch","candidateSearchData","isFetchingCandidateResults","isSuccessCandidateResults","jobApplicationsCount","candidateNodes","createFeatureFlag","enableFeature","featureFlag","disableFeature","deleteFeatureFlag","useFeatureFlippers","getFeatureFlippers","AdminNewFeatureFlagModal","isLoadingCreateFeatureFlag","useCreateFeatureFlag","AdminFeatureFlippers","featureFlagsData","isLoadingFeatureFlippers","isLoadingEnableFeature","useEnableFeature","isLoadingDisableFeature","useDisableFeature","isLoadingDeleteFeatureFlag","useDeleteFeatureFlag","handleChangeFeatureFlagState","featureFlagKey","featureFlagState","handleDisableFeature","handleEnableFeature","createFeatureFlagButton","handleOnClickDeleteFeatureFlag","subMessage","handleDeleteFeatureFlag","featureName","alphabeticallySortedFeatureFlags","localeCompare","enableMessage","disableMessage","handleOnClickChangeState","featureFlagNodes","AdminContainer","JobViewStateContext","JobViewDispatchContext","jobViewReducer","activeTabIndex","JobViewProvider","useReducer","WebsocketGlobalChannelHandler","Websocket","useWebsocket","queryCache","setupWebsocketConnections","connected","received","candidatesCsvExportUrl","handleGlobalMessage","WebsocketContext","WebsocketProvider","cable","ActionCable","useJobApplicationStore","convertingDocxToPdf","setConvertingDocxToPdf","converting","WebsocketJobChannelHandler","activeJobApplicationId","setActiveJobApplicationId","refetchJobApplication","refetchJob","handleJobMessage","CandidateForm","formTitle","desiredCompensation","overview","compensation","handleCandidateChange","onCandidateChange","handleApplicationChange","onApplicationChange","submitButtonTitle","jobApplicationSettingsOptions","createCandidate","updateCandidate","anonymizeCandidate","NewCandidateModal","setCandidate","setJobApplication","isLoadingCreateCandidate","useCreateCandidate","isLoadingUpdateJobApplication","applicationId","application","onComplete","JobStageAutomationInfo","stageAutomation","stageName","bulk","infoMessage","DropdownText","channelMessageTemplateName","Details","EditCandidateModal","isLoadingUpdateCandidate","useUpdateCandidate","JobApplicationStageMoveModal","currentStage","nextLogicalHiringStage","stageId","setStageId","hiringStageOptions","targetStageName","targetStageAutomation","selectHiringStageValue","AutomationInfoContainer","JobApplicationMoveModal","targetJobId","setTargetJobId","setTargetHiringStageId","cloneInsteadOfMove","setCloneInsteadOfMove","hiringStagesData","isFetchingHiringStages","jobsOptions","hiringStagesOptions","targetJob","targetHiringStage","useJobStore","jobsById","hiringStagesById","hiringStagesByJobId","questionsByJobId","questionsById","jobApplicationsByJobId","jobApplicationsById","CandidatePrivacyStatus","FINAL_STAGES","JobApplicationSidebarActions","jobApplicationsForStage","moveJobApplicationToStage","isLoadingMoveJobApplicationToStage","useMoveJobApplicationToStage","isLoadingCloneToNewJobAtHiringStage","useCloneToNewJobAtHiringStage","isLoadingMoveToNewJobAtHiringStage","useMoveToNewJobAtHiringStage","isLoadingAnonymizeCandidate","useAnonymizeCandidate","archiveHiringStage","nextLogicalJobApplication","nextLogicalHiringStageIncludingArchived","nextLogicalJobApplicationUrl","moveStageModal","targetStageId","targetStage","moveToStage","moveToJobModal","JobApplicationCloneModal","cloneJobApplicationToJob","moveJobApplicationToJob","moveToArchived","destinationUrl","moveFocusToNextLogicalJobApplication","prettyErrors","archiveTooltip","nextStageAutomation","privacyStatus","ANONYMIZED","JobApplicationSidebar","compensationAdminOnly","displayCompensation","CandidateProfile","createdVia","urls","permalinkUrl","PermaLink","Nav","InfoTitle","InfoRow","SharedDocumentFeedItem","openSharedDocumentModal","CommentModal","activityPath","useCreateComment","setComment","restComment","CommentInput","sentByUser","CommentListItem","publishedAtTimestamp","publishedAtTimeAgoShort","handleDeleteComment","Comment","createInterviewerRequest","createInterviewerInvite","ReviewRequestModal","formState","setFormState","isLoadingCreateInterviewerRequest","useCreateInterviewerRequest","isLoadingCreateInterviewerInvite","useCreateInterviewerInvite","handleExistingUserRequest","orgUserId","handleInviteRequest","inviteEmail","handleEmailInput","getOrgUserIdByEmail","availableInterviewers","availableInvites","createOption","existingOptions","handleExistingUserOrInvite","newOption","invites","interviewerOptions","ReviewListItem","hashId","handleDeleteReview","Review","Rating","eventHtml","timeAgoShort","ActivityListItem","activityKey","createdAtTimeAgoShort","userName","previousJobTitle","requestingUser","requestedUser","invitedUserEmail","SharedDocumentModal","useJobApplicationActivities","getJobApplicationActivities","JobApplicationActivity","activityFeedRef","jobApplicationActivitiesData","isLoadingJobApplicationActivities","commentsData","isLoadingComments","jobApplicationActivities","comments","allTheThings","sortedAllTheThings","scrollToTop","feedRef","sharedDocumentModal","handleOpenSharedDocumentModal","displayAdminOnly","adminOnlyQuestionLabel","QuestionLabel","TitleWrapper","HeaderActions","activityFeed","feedItem","activityProps","activityCategory","Feed","Activities","createdText","lastUpdatedByOrganizationUserId","ResponseIcon","jobApplicationReceivedEvent","__generator","trys","verb","COMMON_MIME_TYPES","toFileWithPath","withMimeType","webkitRelativePath","FILES_TO_IGNORE","getInputFiles","getDataTransferFiles","toFilePromises","noIgnoredFiles","webkitGetAsEntry","fromDataTransferItem","isDirectory","fromDirEntry","getAsFile","fwp","fromEntry","fromFileEntry","createReader","readEntries","err_1","fullPath","getInvalidTypeRejectionErr","accept","messageSuffix","getTooLargeRejectionErr","getTooSmallRejectionErr","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","fileMatchSize","allFilesAccepted","maxFiles","accepted","sizeMatch","isPropagationStopped","cancelBubble","isEvtWithFiles","onDocumentDragOver","isIe","isEdge","isIeOrEdge","composeEventHandlers","Dropzone","_useDropzone","useDropzone","getFilesFromEvent","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","onFileDialogCancel","onDragEnter","onDragLeave","onDragOver","onDropAccepted","onDropRejected","isFileDialogActive","isDragActive","isDragAccept","isDragReject","draggedFiles","fileRejections","_defaultProps$options","rootRef","openFileDialog","onWindowFocus","onKeyDownCb","onFocusCb","onBlurCb","onClickCb","dragTargetsRef","onDocumentDrop","onDragEnterCb","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","onDropCb","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","customErrors","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2$refKey","refKey","onInputElementClick","getInputProps","_ref3$refKey","fileCount","DragAndDropResumeUploader","fileType","handleFileUpload","JobApplicationResume","resumeUploading","uploading","setUploading","hasResume","onChangeUploader","uploadedFile","fileIsDocx","buttonContent","resumeContentType","resumeOriginalUrl","actionButton","Processing","externalResumeStatus","StyledExternalResumeUrlError","externalResumeUrl","JobApplicationNotes","initialJobApplication","noteIsDirty","setNoteIsDirty","errorOnUpdatePrivateNote","isLoadingUpdatePrivateNote","useUpdateCandidatePrivateNote","getChannel","OriginalEmailModal","channelMessage","Body","bodySanitizedHtml","OrgLogo","AvatarWrapper","ImageAvatar","ChannelMessageListItem","sentBy","htmlSafeBody","Sender","Attribution","CandidateBadge","getSender","MessageBody","MessageText","filesArray","FileButton","useAddHiringTeamMembership","ChannelMessageList","scrollToBottom","isFetchingAllChannel","useChannel","addTeamMember","isLoadingAdd","currentUserNotOnHiringTeam","organizationUserIds","channelMessages","MessageHistory","WarningTitle","createChannelMessage","mailMerge","mailMergeIsLoading","templateHtml","ChannelMessageTemplateSelectionModal","channelMessageTemplateSelectOptions","ChannelMessageNew","allChannel","invalidate","useCreateChannelMessage","messageHtml","openChannelMessageTemplateSelectionModal","handleSendMessage","NewMessageArea","NewMessageField","JobApplicationMessages","messagesRef","hasMessages","setHasMessages","channelMessagesCount","canSendChannelMessages","messagesExist","MessageFeed","JobApplicationMessagesWrapper","ProseMirrorEditor","attachFileToJobApplication","attachment","deleteFiletFromJobApplication","useJobApplicationFiles","getJobApplicationFiles","JobApplicationFiles","jobApplicationFilesData","isLoadingJobApplicationFiles","errorOnAttachment","isLoadingAttachment","useAttachFileToJobApplication","deleteFileFromJobApplication","errorOnDeleteAttachment","isLoadingDeleteAttachment","useDeleteFileFromJobApplication","renderFileList","canDelete","privateResponseFileIds","ListItem","DocumentName","documents","handleDeleteDocument","resumeFile","attachmentType","recordType","questionResponseFiles","applicationFiles","messageFiles","additionalFiles","canViewMessageFiles","recordId","Section","SectionLabel","NoFiles","JobApplicationContainer","shallowJobApplication","currentViewPath","setCurrentViewPath","setJob","jobApplicationFromStore","jaFromStore","isFetchingJobApplication","commentModal","prefetchChannel","prefetchQuery","currentView","createBulkMessage","BulkMessageModal","idsArray","idsArrayType","candidatesCount","useCreateBulkMessage","handleSendBulkMessage","BulkMoveModal","firstRemainingJobApplicationUrl","resetList","moveBulkJobApplicationsToStage","isLoadingMoveBulkJobApplicationsToStage","removeQueries","stale","throwOnError","useBulkMoveJobApplicationsToStage","targetStageUrl","moveFocusToFirstRemainingJobApplication","JobStageMenu","listState","itemIdsSet","itemIdsSetType","allSelected","firstJobApplicationNotSelected","useMemo","itemIds","JobApplicationNavItem","applicationsCount","checklistReducer","newIncludedSet","totalItemsPossible","newExcludedSet","JobApplicationListContainer","candidatesByNameListRef","canLoadMore","setCanLoadMore","selectItem","deselectItem","selectAll","deselectAll","useChecklist","jobApplicationsForStageData","isLoadingJobApplicationsForStage","nextPage","useInfiniteJobApplicationsForStage","scrollHandler","listEl","firstJobApplicationId","idsToRemove","isChecked","toggleSelectItem","currentStageApplicationsCount","HeaderContent","CandidateList","jobApplicationShowUrl","PageLoader","ja","JobCustomShareUrlForm","setSource","customShareUrl","setCustomShareUrl","customSource","sourceParam","createShareLink","ShareUrl","CopyButton","JobShareLinks","companyName","tweet","indefinate","JobShareLinksContainer","twitterShareUrl","tweetParam","ShareLabel","linkedinShareUrl","ShareJobModal","cachedScripts","useScript","onScriptLoad","onScriptError","FormSelectCity","mapsScriptLoaded","mapsScriptError","GOOGLE_MAPS_API_KEY","google","AutocompleteService","getPlacePredictions","AsyncSelect","FormSelectGoogleLocation","JobSocialShareImageUploader","passedErrors","isFetchingJob","updateJobOptimistic","isLoadingUpdateJobOptimistic","JobSettingsDetails","passedJob","restJob","salaryUnit","salaryCurrency","salaryType","setSalaryType","jobCategories","setJobCategory","stateRegion","city","mapLocation","videoUrl","remoteRestrictionOverlapHoursIsRequired","remoteRestrictionCity","remoteRestrictionCountryResidencyIsRequired","remoteRestrictionCountryList","remoteRestrictionOverlapHours","externalListingsEnabled","countrySelectOptions","regionSelectOptions","showRegionSelect","jobCategorySelectOptions","cat","handleSalaryDropdownChange","BottomBarContent","remoteRestrictionCityOption","remoteRestrictionCityGooglePlaceId","selectedCategory","selectedCategoryId","jobCategoryId","place_id","jobCategoriesDescription","toggleExternalListingsDescription","JobSettingsDescription","descriptionHtml","FormSelectBuilder","updateOptions","activeValue","setActiveValue","handleClickAdd","tempOptions","Choices","Choice","newArr","removeOption","CustomQuestionModal","requirementSetting","selectBuilderOptions","answerChoices","modalTitle","confirmButtonText","questionTypeDescription","handleUpdateSelectBuilderOptions","QuestionList","onDragEndQuestion","QuestionListItem","openQuestionModal","openEditCustomQuestionModal","handleClickOnDeleteQuestion","deleteQuestion","QuestionText","QuestionDetails","Options","createQuestion","updateQuestion","JobSetupApplicationFormCustomQuestions","questions","isLoadingCreateQuestion","useCreateQuestion","isLoadingUpdateQuestion","useUpdateQuestion","dropQuestion","isLoadingDropQuestion","useDropQuestion","isLoadingDeleteQuestion","useDeleteQuestion","onSubmitCustomQuestion","isEditingQuestion","onDeleteCustomQuestion","openCustomQuestionModal","tempQuestions","JobSetupApplicationForm","applyThrough","applicationThirdpartyUrl","updateJobSettings","jobApplicationSection","PermaRequired","JobSetupDocument","sharedDocumentTemplate","createHiringTeamInvite","destroyHiringTeamInvite","useHiringTeamInvites","getHiringTeamInvites","NewTeamMemberModal","allUsers","hiringTeamInvites","selectedOrganizationUserId","setSelectedOrganizationUserId","isLoadingCreateHiringTeamInvite","useCreateHiringTeamInvite","hiringTeamInvite","TeamMemberListItem","removeTeamMember","teamMember","MemberInfo","MemberWrapper","TeamMemberInviteListItem","hiringTeamInviteId","JobSetupTeam","isLoadingRemove","useRemoveHiringTeamMembership","useDestroyHiringTeamInvite","hiringTeamInvitesData","isLoadingHiringTeamInvites","hiringTeamMemberships","teamMembers","handleClickOnRemoveTeamMember","removeUserFromTeam","openTeamMemberModal","handleDestroyHiringTeamInvite","TeamMemberList","nonAdminTeamMembers","invitedNonAdmins","invited","handleRemoveAllNonAdmins","HiringStageModal","setHiringStageName","HiringStageList","onDragEndHiringStage","HiringStageListItem","openEditHiringStageModal","handleOpenHiringStageModal","handleDeleteHiringStage","HiringStageText","HiringStageDetails","AccountHiringStages","hiringStageItems","setHiringStages","inProcessStages","handleClickOnDeleteHiringStage","openHiringStageModal","FixedStage","FixedStageText","FixedStageDetails","newHiringStages","hiringStageNodes","createHiringStageAutomation","updateHiringStageAutomation","hiringStageMessageAutomation","deleteHiringStageAutomation","useHiringStageAutomations","getHiringStageAutomations","useUpdateHiringStageAutomation","HiringStageAutomationModal","passedHiringStageAutomation","stageAutomationState","setStageAutomationState","useCreateHiringStageAutomation","stageOptionsWithoutInbox","filteredStageOptionsWithoutInbox","stageOptions","handleChangeHiringStageAutomation","StageAutomationListItem","openEditHiringStageAutomationModal","handleToggleEnable","ListItemContainer","StageAutomationTitle","BrightLabel","StageAutomationDetails","updatedAutomation","HiringStageAutomations","useDeleteHiringStageAutomation","automationsList","handleOnClickDeleteHiringStageAutomation","handleDeleteHiringStageAutomation","openHiringStageAutomationModal","ListContainer","kindOrder","kind_inbox","kind_in_process","kind_hired","kind_archived","JobSetupAutomations","useApplyResponseTemplate","applyResponseTemplate","applyResponseTemplateError","Template","JobSetupContainer","isLoadingForceWebflowSyncForJob","handleClickOnPublishJob","handleClickOnShareJob","handleClickOnCloneJob","archiveJob","handleClickOnUpdateOnWebflow","jobControlOverflow","syncWithWebflowButtonNode","hideJobButtonNode","hasWebflowMapping","JobSetupDetails","JobSetupDescription","Upgrade","upgrade","selectedPlan","isPurchasing","upgrades","selected","Price","Feature","NonFeature","JobDistributionWeWorkRemotely","activeWwrListing","isLoadingCreateBoardWwrListing","isLoadingUpdateBoardWwrListing","isLoadingSomething","wwrJobListingType","wwrRegion","wwrCompanyBio","setIsPurchasing","isPublished","isArchived","hasDescription","hasCompanyUrl","hasBeenPurchased","wwrListingId","publishedAt","expiresAt","listingUrl","hasBeenUpgraded","isMissingRequirements","createOrUpdateWwrListing","handleUpdateBoardWwrListing","handleCreateBoardWwrListing","handleSelectUpgrade","Purchased","PurchasedTitle","PurchasedLink","SidebarSection","Upgrades","Delete","JobDistributionContainer","useBasicReport","startDate","endDate","startDateParam","endDateParam","getBasicReport","ResponsiveContainer","aspect","_ref$width","_ref$height","_ref$debounce","containerWidth","containerHeight","sizes","setSizes","containerRef","_useState4","setMounted","getContainerSize","updateDimensionsImmediate","oldWidth","oldHeight","handleResize","calculatedWidth","calculatedHeight","renderChart","ErrorBar","dataPointFormatter","svgProps","_dataPointFormatter","errorVal","lowBound","highBound","_errorVal","yMid","xMax","_scale","xMid","_xMin","_xMax","_yMin","_yMax","coordinates","Cell","valueAccessor","LabelList","idProps","parseLabelList","ckeckPropsLabel","explicitChilren","implicitLabelList","isAnimationFinished","handleAnimationEnd","handleAnimationStart","animationId","prevAnimationId","curData","baseProps","renderRectangle","stepData","interpolatorX","interpolatorY","interpolatorWidth","interpolatorHeight","_interpolatorHeight","renderRectanglesStatically","renderRectanglesWithAnimation","backgroundProps","errorBarItems","dataPoint","needClip","renderRectangles","renderErrorBar","minPointSize","xAxisTicks","yAxisTicks","stackedDomain","baseValue","cells","BarChart","lineItem","horizontalPoints","renderLineItem","verticalPoints","verticalFill","verticalPointsUpdated","colorIndex","horizontalFill","horizontalPointsUpdated","renderHorizontal","renderVertical","renderHorizontalStripes","renderVerticalStripes","yTickFormatter","legendFormatter","JobMetricsSourceChart","sourceData","hired","JobMetricsStageFunnelChart","stageData","totalApplications","funnelCount","isDeleted","JobMetricsStageTarget","promoted","targetStages","JobMetricsContainer","queryStringParams","setStartDate","setEndDate","basicReport","refetchBasicReport","sourceList","activityData","timeToHire","applicationsAddedByDate","Page","ChartRow","Chart","JobStagesContainer","prefetchInfiniteQuery","prefetchInfiniteJobApplicationsForStage","tabItems","tabIcon","Settings","JobStripeCheckoutRedirectHandler","setRedirectUrl","useSyncWithStripe","createJobCandidatesCsvExport","createJobCandidatesCsvImport","formData","FormData","FormFile","selectedFile","setSelectedFile","isValidFile","newErrors","StyledInput","StyledErrors","JobImportCandidatesModal","setFile","setHiringStageId","StyledInstructions","StyledRequirements","StyledButtonContainer","JobContainer","memoMatch","errorOnCreateCandidatesCsvExport","isLoadingCreateCandidatesCsvExport","setOrgAdminJobsListUrl","updateJobStore","exportCandidatesToCsv","importCandidatesFromCsv","onCompleteAddingCandidate","handleClickOnAdd","InterviewerPage","postUniversalSearch","useRoveFocus","currentFocus","setCurrentFocus","UniversalSearchResultListItem","candidateShowUrl","handleSelectingResult","handleSelect","onKeyPress","UniversalSearch","searchRef","searchInputRef","showResults","setShowResults","navigatingResults","setNavigatingResults","mutateUniversalSearch","setJobApplications","searchInput","handleKeydownEvent","setFocus","hideSearch","searchFieldSpring","resultsSpring","Search","Results","CandidateLink","candidateName","OrgSwitcherLogo","LogoWrapper","AppHeader","hasUnreadData","isFetchingNotificationsHasUnread","accountSettingsLinkTo","hasUnread","UserWrapper","Notifications","headerStyle","CreateButton","AppContainer","authorizedRoute","handleInterviewerRoleNavigation","handleNavigationToAccountSettings","login","api_v1_user","remember_me","logout","sendPasswordResetEmail","resetPassword","resetPasswordToken","referral","magicLink","loginIntent","organizationSlug","redirectTo","recaptchaToken","useMagicLink","useGetMagicLinkStatusByEmailHash","emailHash","getMagicLinkStatusByEmailHash","Logout","HeaderBar","Directions","Links","RecaptchaContainer","Recaptcha","NeedsEmailConfirmation","isLoadingResendEmailConfirmation","confirmationUrl","VerifyEmail","magicLinkStatusData","OrganizationForm","heardAboutUsFrom","setHeardAboutUsFrom","gclAwCookieValue","parsedArray","googleClickId","AccountDeactivated","OrganizationSwitcher","showRejectedInvites","setShowRejectedInvites","isLoadingRejectInvite","pendingInvites","rejectedInvites","activeOrganizationUsers","isLoadingChooseOrganizationUser","OrgListItem","Org","OrgInfo","usersCount","handleOrganizationUserChoice","InviteActions","handleDeclineInvitation","inviteUrl","DismissedWrapper","LoginForm","useLogin","emailConfirmed","setEmailConfirmed","showEmailConfirmationBannerIfApplicable","emailConfirmedParam","email_confirmed","AuthForm","redirectPath","setReferral","recaptchaRef","isLoadingMagicLink","inviteData","isLoadingInvite","recaptchaElement","GOOGLE_RECAPTCHA_SITE_KEY","cleanedEmail","IS_TEST_ENV","errorParam","invite_token","accountDeleted","account_deleted","needsEmailConfirmation","acceptedAnInvite","SignupForm","useRegister","setPassword","setPasswordConfirmation","setResetPasswordToken","addResetPasswordTokenFromParams","qs","reset_password_token","WindowSizeContext","WindowSizeProvider","setDimensions","debouncedHandleResize","useOrganizationStore","usersById","organizationUsersById","ProfileForm","isLoadingUpdateMe","OnboardingProfile","UNAUTHED_ROUTES","AppAuthed","isAcceptingAnInvite","isUnauthedRoute","isLoadingUser","hasUser","isLoadingAcceptInvite","meEnabled","setFeatureFlippers","heap","identify","addUserProperties","OrganizationId","OrganizationName","StripeSubscriptionInGoodStanding","ga","Intercom","app_id","intercomAppId","company_name","has_active_subscription","created_at","defaultPath","needsHandleAcceptInvite","darkTheme","lightTheme","AppWrapper","hasCompletedProfile","needsOnboardingProfileRoute","handleRegisterRoute","restRenderProps","matchUrl","App","QueryClient","queries","QueryClientProvider","lang","amp","AppAuthRouter","initialIsOpen","rootReducer","adapter","Sentry","SENTRY_JAVASCRIPT_DSN","ReactDOM","server","_QueryObserver","InfiniteQueryObserver","bindMethods","fetchPreviousPage","setOptions","behavior","infiniteQueryBehavior","getOptimisticResult","cancelRefetch","fetchMore","createResult","_state$data","_state$data2","_state$fetchMeta","_state$fetchMeta$fetc","_state$fetchMeta2","_state$fetchMeta2$fet","hasPreviousPage","fetchMeta","isFetchingPreviousPage","useBaseQuery","epsilon","tauEpsilon","quadraticCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","ccw","cw","da","ascendingBisect","bisectRight","prefixExponent","formatDecimal","formatRounded","grouping","thousands","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","nan","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","formatPrefix"],"mappings":"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ACNo2X,QAAS,yQACR,CACDp2X,KAAM,KACNo2X,QAAS,aACR,CACDp2X,KAAM,KACNo2X,QAAS,aACR,CACDp2X,KAAM,KACNo2X,QAAS,aACR,CACDp2X,KAAM,IACNo2X,QAAS,mEACR,CACDp2X,KAAM,IACNo2X,QAAS,2CACR,CACDp2X,KAAM,IACNo2X,QAAS,6GACR,CACDp2X,KAAM,IACNo2X,QAAS,6GACR,CACDp2X,KAAM,IACNo2X,QAAS,iGACR,CACDp2X,KAAM,KACNo2X,QAAS,aACR,CACDp2X,KAAM,IACNo2X,QAAS,mNACR,CACDp2X,KAAM,IACNo2X,QAAS,uDACR,CACDp2X,KAAM,KACNo2X,QAAS,aACR,CACDp2X,KAAM,IACNo2X,QAAS,mEACR,CACDp2X,KAAM,IACNo2X,QAAS,qCACR,CACDp2X,KAAM,IACNo2X,QAAS,iGACR,CACDp2X,KAAM,IACNo2X,QAAS,2FACR,CACDp2X,KAAM,IACNo2X,QAAS,yNACR,CACDp2X,KAAM,KACNo2X,QAAS,aACR,CACDp2X,KAAM,KACNo2X,QAAS,yBACR,CACDp2X,KAAM,KACNo2X,QAAS,aACR,CACDp2X,KAAM,KACNo2X,QAAS,aACR,CACDp2X,KAAM,KACNo2X,QAAS,mBACR,CACDp2X,KAAM,KACNo2X,QAAS,aACR,CACDp2X,KAAM,IACNo2X,QAAS,6DACR,CACDp2X,KAAM,IACNo2X,QAAS,qFACR,CACDp2X,KAAM,IACNo2X,QAAS,2FACR,CACDp2X,KAAM,KACNo2X,QAAS,mBACR,CACDp2X,KAAM,IACNo2X,QAAS,iMACR,CACDp2X,KAAM,IACNo2X,QAAS,2CACR,CACDp2X,KAAM,IACNo2X,QAAS,iGACR,CACDp2X,KAAM,IACNo2X,QAAS,iGACR,CACDp2X,KAAM,KACNo2X,QAAS,aACR,CACDp2X,KAAM,IACNo2X,QAAS,+HACR,CACDp2X,KAAM,IACNo2X,QAAS,2CACR,CACDp2X,KAAM,IACNo2X,QAAS,2FACR,CACDp2X,KAAM,IACNo2X,QAAS,yHACR,CACDp2X,KAAM,KACNo2X,QAAS,aACR,CACDp2X,K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","file":"js/ats_application-4f292c343a8ec762b208.chunk.js","sourcesContent":["function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar updateQueue = makeQueue();\n\nvar raf = function raf(fn) {\n return schedule(fn, updateQueue);\n};\n\nvar writeQueue = makeQueue();\n\nraf.write = function (fn) {\n return schedule(fn, writeQueue);\n};\n\nvar onStartQueue = makeQueue();\n\nraf.onStart = function (fn) {\n return schedule(fn, onStartQueue);\n};\n\nvar onFrameQueue = makeQueue();\n\nraf.onFrame = function (fn) {\n return schedule(fn, onFrameQueue);\n};\n\nvar onFinishQueue = makeQueue();\n\nraf.onFinish = function (fn) {\n return schedule(fn, onFinishQueue);\n};\n\nvar timeouts = [];\n\nraf.setTimeout = function (handler, ms) {\n var time = raf.now() + ms;\n\n var cancel = function cancel() {\n var i = timeouts.findIndex(function (t) {\n return t.cancel == cancel;\n });\n if (~i) timeouts.splice(i, 1);\n __raf.count -= ~i ? 1 : 0;\n };\n\n var timeout = {\n time: time,\n handler: handler,\n cancel: cancel\n };\n timeouts.splice(findTimeout(time), 0, timeout);\n __raf.count += 1;\n start();\n return timeout;\n};\n\nvar findTimeout = function findTimeout(time) {\n return ~(~timeouts.findIndex(function (t) {\n return t.time > time;\n }) || ~timeouts.length);\n};\n\nraf.cancel = function (fn) {\n updateQueue[\"delete\"](fn);\n writeQueue[\"delete\"](fn);\n};\n\nraf.sync = function (fn) {\n sync = true;\n raf.batchedUpdates(fn);\n sync = false;\n};\n\nraf.throttle = function (fn) {\n var lastArgs;\n\n function queuedFn() {\n try {\n fn.apply(void 0, _toConsumableArray(lastArgs));\n } finally {\n lastArgs = null;\n }\n }\n\n function throttled() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n raf.onStart(queuedFn);\n }\n\n throttled.handler = fn;\n\n throttled.cancel = function () {\n onStartQueue[\"delete\"](queuedFn);\n lastArgs = null;\n };\n\n return throttled;\n};\n\nvar nativeRaf = typeof window != 'undefined' ? window.requestAnimationFrame : function () {};\n\nraf.use = function (impl) {\n return nativeRaf = impl;\n};\n\nraf.now = typeof performance != 'undefined' ? function () {\n return performance.now();\n} : Date.now;\n\nraf.batchedUpdates = function (fn) {\n return fn();\n};\n\nraf[\"catch\"] = console.error;\nraf.frameLoop = 'always';\n\nraf.advance = function () {\n if (raf.frameLoop !== 'demand') {\n console.warn('Cannot call the manual advancement of rafz whilst frameLoop is not set as demand');\n } else {\n update();\n }\n};\n\nvar ts = -1;\nvar sync = false;\n\nfunction schedule(fn, queue) {\n if (sync) {\n queue[\"delete\"](fn);\n fn(0);\n } else {\n queue.add(fn);\n start();\n }\n}\n\nfunction start() {\n if (ts < 0) {\n ts = 0;\n\n if (raf.frameLoop !== 'demand') {\n nativeRaf(loop);\n }\n }\n}\n\nfunction loop() {\n if (~ts) {\n nativeRaf(loop);\n raf.batchedUpdates(update);\n }\n}\n\nfunction update() {\n var prevTs = ts;\n ts = raf.now();\n var count = findTimeout(ts);\n\n if (count) {\n eachSafely(timeouts.splice(0, count), function (t) {\n return t.handler();\n });\n __raf.count -= count;\n }\n\n onStartQueue.flush();\n updateQueue.flush(prevTs ? Math.min(64, ts - prevTs) : 16.667);\n onFrameQueue.flush();\n writeQueue.flush();\n onFinishQueue.flush();\n}\n\nfunction makeQueue() {\n var next = new Set();\n var current = next;\n return {\n add: function add(fn) {\n __raf.count += current == next && !next.has(fn) ? 1 : 0;\n next.add(fn);\n },\n \"delete\": function _delete(fn) {\n __raf.count -= current == next && next.has(fn) ? 1 : 0;\n return next[\"delete\"](fn);\n },\n flush: function flush(arg) {\n if (current.size) {\n next = new Set();\n __raf.count -= current.size;\n eachSafely(current, function (fn) {\n return fn(arg) && next.add(fn);\n });\n __raf.count += next.size;\n current = next;\n }\n }\n };\n}\n\nfunction eachSafely(values, each) {\n values.forEach(function (value) {\n try {\n each(value);\n } catch (e) {\n raf[\"catch\"](e);\n }\n });\n}\n\nvar __raf = {\n count: 0,\n clear: function clear() {\n ts = -1;\n timeouts = [];\n onStartQueue = makeQueue();\n updateQueue = makeQueue();\n onFrameQueue = makeQueue();\n writeQueue = makeQueue();\n onFinishQueue = makeQueue();\n __raf.count = 0;\n }\n};\nexport { __raf, raf };","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { raf } from '@react-spring/rafz';\nexport { raf } from '@react-spring/rafz';\nimport * as React from 'react';\nimport { useEffect, useState, useRef } from 'react';\n\nfunction noop() {}\n\nvar defineHidden = function defineHidden(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n writable: true,\n configurable: true\n });\n};\n\nvar is = {\n arr: Array.isArray,\n obj: function obj(a) {\n return !!a && a.constructor.name === 'Object';\n },\n fun: function fun(a) {\n return typeof a === 'function';\n },\n str: function str(a) {\n return typeof a === 'string';\n },\n num: function num(a) {\n return typeof a === 'number';\n },\n und: function und(a) {\n return a === undefined;\n }\n};\n\nfunction isEqual(a, b) {\n if (is.arr(a)) {\n if (!is.arr(b) || a.length !== b.length) return false;\n\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n return a === b;\n}\n\nvar each = function each(obj, fn) {\n return obj.forEach(fn);\n};\n\nfunction eachProp(obj, fn, ctx) {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(ctx, obj[key], key);\n }\n }\n}\n\nvar toArray = function toArray(a) {\n return is.und(a) ? [] : is.arr(a) ? a : [a];\n};\n\nfunction flush(queue, iterator) {\n if (queue.size) {\n var items = Array.from(queue);\n queue.clear();\n each(items, iterator);\n }\n}\n\nvar flushCalls = function flushCalls(queue) {\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 flush(queue, function (fn) {\n return fn.apply(void 0, args);\n });\n};\n\nvar createStringInterpolator$1;\nvar to;\nvar colors$1 = null;\nvar skipAnimation = false;\nvar willAdvance = noop;\n\nvar assign = function assign(globals) {\n if (globals.to) to = globals.to;\n if (globals.now) raf.now = globals.now;\n if (globals.colors !== undefined) colors$1 = globals.colors;\n if (globals.skipAnimation != null) skipAnimation = globals.skipAnimation;\n if (globals.createStringInterpolator) createStringInterpolator$1 = globals.createStringInterpolator;\n if (globals.requestAnimationFrame) raf.use(globals.requestAnimationFrame);\n if (globals.batchedUpdates) raf.batchedUpdates = globals.batchedUpdates;\n if (globals.willAdvance) willAdvance = globals.willAdvance;\n if (globals.frameLoop) raf.frameLoop = globals.frameLoop;\n};\n\nvar globals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n\n get createStringInterpolator() {\n return createStringInterpolator$1;\n },\n\n get to() {\n return to;\n },\n\n get colors() {\n return colors$1;\n },\n\n get skipAnimation() {\n return skipAnimation;\n },\n\n get willAdvance() {\n return willAdvance;\n },\n\n assign: assign\n});\nvar startQueue = new Set();\nvar currentFrame = [];\nvar prevFrame = [];\nvar priority = 0;\nvar frameLoop = {\n get idle() {\n return !startQueue.size && !currentFrame.length;\n },\n\n start: function start(animation) {\n if (priority > animation.priority) {\n startQueue.add(animation);\n raf.onStart(flushStartQueue);\n } else {\n startSafely(animation);\n raf(advance);\n }\n },\n advance: advance,\n sort: function sort(animation) {\n if (priority) {\n raf.onFrame(function () {\n return frameLoop.sort(animation);\n });\n } else {\n var prevIndex = currentFrame.indexOf(animation);\n\n if (~prevIndex) {\n currentFrame.splice(prevIndex, 1);\n startUnsafely(animation);\n }\n }\n },\n clear: function clear() {\n currentFrame = [];\n startQueue.clear();\n }\n};\n\nfunction flushStartQueue() {\n startQueue.forEach(startSafely);\n startQueue.clear();\n raf(advance);\n}\n\nfunction startSafely(animation) {\n if (!currentFrame.includes(animation)) startUnsafely(animation);\n}\n\nfunction startUnsafely(animation) {\n currentFrame.splice(findIndex(currentFrame, function (other) {\n return other.priority > animation.priority;\n }), 0, animation);\n}\n\nfunction advance(dt) {\n var nextFrame = prevFrame;\n\n for (var i = 0; i < currentFrame.length; i++) {\n var animation = currentFrame[i];\n priority = animation.priority;\n\n if (!animation.idle) {\n willAdvance(animation);\n animation.advance(dt);\n\n if (!animation.idle) {\n nextFrame.push(animation);\n }\n }\n }\n\n priority = 0;\n prevFrame = currentFrame;\n prevFrame.length = 0;\n currentFrame = nextFrame;\n return currentFrame.length > 0;\n}\n\nfunction findIndex(arr, test) {\n var index = arr.findIndex(test);\n return index < 0 ? arr.length : index;\n}\n\nvar colors = {\n transparent: 0x00000000,\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff\n};\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction call() {\n for (var _len2 = arguments.length, parts = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n parts[_key2] = arguments[_key2];\n }\n\n return '\\\\(\\\\s*(' + parts.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nvar rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nvar hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nvar hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nvar hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex6 = /^#([0-9a-fA-F]{6})$/;\nvar hex8 = /^#([0-9a-fA-F]{8})$/;\n\nfunction normalizeColor(color) {\n var match;\n\n if (typeof color === 'number') {\n return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n }\n\n if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n\n if (colors$1 && colors$1[color] !== undefined) {\n return colors$1[color];\n }\n\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | 0x000000ff) >>> 0;\n }\n\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | parse1(match[4])) >>> 0;\n }\n\n if (match = hex3.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + 'ff', 16) >>> 0;\n }\n\n if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n if (match = hex4.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + match[4] + match[4], 16) >>> 0;\n }\n\n if (match = hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | 0x000000ff) >>> 0;\n }\n\n if (match = hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | parse1(match[4])) >>> 0;\n }\n\n return null;\n}\n\nfunction 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\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n var r = hue2rgb(p, q, h + 1 / 3);\n var g = hue2rgb(p, q, h);\n var b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\n\nfunction parse255(str) {\n var _int = parseInt(str, 10);\n\n if (_int < 0) return 0;\n if (_int > 255) return 255;\n return _int;\n}\n\nfunction parse360(str) {\n var _int2 = parseFloat(str);\n\n return (_int2 % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n var num = parseFloat(str);\n if (num < 0) return 0;\n if (num > 1) return 255;\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n var _int3 = parseFloat(str);\n\n if (_int3 < 0) return 0;\n if (_int3 > 100) return 1;\n return _int3 / 100;\n}\n\nfunction colorToRgba(input) {\n var int32Color = normalizeColor(input);\n if (int32Color === null) return input;\n int32Color = int32Color || 0;\n var r = (int32Color & 0xff000000) >>> 24;\n var g = (int32Color & 0x00ff0000) >>> 16;\n var b = (int32Color & 0x0000ff00) >>> 8;\n var a = (int32Color & 0x000000ff) / 255;\n return \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(a, \")\");\n}\n\nvar createInterpolator = function createInterpolator(range, output, extrapolate) {\n if (is.fun(range)) {\n return range;\n }\n\n if (is.arr(range)) {\n return createInterpolator({\n range: range,\n output: output,\n extrapolate: extrapolate\n });\n }\n\n if (is.str(range.output[0])) {\n return createStringInterpolator$1(range);\n }\n\n var config = range;\n var outputRange = config.output;\n var inputRange = config.range || [0, 1];\n var extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';\n var extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';\n\n var easing = config.easing || function (t) {\n return t;\n };\n\n return function (input) {\n var range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);\n };\n};\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n var result = map ? map(input) : input;\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n }\n\n if (outputMin === outputMax) return outputMin;\n if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax;\n if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin);\n result = easing(result);\n if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\n\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) break;\n }\n\n return i - 1;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar $get = Symbol[\"for\"]('FluidValue.get');\nvar $observers = Symbol[\"for\"]('FluidValue.observers');\n\nvar hasFluidValue = function hasFluidValue(arg) {\n return Boolean(arg && arg[$get]);\n};\n\nvar getFluidValue = function getFluidValue(arg) {\n return arg && arg[$get] ? arg[$get]() : arg;\n};\n\nvar getFluidObservers = function getFluidObservers(target) {\n return target[$observers] || null;\n};\n\nfunction callFluidObserver(observer, event) {\n if (observer.eventObserved) {\n observer.eventObserved(event);\n } else {\n observer(event);\n }\n}\n\nfunction callFluidObservers(target, event) {\n var observers = target[$observers];\n\n if (observers) {\n observers.forEach(function (observer) {\n callFluidObserver(observer, event);\n });\n }\n}\n\nvar FluidValue = function FluidValue(get) {\n _classCallCheck(this, FluidValue);\n\n this[$get] = void 0;\n this[$observers] = void 0;\n\n if (!get && !(get = this.get)) {\n throw Error('Unknown getter');\n }\n\n setFluidGetter(this, get);\n};\n\nvar setFluidGetter = function setFluidGetter(target, get) {\n return setHidden(target, $get, get);\n};\n\nfunction addFluidObserver(target, observer) {\n if (target[$get]) {\n var observers = target[$observers];\n\n if (!observers) {\n setHidden(target, $observers, observers = new Set());\n }\n\n if (!observers.has(observer)) {\n observers.add(observer);\n\n if (target.observerAdded) {\n target.observerAdded(observers.size, observer);\n }\n }\n }\n\n return observer;\n}\n\nfunction removeFluidObserver(target, observer) {\n var observers = target[$observers];\n\n if (observers && observers.has(observer)) {\n var count = observers.size - 1;\n\n if (count) {\n observers[\"delete\"](observer);\n } else {\n target[$observers] = null;\n }\n\n if (target.observerRemoved) {\n target.observerRemoved(count, observer);\n }\n }\n}\n\nvar setHidden = function setHidden(target, key, value) {\n return Object.defineProperty(target, key, {\n value: value,\n writable: true,\n configurable: true\n });\n};\n\nvar numberRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\nvar colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi;\nvar namedColorRegex;\nvar rgbaRegex = /rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi;\n\nvar rgbaRound = function rgbaRound(_, p1, p2, p3, p4) {\n return \"rgba(\".concat(Math.round(p1), \", \").concat(Math.round(p2), \", \").concat(Math.round(p3), \", \").concat(p4, \")\");\n};\n\nvar createStringInterpolator = function createStringInterpolator(config) {\n if (!namedColorRegex) namedColorRegex = colors$1 ? new RegExp(\"(\".concat(Object.keys(colors$1).join('|'), \")(?!\\\\w)\"), 'g') : /^\\b$/;\n var output = config.output.map(function (value) {\n return getFluidValue(value).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba);\n });\n var keyframes = output.map(function (value) {\n return value.match(numberRegex).map(Number);\n });\n var outputRanges = keyframes[0].map(function (_, i) {\n return keyframes.map(function (values) {\n if (!(i in values)) {\n throw Error('The arity of each \"output\" value must be equal');\n }\n\n return values[i];\n });\n });\n var interpolators = outputRanges.map(function (output) {\n return createInterpolator(_extends({}, config, {\n output: output\n }));\n });\n return function (input) {\n var i = 0;\n return output[0].replace(numberRegex, function () {\n return String(interpolators[i++](input));\n }).replace(rgbaRegex, rgbaRound);\n };\n};\n\nvar prefix = 'react-spring: ';\n\nvar once = function once(fn) {\n var func = fn;\n var called = false;\n\n if (typeof func != 'function') {\n throw new TypeError(\"\".concat(prefix, \"once requires a function parameter\"));\n }\n\n return function () {\n if (!called) {\n func.apply(void 0, arguments);\n called = true;\n }\n };\n};\n\nvar warnInterpolate = once(console.warn);\n\nfunction deprecateInterpolate() {\n warnInterpolate(\"\".concat(prefix, \"The \\\"interpolate\\\" function is deprecated in v9 (use \\\"to\\\" instead)\"));\n}\n\nvar warnDirectCall = once(console.warn);\n\nfunction deprecateDirectCall() {\n warnDirectCall(\"\".concat(prefix, \"Directly calling start instead of using the api object is deprecated in v9 (use \\\".start\\\" instead), this will be removed in later 0.X.0 versions\"));\n}\n\nfunction isAnimatedString(value) {\n return is.str(value) && (value[0] == '#' || /\\d/.test(value) || value in (colors$1 || {}));\n}\n\nvar useOnce = function useOnce(effect) {\n return useEffect(effect, emptyDeps);\n};\n\nvar emptyDeps = [];\n\nfunction useForceUpdate() {\n var update = useState()[1];\n var mounted = useState(makeMountedRef)[0];\n useOnce(mounted.unmount);\n return function () {\n if (mounted.current) {\n update({});\n }\n };\n}\n\nfunction makeMountedRef() {\n var mounted = {\n current: true,\n unmount: function unmount() {\n return function () {\n mounted.current = false;\n };\n }\n };\n return mounted;\n}\n\nfunction useMemoOne(getResult, inputs) {\n var _useState = useState(function () {\n return {\n inputs: inputs,\n result: getResult()\n };\n }),\n _useState2 = _slicedToArray(_useState, 1),\n initial = _useState2[0];\n\n var committed = useRef();\n var prevCache = committed.current;\n var cache = prevCache;\n\n if (cache) {\n var useCache = Boolean(inputs && cache.inputs && areInputsEqual(inputs, cache.inputs));\n\n if (!useCache) {\n cache = {\n inputs: inputs,\n result: getResult()\n };\n }\n } else {\n cache = initial;\n }\n\n useEffect(function () {\n committed.current = cache;\n\n if (prevCache == initial) {\n initial.inputs = initial.result = undefined;\n }\n }, [cache]);\n return cache.result;\n}\n\nfunction areInputsEqual(next, prev) {\n if (next.length !== prev.length) {\n return false;\n }\n\n for (var i = 0; i < next.length; i++) {\n if (next[i] !== prev[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction usePrev(value) {\n var prevRef = useRef();\n useEffect(function () {\n prevRef.current = value;\n });\n return prevRef.current;\n}\n\nvar useLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;\nexport { FluidValue, globals as Globals, addFluidObserver, callFluidObserver, callFluidObservers, colorToRgba, colors, createInterpolator, createStringInterpolator, defineHidden, deprecateDirectCall, deprecateInterpolate, each, eachProp, flush, flushCalls, frameLoop, getFluidObservers, getFluidValue, hasFluidValue, hex3, hex4, hex6, hex8, hsl, hsla, is, isAnimatedString, isEqual, noop, removeFluidObserver, rgb, rgba, setFluidGetter, toArray, useForceUpdate, useLayoutEffect, useMemoOne, useOnce, usePrev };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*! *****************************************************************************\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\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\nexport function __extends(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\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\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 }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result[\"default\"] = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { __spread, __values, __read, __assign } from './_virtual/_tslib.js';\nimport { DEFAULT_GUARD_TYPE, TARGETLESS_KEY, STATE_DELIMITER } from './constants.js';\nimport { IS_PRODUCTION } from './environment.js';\n\nfunction keys(value) {\n return Object.keys(value);\n}\n\nfunction matchesState(parentStateId, childStateId, delimiter) {\n if (delimiter === void 0) {\n delimiter = STATE_DELIMITER;\n }\n\n var parentStateValue = toStateValue(parentStateId, delimiter);\n var childStateValue = toStateValue(childStateId, delimiter);\n\n if (isString(childStateValue)) {\n if (isString(parentStateValue)) {\n return childStateValue === parentStateValue;\n } // Parent more specific than child\n\n\n return false;\n }\n\n if (isString(parentStateValue)) {\n return parentStateValue in childStateValue;\n }\n\n return keys(parentStateValue).every(function (key) {\n if (!(key in childStateValue)) {\n return false;\n }\n\n return matchesState(parentStateValue[key], childStateValue[key]);\n });\n}\n\nfunction getEventType(event) {\n try {\n return isString(event) || typeof event === 'number' ? \"\" + event : event.type;\n } catch (e) {\n throw new Error('Events must be strings or objects with a string event.type property.');\n }\n}\n\nfunction toStatePath(stateId, delimiter) {\n try {\n if (isArray(stateId)) {\n return stateId;\n }\n\n return stateId.toString().split(delimiter);\n } catch (e) {\n throw new Error(\"'\" + stateId + \"' is not a valid state path.\");\n }\n}\n\nfunction isStateLike(state) {\n return _typeof(state) === 'object' && 'value' in state && 'context' in state && 'event' in state && '_event' in state;\n}\n\nfunction toStateValue(stateValue, delimiter) {\n if (isStateLike(stateValue)) {\n return stateValue.value;\n }\n\n if (isArray(stateValue)) {\n return pathToStateValue(stateValue);\n }\n\n if (typeof stateValue !== 'string') {\n return stateValue;\n }\n\n var statePath = toStatePath(stateValue, delimiter);\n return pathToStateValue(statePath);\n}\n\nfunction pathToStateValue(statePath) {\n if (statePath.length === 1) {\n return statePath[0];\n }\n\n var value = {};\n var marker = value;\n\n for (var i = 0; i < statePath.length - 1; i++) {\n if (i === statePath.length - 2) {\n marker[statePath[i]] = statePath[i + 1];\n } else {\n marker[statePath[i]] = {};\n marker = marker[statePath[i]];\n }\n }\n\n return value;\n}\n\nfunction mapValues(collection, iteratee) {\n var result = {};\n var collectionKeys = keys(collection);\n\n for (var i = 0; i < collectionKeys.length; i++) {\n var key = collectionKeys[i];\n result[key] = iteratee(collection[key], key, collection, i);\n }\n\n return result;\n}\n\nfunction mapFilterValues(collection, iteratee, predicate) {\n var e_1, _a;\n\n var result = {};\n\n try {\n for (var _b = __values(keys(collection)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var item = collection[key];\n\n if (!predicate(item)) {\n continue;\n }\n\n result[key] = iteratee(item, key, collection);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return result;\n}\n/**\r\n * Retrieves a value at the given path.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\n\nvar path = function path(props) {\n return function (object) {\n var e_2, _a;\n\n var result = object;\n\n try {\n for (var props_1 = __values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n result = result[prop];\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1[\"return\"])) _a.call(props_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n return result;\n };\n};\n/**\r\n * Retrieves a value at the given path via the nested accessor prop.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\n\nfunction nestedPath(props, accessorProp) {\n return function (object) {\n var e_3, _a;\n\n var result = object;\n\n try {\n for (var props_2 = __values(props), props_2_1 = props_2.next(); !props_2_1.done; props_2_1 = props_2.next()) {\n var prop = props_2_1.value;\n result = result[accessorProp][prop];\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (props_2_1 && !props_2_1.done && (_a = props_2[\"return\"])) _a.call(props_2);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n return result;\n };\n}\n\nfunction toStatePaths(stateValue) {\n if (!stateValue) {\n return [[]];\n }\n\n if (isString(stateValue)) {\n return [[stateValue]];\n }\n\n var result = flatten(keys(stateValue).map(function (key) {\n var subStateValue = stateValue[key];\n\n if (typeof subStateValue !== 'string' && (!subStateValue || !Object.keys(subStateValue).length)) {\n return [[key]];\n }\n\n return toStatePaths(stateValue[key]).map(function (subPath) {\n return [key].concat(subPath);\n });\n }));\n return result;\n}\n\nfunction flatten(array) {\n var _a;\n\n return (_a = []).concat.apply(_a, __spread(array));\n}\n\nfunction toArrayStrict(value) {\n if (isArray(value)) {\n return value;\n }\n\n return [value];\n}\n\nfunction toArray(value) {\n if (value === undefined) {\n return [];\n }\n\n return toArrayStrict(value);\n}\n\nfunction mapContext(mapper, context, _event) {\n var e_5, _a;\n\n if (isFunction(mapper)) {\n return mapper(context, _event.data);\n }\n\n var result = {};\n\n try {\n for (var _b = __values(keys(mapper)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var subMapper = mapper[key];\n\n if (isFunction(subMapper)) {\n result[key] = subMapper(context, _event.data);\n } else {\n result[key] = subMapper;\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return result;\n}\n\nfunction isBuiltInEvent(eventType) {\n return /^(done|error)\\./.test(eventType);\n}\n\nfunction isPromiseLike(value) {\n if (value instanceof Promise) {\n return true;\n } // Check if shape matches the Promise/A+ specification for a \"thenable\".\n\n\n if (value !== null && (isFunction(value) || _typeof(value) === 'object') && isFunction(value.then)) {\n return true;\n }\n\n return false;\n}\n\nfunction partition(items, predicate) {\n var e_6, _a;\n\n var _b = __read([[], []], 2),\n truthy = _b[0],\n falsy = _b[1];\n\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item = items_1_1.value;\n\n if (predicate(item)) {\n truthy.push(item);\n } else {\n falsy.push(item);\n }\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1[\"return\"])) _a.call(items_1);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n return [truthy, falsy];\n}\n\nfunction updateHistoryStates(hist, stateValue) {\n return mapValues(hist.states, function (subHist, key) {\n if (!subHist) {\n return undefined;\n }\n\n var subStateValue = (isString(stateValue) ? undefined : stateValue[key]) || (subHist ? subHist.current : undefined);\n\n if (!subStateValue) {\n return undefined;\n }\n\n return {\n current: subStateValue,\n states: updateHistoryStates(subHist, subStateValue)\n };\n });\n}\n\nfunction updateHistoryValue(hist, stateValue) {\n return {\n current: stateValue,\n states: updateHistoryStates(hist, stateValue)\n };\n}\n\nfunction updateContext(context, _event, assignActions, state) {\n if (!IS_PRODUCTION) {\n warn(!!context, 'Attempting to update undefined context');\n }\n\n var updatedContext = context ? assignActions.reduce(function (acc, assignAction) {\n var e_7, _a;\n\n var assignment = assignAction.assignment;\n var meta = {\n state: state,\n action: assignAction,\n _event: _event\n };\n var partialUpdate = {};\n\n if (isFunction(assignment)) {\n partialUpdate = assignment(acc, _event.data, meta);\n } else {\n try {\n for (var _b = __values(keys(assignment)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var propAssignment = assignment[key];\n partialUpdate[key] = isFunction(propAssignment) ? propAssignment(acc, _event.data, meta) : propAssignment;\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n }\n\n return Object.assign({}, acc, partialUpdate);\n }, context) : context;\n return updatedContext;\n} // tslint:disable-next-line:no-empty\n\n\nvar warn = function warn() {};\n\nif (!IS_PRODUCTION) {\n warn = function warn(condition, message) {\n var error = condition instanceof Error ? condition : undefined;\n\n if (!error && condition) {\n return;\n }\n\n if (console !== undefined) {\n var args = [\"Warning: \" + message];\n\n if (error) {\n args.push(error);\n } // tslint:disable-next-line:no-console\n\n\n console.warn.apply(console, args);\n }\n };\n}\n\nfunction isArray(value) {\n return Array.isArray(value);\n} // tslint:disable-next-line:ban-types\n\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction isString(value) {\n return typeof value === 'string';\n} // export function memoizedGetter(\n// o: TP,\n// property: string,\n// getter: () => T\n// ): void {\n// Object.defineProperty(o.prototype, property, {\n// get: getter,\n// enumerable: false,\n// configurable: false\n// });\n// }\n\n\nfunction toGuard(condition, guardMap) {\n if (!condition) {\n return undefined;\n }\n\n if (isString(condition)) {\n return {\n type: DEFAULT_GUARD_TYPE,\n name: condition,\n predicate: guardMap ? guardMap[condition] : undefined\n };\n }\n\n if (isFunction(condition)) {\n return {\n type: DEFAULT_GUARD_TYPE,\n name: condition.name,\n predicate: condition\n };\n }\n\n return condition;\n}\n\nfunction isObservable(value) {\n try {\n return 'subscribe' in value && isFunction(value.subscribe);\n } catch (e) {\n return false;\n }\n}\n\nvar symbolObservable = /*#__PURE__*/function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}();\n\nfunction isMachine(value) {\n try {\n return '__xstatenode' in value;\n } catch (e) {\n return false;\n }\n}\n\nvar uniqueId = /*#__PURE__*/function () {\n var currentId = 0;\n return function () {\n currentId++;\n return currentId.toString(16);\n };\n}();\n\nfunction toEventObject(event, payload // id?: TEvent['type']\n) {\n if (isString(event) || typeof event === 'number') {\n return __assign({\n type: event\n }, payload);\n }\n\n return event;\n}\n\nfunction toSCXMLEvent(event, scxmlEvent) {\n if (!isString(event) && '$$type' in event && event.$$type === 'scxml') {\n return event;\n }\n\n var eventObject = toEventObject(event);\n return __assign({\n name: eventObject.type,\n data: eventObject,\n $$type: 'scxml',\n type: 'external'\n }, scxmlEvent);\n}\n\nfunction toTransitionConfigArray(event, configLike) {\n var transitions = toArrayStrict(configLike).map(function (transitionLike) {\n if (typeof transitionLike === 'undefined' || typeof transitionLike === 'string' || isMachine(transitionLike)) {\n // @ts-ignore until Type instantiation is excessively deep and possibly infinite bug is fixed\n return {\n target: transitionLike,\n event: event\n };\n }\n\n return __assign(__assign({}, transitionLike), {\n event: event\n });\n });\n return transitions;\n}\n\nfunction normalizeTarget(target) {\n if (target === undefined || target === TARGETLESS_KEY) {\n return undefined;\n }\n\n return toArray(target);\n}\n\nfunction reportUnhandledExceptionOnInvocation(originalError, currentError, id) {\n if (!IS_PRODUCTION) {\n var originalStackTrace = originalError.stack ? \" Stacktrace was '\" + originalError.stack + \"'\" : '';\n\n if (originalError === currentError) {\n // tslint:disable-next-line:no-console\n console.error(\"Missing onError handler for invocation '\" + id + \"', error was '\" + originalError + \"'.\" + originalStackTrace);\n } else {\n var stackTrace = currentError.stack ? \" Stacktrace was '\" + currentError.stack + \"'\" : ''; // tslint:disable-next-line:no-console\n\n console.error(\"Missing onError handler and/or unhandled exception/promise rejection for invocation '\" + id + \"'. \" + (\"Original error: '\" + originalError + \"'. \" + originalStackTrace + \" Current error is '\" + currentError + \"'.\" + stackTrace));\n }\n }\n}\n\nexport { flatten, getEventType, isArray, isBuiltInEvent, isFunction, isMachine, isObservable, isPromiseLike, isStateLike, isString, keys, mapContext, mapFilterValues, mapValues, matchesState, nestedPath, normalizeTarget, partition, path, pathToStateValue, reportUnhandledExceptionOnInvocation, symbolObservable, toArray, toArrayStrict, toEventObject, toGuard, toSCXMLEvent, toStatePath, toStatePaths, toStateValue, toTransitionConfigArray, uniqueId, updateContext, updateHistoryStates, updateHistoryValue, warn };","/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Link } from \"react-router-dom\";\n\nimport { css, keyframes } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\n\n// import { useMixpanel } from \"@shared/MixpanelContext\";\n\nconst Button = ({\n children,\n type,\n link,\n onClick,\n onMouseDown,\n disabled,\n loading,\n styleType,\n dangerous,\n isTracked,\n trackingPayload,\n ...props\n}) => {\n const eventName =\n type === \"internalLink\"\n ? \"Click Internal Link\"\n : type === \"externalLink\"\n ? \"Click External Link\"\n : \"Click Button\";\n const mixpanelPayload = { eventName, ...trackingPayload };\n\n // const mixpanel = useMixpanel(isTracked);\n\n const handleClick = (...args) => {\n if (!disabled && onClick) {\n onClick(...args);\n } else if (disabled) {\n args[0].preventDefault();\n args[0].stopPropagation();\n }\n\n try {\n const ctaText = args[0].target ? args[0].target.innerText : \"Unknown\";\n const ctaLocation = undefined;\n\n // if (mixpanel) {\n // mixpanel.track(eventName, { ctaText, ctaLocation, ...mixpanelPayload });\n // }\n } catch (error) {\n console.error(error);\n }\n };\n\n const handleOnMouseDown = (event) => {\n if (onMouseDown) {\n onMouseDown(event);\n }\n };\n\n const getStyles = (t, dark, loading = false) => {\n const typeStyles = getTypeStyles(t, dark);\n return css`\n ${[typeStyles, t.text.medium, t.rounded.sm]}\n white-space: nowrap;\n border: none;\n appearance: none;\n position: relative;\n cursor: pointer;\n max-width: 100%;\n\n &:disabled {\n opacity: ${loading ? 1 : 0.5};\n cursor: default;\n }\n `;\n };\n\n const getTypeStyles = (t, dark) => {\n const buttonShape = css`\n ${[t.h(10), t.text.base, t.px(4)]}\n display: ${type === \"internalLink\" || type === \"externalLink\" ? \"inline-flex\" : \"flex\"};\n align-items: center;\n justify-content: center;\n outline: none;\n width: 100%;\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n width: auto;\n }\n `;\n switch (styleType) {\n case \"primary\":\n return css`\n ${buttonShape};\n color: ${t.dark ? t.color.black : t.color.white};\n &:link,\n &:visited {\n color: ${t.dark ? t.color.black : t.color.white};\n }\n background: ${t.dark\n ? \"linear-gradient(120deg, #FBD7FF 10%, #FFDEC1 90%)\"\n : dangerous\n ? t.color.red[600]\n : t.color.black};\n transition: background 0.2s ease, box-shadow 0.2s ease;\n &:hover:not([disabled]) {\n background: ${t.dark\n ? \"linear-gradient(to right, #FBD7FF -30%, #FFDEC1 70%)\"\n : dangerous\n ? t.color.red[700]\n : t.color.gray[700]};\n }\n &:focus {\n ${t.dark\n ? `box-shadow: 0 0 0 2px ${t.color.gray[500]}`\n : `box-shadow: 0 0 0 2px ${dangerous ? t.color.gray[300] : t.color.gray[400]}`};\n }\n\n > span {\n overflow-x: hidden;\n line-height: 1.6;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n `;\n case \"secondary\":\n return css`\n ${buttonShape}\n background-color: ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n transition: background-color 0.2s ease, box-shadow 0.2s ease;\n color: ${t.dark ? t.color.gray[200] : dangerous ? t.color.red[600] : t.color.black};\n &:link,\n &:visited {\n color: ${t.dark ? t.color.gray[200] : dangerous ? t.color.red[600] : t.color.black};\n }\n border: 1px solid ${t.color.gray[200]};\n &:hover:not([disabled]) {\n color: ${t.dark ? t.color.white : dangerous ? t.color.red[700] : t.color.black};\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[300]};\n }\n &:focus {\n box-shadow: 0 0 0 2px ${t.dark ? t.color.gray[500] : t.color.gray[300]};\n }\n &:hover:focus {\n box-shadow: 0 0 0 2px ${t.dark ? t.color.gray[500] : t.color.gray[300]};\n }\n\n > span {\n overflow-x: hidden;\n line-height: 1.6;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n `;\n case \"text\":\n return css`\n ${type === \"externalLink\" &&\n `\n svg {\n margin-left: 0.375rem;\n height: 1.125em;\n width: 1.125em;\n }\n `}\n\n display: inline-flex;\n background-color: transparent;\n color: ${t.dark ? t.color.gray[300] : dangerous ? t.color.red[600] : t.color.black};\n &:link,\n &:visited {\n color: ${t.dark ? t.color.gray[300] : dangerous ? t.color.red[600] : t.color.black};\n }\n outline: none;\n &:hover:not([disabled]) {\n text-decoration: underline;\n }\n &:focus {\n text-decoration: underline;\n }\n\n > span {\n display: flex;\n align-items: center;\n }\n `;\n }\n };\n\n /* KIND TRANSITION\n ======================================================= */\n switch (type) {\n case \"internalLink\":\n return (\n getStyles(theme)}>\n {children}\n \n );\n case \"externalLink\":\n return (\n getStyles(theme)}\n >\n {children}\n \n );\n default:\n return (\n getStyles(theme, loading)}\n {...props}\n onClick={handleClick}\n onMouseDown={handleOnMouseDown}\n disabled={disabled}\n >\n {children}\n {loading && (\n \n
\n
\n
\n \n )}\n \n );\n }\n};\n\nButton.propTypes = {\n children: PropTypes.any.isRequired, // eslint-disable-line react/forbid-prop-types\n type: PropTypes.string.isRequired,\n styleType: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n link: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n onClick: PropTypes.func,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n dangerous: PropTypes.bool,\n form: PropTypes.string,\n};\n\nButton.defaultProps = {\n type: \"button\",\n styleType: \"primary\",\n size: \"medium\",\n link: null,\n disabled: false,\n loading: false,\n dangerous: false,\n isTracked: true,\n};\n\nexport default Button;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Loader = styled.div((props) => {\n const t = props.theme;\n return css`\n label: Button_Loader;\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n height: 100%;\n opacity: 100%;\n &:before {\n ${t.rounded.sm}\n background: ${props.styleType === \"primary\"\n ? t.dark\n ? \"linear-gradient(to right, #FBD7FF -40%, #FFDEC1 80%)\"\n : t.color.gray[700]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[300]};\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n content: \"\";\n }\n div {\n position: relative;\n width: 0.125rem;\n margin: 0.125rem;\n background-color: ${props.styleType === \"primary\"\n ? t.dark\n ? t.color.black\n : t.color.white\n : t.dark\n ? t.color.gray[200]\n : t.color.black};\n animation: ${loadingAnimation} 1.6s cubic-bezier(0, 0.5, 0.5, 1) infinite;\n }\n div:nth-of-type(1) {\n animation-delay: -0.24s;\n }\n div:nth-of-type(2) {\n animation-delay: -0.12s;\n }\n div:nth-of-type(3) {\n animation-delay: 0;\n }\n `;\n});\n\nconst loadingAnimation = keyframes`\n 0% {\n height: 0.75rem;\n }\n 30%,\n 100% {\n height: 0.125rem;\n }\n`;\n","import camelCase from \"lodash/camelCase\";\nimport snakeCase from \"lodash/snakeCase\";\nimport forEach from \"lodash/forEach\";\nimport isPlainObject from \"lodash/isPlainObject\";\nimport isArray from \"lodash/isArray\";\nimport has from \"lodash/has\";\n\nexport const failureResultToErrorsArray = (object) => {\n // console.warn(\"[stucture] failureResultToErrorsArray object\", object.errors);\n let errors = {};\n if (has(object, \"errors\")) {\n errors = { ...errors, ...object.errors };\n }\n return errors;\n};\n\nexport const keysToCamel = (obj) => {\n if (!isPlainObject(obj)) {\n return obj;\n }\n const newObject = {};\n forEach(Object.keys(obj), (key) => {\n newObject[camelCase(key)] = obj[key];\n });\n return newObject;\n};\n\nexport const collectionToCamel = (collection) => {\n if (!isArray(collection)) {\n return collection;\n }\n const newCollection = [];\n forEach(collection, (obj) => {\n newCollection.push(keysToCamel(obj));\n });\n return newCollection;\n};\n\nexport const allKeysToCamel = (obj, modifyValues = {}) => {\n const simpleKeysToCamel = (object) => {\n if (!isPlainObject(object)) {\n return object;\n }\n const newObject = {};\n forEach(Object.keys(object), (key) => {\n if (has(modifyValues, key)) {\n newObject[camelCase(key)] = modifyValues[key](object[key]);\n } else {\n newObject[camelCase(key)] = allKeysToCamel(object[key], modifyValues);\n }\n });\n return newObject;\n };\n\n const simpleCollectionToCamel = (collection) => {\n const newCollection = [];\n forEach(collection, (object) => {\n newCollection.push(simpleKeysToCamel(object));\n });\n return newCollection;\n };\n\n if (isArray(obj)) {\n return simpleCollectionToCamel(obj);\n }\n if (isPlainObject(obj)) {\n return simpleKeysToCamel(obj);\n }\n return obj;\n};\n\nexport const keysToSnake = (obj) => {\n if (!isPlainObject(obj)) {\n return obj;\n }\n const newObject = {};\n forEach(Object.keys(obj), (key) => {\n newObject[snakeCase(key)] = obj[key];\n });\n return newObject;\n};\n\nexport const collectionToSnake = (collection) => {\n if (!isArray(collection)) {\n return collection;\n }\n const newCollection = [];\n forEach(collection, (obj) => {\n newCollection.push(keysToSnake(obj));\n });\n return newCollection;\n};\n\nexport const allKeysToSnake = (obj, modifyValues = {}) => {\n const simpleKeysToSnake = (object) => {\n if (!isPlainObject(object)) {\n return object;\n }\n const newObject = {};\n forEach(Object.keys(object), (key) => {\n if (has(modifyValues, key)) {\n newObject[snakeCase(key)] = modifyValues[key](object[key]);\n } else {\n newObject[snakeCase(key)] = allKeysToSnake(object[key], modifyValues);\n }\n });\n return newObject;\n };\n\n const simpleCollectionToSnake = (collection) => {\n const newCollection = [];\n forEach(collection, (object) => {\n newCollection.push(simpleKeysToSnake(object));\n });\n return newCollection;\n };\n\n if (isArray(obj)) {\n return simpleCollectionToSnake(obj);\n }\n if (isPlainObject(obj)) {\n return simpleKeysToSnake(obj);\n }\n return obj;\n};\n","import axios from \"axios\";\nimport { allKeysToSnake, allKeysToCamel } from \"@ats/src/lib/utils/structure\";\nimport Rails from \"@rails/ujs\";\n\nexport const apiGet = async ({ path }) => {\n const requestPath = `/api/v1${path}`;\n\n const { data } = await axios.get(requestPath, {\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n });\n\n window.logger(\"%c[queryHooks] apiGet\", \"color: #1976D2\", {\n data,\n requestPath,\n // zustandAuthToken,\n // contextAuthToken,\n });\n\n return allKeysToCamel(data);\n};\n\nexport const apiPost = async ({ path, variables, skipKeysToSnake = false }) => {\n window.logger(\"%c[queryHooks] apiPost\", \"color: #109902\", { path, variables });\n return await apiMutate({ method: \"post\", path, variables, skipKeysToSnake });\n};\n\nexport const apiPut = async ({ path, variables }) => {\n window.logger(\"%c[queryHooks] apiPut\", \"color: #99F002; background: black;\", { path, variables });\n return await apiMutate({ method: \"put\", path, variables });\n};\n\nexport const apiDelete = async ({ path, variables }) => {\n window.logger(\"%c[queryHooks] apiDelete\", \"color: #126d59\", { path, variables });\n return await apiMutate({ method: \"delete\", path, variables });\n};\n\nconst apiMutate = async ({ method, path, variables, skipKeysToSnake = false }) => {\n const requestPath = `/api/v1${path}`;\n\n const { data } = await axios\n .request({\n method,\n url: requestPath,\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": Rails.csrfToken(),\n },\n data: skipKeysToSnake ? variables : allKeysToSnake(variables),\n })\n .catch((errorObject) => {\n const { response } = errorObject;\n const responseData = allKeysToCamel(response.data);\n const normalizedError = {\n ...response,\n data: responseData,\n };\n window.logger(\"%c[apiMutate] catch ERROR\", \"color: #FF0072\", normalizedError);\n return Promise.reject(normalizedError);\n });\n\n window.logger(\"%c[queryHooks] apiMutate\", \"color: #1976D2\", { data, variables, requestPath });\n\n return allKeysToCamel(data);\n};\n\n/* DELETE\n--===================================================-- */\n// export const apiDelete = async ({ path, variables }) => {\n// const requestPath = `/api/v1${path}`;\n\n// const { data } = await axios.request({\n// method: \"delete\",\n// url: requestPath,\n// headers: {\n// Accept: \"application/json\",\n// \"Content-Type\": \"application/json\",\n// },\n// data: allKeysToSnake(variables),\n// });\n\n// window.logger(\"%c[queryHooks] apiDelete\", \"color: #1976D2\", { data, variables, requestPath });\n\n// return allKeysToCamel(data);\n// };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nfunction __values(o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n}\n\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n\nfunction __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n\nexport { _assign as __assign, __read, __rest, __spread, __values };","import { css } from \"@emotion/react\";\nimport * as Feather from \"react-feather\";\n\nconst toPascalCase = (text) => {\n return text.replace(/(^\\w|-\\w)/g, clearAndUpper);\n};\n\nconst clearAndUpper = (text) => {\n return text.replace(/-/, \"\").toUpperCase();\n};\n\nconst Icon = ({ name }) => {\n const SelectedIcon = Feather[toPascalCase(name)];\n return (\n \n );\n};\n\nexport default Icon;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.addMethod = addMethod;\nexports.lazy = exports.ref = exports[\"boolean\"] = void 0;\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nexports.mixed = _mixed[\"default\"];\n\nvar _boolean = _interopRequireDefault(require(\"./boolean\"));\n\nexports.bool = _boolean[\"default\"];\n\nvar _string = _interopRequireDefault(require(\"./string\"));\n\nexports.string = _string[\"default\"];\n\nvar _number = _interopRequireDefault(require(\"./number\"));\n\nexports.number = _number[\"default\"];\n\nvar _date = _interopRequireDefault(require(\"./date\"));\n\nexports.date = _date[\"default\"];\n\nvar _object = _interopRequireDefault(require(\"./object\"));\n\nexports.object = _object[\"default\"];\n\nvar _array = _interopRequireDefault(require(\"./array\"));\n\nexports.array = _array[\"default\"];\n\nvar _Reference = _interopRequireDefault(require(\"./Reference\"));\n\nvar _Lazy = _interopRequireDefault(require(\"./Lazy\"));\n\nvar _ValidationError = _interopRequireDefault(require(\"./ValidationError\"));\n\nexports.ValidationError = _ValidationError[\"default\"];\n\nvar _reach = _interopRequireDefault(require(\"./util/reach\"));\n\nexports.reach = _reach[\"default\"];\n\nvar _isSchema = _interopRequireDefault(require(\"./util/isSchema\"));\n\nexports.isSchema = _isSchema[\"default\"];\n\nvar _setLocale = _interopRequireDefault(require(\"./setLocale\"));\n\nexports.setLocale = _setLocale[\"default\"];\nvar _boolean2 = _boolean[\"default\"];\nexports[\"boolean\"] = _boolean2;\n\nvar ref = function ref(key, options) {\n return new _Reference[\"default\"](key, options);\n};\n\nexports.ref = ref;\n\nvar lazy = function lazy(fn) {\n return new _Lazy[\"default\"](fn);\n};\n\nexports.lazy = lazy;\n\nfunction addMethod(schemaType, name, fn) {\n if (!schemaType || !(0, _isSchema[\"default\"])(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');\n if (typeof name !== 'string') throw new TypeError('A Method name must be provided');\n if (typeof fn !== 'function') throw new TypeError('Method function must be provided');\n schemaType.prototype[name] = fn;\n}","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n\n if (value > 0) {\n return 1;\n }\n\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\n\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n}\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n\n for (var i = 0; i < len; i++) {\n xsum += data[i].cx;\n ysum += data[i].cy;\n xysum += data[i].cx * data[i].cy;\n xxsum += data[i].cx * data[i].cx;\n xmin = Math.min(xmin, data[i].cx);\n xmax = Math.max(xmax, data[i].cx);\n }\n\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","import { css } from \"@emotion/react\";\n\nconst baseColors = {\n white: '#FFFFFF',\n gray: {\n 50: '#FAFAFA',\n 100: '#F5F5F5',\n 200: '#E5E5E5',\n 300: '#D4D4D4',\n 400: '#A3A3A3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n black: '#000000',\n}\n\nconst color = {\n data: [\n \"#fd7f6f\",\n \"#7eb0d5\",\n \"#b2e061\",\n \"#bd7ebe\",\n \"#ffb55a\",\n \"#ffee65\",\n \"#beb9db\",\n \"#fdcce5\",\n \"#8bd3c7\",\n\n // \"#003f5c\",\n // \"#2f4b7c\",\n // \"#665191\",\n // \"#a05195\",\n // \"#d45087\",\n // \"#f95d6a\",\n // \"#ff7c43\",\n // \"#ffa600\",\n ],\n ...baseColors,\n\n orange: {\n 200: \"#EBD7B5\",\n },\n red: {\n 100: \"#FEE2E2\",\n 200: \"#FECACA\",\n 300: \"#FCA5A5\",\n 400: \"#F87171\",\n 500: \"#EF4444\",\n 600: \"#DC2626\",\n 700: \"#B91C1C\",\n },\n};\n\nconst spacing = {\n \"0\": \"0px\",\n px: \"1px\",\n \"1\": \"0.25rem\",\n \"2\": \"0.5rem\",\n \"3\": \"0.75rem\",\n \"4\": \"1rem\",\n \"5\": \"1.25rem\",\n \"6\": \"1.5rem\",\n \"8\": \"2rem\",\n \"10\": \"2.5rem\",\n \"12\": \"3rem\",\n \"16\": \"4rem\",\n \"20\": \"5rem\",\n \"24\": \"6rem\",\n \"32\": \"8rem\",\n \"40\": \"10rem\",\n \"48\": \"12rem\",\n \"56\": \"14rem\",\n \"64\": \"16rem\",\n auto: \"auto\",\n};\n\nfunction spacingFromSize(size) {\n let sizeString = size.toString();\n if (sizeString.charAt(0) === \"-\") {\n return \"-\" + spacing[sizeString.substr(1)];\n } else return spacing[sizeString];\n}\n\nconst typeScale = {\n xs: css`\n font-size: 0.75rem;\n `,\n sm: css`\n font-size: 0.875rem;\n `,\n base: css`\n font-size: 1rem;\n `,\n lg: css`\n font-size: 1.125rem;\n `,\n xl: css`\n font-size: 1.25rem;\n `,\n xxl: css`\n font-size: 1.5rem;\n `,\n xxxl: css`\n font-size: 1.875rem;\n `,\n};\n\nconst breakpoints: { [index: string]: number } = {\n md: 480,\n lg: 768,\n xl: 1024,\n};\n\nconst mq = Object.keys(breakpoints)\n .map((key) => [key, breakpoints[key]] as [string, number])\n .reduce((prev, [key, breakpoint]) => {\n prev[key] = `@media (min-width: ${breakpoint}px)`;\n return prev;\n }, {} as { [index: string]: string });\n\n\nconst theme = {\n color,\n spacing,\n mq,\n\n // Size\n h: function (size) {\n return css`\n height: ${spacing[size.toString()]};\n `;\n },\n w: function (size) {\n return css`\n width: ${spacing[size.toString()]};\n `;\n },\n\n // Position\n l: function (size) {\n return css`\n left: ${spacingFromSize(size)};\n `;\n },\n r: function (size) {\n return css`\n right: ${spacingFromSize(size)};\n `;\n },\n t: function (size) {\n return css`\n top: ${spacingFromSize(size)};\n `;\n },\n b: function (size) {\n return css`\n bottom: ${spacingFromSize(size)};\n `;\n },\n\n // Margins\n m: function (size) {\n return css`\n margin: ${spacingFromSize(size)};\n `;\n },\n ml: function (size) {\n return css`\n margin-left: ${spacingFromSize(size)};\n `;\n },\n mr: function (size) {\n return css`\n margin-right: ${spacingFromSize(size)};\n `;\n },\n mt: function (size) {\n return css`\n margin-top: ${spacingFromSize(size)};\n `;\n },\n mb: function (size) {\n return css`\n margin-bottom: ${spacingFromSize(size)};\n `;\n },\n mx: function (size) {\n return css`\n margin-left: ${spacingFromSize(size)};\n margin-right: ${spacingFromSize(size)};\n `;\n },\n my: function (size) {\n return css`\n margin-top: ${spacingFromSize(size)};\n margin-bottom: ${spacingFromSize(size)};\n `;\n },\n\n // Padding\n p: function (size) {\n return css`\n padding: ${spacing[size.toString()]};\n `;\n },\n pl: function (size) {\n return css`\n padding-left: ${spacing[size.toString()]};\n `;\n },\n pr: function (size) {\n return css`\n padding-right: ${spacing[size.toString()]};\n `;\n },\n pt: function (size) {\n return css`\n padding-top: ${spacing[size.toString()]};\n `;\n },\n pb: function (size) {\n return css`\n padding-bottom: ${spacing[size.toString()]};\n `;\n },\n px: function (size) {\n var sizeKey = size.toString();\n return css`\n padding-left: ${spacing[sizeKey]};\n padding-right: ${spacing[sizeKey]};\n `;\n },\n py: function (size) {\n var sizeKey = size.toString();\n return css`\n padding-top: ${spacing[sizeKey]};\n padding-bottom: ${spacing[sizeKey]};\n `;\n },\n\n text: {\n ...typeScale,\n\n // Font Weights\n normal: css`\n font-weight: 400;\n `,\n medium: css`\n font-weight: 450;\n `,\n semibold: css`\n font-weight: 500;\n `,\n bold: css`\n font-weight: 600;\n `,\n\n // Font Colors\n forefront: css`\n color: ${color.black};\n `,\n primary: css`\n color: ${color.black};\n `,\n secondary: css`\n color: ${color.gray[600]};\n `,\n\n // Headings\n h1: css`\n font-weight: 600;\n ${typeScale.xxxl};\n `,\n h2: css`\n font-weight: 600;\n ${typeScale.xxl};\n `,\n h3: css`\n font-weight: 600;\n ${typeScale.xl};\n `,\n h4: css`\n font-weight: 600;\n ${typeScale.lg};\n `,\n h5: css`\n font-weight: 600;\n ${typeScale.base};\n `,\n h6: css`\n font-weight: 600;\n ${typeScale.sm};\n `,\n },\n\n rounded: {\n xs: css`\n border-radius: 0.25rem;\n `,\n sm: css`\n border-radius: 0.3125rem;\n `,\n md: css`\n border-radius: 0.4375rem;\n `,\n },\n};\n\nexport default theme;","// ::- Persistent data structure representing an ordered mapping from\n// strings to values, with some convenient update methods.\nfunction OrderedMap(content) {\n this.content = content;\n}\n\nOrderedMap.prototype = {\n constructor: OrderedMap,\n find: function find(key) {\n for (var i = 0; i < this.content.length; i += 2) {\n if (this.content[i] === key) return i;\n }\n\n return -1;\n },\n // :: (string) → ?any\n // Retrieve the value stored under `key`, or return undefined when\n // no such key exists.\n get: function get(key) {\n var found = this.find(key);\n return found == -1 ? undefined : this.content[found + 1];\n },\n // :: (string, any, ?string) → OrderedMap\n // Create a new map by replacing the value of `key` with a new\n // value, or adding a binding to the end of the map. If `newKey` is\n // given, the key of the binding will be replaced with that key.\n update: function update(key, value, newKey) {\n var self = newKey && newKey != key ? this.remove(newKey) : this;\n var found = self.find(key),\n content = self.content.slice();\n\n if (found == -1) {\n content.push(newKey || key, value);\n } else {\n content[found + 1] = value;\n if (newKey) content[found] = newKey;\n }\n\n return new OrderedMap(content);\n },\n // :: (string) → OrderedMap\n // Return a map with the given key removed, if it existed.\n remove: function remove(key) {\n var found = this.find(key);\n if (found == -1) return this;\n var content = this.content.slice();\n content.splice(found, 2);\n return new OrderedMap(content);\n },\n // :: (string, any) → OrderedMap\n // Add a new key to the start of the map.\n addToStart: function addToStart(key, value) {\n return new OrderedMap([key, value].concat(this.remove(key).content));\n },\n // :: (string, any) → OrderedMap\n // Add a new key to the end of the map.\n addToEnd: function addToEnd(key, value) {\n var content = this.remove(key).content.slice();\n content.push(key, value);\n return new OrderedMap(content);\n },\n // :: (string, string, any) → OrderedMap\n // Add a key after the given key. If `place` is not found, the new\n // key is added to the end.\n addBefore: function addBefore(place, key, value) {\n var without = this.remove(key),\n content = without.content.slice();\n var found = without.find(place);\n content.splice(found == -1 ? content.length : found, 0, key, value);\n return new OrderedMap(content);\n },\n // :: ((key: string, value: any))\n // Call the given function for each key/value pair in the map, in\n // order.\n forEach: function forEach(f) {\n for (var i = 0; i < this.content.length; i += 2) {\n f(this.content[i], this.content[i + 1]);\n }\n },\n // :: (union) → OrderedMap\n // Create a new map by prepending the keys in this map that don't\n // appear in `map` before the keys in `map`.\n prepend: function prepend(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this;\n return new OrderedMap(map.content.concat(this.subtract(map).content));\n },\n // :: (union) → OrderedMap\n // Create a new map by appending the keys in this map that don't\n // appear in `map` after the keys in `map`.\n append: function append(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this;\n return new OrderedMap(this.subtract(map).content.concat(map.content));\n },\n // :: (union) → OrderedMap\n // Create a map containing all the keys in this map that don't\n // appear in `map`.\n subtract: function subtract(map) {\n var result = this;\n map = OrderedMap.from(map);\n\n for (var i = 0; i < map.content.length; i += 2) {\n result = result.remove(map.content[i]);\n }\n\n return result;\n },\n\n // :: number\n // The amount of keys in this map.\n get size() {\n return this.content.length >> 1;\n }\n\n}; // :: (?union) → OrderedMap\n// Return a map with the given content. If null, create an empty\n// map. If given an ordered map, return that map itself. If given an\n// object, create a map from the object's properties.\n\nOrderedMap.from = function (value) {\n if (value instanceof OrderedMap) return value;\n var content = [];\n if (value) for (var prop in value) {\n content.push(prop, value[prop]);\n }\n return new OrderedMap(content);\n};\n\nvar orderedmap = OrderedMap;\nexport default orderedmap;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport OrderedMap from 'orderedmap';\n\nfunction findDiffStart(a, b, pos) {\n for (var i = 0;; i++) {\n if (i == a.childCount || i == b.childCount) {\n return a.childCount == b.childCount ? null : pos;\n }\n\n var childA = a.child(i),\n childB = b.child(i);\n\n if (childA == childB) {\n pos += childA.nodeSize;\n continue;\n }\n\n if (!childA.sameMarkup(childB)) {\n return pos;\n }\n\n if (childA.isText && childA.text != childB.text) {\n for (var j = 0; childA.text[j] == childB.text[j]; j++) {\n pos++;\n }\n\n return pos;\n }\n\n if (childA.content.size || childB.content.size) {\n var inner = findDiffStart(childA.content, childB.content, pos + 1);\n\n if (inner != null) {\n return inner;\n }\n }\n\n pos += childA.nodeSize;\n }\n}\n\nfunction findDiffEnd(a, b, posA, posB) {\n for (var iA = a.childCount, iB = b.childCount;;) {\n if (iA == 0 || iB == 0) {\n return iA == iB ? null : {\n a: posA,\n b: posB\n };\n }\n\n var childA = a.child(--iA),\n childB = b.child(--iB),\n size = childA.nodeSize;\n\n if (childA == childB) {\n posA -= size;\n posB -= size;\n continue;\n }\n\n if (!childA.sameMarkup(childB)) {\n return {\n a: posA,\n b: posB\n };\n }\n\n if (childA.isText && childA.text != childB.text) {\n var same = 0,\n minSize = Math.min(childA.text.length, childB.text.length);\n\n while (same < minSize && childA.text[childA.text.length - same - 1] == childB.text[childB.text.length - same - 1]) {\n same++;\n posA--;\n posB--;\n }\n\n return {\n a: posA,\n b: posB\n };\n }\n\n if (childA.content.size || childB.content.size) {\n var inner = findDiffEnd(childA.content, childB.content, posA - 1, posB - 1);\n\n if (inner) {\n return inner;\n }\n }\n\n posA -= size;\n posB -= size;\n }\n} // ::- A fragment represents a node's collection of child nodes.\n//\n// Like nodes, fragments are persistent data structures, and you\n// should not mutate them or their content. Rather, you create new\n// instances whenever needed. The API tries to make this easy.\n\n\nvar Fragment = function Fragment(content, size) {\n this.content = content; // :: number\n // The size of the fragment, which is the total of the size of its\n // content nodes.\n\n this.size = size || 0;\n\n if (size == null) {\n for (var i = 0; i < content.length; i++) {\n this.size += content[i].nodeSize;\n }\n }\n};\n\nvar prototypeAccessors = {\n firstChild: {\n configurable: true\n },\n lastChild: {\n configurable: true\n },\n childCount: {\n configurable: true\n }\n}; // :: (number, number, (node: Node, start: number, parent: Node, index: number) → ?bool, ?number)\n// Invoke a callback for all descendant nodes between the given two\n// positions (relative to start of this fragment). Doesn't descend\n// into a node when the callback returns `false`.\n\nFragment.prototype.nodesBetween = function nodesBetween(from, to, f, nodeStart, parent) {\n if (nodeStart === void 0) nodeStart = 0;\n\n for (var i = 0, pos = 0; pos < to; i++) {\n var child = this.content[i],\n end = pos + child.nodeSize;\n\n if (end > from && f(child, nodeStart + pos, parent, i) !== false && child.content.size) {\n var start = pos + 1;\n child.nodesBetween(Math.max(0, from - start), Math.min(child.content.size, to - start), f, nodeStart + start);\n }\n\n pos = end;\n }\n}; // :: ((node: Node, pos: number, parent: Node) → ?bool)\n// Call the given callback for every descendant node. The callback\n// may return `false` to prevent traversal of a given node's children.\n\n\nFragment.prototype.descendants = function descendants(f) {\n this.nodesBetween(0, this.size, f);\n}; // : (number, number, ?string, ?string) → string\n\n\nFragment.prototype.textBetween = function textBetween(from, to, blockSeparator, leafText) {\n var text = \"\",\n separated = true;\n this.nodesBetween(from, to, function (node, pos) {\n if (node.isText) {\n text += node.text.slice(Math.max(from, pos) - pos, to - pos);\n separated = !blockSeparator;\n } else if (node.isLeaf && leafText) {\n text += leafText;\n separated = !blockSeparator;\n } else if (!separated && node.isBlock) {\n text += blockSeparator;\n separated = true;\n }\n }, 0);\n return text;\n}; // :: (Fragment) → Fragment\n// Create a new fragment containing the combined content of this\n// fragment and the other.\n\n\nFragment.prototype.append = function append(other) {\n if (!other.size) {\n return this;\n }\n\n if (!this.size) {\n return other;\n }\n\n var last = this.lastChild,\n first = other.firstChild,\n content = this.content.slice(),\n i = 0;\n\n if (last.isText && last.sameMarkup(first)) {\n content[content.length - 1] = last.withText(last.text + first.text);\n i = 1;\n }\n\n for (; i < other.content.length; i++) {\n content.push(other.content[i]);\n }\n\n return new Fragment(content, this.size + other.size);\n}; // :: (number, ?number) → Fragment\n// Cut out the sub-fragment between the two given positions.\n\n\nFragment.prototype.cut = function cut(from, to) {\n if (to == null) {\n to = this.size;\n }\n\n if (from == 0 && to == this.size) {\n return this;\n }\n\n var result = [],\n size = 0;\n\n if (to > from) {\n for (var i = 0, pos = 0; pos < to; i++) {\n var child = this.content[i],\n end = pos + child.nodeSize;\n\n if (end > from) {\n if (pos < from || end > to) {\n if (child.isText) {\n child = child.cut(Math.max(0, from - pos), Math.min(child.text.length, to - pos));\n } else {\n child = child.cut(Math.max(0, from - pos - 1), Math.min(child.content.size, to - pos - 1));\n }\n }\n\n result.push(child);\n size += child.nodeSize;\n }\n\n pos = end;\n }\n }\n\n return new Fragment(result, size);\n};\n\nFragment.prototype.cutByIndex = function cutByIndex(from, to) {\n if (from == to) {\n return Fragment.empty;\n }\n\n if (from == 0 && to == this.content.length) {\n return this;\n }\n\n return new Fragment(this.content.slice(from, to));\n}; // :: (number, Node) → Fragment\n// Create a new fragment in which the node at the given index is\n// replaced by the given node.\n\n\nFragment.prototype.replaceChild = function replaceChild(index, node) {\n var current = this.content[index];\n\n if (current == node) {\n return this;\n }\n\n var copy = this.content.slice();\n var size = this.size + node.nodeSize - current.nodeSize;\n copy[index] = node;\n return new Fragment(copy, size);\n}; // : (Node) → Fragment\n// Create a new fragment by prepending the given node to this\n// fragment.\n\n\nFragment.prototype.addToStart = function addToStart(node) {\n return new Fragment([node].concat(this.content), this.size + node.nodeSize);\n}; // : (Node) → Fragment\n// Create a new fragment by appending the given node to this\n// fragment.\n\n\nFragment.prototype.addToEnd = function addToEnd(node) {\n return new Fragment(this.content.concat(node), this.size + node.nodeSize);\n}; // :: (Fragment) → bool\n// Compare this fragment to another one.\n\n\nFragment.prototype.eq = function eq(other) {\n if (this.content.length != other.content.length) {\n return false;\n }\n\n for (var i = 0; i < this.content.length; i++) {\n if (!this.content[i].eq(other.content[i])) {\n return false;\n }\n }\n\n return true;\n}; // :: ?Node\n// The first child of the fragment, or `null` if it is empty.\n\n\nprototypeAccessors.firstChild.get = function () {\n return this.content.length ? this.content[0] : null;\n}; // :: ?Node\n// The last child of the fragment, or `null` if it is empty.\n\n\nprototypeAccessors.lastChild.get = function () {\n return this.content.length ? this.content[this.content.length - 1] : null;\n}; // :: number\n// The number of child nodes in this fragment.\n\n\nprototypeAccessors.childCount.get = function () {\n return this.content.length;\n}; // :: (number) → Node\n// Get the child node at the given index. Raise an error when the\n// index is out of range.\n\n\nFragment.prototype.child = function child(index) {\n var found = this.content[index];\n\n if (!found) {\n throw new RangeError(\"Index \" + index + \" out of range for \" + this);\n }\n\n return found;\n}; // :: (number) → ?Node\n// Get the child node at the given index, if it exists.\n\n\nFragment.prototype.maybeChild = function maybeChild(index) {\n return this.content[index];\n}; // :: ((node: Node, offset: number, index: number))\n// Call `f` for every child node, passing the node, its offset\n// into this parent node, and its index.\n\n\nFragment.prototype.forEach = function forEach(f) {\n for (var i = 0, p = 0; i < this.content.length; i++) {\n var child = this.content[i];\n f(child, p, i);\n p += child.nodeSize;\n }\n}; // :: (Fragment) → ?number\n// Find the first position at which this fragment and another\n// fragment differ, or `null` if they are the same.\n\n\nFragment.prototype.findDiffStart = function findDiffStart$1(other, pos) {\n if (pos === void 0) pos = 0;\n return findDiffStart(this, other, pos);\n}; // :: (Fragment) → ?{a: number, b: number}\n// Find the first position, searching from the end, at which this\n// fragment and the given fragment differ, or `null` if they are the\n// same. Since this position will not be the same in both nodes, an\n// object with two separate positions is returned.\n\n\nFragment.prototype.findDiffEnd = function findDiffEnd$1(other, pos, otherPos) {\n if (pos === void 0) pos = this.size;\n if (otherPos === void 0) otherPos = other.size;\n return findDiffEnd(this, other, pos, otherPos);\n}; // : (number, ?number) → {index: number, offset: number}\n// Find the index and inner offset corresponding to a given relative\n// position in this fragment. The result object will be reused\n// (overwritten) the next time the function is called. (Not public.)\n\n\nFragment.prototype.findIndex = function findIndex(pos, round) {\n if (round === void 0) round = -1;\n\n if (pos == 0) {\n return retIndex(0, pos);\n }\n\n if (pos == this.size) {\n return retIndex(this.content.length, pos);\n }\n\n if (pos > this.size || pos < 0) {\n throw new RangeError(\"Position \" + pos + \" outside of fragment (\" + this + \")\");\n }\n\n for (var i = 0, curPos = 0;; i++) {\n var cur = this.child(i),\n end = curPos + cur.nodeSize;\n\n if (end >= pos) {\n if (end == pos || round > 0) {\n return retIndex(i + 1, end);\n }\n\n return retIndex(i, curPos);\n }\n\n curPos = end;\n }\n}; // :: () → string\n// Return a debugging string that describes this fragment.\n\n\nFragment.prototype.toString = function toString() {\n return \"<\" + this.toStringInner() + \">\";\n};\n\nFragment.prototype.toStringInner = function toStringInner() {\n return this.content.join(\", \");\n}; // :: () → ?Object\n// Create a JSON-serializeable representation of this fragment.\n\n\nFragment.prototype.toJSON = function toJSON() {\n return this.content.length ? this.content.map(function (n) {\n return n.toJSON();\n }) : null;\n}; // :: (Schema, ?Object) → Fragment\n// Deserialize a fragment from its JSON representation.\n\n\nFragment.fromJSON = function fromJSON(schema, value) {\n if (!value) {\n return Fragment.empty;\n }\n\n if (!Array.isArray(value)) {\n throw new RangeError(\"Invalid input for Fragment.fromJSON\");\n }\n\n return new Fragment(value.map(schema.nodeFromJSON));\n}; // :: ([Node]) → Fragment\n// Build a fragment from an array of nodes. Ensures that adjacent\n// text nodes with the same marks are joined together.\n\n\nFragment.fromArray = function fromArray(array) {\n if (!array.length) {\n return Fragment.empty;\n }\n\n var joined,\n size = 0;\n\n for (var i = 0; i < array.length; i++) {\n var node = array[i];\n size += node.nodeSize;\n\n if (i && node.isText && array[i - 1].sameMarkup(node)) {\n if (!joined) {\n joined = array.slice(0, i);\n }\n\n joined[joined.length - 1] = node.withText(joined[joined.length - 1].text + node.text);\n } else if (joined) {\n joined.push(node);\n }\n }\n\n return new Fragment(joined || array, size);\n}; // :: (?union) → Fragment\n// Create a fragment from something that can be interpreted as a set\n// of nodes. For `null`, it returns the empty fragment. For a\n// fragment, the fragment itself. For a node or array of nodes, a\n// fragment containing those nodes.\n\n\nFragment.from = function from(nodes) {\n if (!nodes) {\n return Fragment.empty;\n }\n\n if (nodes instanceof Fragment) {\n return nodes;\n }\n\n if (Array.isArray(nodes)) {\n return this.fromArray(nodes);\n }\n\n if (nodes.attrs) {\n return new Fragment([nodes], nodes.nodeSize);\n }\n\n throw new RangeError(\"Can not convert \" + nodes + \" to a Fragment\" + (nodes.nodesBetween ? \" (looks like multiple versions of prosemirror-model were loaded)\" : \"\"));\n};\n\nObject.defineProperties(Fragment.prototype, prototypeAccessors);\nvar found = {\n index: 0,\n offset: 0\n};\n\nfunction retIndex(index, offset) {\n found.index = index;\n found.offset = offset;\n return found;\n} // :: Fragment\n// An empty fragment. Intended to be reused whenever a node doesn't\n// contain anything (rather than allocating a new empty fragment for\n// each leaf node).\n\n\nFragment.empty = new Fragment([], 0);\n\nfunction compareDeep(a, b) {\n if (a === b) {\n return true;\n }\n\n if (!(a && _typeof(a) == \"object\") || !(b && _typeof(b) == \"object\")) {\n return false;\n }\n\n var array = Array.isArray(a);\n\n if (Array.isArray(b) != array) {\n return false;\n }\n\n if (array) {\n if (a.length != b.length) {\n return false;\n }\n\n for (var i = 0; i < a.length; i++) {\n if (!compareDeep(a[i], b[i])) {\n return false;\n }\n }\n } else {\n for (var p in a) {\n if (!(p in b) || !compareDeep(a[p], b[p])) {\n return false;\n }\n }\n\n for (var p$1 in b) {\n if (!(p$1 in a)) {\n return false;\n }\n }\n }\n\n return true;\n} // ::- A mark is a piece of information that can be attached to a node,\n// such as it being emphasized, in code font, or a link. It has a type\n// and optionally a set of attributes that provide further information\n// (such as the target of the link). Marks are created through a\n// `Schema`, which controls which types exist and which\n// attributes they have.\n\n\nvar Mark = function Mark(type, attrs) {\n // :: MarkType\n // The type of this mark.\n this.type = type; // :: Object\n // The attributes associated with this mark.\n\n this.attrs = attrs;\n}; // :: ([Mark]) → [Mark]\n// Given a set of marks, create a new set which contains this one as\n// well, in the right position. If this mark is already in the set,\n// the set itself is returned. If any marks that are set to be\n// [exclusive](#model.MarkSpec.excludes) with this mark are present,\n// those are replaced by this one.\n\n\nMark.prototype.addToSet = function addToSet(set) {\n var copy,\n placed = false;\n\n for (var i = 0; i < set.length; i++) {\n var other = set[i];\n\n if (this.eq(other)) {\n return set;\n }\n\n if (this.type.excludes(other.type)) {\n if (!copy) {\n copy = set.slice(0, i);\n }\n } else if (other.type.excludes(this.type)) {\n return set;\n } else {\n if (!placed && other.type.rank > this.type.rank) {\n if (!copy) {\n copy = set.slice(0, i);\n }\n\n copy.push(this);\n placed = true;\n }\n\n if (copy) {\n copy.push(other);\n }\n }\n }\n\n if (!copy) {\n copy = set.slice();\n }\n\n if (!placed) {\n copy.push(this);\n }\n\n return copy;\n}; // :: ([Mark]) → [Mark]\n// Remove this mark from the given set, returning a new set. If this\n// mark is not in the set, the set itself is returned.\n\n\nMark.prototype.removeFromSet = function removeFromSet(set) {\n for (var i = 0; i < set.length; i++) {\n if (this.eq(set[i])) {\n return set.slice(0, i).concat(set.slice(i + 1));\n }\n }\n\n return set;\n}; // :: ([Mark]) → bool\n// Test whether this mark is in the given set of marks.\n\n\nMark.prototype.isInSet = function isInSet(set) {\n for (var i = 0; i < set.length; i++) {\n if (this.eq(set[i])) {\n return true;\n }\n }\n\n return false;\n}; // :: (Mark) → bool\n// Test whether this mark has the same type and attributes as\n// another mark.\n\n\nMark.prototype.eq = function eq(other) {\n return this == other || this.type == other.type && compareDeep(this.attrs, other.attrs);\n}; // :: () → Object\n// Convert this mark to a JSON-serializeable representation.\n\n\nMark.prototype.toJSON = function toJSON() {\n var obj = {\n type: this.type.name\n };\n\n for (var _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n\n return obj;\n}; // :: (Schema, Object) → Mark\n\n\nMark.fromJSON = function fromJSON(schema, json) {\n if (!json) {\n throw new RangeError(\"Invalid input for Mark.fromJSON\");\n }\n\n var type = schema.marks[json.type];\n\n if (!type) {\n throw new RangeError(\"There is no mark type \" + json.type + \" in this schema\");\n }\n\n return type.create(json.attrs);\n}; // :: ([Mark], [Mark]) → bool\n// Test whether two sets of marks are identical.\n\n\nMark.sameSet = function sameSet(a, b) {\n if (a == b) {\n return true;\n }\n\n if (a.length != b.length) {\n return false;\n }\n\n for (var i = 0; i < a.length; i++) {\n if (!a[i].eq(b[i])) {\n return false;\n }\n }\n\n return true;\n}; // :: (?union) → [Mark]\n// Create a properly sorted mark set from null, a single mark, or an\n// unsorted array of marks.\n\n\nMark.setFrom = function setFrom(marks) {\n if (!marks || marks.length == 0) {\n return Mark.none;\n }\n\n if (marks instanceof Mark) {\n return [marks];\n }\n\n var copy = marks.slice();\n copy.sort(function (a, b) {\n return a.type.rank - b.type.rank;\n });\n return copy;\n}; // :: [Mark] The empty set of marks.\n\n\nMark.none = []; // ReplaceError:: class extends Error\n// Error type raised by [`Node.replace`](#model.Node.replace) when\n// given an invalid replacement.\n\nfunction ReplaceError(message) {\n var err = Error.call(this, message);\n err.__proto__ = ReplaceError.prototype;\n return err;\n}\n\nReplaceError.prototype = Object.create(Error.prototype);\nReplaceError.prototype.constructor = ReplaceError;\nReplaceError.prototype.name = \"ReplaceError\"; // ::- A slice represents a piece cut out of a larger document. It\n// stores not only a fragment, but also the depth up to which nodes on\n// both side are ‘open’ (cut through).\n\nvar Slice = function Slice(content, openStart, openEnd) {\n // :: Fragment The slice's content.\n this.content = content; // :: number The open depth at the start.\n\n this.openStart = openStart; // :: number The open depth at the end.\n\n this.openEnd = openEnd;\n};\n\nvar prototypeAccessors$1 = {\n size: {\n configurable: true\n }\n}; // :: number\n// The size this slice would add when inserted into a document.\n\nprototypeAccessors$1.size.get = function () {\n return this.content.size - this.openStart - this.openEnd;\n};\n\nSlice.prototype.insertAt = function insertAt(pos, fragment) {\n var content = insertInto(this.content, pos + this.openStart, fragment, null);\n return content && new Slice(content, this.openStart, this.openEnd);\n};\n\nSlice.prototype.removeBetween = function removeBetween(from, to) {\n return new Slice(removeRange(this.content, from + this.openStart, to + this.openStart), this.openStart, this.openEnd);\n}; // :: (Slice) → bool\n// Tests whether this slice is equal to another slice.\n\n\nSlice.prototype.eq = function eq(other) {\n return this.content.eq(other.content) && this.openStart == other.openStart && this.openEnd == other.openEnd;\n};\n\nSlice.prototype.toString = function toString() {\n return this.content + \"(\" + this.openStart + \",\" + this.openEnd + \")\";\n}; // :: () → ?Object\n// Convert a slice to a JSON-serializable representation.\n\n\nSlice.prototype.toJSON = function toJSON() {\n if (!this.content.size) {\n return null;\n }\n\n var json = {\n content: this.content.toJSON()\n };\n\n if (this.openStart > 0) {\n json.openStart = this.openStart;\n }\n\n if (this.openEnd > 0) {\n json.openEnd = this.openEnd;\n }\n\n return json;\n}; // :: (Schema, ?Object) → Slice\n// Deserialize a slice from its JSON representation.\n\n\nSlice.fromJSON = function fromJSON(schema, json) {\n if (!json) {\n return Slice.empty;\n }\n\n var openStart = json.openStart || 0,\n openEnd = json.openEnd || 0;\n\n if (typeof openStart != \"number\" || typeof openEnd != \"number\") {\n throw new RangeError(\"Invalid input for Slice.fromJSON\");\n }\n\n return new Slice(Fragment.fromJSON(schema, json.content), openStart, openEnd);\n}; // :: (Fragment, ?bool) → Slice\n// Create a slice from a fragment by taking the maximum possible\n// open value on both side of the fragment.\n\n\nSlice.maxOpen = function maxOpen(fragment, openIsolating) {\n if (openIsolating === void 0) openIsolating = true;\n var openStart = 0,\n openEnd = 0;\n\n for (var n = fragment.firstChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.firstChild) {\n openStart++;\n }\n\n for (var n$1 = fragment.lastChild; n$1 && !n$1.isLeaf && (openIsolating || !n$1.type.spec.isolating); n$1 = n$1.lastChild) {\n openEnd++;\n }\n\n return new Slice(fragment, openStart, openEnd);\n};\n\nObject.defineProperties(Slice.prototype, prototypeAccessors$1);\n\nfunction removeRange(content, from, to) {\n var ref = content.findIndex(from);\n var index = ref.index;\n var offset = ref.offset;\n var child = content.maybeChild(index);\n var ref$1 = content.findIndex(to);\n var indexTo = ref$1.index;\n var offsetTo = ref$1.offset;\n\n if (offset == from || child.isText) {\n if (offsetTo != to && !content.child(indexTo).isText) {\n throw new RangeError(\"Removing non-flat range\");\n }\n\n return content.cut(0, from).append(content.cut(to));\n }\n\n if (index != indexTo) {\n throw new RangeError(\"Removing non-flat range\");\n }\n\n return content.replaceChild(index, child.copy(removeRange(child.content, from - offset - 1, to - offset - 1)));\n}\n\nfunction insertInto(content, dist, insert, parent) {\n var ref = content.findIndex(dist);\n var index = ref.index;\n var offset = ref.offset;\n var child = content.maybeChild(index);\n\n if (offset == dist || child.isText) {\n if (parent && !parent.canReplace(index, index, insert)) {\n return null;\n }\n\n return content.cut(0, dist).append(insert).append(content.cut(dist));\n }\n\n var inner = insertInto(child.content, dist - offset - 1, insert);\n return inner && content.replaceChild(index, child.copy(inner));\n} // :: Slice\n// The empty slice.\n\n\nSlice.empty = new Slice(Fragment.empty, 0, 0);\n\nfunction replace($from, $to, slice) {\n if (slice.openStart > $from.depth) {\n throw new ReplaceError(\"Inserted content deeper than insertion position\");\n }\n\n if ($from.depth - slice.openStart != $to.depth - slice.openEnd) {\n throw new ReplaceError(\"Inconsistent open depths\");\n }\n\n return replaceOuter($from, $to, slice, 0);\n}\n\nfunction replaceOuter($from, $to, slice, depth) {\n var index = $from.index(depth),\n node = $from.node(depth);\n\n if (index == $to.index(depth) && depth < $from.depth - slice.openStart) {\n var inner = replaceOuter($from, $to, slice, depth + 1);\n return node.copy(node.content.replaceChild(index, inner));\n } else if (!slice.content.size) {\n return close(node, replaceTwoWay($from, $to, depth));\n } else if (!slice.openStart && !slice.openEnd && $from.depth == depth && $to.depth == depth) {\n // Simple, flat case\n var parent = $from.parent,\n content = parent.content;\n return close(parent, content.cut(0, $from.parentOffset).append(slice.content).append(content.cut($to.parentOffset)));\n } else {\n var ref = prepareSliceForReplace(slice, $from);\n var start = ref.start;\n var end = ref.end;\n return close(node, replaceThreeWay($from, start, end, $to, depth));\n }\n}\n\nfunction checkJoin(main, sub) {\n if (!sub.type.compatibleContent(main.type)) {\n throw new ReplaceError(\"Cannot join \" + sub.type.name + \" onto \" + main.type.name);\n }\n}\n\nfunction joinable($before, $after, depth) {\n var node = $before.node(depth);\n checkJoin(node, $after.node(depth));\n return node;\n}\n\nfunction addNode(child, target) {\n var last = target.length - 1;\n\n if (last >= 0 && child.isText && child.sameMarkup(target[last])) {\n target[last] = child.withText(target[last].text + child.text);\n } else {\n target.push(child);\n }\n}\n\nfunction addRange($start, $end, depth, target) {\n var node = ($end || $start).node(depth);\n var startIndex = 0,\n endIndex = $end ? $end.index(depth) : node.childCount;\n\n if ($start) {\n startIndex = $start.index(depth);\n\n if ($start.depth > depth) {\n startIndex++;\n } else if ($start.textOffset) {\n addNode($start.nodeAfter, target);\n startIndex++;\n }\n }\n\n for (var i = startIndex; i < endIndex; i++) {\n addNode(node.child(i), target);\n }\n\n if ($end && $end.depth == depth && $end.textOffset) {\n addNode($end.nodeBefore, target);\n }\n}\n\nfunction close(node, content) {\n if (!node.type.validContent(content)) {\n throw new ReplaceError(\"Invalid content for node \" + node.type.name);\n }\n\n return node.copy(content);\n}\n\nfunction replaceThreeWay($from, $start, $end, $to, depth) {\n var openStart = $from.depth > depth && joinable($from, $start, depth + 1);\n var openEnd = $to.depth > depth && joinable($end, $to, depth + 1);\n var content = [];\n addRange(null, $from, depth, content);\n\n if (openStart && openEnd && $start.index(depth) == $end.index(depth)) {\n checkJoin(openStart, openEnd);\n addNode(close(openStart, replaceThreeWay($from, $start, $end, $to, depth + 1)), content);\n } else {\n if (openStart) {\n addNode(close(openStart, replaceTwoWay($from, $start, depth + 1)), content);\n }\n\n addRange($start, $end, depth, content);\n\n if (openEnd) {\n addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content);\n }\n }\n\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\n\nfunction replaceTwoWay($from, $to, depth) {\n var content = [];\n addRange(null, $from, depth, content);\n\n if ($from.depth > depth) {\n var type = joinable($from, $to, depth + 1);\n addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);\n }\n\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\n\nfunction prepareSliceForReplace(slice, $along) {\n var extra = $along.depth - slice.openStart,\n parent = $along.node(extra);\n var node = parent.copy(slice.content);\n\n for (var i = extra - 1; i >= 0; i--) {\n node = $along.node(i).copy(Fragment.from(node));\n }\n\n return {\n start: node.resolveNoCache(slice.openStart + extra),\n end: node.resolveNoCache(node.content.size - slice.openEnd - extra)\n };\n} // ::- You can [_resolve_](#model.Node.resolve) a position to get more\n// information about it. Objects of this class represent such a\n// resolved position, providing various pieces of context information,\n// and some helper methods.\n//\n// Throughout this interface, methods that take an optional `depth`\n// parameter will interpret undefined as `this.depth` and negative\n// numbers as `this.depth + value`.\n\n\nvar ResolvedPos = function ResolvedPos(pos, path, parentOffset) {\n // :: number The position that was resolved.\n this.pos = pos;\n this.path = path; // :: number\n // The number of levels the parent node is from the root. If this\n // position points directly into the root node, it is 0. If it\n // points into a top-level paragraph, 1, and so on.\n\n this.depth = path.length / 3 - 1; // :: number The offset this position has into its parent node.\n\n this.parentOffset = parentOffset;\n};\n\nvar prototypeAccessors$2 = {\n parent: {\n configurable: true\n },\n doc: {\n configurable: true\n },\n textOffset: {\n configurable: true\n },\n nodeAfter: {\n configurable: true\n },\n nodeBefore: {\n configurable: true\n }\n};\n\nResolvedPos.prototype.resolveDepth = function resolveDepth(val) {\n if (val == null) {\n return this.depth;\n }\n\n if (val < 0) {\n return this.depth + val;\n }\n\n return val;\n}; // :: Node\n// The parent node that the position points into. Note that even if\n// a position points into a text node, that node is not considered\n// the parent—text nodes are ‘flat’ in this model, and have no content.\n\n\nprototypeAccessors$2.parent.get = function () {\n return this.node(this.depth);\n}; // :: Node\n// The root node in which the position was resolved.\n\n\nprototypeAccessors$2.doc.get = function () {\n return this.node(0);\n}; // :: (?number) → Node\n// The ancestor node at the given level. `p.node(p.depth)` is the\n// same as `p.parent`.\n\n\nResolvedPos.prototype.node = function node(depth) {\n return this.path[this.resolveDepth(depth) * 3];\n}; // :: (?number) → number\n// The index into the ancestor at the given level. If this points at\n// the 3rd node in the 2nd paragraph on the top level, for example,\n// `p.index(0)` is 1 and `p.index(1)` is 2.\n\n\nResolvedPos.prototype.index = function index(depth) {\n return this.path[this.resolveDepth(depth) * 3 + 1];\n}; // :: (?number) → number\n// The index pointing after this position into the ancestor at the\n// given level.\n\n\nResolvedPos.prototype.indexAfter = function indexAfter(depth) {\n depth = this.resolveDepth(depth);\n return this.index(depth) + (depth == this.depth && !this.textOffset ? 0 : 1);\n}; // :: (?number) → number\n// The (absolute) position at the start of the node at the given\n// level.\n\n\nResolvedPos.prototype.start = function start(depth) {\n depth = this.resolveDepth(depth);\n return depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n}; // :: (?number) → number\n// The (absolute) position at the end of the node at the given\n// level.\n\n\nResolvedPos.prototype.end = function end(depth) {\n depth = this.resolveDepth(depth);\n return this.start(depth) + this.node(depth).content.size;\n}; // :: (?number) → number\n// The (absolute) position directly before the wrapping node at the\n// given level, or, when `depth` is `this.depth + 1`, the original\n// position.\n\n\nResolvedPos.prototype.before = function before(depth) {\n depth = this.resolveDepth(depth);\n\n if (!depth) {\n throw new RangeError(\"There is no position before the top-level node\");\n }\n\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1];\n}; // :: (?number) → number\n// The (absolute) position directly after the wrapping node at the\n// given level, or the original position when `depth` is `this.depth + 1`.\n\n\nResolvedPos.prototype.after = function after(depth) {\n depth = this.resolveDepth(depth);\n\n if (!depth) {\n throw new RangeError(\"There is no position after the top-level node\");\n }\n\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1] + this.path[depth * 3].nodeSize;\n}; // :: number\n// When this position points into a text node, this returns the\n// distance between the position and the start of the text node.\n// Will be zero for positions that point between nodes.\n\n\nprototypeAccessors$2.textOffset.get = function () {\n return this.pos - this.path[this.path.length - 1];\n}; // :: ?Node\n// Get the node directly after the position, if any. If the position\n// points into a text node, only the part of that node after the\n// position is returned.\n\n\nprototypeAccessors$2.nodeAfter.get = function () {\n var parent = this.parent,\n index = this.index(this.depth);\n\n if (index == parent.childCount) {\n return null;\n }\n\n var dOff = this.pos - this.path[this.path.length - 1],\n child = parent.child(index);\n return dOff ? parent.child(index).cut(dOff) : child;\n}; // :: ?Node\n// Get the node directly before the position, if any. If the\n// position points into a text node, only the part of that node\n// before the position is returned.\n\n\nprototypeAccessors$2.nodeBefore.get = function () {\n var index = this.index(this.depth);\n var dOff = this.pos - this.path[this.path.length - 1];\n\n if (dOff) {\n return this.parent.child(index).cut(0, dOff);\n }\n\n return index == 0 ? null : this.parent.child(index - 1);\n}; // :: (number, ?number) → number\n// Get the position at the given index in the parent node at the\n// given depth (which defaults to `this.depth`).\n\n\nResolvedPos.prototype.posAtIndex = function posAtIndex(index, depth) {\n depth = this.resolveDepth(depth);\n var node = this.path[depth * 3],\n pos = depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n\n for (var i = 0; i < index; i++) {\n pos += node.child(i).nodeSize;\n }\n\n return pos;\n}; // :: () → [Mark]\n// Get the marks at this position, factoring in the surrounding\n// marks' [`inclusive`](#model.MarkSpec.inclusive) property. If the\n// position is at the start of a non-empty node, the marks of the\n// node after it (if any) are returned.\n\n\nResolvedPos.prototype.marks = function marks() {\n var parent = this.parent,\n index = this.index(); // In an empty parent, return the empty array\n\n if (parent.content.size == 0) {\n return Mark.none;\n } // When inside a text node, just return the text node's marks\n\n\n if (this.textOffset) {\n return parent.child(index).marks;\n }\n\n var main = parent.maybeChild(index - 1),\n other = parent.maybeChild(index); // If the `after` flag is true of there is no node before, make\n // the node after this position the main reference.\n\n if (!main) {\n var tmp = main;\n main = other;\n other = tmp;\n } // Use all marks in the main node, except those that have\n // `inclusive` set to false and are not present in the other node.\n\n\n var marks = main.marks;\n\n for (var i = 0; i < marks.length; i++) {\n if (marks[i].type.spec.inclusive === false && (!other || !marks[i].isInSet(other.marks))) {\n marks = marks[i--].removeFromSet(marks);\n }\n }\n\n return marks;\n}; // :: (ResolvedPos) → ?[Mark]\n// Get the marks after the current position, if any, except those\n// that are non-inclusive and not present at position `$end`. This\n// is mostly useful for getting the set of marks to preserve after a\n// deletion. Will return `null` if this position is at the end of\n// its parent node or its parent node isn't a textblock (in which\n// case no marks should be preserved).\n\n\nResolvedPos.prototype.marksAcross = function marksAcross($end) {\n var after = this.parent.maybeChild(this.index());\n\n if (!after || !after.isInline) {\n return null;\n }\n\n var marks = after.marks,\n next = $end.parent.maybeChild($end.index());\n\n for (var i = 0; i < marks.length; i++) {\n if (marks[i].type.spec.inclusive === false && (!next || !marks[i].isInSet(next.marks))) {\n marks = marks[i--].removeFromSet(marks);\n }\n }\n\n return marks;\n}; // :: (number) → number\n// The depth up to which this position and the given (non-resolved)\n// position share the same parent nodes.\n\n\nResolvedPos.prototype.sharedDepth = function sharedDepth(pos) {\n for (var depth = this.depth; depth > 0; depth--) {\n if (this.start(depth) <= pos && this.end(depth) >= pos) {\n return depth;\n }\n }\n\n return 0;\n}; // :: (?ResolvedPos, ?(Node) → bool) → ?NodeRange\n// Returns a range based on the place where this position and the\n// given position diverge around block content. If both point into\n// the same textblock, for example, a range around that textblock\n// will be returned. If they point into different blocks, the range\n// around those blocks in their shared ancestor is returned. You can\n// pass in an optional predicate that will be called with a parent\n// node to see if a range into that parent is acceptable.\n\n\nResolvedPos.prototype.blockRange = function blockRange(other, pred) {\n if (other === void 0) other = this;\n\n if (other.pos < this.pos) {\n return other.blockRange(this);\n }\n\n for (var d = this.depth - (this.parent.inlineContent || this.pos == other.pos ? 1 : 0); d >= 0; d--) {\n if (other.pos <= this.end(d) && (!pred || pred(this.node(d)))) {\n return new NodeRange(this, other, d);\n }\n }\n}; // :: (ResolvedPos) → bool\n// Query whether the given position shares the same parent node.\n\n\nResolvedPos.prototype.sameParent = function sameParent(other) {\n return this.pos - this.parentOffset == other.pos - other.parentOffset;\n}; // :: (ResolvedPos) → ResolvedPos\n// Return the greater of this and the given position.\n\n\nResolvedPos.prototype.max = function max(other) {\n return other.pos > this.pos ? other : this;\n}; // :: (ResolvedPos) → ResolvedPos\n// Return the smaller of this and the given position.\n\n\nResolvedPos.prototype.min = function min(other) {\n return other.pos < this.pos ? other : this;\n};\n\nResolvedPos.prototype.toString = function toString() {\n var str = \"\";\n\n for (var i = 1; i <= this.depth; i++) {\n str += (str ? \"/\" : \"\") + this.node(i).type.name + \"_\" + this.index(i - 1);\n }\n\n return str + \":\" + this.parentOffset;\n};\n\nResolvedPos.resolve = function resolve(doc, pos) {\n if (!(pos >= 0 && pos <= doc.content.size)) {\n throw new RangeError(\"Position \" + pos + \" out of range\");\n }\n\n var path = [];\n var start = 0,\n parentOffset = pos;\n\n for (var node = doc;;) {\n var ref = node.content.findIndex(parentOffset);\n var index = ref.index;\n var offset = ref.offset;\n var rem = parentOffset - offset;\n path.push(node, index, start + offset);\n\n if (!rem) {\n break;\n }\n\n node = node.child(index);\n\n if (node.isText) {\n break;\n }\n\n parentOffset = rem - 1;\n start += offset + 1;\n }\n\n return new ResolvedPos(pos, path, parentOffset);\n};\n\nResolvedPos.resolveCached = function resolveCached(doc, pos) {\n for (var i = 0; i < resolveCache.length; i++) {\n var cached = resolveCache[i];\n\n if (cached.pos == pos && cached.doc == doc) {\n return cached;\n }\n }\n\n var result = resolveCache[resolveCachePos] = ResolvedPos.resolve(doc, pos);\n resolveCachePos = (resolveCachePos + 1) % resolveCacheSize;\n return result;\n};\n\nObject.defineProperties(ResolvedPos.prototype, prototypeAccessors$2);\nvar resolveCache = [],\n resolveCachePos = 0,\n resolveCacheSize = 12; // ::- Represents a flat range of content, i.e. one that starts and\n// ends in the same node.\n\nvar NodeRange = function NodeRange($from, $to, depth) {\n // :: ResolvedPos A resolved position along the start of the\n // content. May have a `depth` greater than this object's `depth`\n // property, since these are the positions that were used to\n // compute the range, not re-resolved positions directly at its\n // boundaries.\n this.$from = $from; // :: ResolvedPos A position along the end of the content. See\n // caveat for [`$from`](#model.NodeRange.$from).\n\n this.$to = $to; // :: number The depth of the node that this range points into.\n\n this.depth = depth;\n};\n\nvar prototypeAccessors$1$1 = {\n start: {\n configurable: true\n },\n end: {\n configurable: true\n },\n parent: {\n configurable: true\n },\n startIndex: {\n configurable: true\n },\n endIndex: {\n configurable: true\n }\n}; // :: number The position at the start of the range.\n\nprototypeAccessors$1$1.start.get = function () {\n return this.$from.before(this.depth + 1);\n}; // :: number The position at the end of the range.\n\n\nprototypeAccessors$1$1.end.get = function () {\n return this.$to.after(this.depth + 1);\n}; // :: Node The parent node that the range points into.\n\n\nprototypeAccessors$1$1.parent.get = function () {\n return this.$from.node(this.depth);\n}; // :: number The start index of the range in the parent node.\n\n\nprototypeAccessors$1$1.startIndex.get = function () {\n return this.$from.index(this.depth);\n}; // :: number The end index of the range in the parent node.\n\n\nprototypeAccessors$1$1.endIndex.get = function () {\n return this.$to.indexAfter(this.depth);\n};\n\nObject.defineProperties(NodeRange.prototype, prototypeAccessors$1$1);\nvar emptyAttrs = Object.create(null); // ::- This class represents a node in the tree that makes up a\n// ProseMirror document. So a document is an instance of `Node`, with\n// children that are also instances of `Node`.\n//\n// Nodes are persistent data structures. Instead of changing them, you\n// create new ones with the content you want. Old ones keep pointing\n// at the old document shape. This is made cheaper by sharing\n// structure between the old and new data as much as possible, which a\n// tree shape like this (without back pointers) makes easy.\n//\n// **Do not** directly mutate the properties of a `Node` object. See\n// [the guide](/docs/guide/#doc) for more information.\n\nvar Node = function Node(type, attrs, content, marks) {\n // :: NodeType\n // The type of node that this is.\n this.type = type; // :: Object\n // An object mapping attribute names to values. The kind of\n // attributes allowed and required are\n // [determined](#model.NodeSpec.attrs) by the node type.\n\n this.attrs = attrs; // :: Fragment\n // A container holding the node's children.\n\n this.content = content || Fragment.empty; // :: [Mark]\n // The marks (things like whether it is emphasized or part of a\n // link) applied to this node.\n\n this.marks = marks || Mark.none;\n};\n\nvar prototypeAccessors$3 = {\n nodeSize: {\n configurable: true\n },\n childCount: {\n configurable: true\n },\n textContent: {\n configurable: true\n },\n firstChild: {\n configurable: true\n },\n lastChild: {\n configurable: true\n },\n isBlock: {\n configurable: true\n },\n isTextblock: {\n configurable: true\n },\n inlineContent: {\n configurable: true\n },\n isInline: {\n configurable: true\n },\n isText: {\n configurable: true\n },\n isLeaf: {\n configurable: true\n },\n isAtom: {\n configurable: true\n }\n}; // text:: ?string\n// For text nodes, this contains the node's text content.\n// :: number\n// The size of this node, as defined by the integer-based [indexing\n// scheme](/docs/guide/#doc.indexing). For text nodes, this is the\n// amount of characters. For other leaf nodes, it is one. For\n// non-leaf nodes, it is the size of the content plus two (the start\n// and end token).\n\nprototypeAccessors$3.nodeSize.get = function () {\n return this.isLeaf ? 1 : 2 + this.content.size;\n}; // :: number\n// The number of children that the node has.\n\n\nprototypeAccessors$3.childCount.get = function () {\n return this.content.childCount;\n}; // :: (number) → Node\n// Get the child node at the given index. Raises an error when the\n// index is out of range.\n\n\nNode.prototype.child = function child(index) {\n return this.content.child(index);\n}; // :: (number) → ?Node\n// Get the child node at the given index, if it exists.\n\n\nNode.prototype.maybeChild = function maybeChild(index) {\n return this.content.maybeChild(index);\n}; // :: ((node: Node, offset: number, index: number))\n// Call `f` for every child node, passing the node, its offset\n// into this parent node, and its index.\n\n\nNode.prototype.forEach = function forEach(f) {\n this.content.forEach(f);\n}; // :: (number, number, (node: Node, pos: number, parent: Node, index: number) → ?bool, ?number)\n// Invoke a callback for all descendant nodes recursively between\n// the given two positions that are relative to start of this node's\n// content. The callback is invoked with the node, its\n// parent-relative position, its parent node, and its child index.\n// When the callback returns false for a given node, that node's\n// children will not be recursed over. The last parameter can be\n// used to specify a starting position to count from.\n\n\nNode.prototype.nodesBetween = function nodesBetween(from, to, f, startPos) {\n if (startPos === void 0) startPos = 0;\n this.content.nodesBetween(from, to, f, startPos, this);\n}; // :: ((node: Node, pos: number, parent: Node) → ?bool)\n// Call the given callback for every descendant node. Doesn't\n// descend into a node when the callback returns `false`.\n\n\nNode.prototype.descendants = function descendants(f) {\n this.nodesBetween(0, this.content.size, f);\n}; // :: string\n// Concatenates all the text nodes found in this fragment and its\n// children.\n\n\nprototypeAccessors$3.textContent.get = function () {\n return this.textBetween(0, this.content.size, \"\");\n}; // :: (number, number, ?string, ?string) → string\n// Get all text between positions `from` and `to`. When\n// `blockSeparator` is given, it will be inserted whenever a new\n// block node is started. When `leafText` is given, it'll be\n// inserted for every non-text leaf node encountered.\n\n\nNode.prototype.textBetween = function textBetween(from, to, blockSeparator, leafText) {\n return this.content.textBetween(from, to, blockSeparator, leafText);\n}; // :: ?Node\n// Returns this node's first child, or `null` if there are no\n// children.\n\n\nprototypeAccessors$3.firstChild.get = function () {\n return this.content.firstChild;\n}; // :: ?Node\n// Returns this node's last child, or `null` if there are no\n// children.\n\n\nprototypeAccessors$3.lastChild.get = function () {\n return this.content.lastChild;\n}; // :: (Node) → bool\n// Test whether two nodes represent the same piece of document.\n\n\nNode.prototype.eq = function eq(other) {\n return this == other || this.sameMarkup(other) && this.content.eq(other.content);\n}; // :: (Node) → bool\n// Compare the markup (type, attributes, and marks) of this node to\n// those of another. Returns `true` if both have the same markup.\n\n\nNode.prototype.sameMarkup = function sameMarkup(other) {\n return this.hasMarkup(other.type, other.attrs, other.marks);\n}; // :: (NodeType, ?Object, ?[Mark]) → bool\n// Check whether this node's markup correspond to the given type,\n// attributes, and marks.\n\n\nNode.prototype.hasMarkup = function hasMarkup(type, attrs, marks) {\n return this.type == type && compareDeep(this.attrs, attrs || type.defaultAttrs || emptyAttrs) && Mark.sameSet(this.marks, marks || Mark.none);\n}; // :: (?Fragment) → Node\n// Create a new node with the same markup as this node, containing\n// the given content (or empty, if no content is given).\n\n\nNode.prototype.copy = function copy(content) {\n if (content === void 0) content = null;\n\n if (content == this.content) {\n return this;\n }\n\n return new this.constructor(this.type, this.attrs, content, this.marks);\n}; // :: ([Mark]) → Node\n// Create a copy of this node, with the given set of marks instead\n// of the node's own marks.\n\n\nNode.prototype.mark = function mark(marks) {\n return marks == this.marks ? this : new this.constructor(this.type, this.attrs, this.content, marks);\n}; // :: (number, ?number) → Node\n// Create a copy of this node with only the content between the\n// given positions. If `to` is not given, it defaults to the end of\n// the node.\n\n\nNode.prototype.cut = function cut(from, to) {\n if (from == 0 && to == this.content.size) {\n return this;\n }\n\n return this.copy(this.content.cut(from, to));\n}; // :: (number, ?number) → Slice\n// Cut out the part of the document between the given positions, and\n// return it as a `Slice` object.\n\n\nNode.prototype.slice = function slice(from, to, includeParents) {\n if (to === void 0) to = this.content.size;\n if (includeParents === void 0) includeParents = false;\n\n if (from == to) {\n return Slice.empty;\n }\n\n var $from = this.resolve(from),\n $to = this.resolve(to);\n var depth = includeParents ? 0 : $from.sharedDepth(to);\n var start = $from.start(depth),\n node = $from.node(depth);\n var content = node.content.cut($from.pos - start, $to.pos - start);\n return new Slice(content, $from.depth - depth, $to.depth - depth);\n}; // :: (number, number, Slice) → Node\n// Replace the part of the document between the given positions with\n// the given slice. The slice must 'fit', meaning its open sides\n// must be able to connect to the surrounding content, and its\n// content nodes must be valid children for the node they are placed\n// into. If any of this is violated, an error of type\n// [`ReplaceError`](#model.ReplaceError) is thrown.\n\n\nNode.prototype.replace = function replace$1(from, to, slice) {\n return replace(this.resolve(from), this.resolve(to), slice);\n}; // :: (number) → ?Node\n// Find the node directly after the given position.\n\n\nNode.prototype.nodeAt = function nodeAt(pos) {\n for (var node = this;;) {\n var ref = node.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n node = node.maybeChild(index);\n\n if (!node) {\n return null;\n }\n\n if (offset == pos || node.isText) {\n return node;\n }\n\n pos -= offset + 1;\n }\n}; // :: (number) → {node: ?Node, index: number, offset: number}\n// Find the (direct) child node after the given offset, if any,\n// and return it along with its index and offset relative to this\n// node.\n\n\nNode.prototype.childAfter = function childAfter(pos) {\n var ref = this.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n return {\n node: this.content.maybeChild(index),\n index: index,\n offset: offset\n };\n}; // :: (number) → {node: ?Node, index: number, offset: number}\n// Find the (direct) child node before the given offset, if any,\n// and return it along with its index and offset relative to this\n// node.\n\n\nNode.prototype.childBefore = function childBefore(pos) {\n if (pos == 0) {\n return {\n node: null,\n index: 0,\n offset: 0\n };\n }\n\n var ref = this.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n\n if (offset < pos) {\n return {\n node: this.content.child(index),\n index: index,\n offset: offset\n };\n }\n\n var node = this.content.child(index - 1);\n return {\n node: node,\n index: index - 1,\n offset: offset - node.nodeSize\n };\n}; // :: (number) → ResolvedPos\n// Resolve the given position in the document, returning an\n// [object](#model.ResolvedPos) with information about its context.\n\n\nNode.prototype.resolve = function resolve(pos) {\n return ResolvedPos.resolveCached(this, pos);\n};\n\nNode.prototype.resolveNoCache = function resolveNoCache(pos) {\n return ResolvedPos.resolve(this, pos);\n}; // :: (number, number, union) → bool\n// Test whether a given mark or mark type occurs in this document\n// between the two given positions.\n\n\nNode.prototype.rangeHasMark = function rangeHasMark(from, to, type) {\n var found = false;\n\n if (to > from) {\n this.nodesBetween(from, to, function (node) {\n if (type.isInSet(node.marks)) {\n found = true;\n }\n\n return !found;\n });\n }\n\n return found;\n}; // :: bool\n// True when this is a block (non-inline node)\n\n\nprototypeAccessors$3.isBlock.get = function () {\n return this.type.isBlock;\n}; // :: bool\n// True when this is a textblock node, a block node with inline\n// content.\n\n\nprototypeAccessors$3.isTextblock.get = function () {\n return this.type.isTextblock;\n}; // :: bool\n// True when this node allows inline content.\n\n\nprototypeAccessors$3.inlineContent.get = function () {\n return this.type.inlineContent;\n}; // :: bool\n// True when this is an inline node (a text node or a node that can\n// appear among text).\n\n\nprototypeAccessors$3.isInline.get = function () {\n return this.type.isInline;\n}; // :: bool\n// True when this is a text node.\n\n\nprototypeAccessors$3.isText.get = function () {\n return this.type.isText;\n}; // :: bool\n// True when this is a leaf node.\n\n\nprototypeAccessors$3.isLeaf.get = function () {\n return this.type.isLeaf;\n}; // :: bool\n// True when this is an atom, i.e. when it does not have directly\n// editable content. This is usually the same as `isLeaf`, but can\n// be configured with the [`atom` property](#model.NodeSpec.atom) on\n// a node's spec (typically used when the node is displayed as an\n// uneditable [node view](#view.NodeView)).\n\n\nprototypeAccessors$3.isAtom.get = function () {\n return this.type.isAtom;\n}; // :: () → string\n// Return a string representation of this node for debugging\n// purposes.\n\n\nNode.prototype.toString = function toString() {\n if (this.type.spec.toDebugString) {\n return this.type.spec.toDebugString(this);\n }\n\n var name = this.type.name;\n\n if (this.content.size) {\n name += \"(\" + this.content.toStringInner() + \")\";\n }\n\n return wrapMarks(this.marks, name);\n}; // :: (number) → ContentMatch\n// Get the content match in this node at the given index.\n\n\nNode.prototype.contentMatchAt = function contentMatchAt(index) {\n var match = this.type.contentMatch.matchFragment(this.content, 0, index);\n\n if (!match) {\n throw new Error(\"Called contentMatchAt on a node with invalid content\");\n }\n\n return match;\n}; // :: (number, number, ?Fragment, ?number, ?number) → bool\n// Test whether replacing the range between `from` and `to` (by\n// child index) with the given replacement fragment (which defaults\n// to the empty fragment) would leave the node's content valid. You\n// can optionally pass `start` and `end` indices into the\n// replacement fragment.\n\n\nNode.prototype.canReplace = function canReplace(from, to, replacement, start, end) {\n if (replacement === void 0) replacement = Fragment.empty;\n if (start === void 0) start = 0;\n if (end === void 0) end = replacement.childCount;\n var one = this.contentMatchAt(from).matchFragment(replacement, start, end);\n var two = one && one.matchFragment(this.content, to);\n\n if (!two || !two.validEnd) {\n return false;\n }\n\n for (var i = start; i < end; i++) {\n if (!this.type.allowsMarks(replacement.child(i).marks)) {\n return false;\n }\n }\n\n return true;\n}; // :: (number, number, NodeType, ?[Mark]) → bool\n// Test whether replacing the range `from` to `to` (by index) with a\n// node of the given type would leave the node's content valid.\n\n\nNode.prototype.canReplaceWith = function canReplaceWith(from, to, type, marks) {\n if (marks && !this.type.allowsMarks(marks)) {\n return false;\n }\n\n var start = this.contentMatchAt(from).matchType(type);\n var end = start && start.matchFragment(this.content, to);\n return end ? end.validEnd : false;\n}; // :: (Node) → bool\n// Test whether the given node's content could be appended to this\n// node. If that node is empty, this will only return true if there\n// is at least one node type that can appear in both nodes (to avoid\n// merging completely incompatible nodes).\n\n\nNode.prototype.canAppend = function canAppend(other) {\n if (other.content.size) {\n return this.canReplace(this.childCount, this.childCount, other.content);\n } else {\n return this.type.compatibleContent(other.type);\n }\n}; // :: ()\n// Check whether this node and its descendants conform to the\n// schema, and raise error when they do not.\n\n\nNode.prototype.check = function check() {\n if (!this.type.validContent(this.content)) {\n throw new RangeError(\"Invalid content for node \" + this.type.name + \": \" + this.content.toString().slice(0, 50));\n }\n\n this.content.forEach(function (node) {\n return node.check();\n });\n}; // :: () → Object\n// Return a JSON-serializeable representation of this node.\n\n\nNode.prototype.toJSON = function toJSON() {\n var obj = {\n type: this.type.name\n };\n\n for (var _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n\n if (this.content.size) {\n obj.content = this.content.toJSON();\n }\n\n if (this.marks.length) {\n obj.marks = this.marks.map(function (n) {\n return n.toJSON();\n });\n }\n\n return obj;\n}; // :: (Schema, Object) → Node\n// Deserialize a node from its JSON representation.\n\n\nNode.fromJSON = function fromJSON(schema, json) {\n if (!json) {\n throw new RangeError(\"Invalid input for Node.fromJSON\");\n }\n\n var marks = null;\n\n if (json.marks) {\n if (!Array.isArray(json.marks)) {\n throw new RangeError(\"Invalid mark data for Node.fromJSON\");\n }\n\n marks = json.marks.map(schema.markFromJSON);\n }\n\n if (json.type == \"text\") {\n if (typeof json.text != \"string\") {\n throw new RangeError(\"Invalid text node in JSON\");\n }\n\n return schema.text(json.text, marks);\n }\n\n var content = Fragment.fromJSON(schema, json.content);\n return schema.nodeType(json.type).create(json.attrs, content, marks);\n};\n\nObject.defineProperties(Node.prototype, prototypeAccessors$3);\n\nvar TextNode = /*@__PURE__*/function (Node) {\n function TextNode(type, attrs, content, marks) {\n Node.call(this, type, attrs, null, marks);\n\n if (!content) {\n throw new RangeError(\"Empty text nodes are not allowed\");\n }\n\n this.text = content;\n }\n\n if (Node) TextNode.__proto__ = Node;\n TextNode.prototype = Object.create(Node && Node.prototype);\n TextNode.prototype.constructor = TextNode;\n var prototypeAccessors$1 = {\n textContent: {\n configurable: true\n },\n nodeSize: {\n configurable: true\n }\n };\n\n TextNode.prototype.toString = function toString() {\n if (this.type.spec.toDebugString) {\n return this.type.spec.toDebugString(this);\n }\n\n return wrapMarks(this.marks, JSON.stringify(this.text));\n };\n\n prototypeAccessors$1.textContent.get = function () {\n return this.text;\n };\n\n TextNode.prototype.textBetween = function textBetween(from, to) {\n return this.text.slice(from, to);\n };\n\n prototypeAccessors$1.nodeSize.get = function () {\n return this.text.length;\n };\n\n TextNode.prototype.mark = function mark(marks) {\n return marks == this.marks ? this : new TextNode(this.type, this.attrs, this.text, marks);\n };\n\n TextNode.prototype.withText = function withText(text) {\n if (text == this.text) {\n return this;\n }\n\n return new TextNode(this.type, this.attrs, text, this.marks);\n };\n\n TextNode.prototype.cut = function cut(from, to) {\n if (from === void 0) from = 0;\n if (to === void 0) to = this.text.length;\n\n if (from == 0 && to == this.text.length) {\n return this;\n }\n\n return this.withText(this.text.slice(from, to));\n };\n\n TextNode.prototype.eq = function eq(other) {\n return this.sameMarkup(other) && this.text == other.text;\n };\n\n TextNode.prototype.toJSON = function toJSON() {\n var base = Node.prototype.toJSON.call(this);\n base.text = this.text;\n return base;\n };\n\n Object.defineProperties(TextNode.prototype, prototypeAccessors$1);\n return TextNode;\n}(Node);\n\nfunction wrapMarks(marks, str) {\n for (var i = marks.length - 1; i >= 0; i--) {\n str = marks[i].type.name + \"(\" + str + \")\";\n }\n\n return str;\n} // ::- Instances of this class represent a match state of a node\n// type's [content expression](#model.NodeSpec.content), and can be\n// used to find out whether further content matches here, and whether\n// a given position is a valid end of the node.\n\n\nvar ContentMatch = function ContentMatch(validEnd) {\n // :: bool\n // True when this match state represents a valid end of the node.\n this.validEnd = validEnd;\n this.next = [];\n this.wrapCache = [];\n};\n\nvar prototypeAccessors$4 = {\n inlineContent: {\n configurable: true\n },\n defaultType: {\n configurable: true\n },\n edgeCount: {\n configurable: true\n }\n};\n\nContentMatch.parse = function parse(string, nodeTypes) {\n var stream = new TokenStream(string, nodeTypes);\n\n if (stream.next == null) {\n return ContentMatch.empty;\n }\n\n var expr = parseExpr(stream);\n\n if (stream.next) {\n stream.err(\"Unexpected trailing text\");\n }\n\n var match = dfa(nfa(expr));\n checkForDeadEnds(match, stream);\n return match;\n}; // :: (NodeType) → ?ContentMatch\n// Match a node type, returning a match after that node if\n// successful.\n\n\nContentMatch.prototype.matchType = function matchType(type) {\n for (var i = 0; i < this.next.length; i += 2) {\n if (this.next[i] == type) {\n return this.next[i + 1];\n }\n }\n\n return null;\n}; // :: (Fragment, ?number, ?number) → ?ContentMatch\n// Try to match a fragment. Returns the resulting match when\n// successful.\n\n\nContentMatch.prototype.matchFragment = function matchFragment(frag, start, end) {\n if (start === void 0) start = 0;\n if (end === void 0) end = frag.childCount;\n var cur = this;\n\n for (var i = start; cur && i < end; i++) {\n cur = cur.matchType(frag.child(i).type);\n }\n\n return cur;\n};\n\nprototypeAccessors$4.inlineContent.get = function () {\n var first = this.next[0];\n return first ? first.isInline : false;\n}; // :: ?NodeType\n// Get the first matching node type at this match position that can\n// be generated.\n\n\nprototypeAccessors$4.defaultType.get = function () {\n for (var i = 0; i < this.next.length; i += 2) {\n var type = this.next[i];\n\n if (!(type.isText || type.hasRequiredAttrs())) {\n return type;\n }\n }\n};\n\nContentMatch.prototype.compatible = function compatible(other) {\n for (var i = 0; i < this.next.length; i += 2) {\n for (var j = 0; j < other.next.length; j += 2) {\n if (this.next[i] == other.next[j]) {\n return true;\n }\n }\n }\n\n return false;\n}; // :: (Fragment, bool, ?number) → ?Fragment\n// Try to match the given fragment, and if that fails, see if it can\n// be made to match by inserting nodes in front of it. When\n// successful, return a fragment of inserted nodes (which may be\n// empty if nothing had to be inserted). When `toEnd` is true, only\n// return a fragment if the resulting match goes to the end of the\n// content expression.\n\n\nContentMatch.prototype.fillBefore = function fillBefore(after, toEnd, startIndex) {\n if (toEnd === void 0) toEnd = false;\n if (startIndex === void 0) startIndex = 0;\n var seen = [this];\n\n function search(match, types) {\n var finished = match.matchFragment(after, startIndex);\n\n if (finished && (!toEnd || finished.validEnd)) {\n return Fragment.from(types.map(function (tp) {\n return tp.createAndFill();\n }));\n }\n\n for (var i = 0; i < match.next.length; i += 2) {\n var type = match.next[i],\n next = match.next[i + 1];\n\n if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {\n seen.push(next);\n var found = search(next, types.concat(type));\n\n if (found) {\n return found;\n }\n }\n }\n }\n\n return search(this, []);\n}; // :: (NodeType) → ?[NodeType]\n// Find a set of wrapping node types that would allow a node of the\n// given type to appear at this position. The result may be empty\n// (when it fits directly) and will be null when no such wrapping\n// exists.\n\n\nContentMatch.prototype.findWrapping = function findWrapping(target) {\n for (var i = 0; i < this.wrapCache.length; i += 2) {\n if (this.wrapCache[i] == target) {\n return this.wrapCache[i + 1];\n }\n }\n\n var computed = this.computeWrapping(target);\n this.wrapCache.push(target, computed);\n return computed;\n};\n\nContentMatch.prototype.computeWrapping = function computeWrapping(target) {\n var seen = Object.create(null),\n active = [{\n match: this,\n type: null,\n via: null\n }];\n\n while (active.length) {\n var current = active.shift(),\n match = current.match;\n\n if (match.matchType(target)) {\n var result = [];\n\n for (var obj = current; obj.type; obj = obj.via) {\n result.push(obj.type);\n }\n\n return result.reverse();\n }\n\n for (var i = 0; i < match.next.length; i += 2) {\n var type = match.next[i];\n\n if (!type.isLeaf && !type.hasRequiredAttrs() && !(type.name in seen) && (!current.type || match.next[i + 1].validEnd)) {\n active.push({\n match: type.contentMatch,\n type: type,\n via: current\n });\n seen[type.name] = true;\n }\n }\n }\n}; // :: number\n// The number of outgoing edges this node has in the finite\n// automaton that describes the content expression.\n\n\nprototypeAccessors$4.edgeCount.get = function () {\n return this.next.length >> 1;\n}; // :: (number) → {type: NodeType, next: ContentMatch}\n// Get the _n_​th outgoing edge from this node in the finite\n// automaton that describes the content expression.\n\n\nContentMatch.prototype.edge = function edge(n) {\n var i = n << 1;\n\n if (i >= this.next.length) {\n throw new RangeError(\"There's no \" + n + \"th edge in this content match\");\n }\n\n return {\n type: this.next[i],\n next: this.next[i + 1]\n };\n};\n\nContentMatch.prototype.toString = function toString() {\n var seen = [];\n\n function scan(m) {\n seen.push(m);\n\n for (var i = 1; i < m.next.length; i += 2) {\n if (seen.indexOf(m.next[i]) == -1) {\n scan(m.next[i]);\n }\n }\n }\n\n scan(this);\n return seen.map(function (m, i) {\n var out = i + (m.validEnd ? \"*\" : \" \") + \" \";\n\n for (var i$1 = 0; i$1 < m.next.length; i$1 += 2) {\n out += (i$1 ? \", \" : \"\") + m.next[i$1].name + \"->\" + seen.indexOf(m.next[i$1 + 1]);\n }\n\n return out;\n }).join(\"\\n\");\n};\n\nObject.defineProperties(ContentMatch.prototype, prototypeAccessors$4);\nContentMatch.empty = new ContentMatch(true);\n\nvar TokenStream = function TokenStream(string, nodeTypes) {\n this.string = string;\n this.nodeTypes = nodeTypes;\n this.inline = null;\n this.pos = 0;\n this.tokens = string.split(/\\s*(?=\\b|\\W|$)/);\n\n if (this.tokens[this.tokens.length - 1] == \"\") {\n this.tokens.pop();\n }\n\n if (this.tokens[0] == \"\") {\n this.tokens.shift();\n }\n};\n\nvar prototypeAccessors$1$2 = {\n next: {\n configurable: true\n }\n};\n\nprototypeAccessors$1$2.next.get = function () {\n return this.tokens[this.pos];\n};\n\nTokenStream.prototype.eat = function eat(tok) {\n return this.next == tok && (this.pos++ || true);\n};\n\nTokenStream.prototype.err = function err(str) {\n throw new SyntaxError(str + \" (in content expression '\" + this.string + \"')\");\n};\n\nObject.defineProperties(TokenStream.prototype, prototypeAccessors$1$2);\n\nfunction parseExpr(stream) {\n var exprs = [];\n\n do {\n exprs.push(parseExprSeq(stream));\n } while (stream.eat(\"|\"));\n\n return exprs.length == 1 ? exprs[0] : {\n type: \"choice\",\n exprs: exprs\n };\n}\n\nfunction parseExprSeq(stream) {\n var exprs = [];\n\n do {\n exprs.push(parseExprSubscript(stream));\n } while (stream.next && stream.next != \")\" && stream.next != \"|\");\n\n return exprs.length == 1 ? exprs[0] : {\n type: \"seq\",\n exprs: exprs\n };\n}\n\nfunction parseExprSubscript(stream) {\n var expr = parseExprAtom(stream);\n\n for (;;) {\n if (stream.eat(\"+\")) {\n expr = {\n type: \"plus\",\n expr: expr\n };\n } else if (stream.eat(\"*\")) {\n expr = {\n type: \"star\",\n expr: expr\n };\n } else if (stream.eat(\"?\")) {\n expr = {\n type: \"opt\",\n expr: expr\n };\n } else if (stream.eat(\"{\")) {\n expr = parseExprRange(stream, expr);\n } else {\n break;\n }\n }\n\n return expr;\n}\n\nfunction parseNum(stream) {\n if (/\\D/.test(stream.next)) {\n stream.err(\"Expected number, got '\" + stream.next + \"'\");\n }\n\n var result = Number(stream.next);\n stream.pos++;\n return result;\n}\n\nfunction parseExprRange(stream, expr) {\n var min = parseNum(stream),\n max = min;\n\n if (stream.eat(\",\")) {\n if (stream.next != \"}\") {\n max = parseNum(stream);\n } else {\n max = -1;\n }\n }\n\n if (!stream.eat(\"}\")) {\n stream.err(\"Unclosed braced range\");\n }\n\n return {\n type: \"range\",\n min: min,\n max: max,\n expr: expr\n };\n}\n\nfunction resolveName(stream, name) {\n var types = stream.nodeTypes,\n type = types[name];\n\n if (type) {\n return [type];\n }\n\n var result = [];\n\n for (var typeName in types) {\n var type$1 = types[typeName];\n\n if (type$1.groups.indexOf(name) > -1) {\n result.push(type$1);\n }\n }\n\n if (result.length == 0) {\n stream.err(\"No node type or group '\" + name + \"' found\");\n }\n\n return result;\n}\n\nfunction parseExprAtom(stream) {\n if (stream.eat(\"(\")) {\n var expr = parseExpr(stream);\n\n if (!stream.eat(\")\")) {\n stream.err(\"Missing closing paren\");\n }\n\n return expr;\n } else if (!/\\W/.test(stream.next)) {\n var exprs = resolveName(stream, stream.next).map(function (type) {\n if (stream.inline == null) {\n stream.inline = type.isInline;\n } else if (stream.inline != type.isInline) {\n stream.err(\"Mixing inline and block content\");\n }\n\n return {\n type: \"name\",\n value: type\n };\n });\n stream.pos++;\n return exprs.length == 1 ? exprs[0] : {\n type: \"choice\",\n exprs: exprs\n };\n } else {\n stream.err(\"Unexpected token '\" + stream.next + \"'\");\n }\n} // The code below helps compile a regular-expression-like language\n// into a deterministic finite automaton. For a good introduction to\n// these concepts, see https://swtch.com/~rsc/regexp/regexp1.html\n// : (Object) → [[{term: ?any, to: number}]]\n// Construct an NFA from an expression as returned by the parser. The\n// NFA is represented as an array of states, which are themselves\n// arrays of edges, which are `{term, to}` objects. The first state is\n// the entry state and the last node is the success state.\n//\n// Note that unlike typical NFAs, the edge ordering in this one is\n// significant, in that it is used to contruct filler content when\n// necessary.\n\n\nfunction nfa(expr) {\n var nfa = [[]];\n connect(compile(expr, 0), node());\n return nfa;\n\n function node() {\n return nfa.push([]) - 1;\n }\n\n function edge(from, to, term) {\n var edge = {\n term: term,\n to: to\n };\n nfa[from].push(edge);\n return edge;\n }\n\n function connect(edges, to) {\n edges.forEach(function (edge) {\n return edge.to = to;\n });\n }\n\n function compile(expr, from) {\n if (expr.type == \"choice\") {\n return expr.exprs.reduce(function (out, expr) {\n return out.concat(compile(expr, from));\n }, []);\n } else if (expr.type == \"seq\") {\n for (var i = 0;; i++) {\n var next = compile(expr.exprs[i], from);\n\n if (i == expr.exprs.length - 1) {\n return next;\n }\n\n connect(next, from = node());\n }\n } else if (expr.type == \"star\") {\n var loop = node();\n edge(from, loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n } else if (expr.type == \"plus\") {\n var loop$1 = node();\n connect(compile(expr.expr, from), loop$1);\n connect(compile(expr.expr, loop$1), loop$1);\n return [edge(loop$1)];\n } else if (expr.type == \"opt\") {\n return [edge(from)].concat(compile(expr.expr, from));\n } else if (expr.type == \"range\") {\n var cur = from;\n\n for (var i$1 = 0; i$1 < expr.min; i$1++) {\n var next$1 = node();\n connect(compile(expr.expr, cur), next$1);\n cur = next$1;\n }\n\n if (expr.max == -1) {\n connect(compile(expr.expr, cur), cur);\n } else {\n for (var i$2 = expr.min; i$2 < expr.max; i$2++) {\n var next$2 = node();\n edge(cur, next$2);\n connect(compile(expr.expr, cur), next$2);\n cur = next$2;\n }\n }\n\n return [edge(cur)];\n } else if (expr.type == \"name\") {\n return [edge(from, null, expr.value)];\n }\n }\n}\n\nfunction cmp(a, b) {\n return b - a;\n} // Get the set of nodes reachable by null edges from `node`. Omit\n// nodes with only a single null-out-edge, since they may lead to\n// needless duplicated nodes.\n\n\nfunction nullFrom(nfa, node) {\n var result = [];\n scan(node);\n return result.sort(cmp);\n\n function scan(node) {\n var edges = nfa[node];\n\n if (edges.length == 1 && !edges[0].term) {\n return scan(edges[0].to);\n }\n\n result.push(node);\n\n for (var i = 0; i < edges.length; i++) {\n var ref = edges[i];\n var term = ref.term;\n var to = ref.to;\n\n if (!term && result.indexOf(to) == -1) {\n scan(to);\n }\n }\n }\n} // : ([[{term: ?any, to: number}]]) → ContentMatch\n// Compiles an NFA as produced by `nfa` into a DFA, modeled as a set\n// of state objects (`ContentMatch` instances) with transitions\n// between them.\n\n\nfunction dfa(nfa) {\n var labeled = Object.create(null);\n return explore(nullFrom(nfa, 0));\n\n function explore(states) {\n var out = [];\n states.forEach(function (node) {\n nfa[node].forEach(function (ref) {\n var term = ref.term;\n var to = ref.to;\n\n if (!term) {\n return;\n }\n\n var known = out.indexOf(term),\n set = known > -1 && out[known + 1];\n nullFrom(nfa, to).forEach(function (node) {\n if (!set) {\n out.push(term, set = []);\n }\n\n if (set.indexOf(node) == -1) {\n set.push(node);\n }\n });\n });\n });\n var state = labeled[states.join(\",\")] = new ContentMatch(states.indexOf(nfa.length - 1) > -1);\n\n for (var i = 0; i < out.length; i += 2) {\n var states$1 = out[i + 1].sort(cmp);\n state.next.push(out[i], labeled[states$1.join(\",\")] || explore(states$1));\n }\n\n return state;\n }\n}\n\nfunction checkForDeadEnds(match, stream) {\n for (var i = 0, work = [match]; i < work.length; i++) {\n var state = work[i],\n dead = !state.validEnd,\n nodes = [];\n\n for (var j = 0; j < state.next.length; j += 2) {\n var node = state.next[j],\n next = state.next[j + 1];\n nodes.push(node.name);\n\n if (dead && !(node.isText || node.hasRequiredAttrs())) {\n dead = false;\n }\n\n if (work.indexOf(next) == -1) {\n work.push(next);\n }\n }\n\n if (dead) {\n stream.err(\"Only non-generatable nodes (\" + nodes.join(\", \") + \") in a required position (see https://prosemirror.net/docs/guide/#generatable)\");\n }\n }\n} // For node types where all attrs have a default value (or which don't\n// have any attributes), build up a single reusable default attribute\n// object, and use it for all nodes that don't specify specific\n// attributes.\n\n\nfunction defaultAttrs(attrs) {\n var defaults = Object.create(null);\n\n for (var attrName in attrs) {\n var attr = attrs[attrName];\n\n if (!attr.hasDefault) {\n return null;\n }\n\n defaults[attrName] = attr[\"default\"];\n }\n\n return defaults;\n}\n\nfunction computeAttrs(attrs, value) {\n var built = Object.create(null);\n\n for (var name in attrs) {\n var given = value && value[name];\n\n if (given === undefined) {\n var attr = attrs[name];\n\n if (attr.hasDefault) {\n given = attr[\"default\"];\n } else {\n throw new RangeError(\"No value supplied for attribute \" + name);\n }\n }\n\n built[name] = given;\n }\n\n return built;\n}\n\nfunction initAttrs(attrs) {\n var result = Object.create(null);\n\n if (attrs) {\n for (var name in attrs) {\n result[name] = new Attribute(attrs[name]);\n }\n }\n\n return result;\n} // ::- Node types are objects allocated once per `Schema` and used to\n// [tag](#model.Node.type) `Node` instances. They contain information\n// about the node type, such as its name and what kind of node it\n// represents.\n\n\nvar NodeType = function NodeType(name, schema, spec) {\n // :: string\n // The name the node type has in this schema.\n this.name = name; // :: Schema\n // A link back to the `Schema` the node type belongs to.\n\n this.schema = schema; // :: NodeSpec\n // The spec that this type is based on\n\n this.spec = spec;\n this.groups = spec.group ? spec.group.split(\" \") : [];\n this.attrs = initAttrs(spec.attrs);\n this.defaultAttrs = defaultAttrs(this.attrs); // :: ContentMatch\n // The starting match of the node type's content expression.\n\n this.contentMatch = null; // : ?[MarkType]\n // The set of marks allowed in this node. `null` means all marks\n // are allowed.\n\n this.markSet = null; // :: bool\n // True if this node type has inline content.\n\n this.inlineContent = null; // :: bool\n // True if this is a block type\n\n this.isBlock = !(spec.inline || name == \"text\"); // :: bool\n // True if this is the text node type.\n\n this.isText = name == \"text\";\n};\n\nvar prototypeAccessors$5 = {\n isInline: {\n configurable: true\n },\n isTextblock: {\n configurable: true\n },\n isLeaf: {\n configurable: true\n },\n isAtom: {\n configurable: true\n }\n}; // :: bool\n// True if this is an inline type.\n\nprototypeAccessors$5.isInline.get = function () {\n return !this.isBlock;\n}; // :: bool\n// True if this is a textblock type, a block that contains inline\n// content.\n\n\nprototypeAccessors$5.isTextblock.get = function () {\n return this.isBlock && this.inlineContent;\n}; // :: bool\n// True for node types that allow no content.\n\n\nprototypeAccessors$5.isLeaf.get = function () {\n return this.contentMatch == ContentMatch.empty;\n}; // :: bool\n// True when this node is an atom, i.e. when it does not have\n// directly editable content.\n\n\nprototypeAccessors$5.isAtom.get = function () {\n return this.isLeaf || this.spec.atom;\n}; // :: () → bool\n// Tells you whether this node type has any required attributes.\n\n\nNodeType.prototype.hasRequiredAttrs = function hasRequiredAttrs() {\n for (var n in this.attrs) {\n if (this.attrs[n].isRequired) {\n return true;\n }\n }\n\n return false;\n};\n\nNodeType.prototype.compatibleContent = function compatibleContent(other) {\n return this == other || this.contentMatch.compatible(other.contentMatch);\n};\n\nNodeType.prototype.computeAttrs = function computeAttrs$1(attrs) {\n if (!attrs && this.defaultAttrs) {\n return this.defaultAttrs;\n } else {\n return computeAttrs(this.attrs, attrs);\n }\n}; // :: (?Object, ?union, ?[Mark]) → Node\n// Create a `Node` of this type. The given attributes are\n// checked and defaulted (you can pass `null` to use the type's\n// defaults entirely, if no required attributes exist). `content`\n// may be a `Fragment`, a node, an array of nodes, or\n// `null`. Similarly `marks` may be `null` to default to the empty\n// set of marks.\n\n\nNodeType.prototype.create = function create(attrs, content, marks) {\n if (this.isText) {\n throw new Error(\"NodeType.create can't construct text nodes\");\n }\n\n return new Node(this, this.computeAttrs(attrs), Fragment.from(content), Mark.setFrom(marks));\n}; // :: (?Object, ?union, ?[Mark]) → Node\n// Like [`create`](#model.NodeType.create), but check the given content\n// against the node type's content restrictions, and throw an error\n// if it doesn't match.\n\n\nNodeType.prototype.createChecked = function createChecked(attrs, content, marks) {\n content = Fragment.from(content);\n\n if (!this.validContent(content)) {\n throw new RangeError(\"Invalid content for node \" + this.name);\n }\n\n return new Node(this, this.computeAttrs(attrs), content, Mark.setFrom(marks));\n}; // :: (?Object, ?union, ?[Mark]) → ?Node\n// Like [`create`](#model.NodeType.create), but see if it is necessary to\n// add nodes to the start or end of the given fragment to make it\n// fit the node. If no fitting wrapping can be found, return null.\n// Note that, due to the fact that required nodes can always be\n// created, this will always succeed if you pass null or\n// `Fragment.empty` as content.\n\n\nNodeType.prototype.createAndFill = function createAndFill(attrs, content, marks) {\n attrs = this.computeAttrs(attrs);\n content = Fragment.from(content);\n\n if (content.size) {\n var before = this.contentMatch.fillBefore(content);\n\n if (!before) {\n return null;\n }\n\n content = before.append(content);\n }\n\n var after = this.contentMatch.matchFragment(content).fillBefore(Fragment.empty, true);\n\n if (!after) {\n return null;\n }\n\n return new Node(this, attrs, content.append(after), Mark.setFrom(marks));\n}; // :: (Fragment) → bool\n// Returns true if the given fragment is valid content for this node\n// type with the given attributes.\n\n\nNodeType.prototype.validContent = function validContent(content) {\n var result = this.contentMatch.matchFragment(content);\n\n if (!result || !result.validEnd) {\n return false;\n }\n\n for (var i = 0; i < content.childCount; i++) {\n if (!this.allowsMarks(content.child(i).marks)) {\n return false;\n }\n }\n\n return true;\n}; // :: (MarkType) → bool\n// Check whether the given mark type is allowed in this node.\n\n\nNodeType.prototype.allowsMarkType = function allowsMarkType(markType) {\n return this.markSet == null || this.markSet.indexOf(markType) > -1;\n}; // :: ([Mark]) → bool\n// Test whether the given set of marks are allowed in this node.\n\n\nNodeType.prototype.allowsMarks = function allowsMarks(marks) {\n if (this.markSet == null) {\n return true;\n }\n\n for (var i = 0; i < marks.length; i++) {\n if (!this.allowsMarkType(marks[i].type)) {\n return false;\n }\n }\n\n return true;\n}; // :: ([Mark]) → [Mark]\n// Removes the marks that are not allowed in this node from the given set.\n\n\nNodeType.prototype.allowedMarks = function allowedMarks(marks) {\n if (this.markSet == null) {\n return marks;\n }\n\n var copy;\n\n for (var i = 0; i < marks.length; i++) {\n if (!this.allowsMarkType(marks[i].type)) {\n if (!copy) {\n copy = marks.slice(0, i);\n }\n } else if (copy) {\n copy.push(marks[i]);\n }\n }\n\n return !copy ? marks : copy.length ? copy : Mark.empty;\n};\n\nNodeType.compile = function compile(nodes, schema) {\n var result = Object.create(null);\n nodes.forEach(function (name, spec) {\n return result[name] = new NodeType(name, schema, spec);\n });\n var topType = schema.spec.topNode || \"doc\";\n\n if (!result[topType]) {\n throw new RangeError(\"Schema is missing its top node type ('\" + topType + \"')\");\n }\n\n if (!result.text) {\n throw new RangeError(\"Every schema needs a 'text' type\");\n }\n\n for (var _ in result.text.attrs) {\n throw new RangeError(\"The text node type should not have attributes\");\n }\n\n return result;\n};\n\nObject.defineProperties(NodeType.prototype, prototypeAccessors$5); // Attribute descriptors\n\nvar Attribute = function Attribute(options) {\n this.hasDefault = Object.prototype.hasOwnProperty.call(options, \"default\");\n this[\"default\"] = options[\"default\"];\n};\n\nvar prototypeAccessors$1$3 = {\n isRequired: {\n configurable: true\n }\n};\n\nprototypeAccessors$1$3.isRequired.get = function () {\n return !this.hasDefault;\n};\n\nObject.defineProperties(Attribute.prototype, prototypeAccessors$1$3); // Marks\n// ::- Like nodes, marks (which are associated with nodes to signify\n// things like emphasis or being part of a link) are\n// [tagged](#model.Mark.type) with type objects, which are\n// instantiated once per `Schema`.\n\nvar MarkType = function MarkType(name, rank, schema, spec) {\n // :: string\n // The name of the mark type.\n this.name = name; // :: Schema\n // The schema that this mark type instance is part of.\n\n this.schema = schema; // :: MarkSpec\n // The spec on which the type is based.\n\n this.spec = spec;\n this.attrs = initAttrs(spec.attrs);\n this.rank = rank;\n this.excluded = null;\n var defaults = defaultAttrs(this.attrs);\n this.instance = defaults && new Mark(this, defaults);\n}; // :: (?Object) → Mark\n// Create a mark of this type. `attrs` may be `null` or an object\n// containing only some of the mark's attributes. The others, if\n// they have defaults, will be added.\n\n\nMarkType.prototype.create = function create(attrs) {\n if (!attrs && this.instance) {\n return this.instance;\n }\n\n return new Mark(this, computeAttrs(this.attrs, attrs));\n};\n\nMarkType.compile = function compile(marks, schema) {\n var result = Object.create(null),\n rank = 0;\n marks.forEach(function (name, spec) {\n return result[name] = new MarkType(name, rank++, schema, spec);\n });\n return result;\n}; // :: ([Mark]) → [Mark]\n// When there is a mark of this type in the given set, a new set\n// without it is returned. Otherwise, the input set is returned.\n\n\nMarkType.prototype.removeFromSet = function removeFromSet(set) {\n for (var i = 0; i < set.length; i++) {\n if (set[i].type == this) {\n set = set.slice(0, i).concat(set.slice(i + 1));\n i--;\n }\n }\n\n return set;\n}; // :: ([Mark]) → ?Mark\n// Tests whether there is a mark of this type in the given set.\n\n\nMarkType.prototype.isInSet = function isInSet(set) {\n for (var i = 0; i < set.length; i++) {\n if (set[i].type == this) {\n return set[i];\n }\n }\n}; // :: (MarkType) → bool\n// Queries whether a given mark type is\n// [excluded](#model.MarkSpec.excludes) by this one.\n\n\nMarkType.prototype.excludes = function excludes(other) {\n return this.excluded.indexOf(other) > -1;\n}; // SchemaSpec:: interface\n// An object describing a schema, as passed to the [`Schema`](#model.Schema)\n// constructor.\n//\n// nodes:: union, OrderedMap>\n// The node types in this schema. Maps names to\n// [`NodeSpec`](#model.NodeSpec) objects that describe the node type\n// associated with that name. Their order is significant—it\n// determines which [parse rules](#model.NodeSpec.parseDOM) take\n// precedence by default, and which nodes come first in a given\n// [group](#model.NodeSpec.group).\n//\n// marks:: ?union, OrderedMap>\n// The mark types that exist in this schema. The order in which they\n// are provided determines the order in which [mark\n// sets](#model.Mark.addToSet) are sorted and in which [parse\n// rules](#model.MarkSpec.parseDOM) are tried.\n//\n// topNode:: ?string\n// The name of the default top-level node for the schema. Defaults\n// to `\"doc\"`.\n// NodeSpec:: interface\n//\n// content:: ?string\n// The content expression for this node, as described in the [schema\n// guide](/docs/guide/#schema.content_expressions). When not given,\n// the node does not allow any content.\n//\n// marks:: ?string\n// The marks that are allowed inside of this node. May be a\n// space-separated string referring to mark names or groups, `\"_\"`\n// to explicitly allow all marks, or `\"\"` to disallow marks. When\n// not given, nodes with inline content default to allowing all\n// marks, other nodes default to not allowing marks.\n//\n// group:: ?string\n// The group or space-separated groups to which this node belongs,\n// which can be referred to in the content expressions for the\n// schema.\n//\n// inline:: ?bool\n// Should be set to true for inline nodes. (Implied for text nodes.)\n//\n// atom:: ?bool\n// Can be set to true to indicate that, though this isn't a [leaf\n// node](#model.NodeType.isLeaf), it doesn't have directly editable\n// content and should be treated as a single unit in the view.\n//\n// attrs:: ?Object\n// The attributes that nodes of this type get.\n//\n// selectable:: ?bool\n// Controls whether nodes of this type can be selected as a [node\n// selection](#state.NodeSelection). Defaults to true for non-text\n// nodes.\n//\n// draggable:: ?bool\n// Determines whether nodes of this type can be dragged without\n// being selected. Defaults to false.\n//\n// code:: ?bool\n// Can be used to indicate that this node contains code, which\n// causes some commands to behave differently.\n//\n// defining:: ?bool\n// Determines whether this node is considered an important parent\n// node during replace operations (such as paste). Non-defining (the\n// default) nodes get dropped when their entire content is replaced,\n// whereas defining nodes persist and wrap the inserted content.\n// Likewise, in _inserted_ content the defining parents of the\n// content are preserved when possible. Typically,\n// non-default-paragraph textblock types, and possibly list items,\n// are marked as defining.\n//\n// isolating:: ?bool\n// When enabled (default is false), the sides of nodes of this type\n// count as boundaries that regular editing operations, like\n// backspacing or lifting, won't cross. An example of a node that\n// should probably have this enabled is a table cell.\n//\n// toDOM:: ?(node: Node) → DOMOutputSpec\n// Defines the default way a node of this type should be serialized\n// to DOM/HTML (as used by\n// [`DOMSerializer.fromSchema`](#model.DOMSerializer^fromSchema)).\n// Should return a DOM node or an [array\n// structure](#model.DOMOutputSpec) that describes one, with an\n// optional number zero (“hole”) in it to indicate where the node's\n// content should be inserted.\n//\n// For text nodes, the default is to create a text DOM node. Though\n// it is possible to create a serializer where text is rendered\n// differently, this is not supported inside the editor, so you\n// shouldn't override that in your text node spec.\n//\n// parseDOM:: ?[ParseRule]\n// Associates DOM parser information with this node, which can be\n// used by [`DOMParser.fromSchema`](#model.DOMParser^fromSchema) to\n// automatically derive a parser. The `node` field in the rules is\n// implied (the name of this node will be filled in automatically).\n// If you supply your own parser, you do not need to also specify\n// parsing rules in your schema.\n//\n// toDebugString:: ?(node: Node) -> string\n// Defines the default way a node of this type should be serialized\n// to a string representation for debugging (e.g. in error messages).\n// MarkSpec:: interface\n//\n// attrs:: ?Object\n// The attributes that marks of this type get.\n//\n// inclusive:: ?bool\n// Whether this mark should be active when the cursor is positioned\n// at its end (or at its start when that is also the start of the\n// parent node). Defaults to true.\n//\n// excludes:: ?string\n// Determines which other marks this mark can coexist with. Should\n// be a space-separated strings naming other marks or groups of marks.\n// When a mark is [added](#model.Mark.addToSet) to a set, all marks\n// that it excludes are removed in the process. If the set contains\n// any mark that excludes the new mark but is not, itself, excluded\n// by the new mark, the mark can not be added an the set. You can\n// use the value `\"_\"` to indicate that the mark excludes all\n// marks in the schema.\n//\n// Defaults to only being exclusive with marks of the same type. You\n// can set it to an empty string (or any string not containing the\n// mark's own name) to allow multiple marks of a given type to\n// coexist (as long as they have different attributes).\n//\n// group:: ?string\n// The group or space-separated groups to which this mark belongs.\n//\n// spanning:: ?bool\n// Determines whether marks of this type can span multiple adjacent\n// nodes when serialized to DOM/HTML. Defaults to true.\n//\n// toDOM:: ?(mark: Mark, inline: bool) → DOMOutputSpec\n// Defines the default way marks of this type should be serialized\n// to DOM/HTML. When the resulting spec contains a hole, that is\n// where the marked content is placed. Otherwise, it is appended to\n// the top node.\n//\n// parseDOM:: ?[ParseRule]\n// Associates DOM parser information with this mark (see the\n// corresponding [node spec field](#model.NodeSpec.parseDOM)). The\n// `mark` field in the rules is implied.\n// AttributeSpec:: interface\n//\n// Used to [define](#model.NodeSpec.attrs) attributes on nodes or\n// marks.\n//\n// default:: ?any\n// The default value for this attribute, to use when no explicit\n// value is provided. Attributes that have no default must be\n// provided whenever a node or mark of a type that has them is\n// created.\n// ::- A document schema. Holds [node](#model.NodeType) and [mark\n// type](#model.MarkType) objects for the nodes and marks that may\n// occur in conforming documents, and provides functionality for\n// creating and deserializing such documents.\n\n\nvar Schema = function Schema(spec) {\n // :: SchemaSpec\n // The [spec](#model.SchemaSpec) on which the schema is based,\n // with the added guarantee that its `nodes` and `marks`\n // properties are\n // [`OrderedMap`](https://github.com/marijnh/orderedmap) instances\n // (not raw objects).\n this.spec = {};\n\n for (var prop in spec) {\n this.spec[prop] = spec[prop];\n }\n\n this.spec.nodes = OrderedMap.from(spec.nodes);\n this.spec.marks = OrderedMap.from(spec.marks); // :: Object\n // An object mapping the schema's node names to node type objects.\n\n this.nodes = NodeType.compile(this.spec.nodes, this); // :: Object\n // A map from mark names to mark type objects.\n\n this.marks = MarkType.compile(this.spec.marks, this);\n var contentExprCache = Object.create(null);\n\n for (var prop$1 in this.nodes) {\n if (prop$1 in this.marks) {\n throw new RangeError(prop$1 + \" can not be both a node and a mark\");\n }\n\n var type = this.nodes[prop$1],\n contentExpr = type.spec.content || \"\",\n markExpr = type.spec.marks;\n type.contentMatch = contentExprCache[contentExpr] || (contentExprCache[contentExpr] = ContentMatch.parse(contentExpr, this.nodes));\n type.inlineContent = type.contentMatch.inlineContent;\n type.markSet = markExpr == \"_\" ? null : markExpr ? gatherMarks(this, markExpr.split(\" \")) : markExpr == \"\" || !type.inlineContent ? [] : null;\n }\n\n for (var prop$2 in this.marks) {\n var type$1 = this.marks[prop$2],\n excl = type$1.spec.excludes;\n type$1.excluded = excl == null ? [type$1] : excl == \"\" ? [] : gatherMarks(this, excl.split(\" \"));\n }\n\n this.nodeFromJSON = this.nodeFromJSON.bind(this);\n this.markFromJSON = this.markFromJSON.bind(this); // :: NodeType\n // The type of the [default top node](#model.SchemaSpec.topNode)\n // for this schema.\n\n this.topNodeType = this.nodes[this.spec.topNode || \"doc\"]; // :: Object\n // An object for storing whatever values modules may want to\n // compute and cache per schema. (If you want to store something\n // in it, try to use property names unlikely to clash.)\n\n this.cached = Object.create(null);\n this.cached.wrappings = Object.create(null);\n}; // :: (union, ?Object, ?union, ?[Mark]) → Node\n// Create a node in this schema. The `type` may be a string or a\n// `NodeType` instance. Attributes will be extended\n// with defaults, `content` may be a `Fragment`,\n// `null`, a `Node`, or an array of nodes.\n\n\nSchema.prototype.node = function node(type, attrs, content, marks) {\n if (typeof type == \"string\") {\n type = this.nodeType(type);\n } else if (!(type instanceof NodeType)) {\n throw new RangeError(\"Invalid node type: \" + type);\n } else if (type.schema != this) {\n throw new RangeError(\"Node type from different schema used (\" + type.name + \")\");\n }\n\n return type.createChecked(attrs, content, marks);\n}; // :: (string, ?[Mark]) → Node\n// Create a text node in the schema. Empty text nodes are not\n// allowed.\n\n\nSchema.prototype.text = function text(text$1, marks) {\n var type = this.nodes.text;\n return new TextNode(type, type.defaultAttrs, text$1, Mark.setFrom(marks));\n}; // :: (union, ?Object) → Mark\n// Create a mark with the given type and attributes.\n\n\nSchema.prototype.mark = function mark(type, attrs) {\n if (typeof type == \"string\") {\n type = this.marks[type];\n }\n\n return type.create(attrs);\n}; // :: (Object) → Node\n// Deserialize a node from its JSON representation. This method is\n// bound.\n\n\nSchema.prototype.nodeFromJSON = function nodeFromJSON(json) {\n return Node.fromJSON(this, json);\n}; // :: (Object) → Mark\n// Deserialize a mark from its JSON representation. This method is\n// bound.\n\n\nSchema.prototype.markFromJSON = function markFromJSON(json) {\n return Mark.fromJSON(this, json);\n};\n\nSchema.prototype.nodeType = function nodeType(name) {\n var found = this.nodes[name];\n\n if (!found) {\n throw new RangeError(\"Unknown node type: \" + name);\n }\n\n return found;\n};\n\nfunction gatherMarks(schema, marks) {\n var found = [];\n\n for (var i = 0; i < marks.length; i++) {\n var name = marks[i],\n mark = schema.marks[name],\n ok = mark;\n\n if (mark) {\n found.push(mark);\n } else {\n for (var prop in schema.marks) {\n var mark$1 = schema.marks[prop];\n\n if (name == \"_\" || mark$1.spec.group && mark$1.spec.group.split(\" \").indexOf(name) > -1) {\n found.push(ok = mark$1);\n }\n }\n }\n\n if (!ok) {\n throw new SyntaxError(\"Unknown mark type: '\" + marks[i] + \"'\");\n }\n }\n\n return found;\n} // ParseOptions:: interface\n// These are the options recognized by the\n// [`parse`](#model.DOMParser.parse) and\n// [`parseSlice`](#model.DOMParser.parseSlice) methods.\n//\n// preserveWhitespace:: ?union\n// By default, whitespace is collapsed as per HTML's rules. Pass\n// `true` to preserve whitespace, but normalize newlines to\n// spaces, and `\"full\"` to preserve whitespace entirely.\n//\n// findPositions:: ?[{node: dom.Node, offset: number}]\n// When given, the parser will, beside parsing the content,\n// record the document positions of the given DOM positions. It\n// will do so by writing to the objects, adding a `pos` property\n// that holds the document position. DOM positions that are not\n// in the parsed content will not be written to.\n//\n// from:: ?number\n// The child node index to start parsing from.\n//\n// to:: ?number\n// The child node index to stop parsing at.\n//\n// topNode:: ?Node\n// By default, the content is parsed into the schema's default\n// [top node type](#model.Schema.topNodeType). You can pass this\n// option to use the type and attributes from a different node\n// as the top container.\n//\n// topMatch:: ?ContentMatch\n// Provide the starting content match that content parsed into the\n// top node is matched against.\n//\n// context:: ?ResolvedPos\n// A set of additional nodes to count as\n// [context](#model.ParseRule.context) when parsing, above the\n// given [top node](#model.ParseOptions.topNode).\n// ParseRule:: interface\n// A value that describes how to parse a given DOM node or inline\n// style as a ProseMirror node or mark.\n//\n// tag:: ?string\n// A CSS selector describing the kind of DOM elements to match. A\n// single rule should have _either_ a `tag` or a `style` property.\n//\n// namespace:: ?string\n// The namespace to match. This should be used with `tag`.\n// Nodes are only matched when the namespace matches or this property\n// is null.\n//\n// style:: ?string\n// A CSS property name to match. When given, this rule matches\n// inline styles that list that property. May also have the form\n// `\"property=value\"`, in which case the rule only matches if the\n// property's value exactly matches the given value. (For more\n// complicated filters, use [`getAttrs`](#model.ParseRule.getAttrs)\n// and return false to indicate that the match failed.) Rules\n// matching styles may only produce [marks](#model.ParseRule.mark),\n// not nodes.\n//\n// priority:: ?number\n// Can be used to change the order in which the parse rules in a\n// schema are tried. Those with higher priority come first. Rules\n// without a priority are counted as having priority 50. This\n// property is only meaningful in a schema—when directly\n// constructing a parser, the order of the rule array is used.\n//\n// consuming:: ?boolean\n// By default, when a rule matches an element or style, no further\n// rules get a chance to match it. By setting this to `false`, you\n// indicate that even when this rule matches, other rules that come\n// after it should also run.\n//\n// context:: ?string\n// When given, restricts this rule to only match when the current\n// context—the parent nodes into which the content is being\n// parsed—matches this expression. Should contain one or more node\n// names or node group names followed by single or double slashes.\n// For example `\"paragraph/\"` means the rule only matches when the\n// parent node is a paragraph, `\"blockquote/paragraph/\"` restricts\n// it to be in a paragraph that is inside a blockquote, and\n// `\"section//\"` matches any position inside a section—a double\n// slash matches any sequence of ancestor nodes. To allow multiple\n// different contexts, they can be separated by a pipe (`|`)\n// character, as in `\"blockquote/|list_item/\"`.\n//\n// node:: ?string\n// The name of the node type to create when this rule matches. Only\n// valid for rules with a `tag` property, not for style rules. Each\n// rule should have one of a `node`, `mark`, or `ignore` property\n// (except when it appears in a [node](#model.NodeSpec.parseDOM) or\n// [mark spec](#model.MarkSpec.parseDOM), in which case the `node`\n// or `mark` property will be derived from its position).\n//\n// mark:: ?string\n// The name of the mark type to wrap the matched content in.\n//\n// ignore:: ?bool\n// When true, ignore content that matches this rule.\n//\n// closeParent:: ?bool\n// When true, finding an element that matches this rule will close\n// the current node.\n//\n// skip:: ?bool\n// When true, ignore the node that matches this rule, but do parse\n// its content.\n//\n// attrs:: ?Object\n// Attributes for the node or mark created by this rule. When\n// `getAttrs` is provided, it takes precedence.\n//\n// getAttrs:: ?(union) → ?union\n// A function used to compute the attributes for the node or mark\n// created by this rule. Can also be used to describe further\n// conditions the DOM element or style must match. When it returns\n// `false`, the rule won't match. When it returns null or undefined,\n// that is interpreted as an empty/default set of attributes.\n//\n// Called with a DOM Element for `tag` rules, and with a string (the\n// style's value) for `style` rules.\n//\n// contentElement:: ?union\n// For `tag` rules that produce non-leaf nodes or marks, by default\n// the content of the DOM element is parsed as content of the mark\n// or node. If the child nodes are in a descendent node, this may be\n// a CSS selector string that the parser must use to find the actual\n// content element, or a function that returns the actual content\n// element to the parser.\n//\n// getContent:: ?(dom.Node, schema: Schema) → Fragment\n// Can be used to override the content of a matched node. When\n// present, instead of parsing the node's child nodes, the result of\n// this function is used.\n//\n// preserveWhitespace:: ?union\n// Controls whether whitespace should be preserved when parsing the\n// content inside the matched element. `false` means whitespace may\n// be collapsed, `true` means that whitespace should be preserved\n// but newlines normalized to spaces, and `\"full\"` means that\n// newlines should also be preserved.\n// ::- A DOM parser represents a strategy for parsing DOM content into\n// a ProseMirror document conforming to a given schema. Its behavior\n// is defined by an array of [rules](#model.ParseRule).\n\n\nvar DOMParser = function DOMParser(schema, rules) {\n var this$1 = this; // :: Schema\n // The schema into which the parser parses.\n\n this.schema = schema; // :: [ParseRule]\n // The set of [parse rules](#model.ParseRule) that the parser\n // uses, in order of precedence.\n\n this.rules = rules;\n this.tags = [];\n this.styles = [];\n rules.forEach(function (rule) {\n if (rule.tag) {\n this$1.tags.push(rule);\n } else if (rule.style) {\n this$1.styles.push(rule);\n }\n }); // Only normalize list elements when lists in the schema can't directly contain themselves\n\n this.normalizeLists = !this.tags.some(function (r) {\n if (!/^(ul|ol)\\b/.test(r.tag) || !r.node) {\n return false;\n }\n\n var node = schema.nodes[r.node];\n return node.contentMatch.matchType(node);\n });\n}; // :: (dom.Node, ?ParseOptions) → Node\n// Parse a document from the content of a DOM node.\n\n\nDOMParser.prototype.parse = function parse(dom, options) {\n if (options === void 0) options = {};\n var context = new ParseContext(this, options, false);\n context.addAll(dom, null, options.from, options.to);\n return context.finish();\n}; // :: (dom.Node, ?ParseOptions) → Slice\n// Parses the content of the given DOM node, like\n// [`parse`](#model.DOMParser.parse), and takes the same set of\n// options. But unlike that method, which produces a whole node,\n// this one returns a slice that is open at the sides, meaning that\n// the schema constraints aren't applied to the start of nodes to\n// the left of the input and the end of nodes at the end.\n\n\nDOMParser.prototype.parseSlice = function parseSlice(dom, options) {\n if (options === void 0) options = {};\n var context = new ParseContext(this, options, true);\n context.addAll(dom, null, options.from, options.to);\n return Slice.maxOpen(context.finish());\n};\n\nDOMParser.prototype.matchTag = function matchTag(dom, context, after) {\n for (var i = after ? this.tags.indexOf(after) + 1 : 0; i < this.tags.length; i++) {\n var rule = this.tags[i];\n\n if (matches(dom, rule.tag) && (rule.namespace === undefined || dom.namespaceURI == rule.namespace) && (!rule.context || context.matchesContext(rule.context))) {\n if (rule.getAttrs) {\n var result = rule.getAttrs(dom);\n\n if (result === false) {\n continue;\n }\n\n rule.attrs = result;\n }\n\n return rule;\n }\n }\n};\n\nDOMParser.prototype.matchStyle = function matchStyle(prop, value, context, after) {\n for (var i = after ? this.styles.indexOf(after) + 1 : 0; i < this.styles.length; i++) {\n var rule = this.styles[i];\n\n if (rule.style.indexOf(prop) != 0 || rule.context && !context.matchesContext(rule.context) || // Test that the style string either precisely matches the prop,\n // or has an '=' sign after the prop, followed by the given\n // value.\n rule.style.length > prop.length && (rule.style.charCodeAt(prop.length) != 61 || rule.style.slice(prop.length + 1) != value)) {\n continue;\n }\n\n if (rule.getAttrs) {\n var result = rule.getAttrs(value);\n\n if (result === false) {\n continue;\n }\n\n rule.attrs = result;\n }\n\n return rule;\n }\n}; // : (Schema) → [ParseRule]\n\n\nDOMParser.schemaRules = function schemaRules(schema) {\n var result = [];\n\n function insert(rule) {\n var priority = rule.priority == null ? 50 : rule.priority,\n i = 0;\n\n for (; i < result.length; i++) {\n var next = result[i],\n nextPriority = next.priority == null ? 50 : next.priority;\n\n if (nextPriority < priority) {\n break;\n }\n }\n\n result.splice(i, 0, rule);\n }\n\n var loop = function loop(name) {\n var rules = schema.marks[name].spec.parseDOM;\n\n if (rules) {\n rules.forEach(function (rule) {\n insert(rule = copy(rule));\n rule.mark = name;\n });\n }\n };\n\n for (var name in schema.marks) {\n loop(name);\n }\n\n var loop$1 = function loop$1(name) {\n var rules$1 = schema.nodes[name$1].spec.parseDOM;\n\n if (rules$1) {\n rules$1.forEach(function (rule) {\n insert(rule = copy(rule));\n rule.node = name$1;\n });\n }\n };\n\n for (var name$1 in schema.nodes) {\n loop$1();\n }\n\n return result;\n}; // :: (Schema) → DOMParser\n// Construct a DOM parser using the parsing rules listed in a\n// schema's [node specs](#model.NodeSpec.parseDOM), reordered by\n// [priority](#model.ParseRule.priority).\n\n\nDOMParser.fromSchema = function fromSchema(schema) {\n return schema.cached.domParser || (schema.cached.domParser = new DOMParser(schema, DOMParser.schemaRules(schema)));\n}; // : Object The block-level tags in HTML5\n\n\nvar blockTags = {\n address: true,\n article: true,\n aside: true,\n blockquote: true,\n canvas: true,\n dd: true,\n div: true,\n dl: true,\n fieldset: true,\n figcaption: true,\n figure: true,\n footer: true,\n form: true,\n h1: true,\n h2: true,\n h3: true,\n h4: true,\n h5: true,\n h6: true,\n header: true,\n hgroup: true,\n hr: true,\n li: true,\n noscript: true,\n ol: true,\n output: true,\n p: true,\n pre: true,\n section: true,\n table: true,\n tfoot: true,\n ul: true\n}; // : Object The tags that we normally ignore.\n\nvar ignoreTags = {\n head: true,\n noscript: true,\n object: true,\n script: true,\n style: true,\n title: true\n}; // : Object List tags.\n\nvar listTags = {\n ol: true,\n ul: true\n}; // Using a bitfield for node context options\n\nvar OPT_PRESERVE_WS = 1,\n OPT_PRESERVE_WS_FULL = 2,\n OPT_OPEN_LEFT = 4;\n\nfunction wsOptionsFor(preserveWhitespace) {\n return (preserveWhitespace ? OPT_PRESERVE_WS : 0) | (preserveWhitespace === \"full\" ? OPT_PRESERVE_WS_FULL : 0);\n}\n\nvar NodeContext = function NodeContext(type, attrs, marks, pendingMarks, solid, match, options) {\n this.type = type;\n this.attrs = attrs;\n this.solid = solid;\n this.match = match || (options & OPT_OPEN_LEFT ? null : type.contentMatch);\n this.options = options;\n this.content = []; // Marks applied to this node itself\n\n this.marks = marks; // Marks applied to its children\n\n this.activeMarks = Mark.none; // Marks that can't apply here, but will be used in children if possible\n\n this.pendingMarks = pendingMarks; // Nested Marks with same type\n\n this.stashMarks = [];\n};\n\nNodeContext.prototype.findWrapping = function findWrapping(node) {\n if (!this.match) {\n if (!this.type) {\n return [];\n }\n\n var fill = this.type.contentMatch.fillBefore(Fragment.from(node));\n\n if (fill) {\n this.match = this.type.contentMatch.matchFragment(fill);\n } else {\n var start = this.type.contentMatch,\n wrap;\n\n if (wrap = start.findWrapping(node.type)) {\n this.match = start;\n return wrap;\n } else {\n return null;\n }\n }\n }\n\n return this.match.findWrapping(node.type);\n};\n\nNodeContext.prototype.finish = function finish(openEnd) {\n if (!(this.options & OPT_PRESERVE_WS)) {\n // Strip trailing whitespace\n var last = this.content[this.content.length - 1],\n m;\n\n if (last && last.isText && (m = /[ \\t\\r\\n\\u000c]+$/.exec(last.text))) {\n if (last.text.length == m[0].length) {\n this.content.pop();\n } else {\n this.content[this.content.length - 1] = last.withText(last.text.slice(0, last.text.length - m[0].length));\n }\n }\n }\n\n var content = Fragment.from(this.content);\n\n if (!openEnd && this.match) {\n content = content.append(this.match.fillBefore(Fragment.empty, true));\n }\n\n return this.type ? this.type.create(this.attrs, content, this.marks) : content;\n};\n\nNodeContext.prototype.popFromStashMark = function popFromStashMark(mark) {\n for (var i = this.stashMarks.length - 1; i >= 0; i--) {\n if (mark.eq(this.stashMarks[i])) {\n return this.stashMarks.splice(i, 1)[0];\n }\n }\n};\n\nNodeContext.prototype.applyPending = function applyPending(nextType) {\n for (var i = 0, pending = this.pendingMarks; i < pending.length; i++) {\n var mark = pending[i];\n\n if ((this.type ? this.type.allowsMarkType(mark.type) : markMayApply(mark.type, nextType)) && !mark.isInSet(this.activeMarks)) {\n this.activeMarks = mark.addToSet(this.activeMarks);\n this.pendingMarks = mark.removeFromSet(this.pendingMarks);\n }\n }\n};\n\nvar ParseContext = function ParseContext(parser, options, open) {\n // : DOMParser The parser we are using.\n this.parser = parser; // : Object The options passed to this parse.\n\n this.options = options;\n this.isOpen = open;\n var topNode = options.topNode,\n topContext;\n var topOptions = wsOptionsFor(options.preserveWhitespace) | (open ? OPT_OPEN_LEFT : 0);\n\n if (topNode) {\n topContext = new NodeContext(topNode.type, topNode.attrs, Mark.none, Mark.none, true, options.topMatch || topNode.type.contentMatch, topOptions);\n } else if (open) {\n topContext = new NodeContext(null, null, Mark.none, Mark.none, true, null, topOptions);\n } else {\n topContext = new NodeContext(parser.schema.topNodeType, null, Mark.none, Mark.none, true, null, topOptions);\n }\n\n this.nodes = [topContext]; // : [Mark] The current set of marks\n\n this.open = 0;\n this.find = options.findPositions;\n this.needsBlock = false;\n};\n\nvar prototypeAccessors$6 = {\n top: {\n configurable: true\n },\n currentPos: {\n configurable: true\n }\n};\n\nprototypeAccessors$6.top.get = function () {\n return this.nodes[this.open];\n}; // : (dom.Node)\n// Add a DOM node to the content. Text is inserted as text node,\n// otherwise, the node is passed to `addElement` or, if it has a\n// `style` attribute, `addElementWithStyles`.\n\n\nParseContext.prototype.addDOM = function addDOM(dom) {\n if (dom.nodeType == 3) {\n this.addTextNode(dom);\n } else if (dom.nodeType == 1) {\n var style = dom.getAttribute(\"style\");\n var marks = style ? this.readStyles(parseStyles(style)) : null,\n top = this.top;\n\n if (marks != null) {\n for (var i = 0; i < marks.length; i++) {\n this.addPendingMark(marks[i]);\n }\n }\n\n this.addElement(dom);\n\n if (marks != null) {\n for (var i$1 = 0; i$1 < marks.length; i$1++) {\n this.removePendingMark(marks[i$1], top);\n }\n }\n }\n};\n\nParseContext.prototype.addTextNode = function addTextNode(dom) {\n var value = dom.nodeValue;\n var top = this.top;\n\n if ((top.type ? top.type.inlineContent : top.content.length && top.content[0].isInline) || /[^ \\t\\r\\n\\u000c]/.test(value)) {\n if (!(top.options & OPT_PRESERVE_WS)) {\n value = value.replace(/[ \\t\\r\\n\\u000c]+/g, \" \"); // If this starts with whitespace, and there is no node before it, or\n // a hard break, or a text node that ends with whitespace, strip the\n // leading space.\n\n if (/^[ \\t\\r\\n\\u000c]/.test(value) && this.open == this.nodes.length - 1) {\n var nodeBefore = top.content[top.content.length - 1];\n var domNodeBefore = dom.previousSibling;\n\n if (!nodeBefore || domNodeBefore && domNodeBefore.nodeName == 'BR' || nodeBefore.isText && /[ \\t\\r\\n\\u000c]$/.test(nodeBefore.text)) {\n value = value.slice(1);\n }\n }\n } else if (!(top.options & OPT_PRESERVE_WS_FULL)) {\n value = value.replace(/\\r?\\n|\\r/g, \" \");\n }\n\n if (value) {\n this.insertNode(this.parser.schema.text(value));\n }\n\n this.findInText(dom);\n } else {\n this.findInside(dom);\n }\n}; // : (dom.Element, ?ParseRule)\n// Try to find a handler for the given tag and use that to parse. If\n// none is found, the element's content nodes are added directly.\n\n\nParseContext.prototype.addElement = function addElement(dom, matchAfter) {\n var name = dom.nodeName.toLowerCase(),\n ruleID;\n\n if (listTags.hasOwnProperty(name) && this.parser.normalizeLists) {\n normalizeList(dom);\n }\n\n var rule = this.options.ruleFromNode && this.options.ruleFromNode(dom) || (ruleID = this.parser.matchTag(dom, this, matchAfter));\n\n if (rule ? rule.ignore : ignoreTags.hasOwnProperty(name)) {\n this.findInside(dom);\n } else if (!rule || rule.skip || rule.closeParent) {\n if (rule && rule.closeParent) {\n this.open = Math.max(0, this.open - 1);\n } else if (rule && rule.skip.nodeType) {\n dom = rule.skip;\n }\n\n var sync,\n top = this.top,\n oldNeedsBlock = this.needsBlock;\n\n if (blockTags.hasOwnProperty(name)) {\n sync = true;\n\n if (!top.type) {\n this.needsBlock = true;\n }\n } else if (!dom.firstChild) {\n this.leafFallback(dom);\n return;\n }\n\n this.addAll(dom);\n\n if (sync) {\n this.sync(top);\n }\n\n this.needsBlock = oldNeedsBlock;\n } else {\n this.addElementByRule(dom, rule, rule.consuming === false ? ruleID : null);\n }\n}; // Called for leaf DOM nodes that would otherwise be ignored\n\n\nParseContext.prototype.leafFallback = function leafFallback(dom) {\n if (dom.nodeName == \"BR\" && this.top.type && this.top.type.inlineContent) {\n this.addTextNode(dom.ownerDocument.createTextNode(\"\\n\"));\n }\n}; // Run any style parser associated with the node's styles. Either\n// return an array of marks, or null to indicate some of the styles\n// had a rule with `ignore` set.\n\n\nParseContext.prototype.readStyles = function readStyles(styles) {\n var marks = Mark.none;\n\n style: for (var i = 0; i < styles.length; i += 2) {\n for (var after = null;;) {\n var rule = this.parser.matchStyle(styles[i], styles[i + 1], this, after);\n\n if (!rule) {\n continue style;\n }\n\n if (rule.ignore) {\n return null;\n }\n\n marks = this.parser.schema.marks[rule.mark].create(rule.attrs).addToSet(marks);\n\n if (rule.consuming === false) {\n after = rule;\n } else {\n break;\n }\n }\n }\n\n return marks;\n}; // : (dom.Element, ParseRule) → bool\n// Look up a handler for the given node. If none are found, return\n// false. Otherwise, apply it, use its return value to drive the way\n// the node's content is wrapped, and return true.\n\n\nParseContext.prototype.addElementByRule = function addElementByRule(dom, rule, continueAfter) {\n var this$1 = this;\n var sync, nodeType, markType, mark;\n\n if (rule.node) {\n nodeType = this.parser.schema.nodes[rule.node];\n\n if (!nodeType.isLeaf) {\n sync = this.enter(nodeType, rule.attrs, rule.preserveWhitespace);\n } else if (!this.insertNode(nodeType.create(rule.attrs))) {\n this.leafFallback(dom);\n }\n } else {\n markType = this.parser.schema.marks[rule.mark];\n mark = markType.create(rule.attrs);\n this.addPendingMark(mark);\n }\n\n var startIn = this.top;\n\n if (nodeType && nodeType.isLeaf) {\n this.findInside(dom);\n } else if (continueAfter) {\n this.addElement(dom, continueAfter);\n } else if (rule.getContent) {\n this.findInside(dom);\n rule.getContent(dom, this.parser.schema).forEach(function (node) {\n return this$1.insertNode(node);\n });\n } else {\n var contentDOM = rule.contentElement;\n\n if (typeof contentDOM == \"string\") {\n contentDOM = dom.querySelector(contentDOM);\n } else if (typeof contentDOM == \"function\") {\n contentDOM = contentDOM(dom);\n }\n\n if (!contentDOM) {\n contentDOM = dom;\n }\n\n this.findAround(dom, contentDOM, true);\n this.addAll(contentDOM, sync);\n }\n\n if (sync) {\n this.sync(startIn);\n this.open--;\n }\n\n if (mark) {\n this.removePendingMark(mark, startIn);\n }\n}; // : (dom.Node, ?NodeBuilder, ?number, ?number)\n// Add all child nodes between `startIndex` and `endIndex` (or the\n// whole node, if not given). If `sync` is passed, use it to\n// synchronize after every block element.\n\n\nParseContext.prototype.addAll = function addAll(parent, sync, startIndex, endIndex) {\n var index = startIndex || 0;\n\n for (var dom = startIndex ? parent.childNodes[startIndex] : parent.firstChild, end = endIndex == null ? null : parent.childNodes[endIndex]; dom != end; dom = dom.nextSibling, ++index) {\n this.findAtPoint(parent, index);\n this.addDOM(dom);\n\n if (sync && blockTags.hasOwnProperty(dom.nodeName.toLowerCase())) {\n this.sync(sync);\n }\n }\n\n this.findAtPoint(parent, index);\n}; // Try to find a way to fit the given node type into the current\n// context. May add intermediate wrappers and/or leave non-solid\n// nodes that we're in.\n\n\nParseContext.prototype.findPlace = function findPlace(node) {\n var route, sync;\n\n for (var depth = this.open; depth >= 0; depth--) {\n var cx = this.nodes[depth];\n var found = cx.findWrapping(node);\n\n if (found && (!route || route.length > found.length)) {\n route = found;\n sync = cx;\n\n if (!found.length) {\n break;\n }\n }\n\n if (cx.solid) {\n break;\n }\n }\n\n if (!route) {\n return false;\n }\n\n this.sync(sync);\n\n for (var i = 0; i < route.length; i++) {\n this.enterInner(route[i], null, false);\n }\n\n return true;\n}; // : (Node) → ?Node\n// Try to insert the given node, adjusting the context when needed.\n\n\nParseContext.prototype.insertNode = function insertNode(node) {\n if (node.isInline && this.needsBlock && !this.top.type) {\n var block = this.textblockFromContext();\n\n if (block) {\n this.enterInner(block);\n }\n }\n\n if (this.findPlace(node)) {\n this.closeExtra();\n var top = this.top;\n top.applyPending(node.type);\n\n if (top.match) {\n top.match = top.match.matchType(node.type);\n }\n\n var marks = top.activeMarks;\n\n for (var i = 0; i < node.marks.length; i++) {\n if (!top.type || top.type.allowsMarkType(node.marks[i].type)) {\n marks = node.marks[i].addToSet(marks);\n }\n }\n\n top.content.push(node.mark(marks));\n return true;\n }\n\n return false;\n}; // : (NodeType, ?Object) → bool\n// Try to start a node of the given type, adjusting the context when\n// necessary.\n\n\nParseContext.prototype.enter = function enter(type, attrs, preserveWS) {\n var ok = this.findPlace(type.create(attrs));\n\n if (ok) {\n this.enterInner(type, attrs, true, preserveWS);\n }\n\n return ok;\n}; // Open a node of the given type\n\n\nParseContext.prototype.enterInner = function enterInner(type, attrs, solid, preserveWS) {\n this.closeExtra();\n var top = this.top;\n top.applyPending(type);\n top.match = top.match && top.match.matchType(type, attrs);\n var options = preserveWS == null ? top.options & ~OPT_OPEN_LEFT : wsOptionsFor(preserveWS);\n\n if (top.options & OPT_OPEN_LEFT && top.content.length == 0) {\n options |= OPT_OPEN_LEFT;\n }\n\n this.nodes.push(new NodeContext(type, attrs, top.activeMarks, top.pendingMarks, solid, null, options));\n this.open++;\n}; // Make sure all nodes above this.open are finished and added to\n// their parents\n\n\nParseContext.prototype.closeExtra = function closeExtra(openEnd) {\n var i = this.nodes.length - 1;\n\n if (i > this.open) {\n for (; i > this.open; i--) {\n this.nodes[i - 1].content.push(this.nodes[i].finish(openEnd));\n }\n\n this.nodes.length = this.open + 1;\n }\n};\n\nParseContext.prototype.finish = function finish() {\n this.open = 0;\n this.closeExtra(this.isOpen);\n return this.nodes[0].finish(this.isOpen || this.options.topOpen);\n};\n\nParseContext.prototype.sync = function sync(to) {\n for (var i = this.open; i >= 0; i--) {\n if (this.nodes[i] == to) {\n this.open = i;\n return;\n }\n }\n};\n\nprototypeAccessors$6.currentPos.get = function () {\n this.closeExtra();\n var pos = 0;\n\n for (var i = this.open; i >= 0; i--) {\n var content = this.nodes[i].content;\n\n for (var j = content.length - 1; j >= 0; j--) {\n pos += content[j].nodeSize;\n }\n\n if (i) {\n pos++;\n }\n }\n\n return pos;\n};\n\nParseContext.prototype.findAtPoint = function findAtPoint(parent, offset) {\n if (this.find) {\n for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].node == parent && this.find[i].offset == offset) {\n this.find[i].pos = this.currentPos;\n }\n }\n }\n};\n\nParseContext.prototype.findInside = function findInside(parent) {\n if (this.find) {\n for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node)) {\n this.find[i].pos = this.currentPos;\n }\n }\n }\n};\n\nParseContext.prototype.findAround = function findAround(parent, content, before) {\n if (parent != content && this.find) {\n for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node)) {\n var pos = content.compareDocumentPosition(this.find[i].node);\n\n if (pos & (before ? 2 : 4)) {\n this.find[i].pos = this.currentPos;\n }\n }\n }\n }\n};\n\nParseContext.prototype.findInText = function findInText(textNode) {\n if (this.find) {\n for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].node == textNode) {\n this.find[i].pos = this.currentPos - (textNode.nodeValue.length - this.find[i].offset);\n }\n }\n }\n}; // : (string) → bool\n// Determines whether the given [context\n// string](#ParseRule.context) matches this context.\n\n\nParseContext.prototype.matchesContext = function matchesContext(context) {\n var this$1 = this;\n\n if (context.indexOf(\"|\") > -1) {\n return context.split(/\\s*\\|\\s*/).some(this.matchesContext, this);\n }\n\n var parts = context.split(\"/\");\n var option = this.options.context;\n var useRoot = !this.isOpen && (!option || option.parent.type == this.nodes[0].type);\n var minDepth = -(option ? option.depth + 1 : 0) + (useRoot ? 0 : 1);\n\n var match = function match(i, depth) {\n for (; i >= 0; i--) {\n var part = parts[i];\n\n if (part == \"\") {\n if (i == parts.length - 1 || i == 0) {\n continue;\n }\n\n for (; depth >= minDepth; depth--) {\n if (match(i - 1, depth)) {\n return true;\n }\n }\n\n return false;\n } else {\n var next = depth > 0 || depth == 0 && useRoot ? this$1.nodes[depth].type : option && depth >= minDepth ? option.node(depth - minDepth).type : null;\n\n if (!next || next.name != part && next.groups.indexOf(part) == -1) {\n return false;\n }\n\n depth--;\n }\n }\n\n return true;\n };\n\n return match(parts.length - 1, this.open);\n};\n\nParseContext.prototype.textblockFromContext = function textblockFromContext() {\n var $context = this.options.context;\n\n if ($context) {\n for (var d = $context.depth; d >= 0; d--) {\n var deflt = $context.node(d).contentMatchAt($context.indexAfter(d)).defaultType;\n\n if (deflt && deflt.isTextblock && deflt.defaultAttrs) {\n return deflt;\n }\n }\n }\n\n for (var name in this.parser.schema.nodes) {\n var type = this.parser.schema.nodes[name];\n\n if (type.isTextblock && type.defaultAttrs) {\n return type;\n }\n }\n};\n\nParseContext.prototype.addPendingMark = function addPendingMark(mark) {\n var found = findSameMarkInSet(mark, this.top.pendingMarks);\n\n if (found) {\n this.top.stashMarks.push(found);\n }\n\n this.top.pendingMarks = mark.addToSet(this.top.pendingMarks);\n};\n\nParseContext.prototype.removePendingMark = function removePendingMark(mark, upto) {\n for (var depth = this.open; depth >= 0; depth--) {\n var level = this.nodes[depth];\n var found = level.pendingMarks.lastIndexOf(mark);\n\n if (found > -1) {\n level.pendingMarks = mark.removeFromSet(level.pendingMarks);\n } else {\n level.activeMarks = mark.removeFromSet(level.activeMarks);\n var stashMark = level.popFromStashMark(mark);\n\n if (stashMark && level.type && level.type.allowsMarkType(stashMark.type)) {\n level.activeMarks = stashMark.addToSet(level.activeMarks);\n }\n }\n\n if (level == upto) {\n break;\n }\n }\n};\n\nObject.defineProperties(ParseContext.prototype, prototypeAccessors$6); // Kludge to work around directly nested list nodes produced by some\n// tools and allowed by browsers to mean that the nested list is\n// actually part of the list item above it.\n\nfunction normalizeList(dom) {\n for (var child = dom.firstChild, prevItem = null; child; child = child.nextSibling) {\n var name = child.nodeType == 1 ? child.nodeName.toLowerCase() : null;\n\n if (name && listTags.hasOwnProperty(name) && prevItem) {\n prevItem.appendChild(child);\n child = prevItem;\n } else if (name == \"li\") {\n prevItem = child;\n } else if (name) {\n prevItem = null;\n }\n }\n} // Apply a CSS selector.\n\n\nfunction matches(dom, selector) {\n return (dom.matches || dom.msMatchesSelector || dom.webkitMatchesSelector || dom.mozMatchesSelector).call(dom, selector);\n} // : (string) → [string]\n// Tokenize a style attribute into property/value pairs.\n\n\nfunction parseStyles(style) {\n var re = /\\s*([\\w-]+)\\s*:\\s*([^;]+)/g,\n m,\n result = [];\n\n while (m = re.exec(style)) {\n result.push(m[1], m[2].trim());\n }\n\n return result;\n}\n\nfunction copy(obj) {\n var copy = {};\n\n for (var prop in obj) {\n copy[prop] = obj[prop];\n }\n\n return copy;\n} // Used when finding a mark at the top level of a fragment parse.\n// Checks whether it would be reasonable to apply a given mark type to\n// a given node, by looking at the way the mark occurs in the schema.\n\n\nfunction markMayApply(markType, nodeType) {\n var nodes = nodeType.schema.nodes;\n\n var loop = function loop(name) {\n var parent = nodes[name];\n\n if (!parent.allowsMarkType(markType)) {\n return;\n }\n\n var seen = [],\n scan = function scan(match) {\n seen.push(match);\n\n for (var i = 0; i < match.edgeCount; i++) {\n var ref = match.edge(i);\n var type = ref.type;\n var next = ref.next;\n\n if (type == nodeType) {\n return true;\n }\n\n if (seen.indexOf(next) < 0 && scan(next)) {\n return true;\n }\n }\n };\n\n if (scan(parent.contentMatch)) {\n return {\n v: true\n };\n }\n };\n\n for (var name in nodes) {\n var returned = loop(name);\n if (returned) return returned.v;\n }\n}\n\nfunction findSameMarkInSet(mark, set) {\n for (var i = 0; i < set.length; i++) {\n if (mark.eq(set[i])) {\n return set[i];\n }\n }\n} // DOMOutputSpec:: interface\n// A description of a DOM structure. Can be either a string, which is\n// interpreted as a text node, a DOM node, which is interpreted as\n// itself, a `{dom: Node, contentDOM: ?Node}` object, or an array.\n//\n// An array describes a DOM element. The first value in the array\n// should be a string—the name of the DOM element, optionally prefixed\n// by a namespace URL and a space. If the second element is plain\n// object, it is interpreted as a set of attributes for the element.\n// Any elements after that (including the 2nd if it's not an attribute\n// object) are interpreted as children of the DOM elements, and must\n// either be valid `DOMOutputSpec` values, or the number zero.\n//\n// The number zero (pronounced “hole”) is used to indicate the place\n// where a node's child nodes should be inserted. If it occurs in an\n// output spec, it should be the only child element in its parent\n// node.\n// ::- A DOM serializer knows how to convert ProseMirror nodes and\n// marks of various types to DOM nodes.\n\n\nvar DOMSerializer = function DOMSerializer(nodes, marks) {\n // :: Object<(node: Node) → DOMOutputSpec>\n // The node serialization functions.\n this.nodes = nodes || {}; // :: Object\n // The mark serialization functions.\n\n this.marks = marks || {};\n}; // :: (Fragment, ?Object) → dom.DocumentFragment\n// Serialize the content of this fragment to a DOM fragment. When\n// not in the browser, the `document` option, containing a DOM\n// document, should be passed so that the serializer can create\n// nodes.\n\n\nDOMSerializer.prototype.serializeFragment = function serializeFragment(fragment, options, target) {\n var this$1 = this;\n if (options === void 0) options = {};\n\n if (!target) {\n target = doc(options).createDocumentFragment();\n }\n\n var top = target,\n active = null;\n fragment.forEach(function (node) {\n if (active || node.marks.length) {\n if (!active) {\n active = [];\n }\n\n var keep = 0,\n rendered = 0;\n\n while (keep < active.length && rendered < node.marks.length) {\n var next = node.marks[rendered];\n\n if (!this$1.marks[next.type.name]) {\n rendered++;\n continue;\n }\n\n if (!next.eq(active[keep]) || next.type.spec.spanning === false) {\n break;\n }\n\n keep += 2;\n rendered++;\n }\n\n while (keep < active.length) {\n top = active.pop();\n active.pop();\n }\n\n while (rendered < node.marks.length) {\n var add = node.marks[rendered++];\n var markDOM = this$1.serializeMark(add, node.isInline, options);\n\n if (markDOM) {\n active.push(add, top);\n top.appendChild(markDOM.dom);\n top = markDOM.contentDOM || markDOM.dom;\n }\n }\n }\n\n top.appendChild(this$1.serializeNode(node, options));\n });\n return target;\n}; // :: (Node, ?Object) → dom.Node\n// Serialize this node to a DOM node. This can be useful when you\n// need to serialize a part of a document, as opposed to the whole\n// document. To serialize a whole document, use\n// [`serializeFragment`](#model.DOMSerializer.serializeFragment) on\n// its [content](#model.Node.content).\n\n\nDOMSerializer.prototype.serializeNode = function serializeNode(node, options) {\n if (options === void 0) options = {};\n var ref = DOMSerializer.renderSpec(doc(options), this.nodes[node.type.name](node));\n var dom = ref.dom;\n var contentDOM = ref.contentDOM;\n\n if (contentDOM) {\n if (node.isLeaf) {\n throw new RangeError(\"Content hole not allowed in a leaf node spec\");\n }\n\n if (options.onContent) {\n options.onContent(node, contentDOM, options);\n } else {\n this.serializeFragment(node.content, options, contentDOM);\n }\n }\n\n return dom;\n};\n\nDOMSerializer.prototype.serializeNodeAndMarks = function serializeNodeAndMarks(node, options) {\n if (options === void 0) options = {};\n var dom = this.serializeNode(node, options);\n\n for (var i = node.marks.length - 1; i >= 0; i--) {\n var wrap = this.serializeMark(node.marks[i], node.isInline, options);\n\n if (wrap) {\n (wrap.contentDOM || wrap.dom).appendChild(dom);\n dom = wrap.dom;\n }\n }\n\n return dom;\n};\n\nDOMSerializer.prototype.serializeMark = function serializeMark(mark, inline, options) {\n if (options === void 0) options = {};\n var toDOM = this.marks[mark.type.name];\n return toDOM && DOMSerializer.renderSpec(doc(options), toDOM(mark, inline));\n}; // :: (dom.Document, DOMOutputSpec) → {dom: dom.Node, contentDOM: ?dom.Node}\n// Render an [output spec](#model.DOMOutputSpec) to a DOM node. If\n// the spec has a hole (zero) in it, `contentDOM` will point at the\n// node with the hole.\n\n\nDOMSerializer.renderSpec = function renderSpec(doc, structure, xmlNS) {\n if (xmlNS === void 0) xmlNS = null;\n\n if (typeof structure == \"string\") {\n return {\n dom: doc.createTextNode(structure)\n };\n }\n\n if (structure.nodeType != null) {\n return {\n dom: structure\n };\n }\n\n if (structure.dom && structure.dom.nodeType != null) {\n return structure;\n }\n\n var tagName = structure[0],\n space = tagName.indexOf(\" \");\n\n if (space > 0) {\n xmlNS = tagName.slice(0, space);\n tagName = tagName.slice(space + 1);\n }\n\n var contentDOM = null,\n dom = xmlNS ? doc.createElementNS(xmlNS, tagName) : doc.createElement(tagName);\n var attrs = structure[1],\n start = 1;\n\n if (attrs && _typeof(attrs) == \"object\" && attrs.nodeType == null && !Array.isArray(attrs)) {\n start = 2;\n\n for (var name in attrs) {\n if (attrs[name] != null) {\n var space$1 = name.indexOf(\" \");\n\n if (space$1 > 0) {\n dom.setAttributeNS(name.slice(0, space$1), name.slice(space$1 + 1), attrs[name]);\n } else {\n dom.setAttribute(name, attrs[name]);\n }\n }\n }\n }\n\n for (var i = start; i < structure.length; i++) {\n var child = structure[i];\n\n if (child === 0) {\n if (i < structure.length - 1 || i > start) {\n throw new RangeError(\"Content hole must be the only child of its parent node\");\n }\n\n return {\n dom: dom,\n contentDOM: dom\n };\n } else {\n var ref = DOMSerializer.renderSpec(doc, child, xmlNS);\n var inner = ref.dom;\n var innerContent = ref.contentDOM;\n dom.appendChild(inner);\n\n if (innerContent) {\n if (contentDOM) {\n throw new RangeError(\"Multiple content holes\");\n }\n\n contentDOM = innerContent;\n }\n }\n }\n\n return {\n dom: dom,\n contentDOM: contentDOM\n };\n}; // :: (Schema) → DOMSerializer\n// Build a serializer using the [`toDOM`](#model.NodeSpec.toDOM)\n// properties in a schema's node and mark specs.\n\n\nDOMSerializer.fromSchema = function fromSchema(schema) {\n return schema.cached.domSerializer || (schema.cached.domSerializer = new DOMSerializer(this.nodesFromSchema(schema), this.marksFromSchema(schema)));\n}; // : (Schema) → Object<(node: Node) → DOMOutputSpec>\n// Gather the serializers in a schema's node specs into an object.\n// This can be useful as a base to build a custom serializer from.\n\n\nDOMSerializer.nodesFromSchema = function nodesFromSchema(schema) {\n var result = gatherToDOM(schema.nodes);\n\n if (!result.text) {\n result.text = function (node) {\n return node.text;\n };\n }\n\n return result;\n}; // : (Schema) → Object<(mark: Mark) → DOMOutputSpec>\n// Gather the serializers in a schema's mark specs into an object.\n\n\nDOMSerializer.marksFromSchema = function marksFromSchema(schema) {\n return gatherToDOM(schema.marks);\n};\n\nfunction gatherToDOM(obj) {\n var result = {};\n\n for (var name in obj) {\n var toDOM = obj[name].spec.toDOM;\n\n if (toDOM) {\n result[name] = toDOM;\n }\n }\n\n return result;\n}\n\nfunction doc(options) {\n // declare global: window\n return options.document || window.document;\n}\n\nexport { ContentMatch, DOMParser, DOMSerializer, Fragment, Mark, MarkType, Node, NodeRange, NodeType, ReplaceError, ResolvedPos, Schema, Slice };","/* eslint-disable @getify/proper-arrows/return */\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { useTransition, animated } from \"react-spring\";\nimport { Link } from \"react-router-dom\";\nimport { guid } from \"@ats/src/lib/utils/helpers\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { useTheme } from \"@emotion/react\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\n\ntype ToastKind = \"success\" | \"danger\" | \"error\" | \"warning\" | \"info\";\n\ninterface Toast {\n kind: ToastKind;\n title: string;\n delay?: number;\n linkTo?: string;\n externalLink?: {\n href: string;\n text: string;\n };\n}\n\ntype AddToast = (toast: Toast) => void;\n\nconst ToastContext = React.createContext(undefined);\n\nfunction ToastProvider({ children }) {\n const [toasts, setToasts] = useState([]);\n const [refMap] = useState(() => new WeakMap());\n const [cancelMap] = useState(() => new WeakMap());\n const ref = React.useRef(null);\n const theme: any = useTheme();\n\n const MAX_TOAST_COUNT = 2;\n\n useEffect(() => {\n // Prevent toast stacking in the UI by limiting to the 2 newest toasts\n const limitToastCount = (toasts) => {\n if (toasts.length > MAX_TOAST_COUNT) {\n setToasts((prevToasts) => prevToasts.slice(-MAX_TOAST_COUNT));\n }\n };\n\n if (toasts.length > 0) {\n limitToastCount(toasts)\n\n const currentToast = toasts[0];\n const timer = setTimeout(\n () => setToasts((toasts) => toasts.slice(1)),\n currentToast.delay || 2000,\n );\n return () => clearTimeout(timer);\n }\n }, [toasts]);\n\n const addToast = useCallback(\n function (toast) {\n setToasts((toasts) => [...toasts, { ...toast, id: guid() }]);\n },\n [setToasts],\n );\n\n const removeToast = useCallback(\n function (toast) {\n // window.logger(\"%c[ToastContext] removeToast\", \"color: #1976D2\", { toast });\n setToasts(toasts.filter((t) => t.id !== toast.id));\n },\n [setToasts, toasts],\n );\n\n const transitions = useTransition(toasts, {\n from: {\n opacity: 0,\n height: 0,\n },\n enter: (item) => async (next) => {\n // window.logger(\"%c[ToastContect] enter\", \"color: #FF7602\", {\n // item,\n // next,\n // offsetHeight: refMap.get(item).offsetHeight,\n // });\n return await next({\n opacity: 1,\n height: refMap.get(item).offsetHeight,\n });\n },\n // leave fires when the element is leaving\n leave: {\n opacity: 0,\n },\n config: {\n tension: 320,\n friction: 36,\n },\n onRest: (item) => {\n // return item;\n // setToasts((state) => state.filter((i) => i.id !== item.id))\n },\n });\n\n // React.useEffect(() => {\n // children((msg) => setToasts((state) => [...state, { key: guid(), msg }]));\n // }, []);\n\n const iconNode = (toast) => {\n let icon;\n\n switch (toast.kind) {\n case \"success\":\n icon = ;\n break;\n case \"danger\":\n case \"error\":\n icon = ;\n break;\n case \"warning\":\n icon = ;\n break;\n case \"info\":\n icon = ;\n break;\n default:\n icon = null;\n }\n\n return icon;\n };\n\n return (\n \n {children}\n \n {transitions((props, item) => {\n // window.logger(\"%c[ToastContext] Toast\", \"color: #1976D2\", { item, props, key, index });\n return (\n \n removeToast(item)}\n ref={(ref) => ref && refMap.set(item, ref)} // allows us to get the item to get the ref\n >\n {iconNode(item)}\n

{item.title || item || \"\"}

\n {/* {item.id} */}\n {item.linkTo && View}\n {item.externalLink && (\n \n {item.externalLink.text || \"View\"}\n \n )}\n \n
\n );\n })}\n
\n
\n );\n}\n\nfunction useToastContext() {\n const context = React.useContext(ToastContext);\n if (context === undefined) {\n throw new Error(\"useToastContext must be used within a ToastProvider\");\n }\n return context;\n}\n\nexport { useToastContext, ToastProvider };\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.GrowlList = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ModalsAndGrowls_GrowlList;\n position: fixed;\n bottom: 0;\n right: 0;\n width: 100%;\n /* z-index: 100; */\n z-index: 100000000000;\n\n ${t.mq[\"lg\"]} {\n width: 30%;\n }\n `;\n});\n\nStyled.Container = styled(animated.div)((props: any) => {\n const t: any = props.theme;\n return css`\n label: GrowlNotificationContainer;\n &:last-of-type {\n ${t.mb(8)}\n }\n `;\n});\n\nStyled.Message = styled.div((props: any) => {\n // Styled.Container = styled(animated.div)((props: any) => {\n const t: any = props.theme;\n const modeStyles = t.dark\n ? css`\n background-color: ${t.color.gray[700]};\n border: 1px solid ${t.color.gray[600]};\n `\n : css`\n background-color: ${t.color.white};\n border: 1px solid ${t.color.gray[400]};\n `;\n\n return css`\n label: GrowlNotificationMessage;\n ${[t.p(5), t.mx(8), t.my(2), t.text.normal]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: transparent;\n display: flex;\n align-items: center;\n position: relative;\n svg {\n ${t.mr(2)}\n flex-shrink: 0;\n }\n p {\n flex: 1;\n }\n a {\n ${[t.ml(2), t.text.medium]}\n color: ${t.dark ? t.color.white : t.color.black};\n flex-shrink: 0;\n &:hover {\n text-decoration: underline;\n }\n }\n &::before {\n ${t.rounded.md}\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: -1;\n ${modeStyles}\n }\n `;\n});\n","const colors = {\n white: '#FFFFFF',\n gray: {\n 50: '#FAFAFA',\n 100: '#F5F5F5',\n 200: '#E5E5E5',\n 300: '#D4D4D4',\n 400: '#A3A3A3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n black: '#000000',\n}\n\nexport default colors;","/* eslint-disable @getify/proper-arrows/return */\n\nimport React, { useCallback, useEffect, useState } from \"react\";\n// import { useTransition, animated } from \"react-spring\";\n\n// import styled from \"@emotion/styled\";\n// import { css } from \"@emotion/react\";\n// import { useTheme } from \"@emotion/react\";\n\ntype Modal = {\n openModal: (modal: any) => void;\n removeModal: () => void;\n dismissModalWithAnimation: any; // (animationCompleteCallback: () => void) => void;\n hasModal: () => boolean;\n animationCompleteCallback: () => void;\n setAnimationCompleteCallback: (animationCompleteCallback: any) => void;\n isVisible: boolean;\n modal: object;\n};\n\nconst ModalContext = React.createContext(undefined);\n\nfunction ModalProvider({ children }) {\n const [modal, setModal] = useState(undefined);\n const [animationCompleteCallback, setAnimationCompleteCallback] = useState(undefined);\n const [isVisible, setIsVisible] = React.useState(true);\n\n const openModal = useCallback(\n function (modal) {\n // window.logger(\"%c[ModalContext] openModal\", \"color: #FF0602\", { modal });\n setModal(modal);\n setIsVisible(true);\n },\n [setModal, setIsVisible],\n );\n\n const removeModal = () => {\n // window.logger(\"%c[ModalContext] removeModal\", \"background-color: #80b2e4\", {\n // modal,\n // animationCompleteCallback,\n // });\n setIsVisible(false);\n setModal(undefined);\n setAnimationCompleteCallback(undefined);\n };\n\n const dismissModalWithAnimation = (animationCompleteCallback) => {\n if (modal) {\n // window.logger(\"%c[ModalContext] dismissModalWithAnimation HAS MODAL\", \"color: #16883c\", {\n // modal,\n // animationCompleteCallback,\n // });\n setIsVisible(false);\n setAnimationCompleteCallback(animationCompleteCallback);\n } else {\n // window.logger(\"%c[ModalContext] dismissModalWithAnimation NO MODAL\", \"color: #be2a05\", {\n // modal,\n // animationCompleteCallback,\n // });\n animationCompleteCallback();\n removeModal();\n }\n };\n\n const hasModal = () => {\n return modal != undefined;\n };\n\n return (\n \n {children}\n {modal ? modal : null}\n \n );\n}\n\nfunction useModalContext() {\n const context = React.useContext(ModalContext);\n if (context === undefined) {\n throw new Error(\"useModalContext must be used within a ModalProvider\");\n }\n\n const {\n modal,\n openModal,\n removeModal,\n hasModal,\n isVisible,\n dismissModalWithAnimation,\n animationCompleteCallback,\n // setAnimationCompleteCallback,\n } = context;\n\n return {\n modal,\n openModal,\n removeModal,\n hasModal,\n isVisible,\n dismissModalWithAnimation,\n animationCompleteCallback,\n // setAnimationCompleteCallback,\n };\n}\n\nexport { useModalContext, ModalProvider };\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { Slice, Fragment, Mark, Node } from 'prosemirror-model';\nimport { ReplaceStep, ReplaceAroundStep, Transform } from 'prosemirror-transform';\nvar classesById = Object.create(null); // ::- Superclass for editor selections. Every selection type should\n// extend this. Should not be instantiated directly.\n\nvar Selection = function Selection($anchor, $head, ranges) {\n // :: [SelectionRange]\n // The ranges covered by the selection.\n this.ranges = ranges || [new SelectionRange($anchor.min($head), $anchor.max($head))]; // :: ResolvedPos\n // The resolved anchor of the selection (the side that stays in\n // place when the selection is modified).\n\n this.$anchor = $anchor; // :: ResolvedPos\n // The resolved head of the selection (the side that moves when\n // the selection is modified).\n\n this.$head = $head;\n};\n\nvar prototypeAccessors = {\n anchor: {\n configurable: true\n },\n head: {\n configurable: true\n },\n from: {\n configurable: true\n },\n to: {\n configurable: true\n },\n $from: {\n configurable: true\n },\n $to: {\n configurable: true\n },\n empty: {\n configurable: true\n }\n}; // :: number\n// The selection's anchor, as an unresolved position.\n\nprototypeAccessors.anchor.get = function () {\n return this.$anchor.pos;\n}; // :: number\n// The selection's head.\n\n\nprototypeAccessors.head.get = function () {\n return this.$head.pos;\n}; // :: number\n// The lower bound of the selection's main range.\n\n\nprototypeAccessors.from.get = function () {\n return this.$from.pos;\n}; // :: number\n// The upper bound of the selection's main range.\n\n\nprototypeAccessors.to.get = function () {\n return this.$to.pos;\n}; // :: ResolvedPos\n// The resolved lowerbound of the selection's main range.\n\n\nprototypeAccessors.$from.get = function () {\n return this.ranges[0].$from;\n}; // :: ResolvedPos\n// The resolved upper bound of the selection's main range.\n\n\nprototypeAccessors.$to.get = function () {\n return this.ranges[0].$to;\n}; // :: bool\n// Indicates whether the selection contains any content.\n\n\nprototypeAccessors.empty.get = function () {\n var ranges = this.ranges;\n\n for (var i = 0; i < ranges.length; i++) {\n if (ranges[i].$from.pos != ranges[i].$to.pos) {\n return false;\n }\n }\n\n return true;\n}; // eq:: (Selection) → bool\n// Test whether the selection is the same as another selection.\n// map:: (doc: Node, mapping: Mappable) → Selection\n// Map this selection through a [mappable](#transform.Mappable) thing. `doc`\n// should be the new document to which we are mapping.\n// :: () → Slice\n// Get the content of this selection as a slice.\n\n\nSelection.prototype.content = function content() {\n return this.$from.node(0).slice(this.from, this.to, true);\n}; // :: (Transaction, ?Slice)\n// Replace the selection with a slice or, if no slice is given,\n// delete the selection. Will append to the given transaction.\n\n\nSelection.prototype.replace = function replace(tr, content) {\n if (content === void 0) content = Slice.empty; // Put the new selection at the position after the inserted\n // content. When that ended in an inline node, search backwards,\n // to get the position after that node. If not, search forward.\n\n var lastNode = content.content.lastChild,\n lastParent = null;\n\n for (var i = 0; i < content.openEnd; i++) {\n lastParent = lastNode;\n lastNode = lastNode.lastChild;\n }\n\n var mapFrom = tr.steps.length,\n ranges = this.ranges;\n\n for (var i$1 = 0; i$1 < ranges.length; i$1++) {\n var ref = ranges[i$1];\n var $from = ref.$from;\n var $to = ref.$to;\n var mapping = tr.mapping.slice(mapFrom);\n tr.replaceRange(mapping.map($from.pos), mapping.map($to.pos), i$1 ? Slice.empty : content);\n\n if (i$1 == 0) {\n selectionToInsertionEnd(tr, mapFrom, (lastNode ? lastNode.isInline : lastParent && lastParent.isTextblock) ? -1 : 1);\n }\n }\n}; // :: (Transaction, Node)\n// Replace the selection with the given node, appending the changes\n// to the given transaction.\n\n\nSelection.prototype.replaceWith = function replaceWith(tr, node) {\n var mapFrom = tr.steps.length,\n ranges = this.ranges;\n\n for (var i = 0; i < ranges.length; i++) {\n var ref = ranges[i];\n var $from = ref.$from;\n var $to = ref.$to;\n var mapping = tr.mapping.slice(mapFrom);\n var from = mapping.map($from.pos),\n to = mapping.map($to.pos);\n\n if (i) {\n tr.deleteRange(from, to);\n } else {\n tr.replaceRangeWith(from, to, node);\n selectionToInsertionEnd(tr, mapFrom, node.isInline ? -1 : 1);\n }\n }\n}; // toJSON:: () → Object\n// Convert the selection to a JSON representation. When implementing\n// this for a custom selection class, make sure to give the object a\n// `type` property whose value matches the ID under which you\n// [registered](#state.Selection^jsonID) your class.\n// :: (ResolvedPos, number, ?bool) → ?Selection\n// Find a valid cursor or leaf node selection starting at the given\n// position and searching back if `dir` is negative, and forward if\n// positive. When `textOnly` is true, only consider cursor\n// selections. Will return null when no valid selection position is\n// found.\n\n\nSelection.findFrom = function findFrom($pos, dir, textOnly) {\n var inner = $pos.parent.inlineContent ? new TextSelection($pos) : findSelectionIn($pos.node(0), $pos.parent, $pos.pos, $pos.index(), dir, textOnly);\n\n if (inner) {\n return inner;\n }\n\n for (var depth = $pos.depth - 1; depth >= 0; depth--) {\n var found = dir < 0 ? findSelectionIn($pos.node(0), $pos.node(depth), $pos.before(depth + 1), $pos.index(depth), dir, textOnly) : findSelectionIn($pos.node(0), $pos.node(depth), $pos.after(depth + 1), $pos.index(depth) + 1, dir, textOnly);\n\n if (found) {\n return found;\n }\n }\n}; // :: (ResolvedPos, ?number) → Selection\n// Find a valid cursor or leaf node selection near the given\n// position. Searches forward first by default, but if `bias` is\n// negative, it will search backwards first.\n\n\nSelection.near = function near($pos, bias) {\n if (bias === void 0) bias = 1;\n return this.findFrom($pos, bias) || this.findFrom($pos, -bias) || new AllSelection($pos.node(0));\n}; // :: (Node) → Selection\n// Find the cursor or leaf node selection closest to the start of\n// the given document. Will return an\n// [`AllSelection`](#state.AllSelection) if no valid position\n// exists.\n\n\nSelection.atStart = function atStart(doc) {\n return findSelectionIn(doc, doc, 0, 0, 1) || new AllSelection(doc);\n}; // :: (Node) → Selection\n// Find the cursor or leaf node selection closest to the end of the\n// given document.\n\n\nSelection.atEnd = function atEnd(doc) {\n return findSelectionIn(doc, doc, doc.content.size, doc.childCount, -1) || new AllSelection(doc);\n}; // :: (Node, Object) → Selection\n// Deserialize the JSON representation of a selection. Must be\n// implemented for custom classes (as a static class method).\n\n\nSelection.fromJSON = function fromJSON(doc, json) {\n if (!json || !json.type) {\n throw new RangeError(\"Invalid input for Selection.fromJSON\");\n }\n\n var cls = classesById[json.type];\n\n if (!cls) {\n throw new RangeError(\"No selection type \" + json.type + \" defined\");\n }\n\n return cls.fromJSON(doc, json);\n}; // :: (string, constructor)\n// To be able to deserialize selections from JSON, custom selection\n// classes must register themselves with an ID string, so that they\n// can be disambiguated. Try to pick something that's unlikely to\n// clash with classes from other modules.\n\n\nSelection.jsonID = function jsonID(id, selectionClass) {\n if (id in classesById) {\n throw new RangeError(\"Duplicate use of selection JSON ID \" + id);\n }\n\n classesById[id] = selectionClass;\n selectionClass.prototype.jsonID = id;\n return selectionClass;\n}; // :: () → SelectionBookmark\n// Get a [bookmark](#state.SelectionBookmark) for this selection,\n// which is a value that can be mapped without having access to a\n// current document, and later resolved to a real selection for a\n// given document again. (This is used mostly by the history to\n// track and restore old selections.) The default implementation of\n// this method just converts the selection to a text selection and\n// returns the bookmark for that.\n\n\nSelection.prototype.getBookmark = function getBookmark() {\n return TextSelection.between(this.$anchor, this.$head).getBookmark();\n};\n\nObject.defineProperties(Selection.prototype, prototypeAccessors); // :: bool\n// Controls whether, when a selection of this type is active in the\n// browser, the selected range should be visible to the user. Defaults\n// to `true`.\n\nSelection.prototype.visible = true; // SelectionBookmark:: interface\n// A lightweight, document-independent representation of a selection.\n// You can define a custom bookmark type for a custom selection class\n// to make the history handle it well.\n//\n// map:: (mapping: Mapping) → SelectionBookmark\n// Map the bookmark through a set of changes.\n//\n// resolve:: (doc: Node) → Selection\n// Resolve the bookmark to a real selection again. This may need to\n// do some error checking and may fall back to a default (usually\n// [`TextSelection.between`](#state.TextSelection^between)) if\n// mapping made the bookmark invalid.\n// ::- Represents a selected range in a document.\n\nvar SelectionRange = function SelectionRange($from, $to) {\n // :: ResolvedPos\n // The lower bound of the range.\n this.$from = $from; // :: ResolvedPos\n // The upper bound of the range.\n\n this.$to = $to;\n}; // ::- A text selection represents a classical editor selection, with\n// a head (the moving side) and anchor (immobile side), both of which\n// point into textblock nodes. It can be empty (a regular cursor\n// position).\n\n\nvar TextSelection = /*@__PURE__*/function (Selection) {\n function TextSelection($anchor, $head) {\n if ($head === void 0) $head = $anchor;\n Selection.call(this, $anchor, $head);\n }\n\n if (Selection) TextSelection.__proto__ = Selection;\n TextSelection.prototype = Object.create(Selection && Selection.prototype);\n TextSelection.prototype.constructor = TextSelection;\n var prototypeAccessors$1 = {\n $cursor: {\n configurable: true\n }\n }; // :: ?ResolvedPos\n // Returns a resolved position if this is a cursor selection (an\n // empty text selection), and null otherwise.\n\n prototypeAccessors$1.$cursor.get = function () {\n return this.$anchor.pos == this.$head.pos ? this.$head : null;\n };\n\n TextSelection.prototype.map = function map(doc, mapping) {\n var $head = doc.resolve(mapping.map(this.head));\n\n if (!$head.parent.inlineContent) {\n return Selection.near($head);\n }\n\n var $anchor = doc.resolve(mapping.map(this.anchor));\n return new TextSelection($anchor.parent.inlineContent ? $anchor : $head, $head);\n };\n\n TextSelection.prototype.replace = function replace(tr, content) {\n if (content === void 0) content = Slice.empty;\n Selection.prototype.replace.call(this, tr, content);\n\n if (content == Slice.empty) {\n var marks = this.$from.marksAcross(this.$to);\n\n if (marks) {\n tr.ensureMarks(marks);\n }\n }\n };\n\n TextSelection.prototype.eq = function eq(other) {\n return other instanceof TextSelection && other.anchor == this.anchor && other.head == this.head;\n };\n\n TextSelection.prototype.getBookmark = function getBookmark() {\n return new TextBookmark(this.anchor, this.head);\n };\n\n TextSelection.prototype.toJSON = function toJSON() {\n return {\n type: \"text\",\n anchor: this.anchor,\n head: this.head\n };\n };\n\n TextSelection.fromJSON = function fromJSON(doc, json) {\n if (typeof json.anchor != \"number\" || typeof json.head != \"number\") {\n throw new RangeError(\"Invalid input for TextSelection.fromJSON\");\n }\n\n return new TextSelection(doc.resolve(json.anchor), doc.resolve(json.head));\n }; // :: (Node, number, ?number) → TextSelection\n // Create a text selection from non-resolved positions.\n\n\n TextSelection.create = function create(doc, anchor, head) {\n if (head === void 0) head = anchor;\n var $anchor = doc.resolve(anchor);\n return new this($anchor, head == anchor ? $anchor : doc.resolve(head));\n }; // :: (ResolvedPos, ResolvedPos, ?number) → Selection\n // Return a text selection that spans the given positions or, if\n // they aren't text positions, find a text selection near them.\n // `bias` determines whether the method searches forward (default)\n // or backwards (negative number) first. Will fall back to calling\n // [`Selection.near`](#state.Selection^near) when the document\n // doesn't contain a valid text position.\n\n\n TextSelection.between = function between($anchor, $head, bias) {\n var dPos = $anchor.pos - $head.pos;\n\n if (!bias || dPos) {\n bias = dPos >= 0 ? 1 : -1;\n }\n\n if (!$head.parent.inlineContent) {\n var found = Selection.findFrom($head, bias, true) || Selection.findFrom($head, -bias, true);\n\n if (found) {\n $head = found.$head;\n } else {\n return Selection.near($head, bias);\n }\n }\n\n if (!$anchor.parent.inlineContent) {\n if (dPos == 0) {\n $anchor = $head;\n } else {\n $anchor = (Selection.findFrom($anchor, -bias, true) || Selection.findFrom($anchor, bias, true)).$anchor;\n\n if ($anchor.pos < $head.pos != dPos < 0) {\n $anchor = $head;\n }\n }\n }\n\n return new TextSelection($anchor, $head);\n };\n\n Object.defineProperties(TextSelection.prototype, prototypeAccessors$1);\n return TextSelection;\n}(Selection);\n\nSelection.jsonID(\"text\", TextSelection);\n\nvar TextBookmark = function TextBookmark(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n};\n\nTextBookmark.prototype.map = function map(mapping) {\n return new TextBookmark(mapping.map(this.anchor), mapping.map(this.head));\n};\n\nTextBookmark.prototype.resolve = function resolve(doc) {\n return TextSelection.between(doc.resolve(this.anchor), doc.resolve(this.head));\n}; // ::- A node selection is a selection that points at a single node.\n// All nodes marked [selectable](#model.NodeSpec.selectable) can be\n// the target of a node selection. In such a selection, `from` and\n// `to` point directly before and after the selected node, `anchor`\n// equals `from`, and `head` equals `to`..\n\n\nvar NodeSelection = /*@__PURE__*/function (Selection) {\n function NodeSelection($pos) {\n var node = $pos.nodeAfter;\n var $end = $pos.node(0).resolve($pos.pos + node.nodeSize);\n Selection.call(this, $pos, $end); // :: Node The selected node.\n\n this.node = node;\n }\n\n if (Selection) NodeSelection.__proto__ = Selection;\n NodeSelection.prototype = Object.create(Selection && Selection.prototype);\n NodeSelection.prototype.constructor = NodeSelection;\n\n NodeSelection.prototype.map = function map(doc, mapping) {\n var ref = mapping.mapResult(this.anchor);\n var deleted = ref.deleted;\n var pos = ref.pos;\n var $pos = doc.resolve(pos);\n\n if (deleted) {\n return Selection.near($pos);\n }\n\n return new NodeSelection($pos);\n };\n\n NodeSelection.prototype.content = function content() {\n return new Slice(Fragment.from(this.node), 0, 0);\n };\n\n NodeSelection.prototype.eq = function eq(other) {\n return other instanceof NodeSelection && other.anchor == this.anchor;\n };\n\n NodeSelection.prototype.toJSON = function toJSON() {\n return {\n type: \"node\",\n anchor: this.anchor\n };\n };\n\n NodeSelection.prototype.getBookmark = function getBookmark() {\n return new NodeBookmark(this.anchor);\n };\n\n NodeSelection.fromJSON = function fromJSON(doc, json) {\n if (typeof json.anchor != \"number\") {\n throw new RangeError(\"Invalid input for NodeSelection.fromJSON\");\n }\n\n return new NodeSelection(doc.resolve(json.anchor));\n }; // :: (Node, number) → NodeSelection\n // Create a node selection from non-resolved positions.\n\n\n NodeSelection.create = function create(doc, from) {\n return new this(doc.resolve(from));\n }; // :: (Node) → bool\n // Determines whether the given node may be selected as a node\n // selection.\n\n\n NodeSelection.isSelectable = function isSelectable(node) {\n return !node.isText && node.type.spec.selectable !== false;\n };\n\n return NodeSelection;\n}(Selection);\n\nNodeSelection.prototype.visible = false;\nSelection.jsonID(\"node\", NodeSelection);\n\nvar NodeBookmark = function NodeBookmark(anchor) {\n this.anchor = anchor;\n};\n\nNodeBookmark.prototype.map = function map(mapping) {\n var ref = mapping.mapResult(this.anchor);\n var deleted = ref.deleted;\n var pos = ref.pos;\n return deleted ? new TextBookmark(pos, pos) : new NodeBookmark(pos);\n};\n\nNodeBookmark.prototype.resolve = function resolve(doc) {\n var $pos = doc.resolve(this.anchor),\n node = $pos.nodeAfter;\n\n if (node && NodeSelection.isSelectable(node)) {\n return new NodeSelection($pos);\n }\n\n return Selection.near($pos);\n}; // ::- A selection type that represents selecting the whole document\n// (which can not necessarily be expressed with a text selection, when\n// there are for example leaf block nodes at the start or end of the\n// document).\n\n\nvar AllSelection = /*@__PURE__*/function (Selection) {\n function AllSelection(doc) {\n Selection.call(this, doc.resolve(0), doc.resolve(doc.content.size));\n }\n\n if (Selection) AllSelection.__proto__ = Selection;\n AllSelection.prototype = Object.create(Selection && Selection.prototype);\n AllSelection.prototype.constructor = AllSelection;\n\n AllSelection.prototype.replace = function replace(tr, content) {\n if (content === void 0) content = Slice.empty;\n\n if (content == Slice.empty) {\n tr[\"delete\"](0, tr.doc.content.size);\n var sel = Selection.atStart(tr.doc);\n\n if (!sel.eq(tr.selection)) {\n tr.setSelection(sel);\n }\n } else {\n Selection.prototype.replace.call(this, tr, content);\n }\n };\n\n AllSelection.prototype.toJSON = function toJSON() {\n return {\n type: \"all\"\n };\n };\n\n AllSelection.fromJSON = function fromJSON(doc) {\n return new AllSelection(doc);\n };\n\n AllSelection.prototype.map = function map(doc) {\n return new AllSelection(doc);\n };\n\n AllSelection.prototype.eq = function eq(other) {\n return other instanceof AllSelection;\n };\n\n AllSelection.prototype.getBookmark = function getBookmark() {\n return AllBookmark;\n };\n\n return AllSelection;\n}(Selection);\n\nSelection.jsonID(\"all\", AllSelection);\nvar AllBookmark = {\n map: function map() {\n return this;\n },\n resolve: function resolve(doc) {\n return new AllSelection(doc);\n }\n}; // FIXME we'll need some awareness of text direction when scanning for selections\n// Try to find a selection inside the given node. `pos` points at the\n// position where the search starts. When `text` is true, only return\n// text selections.\n\nfunction findSelectionIn(doc, node, pos, index, dir, text) {\n if (node.inlineContent) {\n return TextSelection.create(doc, pos);\n }\n\n for (var i = index - (dir > 0 ? 0 : 1); dir > 0 ? i < node.childCount : i >= 0; i += dir) {\n var child = node.child(i);\n\n if (!child.isAtom) {\n var inner = findSelectionIn(doc, child, pos + dir, dir < 0 ? child.childCount : 0, dir, text);\n\n if (inner) {\n return inner;\n }\n } else if (!text && NodeSelection.isSelectable(child)) {\n return NodeSelection.create(doc, pos - (dir < 0 ? child.nodeSize : 0));\n }\n\n pos += child.nodeSize * dir;\n }\n}\n\nfunction selectionToInsertionEnd(tr, startLen, bias) {\n var last = tr.steps.length - 1;\n\n if (last < startLen) {\n return;\n }\n\n var step = tr.steps[last];\n\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) {\n return;\n }\n\n var map = tr.mapping.maps[last],\n end;\n map.forEach(function (_from, _to, _newFrom, newTo) {\n if (end == null) {\n end = newTo;\n }\n });\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\n}\n\nvar UPDATED_SEL = 1,\n UPDATED_MARKS = 2,\n UPDATED_SCROLL = 4; // ::- An editor state transaction, which can be applied to a state to\n// create an updated state. Use\n// [`EditorState.tr`](#state.EditorState.tr) to create an instance.\n//\n// Transactions track changes to the document (they are a subclass of\n// [`Transform`](#transform.Transform)), but also other state changes,\n// like selection updates and adjustments of the set of [stored\n// marks](#state.EditorState.storedMarks). In addition, you can store\n// metadata properties in a transaction, which are extra pieces of\n// information that client code or plugins can use to describe what a\n// transacion represents, so that they can update their [own\n// state](#state.StateField) accordingly.\n//\n// The [editor view](#view.EditorView) uses a few metadata properties:\n// it will attach a property `\"pointer\"` with the value `true` to\n// selection transactions directly caused by mouse or touch input, and\n// a `\"uiEvent\"` property of that may be `\"paste\"`, `\"cut\"`, or `\"drop\"`.\n\nvar Transaction = /*@__PURE__*/function (Transform) {\n function Transaction(state) {\n Transform.call(this, state.doc); // :: number\n // The timestamp associated with this transaction, in the same\n // format as `Date.now()`.\n\n this.time = Date.now();\n this.curSelection = state.selection; // The step count for which the current selection is valid.\n\n this.curSelectionFor = 0; // :: ?[Mark]\n // The stored marks set by this transaction, if any.\n\n this.storedMarks = state.storedMarks; // Bitfield to track which aspects of the state were updated by\n // this transaction.\n\n this.updated = 0; // Object used to store metadata properties for the transaction.\n\n this.meta = Object.create(null);\n }\n\n if (Transform) Transaction.__proto__ = Transform;\n Transaction.prototype = Object.create(Transform && Transform.prototype);\n Transaction.prototype.constructor = Transaction;\n var prototypeAccessors = {\n selection: {\n configurable: true\n },\n selectionSet: {\n configurable: true\n },\n storedMarksSet: {\n configurable: true\n },\n isGeneric: {\n configurable: true\n },\n scrolledIntoView: {\n configurable: true\n }\n }; // :: Selection\n // The transaction's current selection. This defaults to the editor\n // selection [mapped](#state.Selection.map) through the steps in the\n // transaction, but can be overwritten with\n // [`setSelection`](#state.Transaction.setSelection).\n\n prototypeAccessors.selection.get = function () {\n if (this.curSelectionFor < this.steps.length) {\n this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor));\n this.curSelectionFor = this.steps.length;\n }\n\n return this.curSelection;\n }; // :: (Selection) → Transaction\n // Update the transaction's current selection. Will determine the\n // selection that the editor gets when the transaction is applied.\n\n\n Transaction.prototype.setSelection = function setSelection(selection) {\n if (selection.$from.doc != this.doc) {\n throw new RangeError(\"Selection passed to setSelection must point at the current document\");\n }\n\n this.curSelection = selection;\n this.curSelectionFor = this.steps.length;\n this.updated = (this.updated | UPDATED_SEL) & ~UPDATED_MARKS;\n this.storedMarks = null;\n return this;\n }; // :: bool\n // Whether the selection was explicitly updated by this transaction.\n\n\n prototypeAccessors.selectionSet.get = function () {\n return (this.updated & UPDATED_SEL) > 0;\n }; // :: (?[Mark]) → Transaction\n // Set the current stored marks.\n\n\n Transaction.prototype.setStoredMarks = function setStoredMarks(marks) {\n this.storedMarks = marks;\n this.updated |= UPDATED_MARKS;\n return this;\n }; // :: ([Mark]) → Transaction\n // Make sure the current stored marks or, if that is null, the marks\n // at the selection, match the given set of marks. Does nothing if\n // this is already the case.\n\n\n Transaction.prototype.ensureMarks = function ensureMarks(marks) {\n if (!Mark.sameSet(this.storedMarks || this.selection.$from.marks(), marks)) {\n this.setStoredMarks(marks);\n }\n\n return this;\n }; // :: (Mark) → Transaction\n // Add a mark to the set of stored marks.\n\n\n Transaction.prototype.addStoredMark = function addStoredMark(mark) {\n return this.ensureMarks(mark.addToSet(this.storedMarks || this.selection.$head.marks()));\n }; // :: (union) → Transaction\n // Remove a mark or mark type from the set of stored marks.\n\n\n Transaction.prototype.removeStoredMark = function removeStoredMark(mark) {\n return this.ensureMarks(mark.removeFromSet(this.storedMarks || this.selection.$head.marks()));\n }; // :: bool\n // Whether the stored marks were explicitly set for this transaction.\n\n\n prototypeAccessors.storedMarksSet.get = function () {\n return (this.updated & UPDATED_MARKS) > 0;\n };\n\n Transaction.prototype.addStep = function addStep(step, doc) {\n Transform.prototype.addStep.call(this, step, doc);\n this.updated = this.updated & ~UPDATED_MARKS;\n this.storedMarks = null;\n }; // :: (number) → Transaction\n // Update the timestamp for the transaction.\n\n\n Transaction.prototype.setTime = function setTime(time) {\n this.time = time;\n return this;\n }; // :: (Slice) → Transaction\n // Replace the current selection with the given slice.\n\n\n Transaction.prototype.replaceSelection = function replaceSelection(slice) {\n this.selection.replace(this, slice);\n return this;\n }; // :: (Node, ?bool) → Transaction\n // Replace the selection with the given node. When `inheritMarks` is\n // true and the content is inline, it inherits the marks from the\n // place where it is inserted.\n\n\n Transaction.prototype.replaceSelectionWith = function replaceSelectionWith(node, inheritMarks) {\n var selection = this.selection;\n\n if (inheritMarks !== false) {\n node = node.mark(this.storedMarks || (selection.empty ? selection.$from.marks() : selection.$from.marksAcross(selection.$to) || Mark.none));\n }\n\n selection.replaceWith(this, node);\n return this;\n }; // :: () → Transaction\n // Delete the selection.\n\n\n Transaction.prototype.deleteSelection = function deleteSelection() {\n this.selection.replace(this);\n return this;\n }; // :: (string, from: ?number, to: ?number) → Transaction\n // Replace the given range, or the selection if no range is given,\n // with a text node containing the given string.\n\n\n Transaction.prototype.insertText = function insertText(text, from, to) {\n if (to === void 0) to = from;\n var schema = this.doc.type.schema;\n\n if (from == null) {\n if (!text) {\n return this.deleteSelection();\n }\n\n return this.replaceSelectionWith(schema.text(text), true);\n } else {\n if (!text) {\n return this.deleteRange(from, to);\n }\n\n var marks = this.storedMarks;\n\n if (!marks) {\n var $from = this.doc.resolve(from);\n marks = to == from ? $from.marks() : $from.marksAcross(this.doc.resolve(to));\n }\n\n this.replaceRangeWith(from, to, schema.text(text, marks));\n\n if (!this.selection.empty) {\n this.setSelection(Selection.near(this.selection.$to));\n }\n\n return this;\n }\n }; // :: (union, any) → Transaction\n // Store a metadata property in this transaction, keyed either by\n // name or by plugin.\n\n\n Transaction.prototype.setMeta = function setMeta(key, value) {\n this.meta[typeof key == \"string\" ? key : key.key] = value;\n return this;\n }; // :: (union) → any\n // Retrieve a metadata property for a given name or plugin.\n\n\n Transaction.prototype.getMeta = function getMeta(key) {\n return this.meta[typeof key == \"string\" ? key : key.key];\n }; // :: bool\n // Returns true if this transaction doesn't contain any metadata,\n // and can thus safely be extended.\n\n\n prototypeAccessors.isGeneric.get = function () {\n for (var _ in this.meta) {\n return false;\n }\n\n return true;\n }; // :: () → Transaction\n // Indicate that the editor should scroll the selection into view\n // when updated to the state produced by this transaction.\n\n\n Transaction.prototype.scrollIntoView = function scrollIntoView() {\n this.updated |= UPDATED_SCROLL;\n return this;\n };\n\n prototypeAccessors.scrolledIntoView.get = function () {\n return (this.updated & UPDATED_SCROLL) > 0;\n };\n\n Object.defineProperties(Transaction.prototype, prototypeAccessors);\n return Transaction;\n}(Transform);\n\nfunction bind(f, self) {\n return !self || !f ? f : f.bind(self);\n}\n\nvar FieldDesc = function FieldDesc(name, desc, self) {\n this.name = name;\n this.init = bind(desc.init, self);\n this.apply = bind(desc.apply, self);\n};\n\nvar baseFields = [new FieldDesc(\"doc\", {\n init: function init(config) {\n return config.doc || config.schema.topNodeType.createAndFill();\n },\n apply: function apply(tr) {\n return tr.doc;\n }\n}), new FieldDesc(\"selection\", {\n init: function init(config, instance) {\n return config.selection || Selection.atStart(instance.doc);\n },\n apply: function apply(tr) {\n return tr.selection;\n }\n}), new FieldDesc(\"storedMarks\", {\n init: function init(config) {\n return config.storedMarks || null;\n },\n apply: function apply(tr, _marks, _old, state) {\n return state.selection.$cursor ? tr.storedMarks : null;\n }\n}), new FieldDesc(\"scrollToSelection\", {\n init: function init() {\n return 0;\n },\n apply: function apply(tr, prev) {\n return tr.scrolledIntoView ? prev + 1 : prev;\n }\n})]; // Object wrapping the part of a state object that stays the same\n// across transactions. Stored in the state's `config` property.\n\nvar Configuration = function Configuration(schema, plugins) {\n var this$1 = this;\n this.schema = schema;\n this.fields = baseFields.concat();\n this.plugins = [];\n this.pluginsByKey = Object.create(null);\n\n if (plugins) {\n plugins.forEach(function (plugin) {\n if (this$1.pluginsByKey[plugin.key]) {\n throw new RangeError(\"Adding different instances of a keyed plugin (\" + plugin.key + \")\");\n }\n\n this$1.plugins.push(plugin);\n this$1.pluginsByKey[plugin.key] = plugin;\n\n if (plugin.spec.state) {\n this$1.fields.push(new FieldDesc(plugin.key, plugin.spec.state, plugin));\n }\n });\n }\n}; // ::- The state of a ProseMirror editor is represented by an object\n// of this type. A state is a persistent data structure—it isn't\n// updated, but rather a new state value is computed from an old one\n// using the [`apply`](#state.EditorState.apply) method.\n//\n// A state holds a number of built-in fields, and plugins can\n// [define](#state.PluginSpec.state) additional fields.\n\n\nvar EditorState = function EditorState(config) {\n this.config = config;\n};\n\nvar prototypeAccessors$1 = {\n schema: {\n configurable: true\n },\n plugins: {\n configurable: true\n },\n tr: {\n configurable: true\n }\n}; // doc:: Node\n// The current document.\n// selection:: Selection\n// The selection.\n// storedMarks:: ?[Mark]\n// A set of marks to apply to the next input. Will be null when\n// no explicit marks have been set.\n// :: Schema\n// The schema of the state's document.\n\nprototypeAccessors$1.schema.get = function () {\n return this.config.schema;\n}; // :: [Plugin]\n// The plugins that are active in this state.\n\n\nprototypeAccessors$1.plugins.get = function () {\n return this.config.plugins;\n}; // :: (Transaction) → EditorState\n// Apply the given transaction to produce a new state.\n\n\nEditorState.prototype.apply = function apply(tr) {\n return this.applyTransaction(tr).state;\n}; // : (Transaction) → bool\n\n\nEditorState.prototype.filterTransaction = function filterTransaction(tr, ignore) {\n if (ignore === void 0) ignore = -1;\n\n for (var i = 0; i < this.config.plugins.length; i++) {\n if (i != ignore) {\n var plugin = this.config.plugins[i];\n\n if (plugin.spec.filterTransaction && !plugin.spec.filterTransaction.call(plugin, tr, this)) {\n return false;\n }\n }\n }\n\n return true;\n}; // :: (Transaction) → {state: EditorState, transactions: [Transaction]}\n// Verbose variant of [`apply`](#state.EditorState.apply) that\n// returns the precise transactions that were applied (which might\n// be influenced by the [transaction\n// hooks](#state.PluginSpec.filterTransaction) of\n// plugins) along with the new state.\n\n\nEditorState.prototype.applyTransaction = function applyTransaction(rootTr) {\n if (!this.filterTransaction(rootTr)) {\n return {\n state: this,\n transactions: []\n };\n }\n\n var trs = [rootTr],\n newState = this.applyInner(rootTr),\n seen = null; // This loop repeatedly gives plugins a chance to respond to\n // transactions as new transactions are added, making sure to only\n // pass the transactions the plugin did not see before.\n\n for (;;) {\n var haveNew = false;\n\n for (var i = 0; i < this.config.plugins.length; i++) {\n var plugin = this.config.plugins[i];\n\n if (plugin.spec.appendTransaction) {\n var n = seen ? seen[i].n : 0,\n oldState = seen ? seen[i].state : this;\n var tr = n < trs.length && plugin.spec.appendTransaction.call(plugin, n ? trs.slice(n) : trs, oldState, newState);\n\n if (tr && newState.filterTransaction(tr, i)) {\n tr.setMeta(\"appendedTransaction\", rootTr);\n\n if (!seen) {\n seen = [];\n\n for (var j = 0; j < this.config.plugins.length; j++) {\n seen.push(j < i ? {\n state: newState,\n n: trs.length\n } : {\n state: this,\n n: 0\n });\n }\n }\n\n trs.push(tr);\n newState = newState.applyInner(tr);\n haveNew = true;\n }\n\n if (seen) {\n seen[i] = {\n state: newState,\n n: trs.length\n };\n }\n }\n }\n\n if (!haveNew) {\n return {\n state: newState,\n transactions: trs\n };\n }\n }\n}; // : (Transaction) → EditorState\n\n\nEditorState.prototype.applyInner = function applyInner(tr) {\n if (!tr.before.eq(this.doc)) {\n throw new RangeError(\"Applying a mismatched transaction\");\n }\n\n var newInstance = new EditorState(this.config),\n fields = this.config.fields;\n\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i];\n newInstance[field.name] = field.apply(tr, this[field.name], this, newInstance);\n }\n\n for (var i$1 = 0; i$1 < applyListeners.length; i$1++) {\n applyListeners[i$1](this, tr, newInstance);\n }\n\n return newInstance;\n}; // :: Transaction\n// Start a [transaction](#state.Transaction) from this state.\n\n\nprototypeAccessors$1.tr.get = function () {\n return new Transaction(this);\n}; // :: (Object) → EditorState\n// Create a new state.\n//\n// config::- Configuration options. Must contain `schema` or `doc` (or both).\n//\n// schema:: ?Schema\n// The schema to use (only relevant if no `doc` is specified).\n//\n// doc:: ?Node\n// The starting document.\n//\n// selection:: ?Selection\n// A valid selection in the document.\n//\n// storedMarks:: ?[Mark]\n// The initial set of [stored marks](#state.EditorState.storedMarks).\n//\n// plugins:: ?[Plugin]\n// The plugins that should be active in this state.\n\n\nEditorState.create = function create(config) {\n var $config = new Configuration(config.doc ? config.doc.type.schema : config.schema, config.plugins);\n var instance = new EditorState($config);\n\n for (var i = 0; i < $config.fields.length; i++) {\n instance[$config.fields[i].name] = $config.fields[i].init(config, instance);\n }\n\n return instance;\n}; // :: (Object) → EditorState\n// Create a new state based on this one, but with an adjusted set of\n// active plugins. State fields that exist in both sets of plugins\n// are kept unchanged. Those that no longer exist are dropped, and\n// those that are new are initialized using their\n// [`init`](#state.StateField.init) method, passing in the new\n// configuration object..\n//\n// config::- configuration options\n//\n// plugins:: [Plugin]\n// New set of active plugins.\n\n\nEditorState.prototype.reconfigure = function reconfigure(config) {\n var $config = new Configuration(this.schema, config.plugins);\n var fields = $config.fields,\n instance = new EditorState($config);\n\n for (var i = 0; i < fields.length; i++) {\n var name = fields[i].name;\n instance[name] = this.hasOwnProperty(name) ? this[name] : fields[i].init(config, instance);\n }\n\n return instance;\n}; // :: (?union, string, number>) → Object\n// Serialize this state to JSON. If you want to serialize the state\n// of plugins, pass an object mapping property names to use in the\n// resulting JSON object to plugin objects. The argument may also be\n// a string or number, in which case it is ignored, to support the\n// way `JSON.stringify` calls `toString` methods.\n\n\nEditorState.prototype.toJSON = function toJSON(pluginFields) {\n var result = {\n doc: this.doc.toJSON(),\n selection: this.selection.toJSON()\n };\n\n if (this.storedMarks) {\n result.storedMarks = this.storedMarks.map(function (m) {\n return m.toJSON();\n });\n }\n\n if (pluginFields && _typeof(pluginFields) == 'object') {\n for (var prop in pluginFields) {\n if (prop == \"doc\" || prop == \"selection\") {\n throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\");\n }\n\n var plugin = pluginFields[prop],\n state = plugin.spec.state;\n\n if (state && state.toJSON) {\n result[prop] = state.toJSON.call(plugin, this[plugin.key]);\n }\n }\n }\n\n return result;\n}; // :: (Object, Object, ?Object) → EditorState\n// Deserialize a JSON representation of a state. `config` should\n// have at least a `schema` field, and should contain array of\n// plugins to initialize the state with. `pluginFields` can be used\n// to deserialize the state of plugins, by associating plugin\n// instances with the property names they use in the JSON object.\n//\n// config::- configuration options\n//\n// schema:: Schema\n// The schema to use.\n//\n// plugins:: ?[Plugin]\n// The set of active plugins.\n\n\nEditorState.fromJSON = function fromJSON(config, json, pluginFields) {\n if (!json) {\n throw new RangeError(\"Invalid input for EditorState.fromJSON\");\n }\n\n if (!config.schema) {\n throw new RangeError(\"Required config field 'schema' missing\");\n }\n\n var $config = new Configuration(config.schema, config.plugins);\n var instance = new EditorState($config);\n $config.fields.forEach(function (field) {\n if (field.name == \"doc\") {\n instance.doc = Node.fromJSON(config.schema, json.doc);\n } else if (field.name == \"selection\") {\n instance.selection = Selection.fromJSON(instance.doc, json.selection);\n } else if (field.name == \"storedMarks\") {\n if (json.storedMarks) {\n instance.storedMarks = json.storedMarks.map(config.schema.markFromJSON);\n }\n } else {\n if (pluginFields) {\n for (var prop in pluginFields) {\n var plugin = pluginFields[prop],\n state = plugin.spec.state;\n\n if (plugin.key == field.name && state && state.fromJSON && Object.prototype.hasOwnProperty.call(json, prop)) {\n // This field belongs to a plugin mapped to a JSON field, read it from there.\n instance[field.name] = state.fromJSON.call(plugin, config, json[prop], instance);\n return;\n }\n }\n }\n\n instance[field.name] = field.init(config, instance);\n }\n });\n return instance;\n}; // Kludge to allow the view to track mappings between different\n// instances of a state.\n//\n// FIXME this is no longer needed as of prosemirror-view 1.9.0,\n// though due to backwards-compat we should probably keep it around\n// for a while (if only as a no-op)\n\n\nEditorState.addApplyListener = function addApplyListener(f) {\n applyListeners.push(f);\n};\n\nEditorState.removeApplyListener = function removeApplyListener(f) {\n var found = applyListeners.indexOf(f);\n\n if (found > -1) {\n applyListeners.splice(found, 1);\n }\n};\n\nObject.defineProperties(EditorState.prototype, prototypeAccessors$1);\nvar applyListeners = []; // PluginSpec:: interface\n//\n// This is the type passed to the [`Plugin`](#state.Plugin)\n// constructor. It provides a definition for a plugin.\n//\n// props:: ?EditorProps\n// The [view props](#view.EditorProps) added by this plugin. Props\n// that are functions will be bound to have the plugin instance as\n// their `this` binding.\n//\n// state:: ?StateField\n// Allows a plugin to define a [state field](#state.StateField), an\n// extra slot in the state object in which it can keep its own data.\n//\n// key:: ?PluginKey\n// Can be used to make this a keyed plugin. You can have only one\n// plugin with a given key in a given state, but it is possible to\n// access the plugin's configuration and state through the key,\n// without having access to the plugin instance object.\n//\n// view:: ?(EditorView) → Object\n// When the plugin needs to interact with the editor view, or\n// set something up in the DOM, use this field. The function\n// will be called when the plugin's state is associated with an\n// editor view.\n//\n// return::-\n// Should return an object with the following optional\n// properties:\n//\n// update:: ?(view: EditorView, prevState: EditorState)\n// Called whenever the view's state is updated.\n//\n// destroy:: ?()\n// Called when the view is destroyed or receives a state\n// with different plugins.\n//\n// filterTransaction:: ?(Transaction, EditorState) → bool\n// When present, this will be called before a transaction is\n// applied by the state, allowing the plugin to cancel it (by\n// returning false).\n//\n// appendTransaction:: ?(transactions: [Transaction], oldState: EditorState, newState: EditorState) → ?Transaction\n// Allows the plugin to append another transaction to be applied\n// after the given array of transactions. When another plugin\n// appends a transaction after this was called, it is called again\n// with the new state and new transactions—but only the new\n// transactions, i.e. it won't be passed transactions that it\n// already saw.\n\nfunction bindProps(obj, self, target) {\n for (var prop in obj) {\n var val = obj[prop];\n\n if (val instanceof Function) {\n val = val.bind(self);\n } else if (prop == \"handleDOMEvents\") {\n val = bindProps(val, self, {});\n }\n\n target[prop] = val;\n }\n\n return target;\n} // ::- Plugins bundle functionality that can be added to an editor.\n// They are part of the [editor state](#state.EditorState) and\n// may influence that state and the view that contains it.\n\n\nvar Plugin = function Plugin(spec) {\n // :: EditorProps\n // The [props](#view.EditorProps) exported by this plugin.\n this.props = {};\n\n if (spec.props) {\n bindProps(spec.props, this, this.props);\n } // :: Object\n // The plugin's [spec object](#state.PluginSpec).\n\n\n this.spec = spec;\n this.key = spec.key ? spec.key.key : createKey(\"plugin\");\n}; // :: (EditorState) → any\n// Extract the plugin's state field from an editor state.\n\n\nPlugin.prototype.getState = function getState(state) {\n return state[this.key];\n}; // StateField:: interface\n// A plugin spec may provide a state field (under its\n// [`state`](#state.PluginSpec.state) property) of this type, which\n// describes the state it wants to keep. Functions provided here are\n// always called with the plugin instance as their `this` binding.\n//\n// init:: (config: Object, instance: EditorState) → T\n// Initialize the value of the field. `config` will be the object\n// passed to [`EditorState.create`](#state.EditorState^create). Note\n// that `instance` is a half-initialized state instance, and will\n// not have values for plugin fields initialized after this one.\n//\n// apply:: (tr: Transaction, value: T, oldState: EditorState, newState: EditorState) → T\n// Apply the given transaction to this state field, producing a new\n// field value. Note that the `newState` argument is again a partially\n// constructed state does not yet contain the state from plugins\n// coming after this one.\n//\n// toJSON:: ?(value: T) → *\n// Convert this field to JSON. Optional, can be left off to disable\n// JSON serialization for the field.\n//\n// fromJSON:: ?(config: Object, value: *, state: EditorState) → T\n// Deserialize the JSON representation of this field. Note that the\n// `state` argument is again a half-initialized state.\n\n\nvar keys = Object.create(null);\n\nfunction createKey(name) {\n if (name in keys) {\n return name + \"$\" + ++keys[name];\n }\n\n keys[name] = 0;\n return name + \"$\";\n} // ::- A key is used to [tag](#state.PluginSpec.key)\n// plugins in a way that makes it possible to find them, given an\n// editor state. Assigning a key does mean only one plugin of that\n// type can be active in a state.\n\n\nvar PluginKey = function PluginKey(name) {\n if (name === void 0) name = \"key\";\n this.key = createKey(name);\n}; // :: (EditorState) → ?Plugin\n// Get the active plugin with this key, if any, from an editor\n// state.\n\n\nPluginKey.prototype.get = function get(state) {\n return state.config.pluginsByKey[this.key];\n}; // :: (EditorState) → ?any\n// Get the plugin's state from an editor state.\n\n\nPluginKey.prototype.getState = function getState(state) {\n return state[this.key];\n};\n\nexport { AllSelection, EditorState, NodeSelection, Plugin, PluginKey, Selection, SelectionRange, TextSelection, Transaction };","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\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 */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\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 * 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 */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\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}","import { __assign, __rest } from './_virtual/_tslib.js';\nimport { toSCXMLEvent, isFunction, toEventObject, getEventType, isString, isArray } from './utils.js';\nimport { SpecialTargets, ActionTypes } from './types.js';\nimport { send as send$1, update, assign as assign$1, raise as raise$1, init, log as log$1, cancel as cancel$1, error as error$1 } from './actionTypes.js';\nvar initEvent = /*#__PURE__*/toSCXMLEvent({\n type: init\n});\n\nfunction getActionFunction(actionType, actionFunctionMap) {\n return actionFunctionMap ? actionFunctionMap[actionType] || undefined : undefined;\n}\n\nfunction toActionObject(action, actionFunctionMap) {\n var actionObject;\n\n if (isString(action) || typeof action === 'number') {\n var exec = getActionFunction(action, actionFunctionMap);\n\n if (isFunction(exec)) {\n actionObject = {\n type: action,\n exec: exec\n };\n } else if (exec) {\n actionObject = exec;\n } else {\n actionObject = {\n type: action,\n exec: undefined\n };\n }\n } else if (isFunction(action)) {\n actionObject = {\n // Convert action to string if unnamed\n type: action.name || action.toString(),\n exec: action\n };\n } else {\n var exec = getActionFunction(action.type, actionFunctionMap);\n\n if (isFunction(exec)) {\n actionObject = __assign(__assign({}, action), {\n exec: exec\n });\n } else if (exec) {\n var type = action.type,\n other = __rest(action, [\"type\"]);\n\n actionObject = __assign(__assign({\n type: type\n }, exec), other);\n } else {\n actionObject = action;\n }\n }\n\n Object.defineProperty(actionObject, 'toString', {\n value: function value() {\n return actionObject.type;\n },\n enumerable: false,\n configurable: true\n });\n return actionObject;\n}\n\nvar toActionObjects = function toActionObjects(action, actionFunctionMap) {\n if (!action) {\n return [];\n }\n\n var actions = isArray(action) ? action : [action];\n return actions.map(function (subAction) {\n return toActionObject(subAction, actionFunctionMap);\n });\n};\n\nfunction toActivityDefinition(action) {\n var actionObject = toActionObject(action);\n return __assign(__assign({\n id: isString(action) ? action : actionObject.id\n }, actionObject), {\n type: actionObject.type\n });\n}\n/**\r\n * Raises an event. This places the event in the internal event queue, so that\r\n * the event is immediately consumed by the machine in the current step.\r\n *\r\n * @param eventType The event to raise.\r\n */\n\n\nfunction raise(event) {\n if (!isString(event)) {\n return send(event, {\n to: SpecialTargets.Internal\n });\n }\n\n return {\n type: raise$1,\n event: event\n };\n}\n\nfunction resolveRaise(action) {\n return {\n type: raise$1,\n _event: toSCXMLEvent(action.event)\n };\n}\n/**\r\n * Sends an event. This returns an action that will be read by an interpreter to\r\n * send the event in the next step, after the current step is finished executing.\r\n *\r\n * @param event The event to send.\r\n * @param options Options to pass into the send event:\r\n * - `id` - The unique send event identifier (used with `cancel()`).\r\n * - `delay` - The number of milliseconds to delay the sending of the event.\r\n * - `to` - The target of this event (by default, the machine the event was sent from).\r\n */\n\n\nfunction send(event, options) {\n return {\n to: options ? options.to : undefined,\n type: send$1,\n event: isFunction(event) ? event : toEventObject(event),\n delay: options ? options.delay : undefined,\n id: options && options.id !== undefined ? options.id : isFunction(event) ? event.name : getEventType(event)\n };\n}\n\nfunction resolveSend(action, ctx, _event, delaysMap) {\n var meta = {\n _event: _event\n }; // TODO: helper function for resolving Expr\n\n var resolvedEvent = toSCXMLEvent(isFunction(action.event) ? action.event(ctx, _event.data, meta) : action.event);\n var resolvedDelay;\n\n if (isString(action.delay)) {\n var configDelay = delaysMap && delaysMap[action.delay];\n resolvedDelay = isFunction(configDelay) ? configDelay(ctx, _event.data, meta) : configDelay;\n } else {\n resolvedDelay = isFunction(action.delay) ? action.delay(ctx, _event.data, meta) : action.delay;\n }\n\n var resolvedTarget = isFunction(action.to) ? action.to(ctx, _event.data, meta) : action.to;\n return __assign(__assign({}, action), {\n to: resolvedTarget,\n _event: resolvedEvent,\n event: resolvedEvent.data,\n delay: resolvedDelay\n });\n}\n/**\r\n * Sends an event to this machine's parent.\r\n *\r\n * @param event The event to send to the parent machine.\r\n * @param options Options to pass into the send event.\r\n */\n\n\nfunction sendParent(event, options) {\n return send(event, __assign(__assign({}, options), {\n to: SpecialTargets.Parent\n }));\n}\n/**\r\n * Sends an update event to this machine's parent.\r\n */\n\n\nfunction sendUpdate() {\n return sendParent(update);\n}\n/**\r\n * Sends an event back to the sender of the original event.\r\n *\r\n * @param event The event to send back to the sender\r\n * @param options Options to pass into the send event\r\n */\n\n\nfunction respond(event, options) {\n return send(event, __assign(__assign({}, options), {\n to: function to(_, __, _a) {\n var _event = _a._event;\n return _event.origin; // TODO: handle when _event.origin is undefined\n }\n }));\n}\n\nvar defaultLogExpr = function defaultLogExpr(context, event) {\n return {\n context: context,\n event: event\n };\n};\n/**\r\n *\r\n * @param expr The expression function to evaluate which will be logged.\r\n * Takes in 2 arguments:\r\n * - `ctx` - the current state context\r\n * - `event` - the event that caused this action to be executed.\r\n * @param label The label to give to the logged expression.\r\n */\n\n\nfunction log(expr, label) {\n if (expr === void 0) {\n expr = defaultLogExpr;\n }\n\n return {\n type: log$1,\n label: label,\n expr: expr\n };\n}\n\nvar resolveLog = function resolveLog(action, ctx, _event) {\n return __assign(__assign({}, action), {\n value: isString(action.expr) ? action.expr : action.expr(ctx, _event.data, {\n _event: _event\n })\n });\n};\n/**\r\n * Cancels an in-flight `send(...)` action. A canceled sent action will not\r\n * be executed, nor will its event be sent, unless it has already been sent\r\n * (e.g., if `cancel(...)` is called after the `send(...)` action's `delay`).\r\n *\r\n * @param sendId The `id` of the `send(...)` action to cancel.\r\n */\n\n\nvar cancel = function cancel(sendId) {\n return {\n type: cancel$1,\n sendId: sendId\n };\n};\n/**\r\n * Starts an activity.\r\n *\r\n * @param activity The activity to start.\r\n */\n\n\nfunction start(activity) {\n var activityDef = toActivityDefinition(activity);\n return {\n type: ActionTypes.Start,\n activity: activityDef,\n exec: undefined\n };\n}\n/**\r\n * Stops an activity.\r\n *\r\n * @param activity The activity to stop.\r\n */\n\n\nfunction stop(activity) {\n var activityDef = toActivityDefinition(activity);\n return {\n type: ActionTypes.Stop,\n activity: activityDef,\n exec: undefined\n };\n}\n/**\r\n * Updates the current context of the machine.\r\n *\r\n * @param assignment An object that represents the partial context to update.\r\n */\n\n\nvar assign = function assign(assignment) {\n return {\n type: assign$1,\n assignment: assignment\n };\n};\n/**\r\n * Returns an event type that represents an implicit event that\r\n * is sent after the specified `delay`.\r\n *\r\n * @param delayRef The delay in milliseconds\r\n * @param id The state node ID where this event is handled\r\n */\n\n\nfunction after(delayRef, id) {\n var idSuffix = id ? \"#\" + id : '';\n return ActionTypes.After + \"(\" + delayRef + \")\" + idSuffix;\n}\n/**\r\n * Returns an event that represents that a final state node\r\n * has been reached in the parent state node.\r\n *\r\n * @param id The final state node's parent state node `id`\r\n * @param data The data to pass into the event\r\n */\n\n\nfunction done(id, data) {\n var type = ActionTypes.DoneState + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n/**\r\n * Returns an event that represents that an invoked service has terminated.\r\n *\r\n * An invoked service is terminated when it has reached a top-level final state node,\r\n * but not when it is canceled.\r\n *\r\n * @param id The final state node ID\r\n * @param data The data to pass into the event\r\n */\n\n\nfunction doneInvoke(id, data) {\n var type = ActionTypes.DoneInvoke + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n\nfunction error(id, data) {\n var type = ActionTypes.ErrorPlatform + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n/**\r\n * Forwards (sends) an event to a specified service.\r\n *\r\n * @param target The target service to forward the event to.\r\n * @param options Options to pass into the send action creator.\r\n */\n\n\nfunction forwardTo(target, options) {\n return send(function (_, event) {\n return event;\n }, __assign(__assign({}, options), {\n to: target\n }));\n}\n/**\r\n * Escalates an error by sending it as an event to this machine's parent.\r\n *\r\n * @param errorData The error data to send, or the expression function that\r\n * takes in the `context`, `event`, and `meta`, and returns the error data to send.\r\n * @param options Options to pass into the send action creator.\r\n */\n\n\nfunction escalate(errorData, options) {\n return sendParent(function (context, event, meta) {\n return {\n type: error$1,\n data: isFunction(errorData) ? errorData(context, event, meta) : errorData\n };\n }, __assign(__assign({}, options), {\n to: SpecialTargets.Parent\n }));\n}\n\nexport { after, assign, cancel, done, doneInvoke, error, escalate, forwardTo, getActionFunction, initEvent, log, raise, resolveLog, resolveRaise, resolveSend, respond, send, sendParent, sendUpdate, start, stop, toActionObject, toActionObjects, toActivityDefinition };","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport isArray from \"lodash/isArray\";\nimport { errorTextViaYupOrRailsOrJoi } from \"@shared/lib/formHelpers\";\nimport { findSelectOptionByValue } from \"@ats/src/lib/lookups\";\n\nimport Select, { Creatable } from \"react-select\";\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nconst handleChange = (props) => (selectedOption, actionObj) => {\n // Use the parent's scope to setState\n if (props.scope !== undefined) {\n if (actionObj.action === \"clear\") {\n props.scope.setState({ [props.name]: null, errors: null });\n } else {\n props.scope.setState({\n [props.name]: isArray(selectedOption) ? selectedOption : selectedOption.value,\n errors: null,\n });\n }\n } else if (props.onChange !== undefined) {\n if (actionObj.action === \"clear\") {\n props.onChange(props.name, null);\n } else {\n props.onChange(props.name, isArray(selectedOption) ? selectedOption : selectedOption.value);\n }\n } else {\n console.error(\"[FormSelect] scope or onChange must be defined\");\n }\n};\n\nconst handleInputChange = (props) => (selectedOption, actionObj) => {\n if (actionObj.action === \"clear\") {\n props.onInputChange(props.name, null);\n } else {\n props.onInputChange(\n props.name,\n isArray(selectedOption) ? selectedOption : selectedOption.value,\n );\n }\n};\n\nconst FormSelect = (props) => {\n const {\n errors,\n options,\n name,\n placeholder,\n value,\n label,\n description,\n onChange,\n isRequired,\n isDisabled,\n isClearable,\n isCreatable,\n isMulti,\n requiredLabel,\n ...rest\n } = props;\n let errorText = errorTextViaYupOrRailsOrJoi(props);\n\n const selectedOption = findSelectOptionByValue(options, value);\n const [selectRef, setSelectRef] = React.useState(null);\n\n const handleKeyDown = (event) => {\n if (event.keyCode === 27 || event.key === \"Escape\") {\n selectRef.blur();\n }\n };\n\n // window.logger(\"%c[FormSelect] errorText\", \"color: #1976D2\", {\n // errorText,\n // errors,\n // selectedOption,\n // rest,\n // });\n\n return isCreatable ? (\n \n {label && }\n {\n if (ref != undefined) {\n setSelectRef(ref);\n }\n }}\n />\n {props.children}\n {/* For displaying Joi rendered errors. See NewInviteForm example. */}\n \n ) : (\n \n {label && (\n \n )}\n {description &&

{description}

}\n {\n if (ref != undefined) {\n setSelectRef(ref);\n }\n }}\n onKeyDown={handleKeyDown}\n // data-testid=\"doesthiswork\"\n />\n {props.children}\n {/* For displaying Joi rendered errors. See NewInviteForm example. */}\n
\n );\n};\n\nFormSelect.propTypes = {\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string,\n label: PropTypes.string,\n description: PropTypes.any,\n scope: PropTypes.object, // typically set to \"this\" from the parent so we can use setState\n onChange: PropTypes.func, //.isRequired, // This get's used as a callback if scope is not set\n className: PropTypes.string,\n value: PropTypes.any,\n options: PropTypes.any.isRequired,\n isRequired: PropTypes.bool,\n isDisabled: PropTypes.bool,\n isClearable: PropTypes.bool,\n errors: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n requiredLabel: PropTypes.string,\n};\n\nFormSelect.defaultProps = {\n isRequired: false,\n isDisabled: false,\n isClearable: false,\n isMulti: false,\n placeholder: \"Select...\",\n requiredLabel: \"required\",\n};\n\nexport default FormSelect;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Container = styled.div((props) => {\n const t = props.theme;\n return css`\n label: FormSelect;\n ${t.mb(5)}\n > p {\n ${[t.text.xs, t.mt(-1), t.mb(2)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.text.xs}\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.mb(5)}\n }\n `;\n});\n\nStyled.Select = styled(Select)((props) => {\n const t = props.theme;\n return css`\n label: FormSelect_UI;\n .form-select-ui {\n &__clear-indicator {\n cursor: pointer;\n }\n &__control {\n ${[t.h(10), t.rounded.sm, t.text.base]}\n min-height: ${t.spacing[10]};\n width: 100%;\n appearance: none;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.white};\n border-width: 1px;\n border-style: solid;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[400]\n : t.color.red[500]\n : t.dark\n ? \"transparent\"\n : t.color.gray[300]};\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n &:hover {\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[400]};\n }\n &:focus {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &:focus:hover,\n &--is-focused,\n &--is-focused:hover {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"box-shadow: none;\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &--is-disabled {\n background-color: ${t.dark ? \"transparent\" : t.color.gray[100]};\n .form-select-ui__single-value {\n color: ${t.dark ? t.color.gray[500] : t.color.gray[600]};\n }\n ${t.dark && `border: 1px solid ${t.color.gray[800]};`}\n\n .form-select-ui__indicator svg {\n fill: ${t.color.gray[500]};\n stroke: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n }\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n min-height: ${t.spacing[8]};\n }\n }\n &__option {\n ${[t.h(10), t.px(2), t.text.base]}\n transition: color 0.2s ease, background-color 0.2s ease;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[700] : t.color.white};\n color: ${t.dark ? t.color.gray[200] : t.color.gray[600]};\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &:hover,\n &--is-focused {\n background-color: ${t.dark ? t.color.gray[500] : t.color.gray[200]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &--is-selected {\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[100]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n }\n &__placeholder {\n ${[t.mx(0)]}\n color: ${t.color.gray[500]};\n }\n &__indicators {\n ${t.h(8)}\n align-items: center;\n height: 100%;\n span {\n display: none;\n }\n }\n &__indicator svg {\n height: 1.125rem;\n width: 1.125rem;\n stroke-width: 1px;\n fill: ${t.dark ? t.color.gray[300] : t.color.black};\n stroke: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n &__dropdown-indicator {\n ${t.mr(\"px\")}\n padding: 0.3125rem;\n }\n &__clear-indicator svg {\n ${[t.rounded.xs]}\n position: relative;\n right: -${t.spacing[2]};\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n }\n &__clear-indicator:hover svg {\n background-color: ${t.dark ? t.color.orange[200] : t.color.gray[300]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.orange[200] : t.color.gray[300]};\n fill: ${t.color.black};\n }\n &__menu {\n ${[t.my(\"-px\"), t.rounded.sm]};\n border: 1px solid ${t.dark ? t.color.gray[500] : t.color.gray[400]};\n box-shadow: none;\n z-index: 20;\n }\n &__menu-list {\n ${[t.rounded.xs]};\n padding: 0;\n }\n &__value-container {\n ${[t.mx(0)]};\n height: 100%;\n > div {\n ${t.m(0)}\n }\n }\n &__input,\n &__single-value {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n ${t.m(0)};\n }\n &__multi-value {\n ${[t.m(\"px\"), t.rounded.xs]};\n margin-right: 0.25rem !important;\n height: 1.375rem;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n transition: background-color 0.2s ease;\n &__label {\n ${[t.text.sm, t.py(\"px\"), t.pr(0), t.pl(2)]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &__remove {\n height: 1.375rem;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[500]};\n &:hover {\n background: none;\n color: ${t.dark ? t.color.white : t.color.black};\n cursor: pointer;\n }\n }\n }\n &__menu-notice,\n &__menu-notice--no-options {\n color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n }\n `;\n});\n\nStyled.Creatable = styled(Creatable)((props) => {\n const t = props.theme;\n return css`\n label: FormSelect_UI;\n .form-select-ui {\n &__clear-indicator {\n cursor: pointer;\n }\n &__control {\n ${[t.h(10), t.rounded.sm, t.text.base]}\n min-height: ${t.spacing[10]};\n width: 100%;\n appearance: none;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.white};\n border-width: 1px;\n border-style: solid;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[400]\n : t.color.red[500]\n : t.dark\n ? \"transparent\"\n : t.color.gray[300]};\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n &:hover {\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[400]};\n }\n &:focus {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &:focus:hover,\n &--is-focused,\n &--is-focused:hover {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"box-shadow: none;\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &--is-disabled {\n background-color: ${t.dark ? \"transparent\" : t.color.gray[100]};\n .form-select-ui__single-value {\n color: ${t.dark ? t.color.gray[500] : t.color.gray[600]};\n }\n ${t.dark && `border: 1px solid ${t.color.gray[800]};`}\n\n .form-select-ui__indicator svg {\n fill: ${t.color.gray[500]};\n stroke: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n }\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n min-height: ${t.spacing[8]};\n }\n }\n &__option {\n ${[t.h(10), t.px(2), t.text.base]}\n transition: color 0.2s ease, background-color 0.2s ease;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[700] : t.color.white};\n color: ${t.dark ? t.color.gray[200] : t.color.gray[600]};\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &:hover,\n &--is-focused {\n background-color: ${t.dark ? t.color.gray[500] : t.color.gray[200]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &--is-selected {\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[100]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n }\n &__placeholder {\n ${[t.mx(0)]}\n color: ${t.color.gray[500]};\n }\n &__indicators {\n ${t.h(8)}\n align-items: center;\n height: 100%;\n span {\n display: none;\n }\n }\n &__indicator svg {\n height: 1.125rem;\n width: 1.125rem;\n stroke-width: 1px;\n fill: ${t.dark ? t.color.gray[300] : t.color.black};\n stroke: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n &__dropdown-indicator {\n ${t.mr(\"px\")}\n padding: 0.3125rem;\n }\n &__clear-indicator svg {\n ${[t.rounded.xs]}\n position: relative;\n right: -${t.spacing[2]};\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n }\n &__clear-indicator:hover svg {\n background-color: ${t.dark ? t.color.orange[200] : t.color.gray[300]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.orange[200] : t.color.gray[300]};\n fill: ${t.color.black};\n }\n &__menu {\n ${[t.my(\"-px\"), t.rounded.sm]};\n border: 1px solid ${t.dark ? t.color.gray[500] : t.color.gray[400]};\n box-shadow: none;\n z-index: 20;\n }\n &__menu-list {\n ${[t.rounded.xs]};\n padding: 0;\n }\n &__value-container {\n ${[t.mx(0)]};\n height: 100%;\n > div {\n ${t.m(0)}\n }\n }\n &__input,\n &__single-value {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n ${t.m(0)};\n }\n &__multi-value {\n ${[t.m(\"px\"), t.rounded.xs]};\n margin-right: 0.25rem !important;\n height: 1.375rem;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n transition: background-color 0.2s ease;\n &__label {\n ${[t.text.sm, t.py(\"px\"), t.pr(0), t.pl(2)]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &__remove {\n height: 1.375rem;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[500]};\n &:hover {\n background: none;\n color: ${t.dark ? t.color.white : t.color.black};\n cursor: pointer;\n }\n }\n }\n &__menu-notice,\n &__menu-notice--no-options {\n color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n }\n `;\n});\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { useHotkeys } from \"react-hotkeys-hook\";\n\nimport { errorTextViaYupOrRailsOrJoi } from \"@shared/lib/formHelpers\";\n\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\n\nconst FormInput = (props) => {\n const { errors, label, isRequired, onKeyDown, defaultValue, requiredLabel } = props;\n let errorText = errorTextViaYupOrRailsOrJoi(props); // errorsDisplay(props);\n const inputRef = React.useRef(null);\n\n React.useEffect(() => {\n inputRef.current.addEventListener(\"keydown\", (event) => {\n if (event.keyCode === 27 || event.key === \"Escape\") {\n inputRef.current.blur();\n }\n return () => {\n inputRef.current.removeEventListener(\"keydown\");\n };\n });\n }, []);\n\n /* HOTKEYS\n --===================================================-- */\n useHotkeys(\n \"esc\",\n (event) => {\n event.preventDefault();\n event.stopPropagation();\n inputRef.current.blur();\n return false;\n },\n {},\n [],\n );\n\n const handleChange = (event) => {\n event.preventDefault();\n\n // Use the parent's scope to setState\n if (props.scope !== undefined) {\n props.scope.setState({\n [props.name]: event.currentTarget.value,\n errors: null,\n });\n } else if (props.onChange !== undefined) {\n props.onChange(props.name, event.currentTarget.value);\n }\n };\n\n const handleBlur = (event) => {\n event.preventDefault();\n\n if (props.onBlur !== undefined) {\n props.onBlur(props.name, event.currentTarget.value);\n }\n };\n\n // window.logger(\"%c[FormInput] Errors\", \"background: red; color: white;\", {\n // errors,\n // errorText,\n // });\n\n const inputId = props.label\n ? `input${props.label.replace(/\\s+/g, \"\")}`\n : props.name\n ? props.name\n : \"Default\";\n\n return (\n \n {label && (\n \n )}\n {props.description &&

{props.description}

}\n \n {props.pretext && {props.pretext}}\n \n \n {props.children} {/* For displaying Joi rendered errors. See NewInviteForm example. */}\n
\n );\n};\n\nFormInput.propTypes = {\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string,\n label: PropTypes.string,\n description: PropTypes.string,\n scope: PropTypes.object, // typically set to \"this\" from the parent so we can use setState\n onChange: PropTypes.func, //.isRequired, // This get's used as a callback if scope is not set\n className: PropTypes.string,\n inputType: PropTypes.string,\n pretext: PropTypes.string,\n value: PropTypes.any,\n autoFocus: PropTypes.bool,\n isRequired: PropTypes.bool,\n isDisabled: PropTypes.bool,\n defaultValue: PropTypes.string,\n errors: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n requiredLabel: PropTypes.string,\n};\n\nFormInput.defaultProps = {\n isRequired: false,\n isDisabled: false,\n requiredLabel: \"required\",\n};\n\nexport default FormInput;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormInput;\n ${t.mb(6)}\n > p {\n ${[t.text.sm, t.mt(-1), t.mb(2)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.text.xs}\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.mb(5)}\n }\n `;\n});\n\nStyled.UI = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormInput_UI;\n display: flex;\n input {\n ${[t.h(10), t.px(2), t.rounded.sm, t.text.base]}\n appearance: none;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.white};\n width: 100%;\n text-overflow: ellipsis;\n border-width: 1px;\n border-style: solid;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[400]\n : t.color.red[500]\n : t.dark\n ? \"transparent\"\n : t.color.gray[300]};\n ${props.hasPretext ? \"border-top-left-radius: 0; border-bottom-left-radius: 0;\" : \"\"}\n &::placeholder {\n color: ${t.color.gray[500]};\n }\n &:hover {\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[400]};\n }\n &:focus {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &:disabled {\n color: ${t.dark ? t.color.gray[500] : t.color.gray[600]};\n background-color: ${t.dark ? \"transparent\" : t.color.gray[100]};\n ${t.dark && `border: 1px solid ${t.color.gray[800]};`}\n border-color: ${t.dark ? \"rgba(255,255,255,0.08)\" : t.color.gray[300]};\n }\n &:disabled:hover {\n ${!t.dark && `border-color: ${t.color.gray[300]};`}\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n }\n input[type=\"number\"] {\n appearance: textfield;\n }\n input[type=\"number\"]::-webkit-inner-spin-button,\n input[type=\"number\"]::-webkit-outer-spin-button {\n appearance: none;\n margin: 0;\n }\n `;\n});\n\nStyled.Pretext = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormInput_Pretext;\n ${[t.h(10), t.px(2), t.text.base, t.rounded.sm]}\n color: ${t.dark ? t.color.gray[300] : t.color.gray[600]};\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n border: 1px solid ${t.dark ? \"transparent\" : t.color.gray[300]};\n border-right: none;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n background-color: ${t.dark ? t.color.gray[700] : t.color.gray[100]};\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n `;\n});\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","import React from \"react\";\nimport { CurrentUser, CurrentOrganizationUser } from \"@shared/types/currentUser\";\nimport { CurrentOrganization } from \"@shared/types/organization\";\n\n// export type CurrentUser = {\n// id: number;\n// organizationId: number;\n// // role: boolean;\n// // role: string;\n// fullName: string;\n// // isAdmin: boolean;\n// initials: string;\n// hasAvatar: boolean;\n// avatarMedium: any;\n// avatarSmall: any;\n// organizationUsers: any[];\n// currentOrganizationUserId: number;\n// currentOrganizationUser: any;\n// isAnOrgOwner: boolean;\n// };\n\n// export type CurrentOrganizationUser = {\n// id: number;\n// userId: number;\n// role: string;\n// isAdmin: boolean;\n// };\n\n// export type CurrentOrganization = {\n// id: number;\n// name: string;\n// websiteUrl: string;\n// remoteness: string;\n// hasLogo: boolean;\n// logoMedium: string;\n// stripeSubscriptionInGoodStanding: boolean;\n// stripeDefaultPaymentMethodOnFile: boolean;\n// stripePromoCode: string | null;\n// stripeSubscriptionStatus: string | null;\n// stripeCurrentPeriodEndAt?: string;\n// stripeSubscription?: any;\n// hasWebflowMapping: boolean;\n// wwrCompanyStatement: string;\n// wwrCompanyBio: string;\n// publishedJobsCount: number;\n// plan: string;\n// careersPages: CareersPage[];\n// flipperId: string;\n// flipperGroup: string;\n// careersPageUrl: string;\n// careersPageSlug: string;\n// settings: any;\n// users: any;\n// organizationUsers: any[];\n// ownerId: number;\n// hasWebflowAuthentication: boolean;\n// webflowIntegration: any;\n// hasSlackAuthentication: boolean;\n// slackChannelIntegration: any;\n// hasDiscordAuthentication: boolean;\n// discordChannelIntegration: any;\n// zapierApiKey: string;\n// linkedinCompanyId: number;\n// enabledLinkedinBasicJobs: boolean;\n// };\n\ntype State = {\n currentUser: CurrentUser;\n currentOrganizationUser: CurrentOrganizationUser;\n currentOrganization?: CurrentOrganization;\n};\n\nconst CurrentSessionContext = React.createContext(undefined);\n\nfunction CurrentSessionProvider({ currentUser, currentOrganization, children }) {\n // window.logger(\n // \"%c[CurrentSessionContext] useCurrentSession\",\n // \"color: #1976D2; border: 1px solid black;\",\n // { currentUser, reduxLocalStorageOrganization },\n // );\n\n return (\n \n {children}\n \n );\n}\n\nfunction useCurrentSession() {\n // window.logger(\n // \"%c[CurrentSessionContext] useCurrentSession\",\n // \"color: #1976D2; border: 1px solid black;\",\n // );\n\n const context = React.useContext(CurrentSessionContext);\n if (context === undefined) {\n throw new Error(\"useCurrentSession must be used within a CurrentSessionProvider\");\n }\n\n const { currentUser, currentOrganizationUser, currentOrganization } = context;\n\n return {\n currentUser,\n currentOrganizationUser,\n currentOrganization,\n } as {\n currentUser: CurrentUser;\n currentOrganizationUser: CurrentOrganizationUser;\n currentOrganization: CurrentOrganization;\n };\n}\nexport { CurrentSessionProvider, useCurrentSession };\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css, keyframes } from \"@emotion/react\";\n\nconst LoadingIndicator = ({ label, subtle }) =>\n subtle ? (\n \n
\n
\n
\n \n ) : (\n \n {label && {label}}\n \n \n \n \n );\n\nLoadingIndicator.propTypes = {\n label: PropTypes.string,\n subtle: PropTypes.bool,\n};\n\nLoadingIndicator.defaultProps = {\n label: \"\",\n subtle: false,\n};\n\nexport default LoadingIndicator;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: LoadingIndicator;\n ${[t.my(24), t.mx(\"auto\")]}\n display: flex;\n flex-direction: column;\n align-items: center;\n `;\n});\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: LoadingIndicator_Label;\n ${[t.text.xs, t.mb(2)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n\nStyled.Bar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: LoadingIndicator_Bar;\n ${[t.w(32)]}\n height: 0.1875rem;\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.gray[200]};\n position: relative;\n overflow: hidden;\n `;\n});\n\nStyled.Indicator = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: LoadingIndicator_Indicator;\n ${[t.w(16)]}\n height: 100%;\n position: absolute;\n background-color: ${t.dark ? t.color.gray[400] : t.color.black};\n transition: transform 0.3s ease-in;\n animation: ${loading} 1.5s infinite ease;\n `;\n});\n\nconst loading = keyframes`\n 0%, 100% {\n transform: translate(-3rem,0);\n }\n 50% {\n transform: translate(7rem,0);\n }\n`;\n\nconst subtleKeyframe = keyframes`\n 0% {\n height: 0.75rem;\n }\n 30%,\n 100% {\n height: 0.125rem;\n }\n`;\n\nStyled.Subtle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: LoadingIndicator_Subtle;\n ${t.h(10)}\n display: flex;\n align-items: center;\n div {\n position: relative;\n width: 0.125rem;\n margin: 0.125rem;\n background-color: ${t.dark ? t.color.gray[400] : t.color.gray[300]};\n animation: ${subtleKeyframe} 1.6s cubic-bezier(0, 0.5, 0.5, 1) infinite;\n }\n div:nth-of-type(1) {\n animation-delay: -0.24s;\n }\n div:nth-of-type(2) {\n animation-delay: -0.12s;\n }\n div:nth-of-type(3) {\n animation-delay: 0;\n }\n `;\n});\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","import find from \"lodash/find\";\nimport isArray from \"lodash/isArray\";\n\nimport countriesData from \"@ats/src/lib/countries.json\";\nimport usStatesData from \"@ats/src/lib/usStates.json\";\nimport currencyCodes from \"@ats/src/lib/currencyCodes.json\";\n\nexport const findSelectOptionByValue = (options, value) => {\n if (isArray(value)) {\n return value.map((val) => find(options, (option) => option.value === val));\n }\n return find(options, (option) => option.value === value);\n};\n\nexport const findSelectOptionByLabel = (options, name) => {\n return find(options, (o) => o.label === name);\n};\n\nexport const getOptionLabel = (options, value) => {\n const option = findSelectOptionByValue(options, value);\n return option ? option.label : \"---\";\n};\n\n// Generic - Yes Or No\nexport const yesOrNoOptions = [\n { value: false, label: \"No\" },\n { value: true, label: \"Yes\" },\n];\n\n// Generic = Enabled or Disabled\nexport const enabledOrDisabledOptions = [\n { value: false, label: \"Disabled\" },\n { value: true, label: \"Enabled\" }\n]\n\n/* Questions\n--===================================================-- */\nexport const questionKindOptions = [\n { value: \"text_short\", label: \"Short answer\" },\n { value: \"text_long\", label: \"Long answer\" },\n { value: \"single_select\", label: \"Multiple-choice (single select)\" },\n { value: \"multi_select\", label: \"Multiple-choice (multi select)\" },\n { value: \"file_upload\", label: \"File upload\" },\n];\n\nexport const questionKindNames = (name) => {\n const option = findSelectOptionByValue(questionKindOptions, name);\n return option ? option.label : \"---\";\n};\n\n/* Default Job Form Settings\n--===================================================-- */\nexport const defaultJobSettings = {\n firstName: \"required\",\n lastName: \"required\",\n email: \"required\",\n phone: \"optional\",\n location: \"optional\",\n coverLetter: \"optional\",\n linkedinUrl: \"hidden\",\n githubUrl: \"hidden\",\n twitterUrl: \"hidden\",\n dribbbleUrl: \"hidden\",\n websiteUrl: \"hidden\",\n resume: \"required\",\n};\n\nexport const jobSettingOptions = [\n {\n value: \"required\",\n label: \"Required\",\n note: \"Candidates must fill this out\",\n },\n { value: \"optional\", label: \"Optional\", note: \"This field is optional\" },\n {\n value: \"hidden\",\n label: \"Hidden\",\n note: \"Candidates will not see this field\",\n },\n];\n\nexport const questionVisibilityOptions = [\n {\n value: \"visibility_public\",\n label: \"Entire hiring team\",\n note: \"Everyone on the hiring team and assigned interviewers can view the answer to this question\",\n },\n {\n value: \"visibility_private\",\n label: \"Admin only\",\n note: \"Only admins can view the answer to this question\",\n },\n];\n\nexport const jobSettingNames = (name) => {\n const option = findSelectOptionByValue(jobSettingOptions, name);\n return option ? option.label : \"---\";\n};\n\n/* careerNavigationOptions\n--===================================================-- */\nexport const careerNavigationOptions = [\n { value: false, label: \"Default\" },\n { value: true, label: \"Custom URL\" },\n];\n\nexport const careerNavigationNames = (name) => {\n const option = findSelectOptionByValue(careerNavigationOptions, name);\n return option ? option.label : \"---\";\n};\n\n/* jobBoardBrandingOptions\n--===================================================-- */\n\nexport const jobBoardLogoVisibilityOptions = [\n { value: \"logo_visibility_both_logo_and_name\", label: \"Show logo and name\" },\n { value: \"logo_visibility_logo_only\", label: \"Show logo only\" },\n { value: \"logo_visibility_name_only\", label: \"Show name only\" },\n];\n\nexport const socialShareImageTypeOptions = [\n { value: \"social_share_image_type_default\", label: \"Default\" },\n { value: \"social_share_image_type_custom\", label: \"Custom\" },\n { value: \"social_share_image_type_none\", label: \"None\" },\n];\n\nexport const jobOverrideSocialShareImageTypeOptions = [\n { value: \"default\", label: \"Default\" },\n { value: \"custom\", label: \"Custom\" },\n { value: \"none\", label: \"None\" },\n];\n\nexport const billboardMediaTypeOptions = [\n { value: \"billboard_media_type_none\", label: \"None\" },\n { value: \"billboard_media_type_image\", label: \"Image\" },\n { value: \"billboard_media_type_video\", label: \"Video\" },\n];\n\n// User - Roles\nexport const userRoleOptions = [\n {\n value: \"org_admin\",\n label: \"Admin\",\n roleAbilities:\n \"Admins can access all jobs, create jobs, assign members to jobs, invite new members, and change member roles.\",\n },\n {\n value: \"org_user\",\n label: \"Member\",\n roleAbilities:\n \"Members can only access jobs they have been assigned to. They cannot create jobs or invite new members.\",\n },\n {\n value: \"org_interviewer\",\n label: \"Interviewer\",\n roleAbilities:\n \"Interviewers can only submit candidate reviews. They can only access candidate information via the Review Kit\",\n },\n];\n\nexport const userRoleNames = (name) => {\n const option = findSelectOptionByValue(userRoleOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - Kind\nexport const jobKindOptions = [\n { value: \"full_time\", label: \"Full-time\" },\n { value: \"part_time\", label: \"Part-time\" },\n { value: \"part_time_or_full_time\", label: \"Part-time or Full-time\" },\n { value: \"temporary\", label: \"Temporary\" },\n { value: \"contract\", label: \"Contract\" },\n { value: \"internship\", label: \"Internship\" },\n { value: \"volunteer\", label: \"Volunteer\" },\n { value: \"other\", label: \"Other\" },\n];\n\nexport const jobKindNames = (name) => {\n const option = findSelectOptionByValue(jobKindOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - Category\nexport const jobCategoryOptions = [\n { value: \"category_sales_and_marketing\", label: \"Sales & Marketing\" },\n { value: \"category_design_and_ux\", label: \"Design & User Experience\" },\n { value: \"category_product_management\", label: \"Product Management\" },\n { value: \"category_customer_and_community\", label: \"Customer & Community\" },\n { value: \"category_content_and_copywriting\", label: \"Content & Copywriting\" },\n { value: \"category_software_development\", label: \"Software Development\" },\n { value: \"category_devops_and_sysadmin\", label: \"Dev Ops & Sysadmin\" },\n { value: \"category_operations_and_finance\", label: \"Operations & Finance\" },\n { value: \"category_quality_assurance\", label: \"Quality Assurance\" },\n { value: \"category_hr_and_recruiting\", label: \"HR & Recruiting\" },\n { value: \"category_security\", label: \"Security\" },\n { value: \"category_other\", label: \"Other\" },\n];\n\nexport const jobCategoryNames = (name) => {\n const option = findSelectOptionByValue(jobCategoryOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - Status\nexport const jobStatusOptions = [\n { value: \"draft\", label: \"Draft\" },\n { value: \"published\", label: \"Published\" },\n { value: \"in_review\", label: \"In review\" },\n { value: \"status_archived\", label: \"Archived\" },\n];\n\nexport const jobStatusNames = (name) => {\n const option = findSelectOptionByValue(jobStatusOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Organization - Kind\nexport const organizationKindOptions = [\n { value: \"kind_claimed\", label: \"Claimed\" },\n { value: \"kind_wrk_managed\", label: \"Polymer Managed\" },\n { value: \"kind_scrapable\", label: \"Scrapable\" },\n];\n\nexport const organizationKindNames = (name) => {\n const option = findSelectOptionByValue(organizationKindOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Organization - Plan\nexport const organizationPlanOptions = [\n { value: \"plan_no_plan\", label: \"No Plan\" },\n { value: \"plan_simple_ats_free\", label: \"Free\" },\n { value: \"plan_simple_ats_paid\", label: \"Paid Unlimited Monthly\" },\n { value: \"plan_simple_ats_per_job\", label: \"Paid - Per Job\" },\n { value: \"plan_ats_tier_gemini\", label: \"Paid - Gemini\" },\n { value: \"plan_ats_tier_apollo\", label: \"Paid - Apollo\" },\n { value: \"plan_ats_tier_artemis\", label: \"Paid - Artemis\" },\n];\n\nexport const organizationPlanNames = (name) => {\n const option = findSelectOptionByValue(organizationPlanOptions, name);\n return option ? option.label : \"---\";\n};\n\nexport const adminOrganizationFlipperGroupOptions = [\n { value: \"flipper_group_all\", label: \"Default\" },\n { value: \"flipper_group_beta_testers\", label: \"Beta Testers\" },\n];\n\nexport const adminBooleanOptions = [\n { value: true, label: \"True\" },\n { value: false, label: \"False\" },\n];\n\nexport const adminFraudRatingOptions = [\n { value: \"none\", label: \"None\" },\n { value: \"low\", label: \"Low\" },\n { value: \"medium\", label: \"Medium\" },\n { value: \"high\", label: \"High\" },\n { value: \"definite\", label: \"Definite\" },\n];\n\n/* Interview - Venue\n--===================================================-- */\nexport const interviewVenueOptions = [\n { value: \"phone\", label: \"Phone\" },\n { value: \"video\", label: \"Video\" },\n { value: \"in_person\", label: \"In person\" },\n];\n\n/* Interview - Kind\n--===================================================-- */\nexport const interviewSynchronicityOptions = [\n { value: \"synchronous\", label: \"Live\" }, // Synchronous\n { value: \"asynchronous\", label: \"Take home\" }, // Asynchronous\n];\n\n// JobApplication - Stage\nexport const jobApplicationStageOptions = [\n { value: \"inbox\", label: \"Inbox\" },\n { value: \"application\", label: \"Application\" },\n { value: \"screen\", label: \"Screen\" },\n { value: \"interview\", label: \"Interview\" },\n { value: \"decide\", label: \"Decide\" },\n { value: \"offer\", label: \"Offer\" },\n];\n\nexport const interviewableJobApplicationStageOptions = [\n { value: \"screen\", label: \"Screen\" },\n { value: \"interview\", label: \"Interview\" },\n];\n\nexport const jobApplicationStageNames = (name) => {\n const option = findSelectOptionByValue(jobApplicationStageOptions, name);\n return option ? option.label : \"---\";\n};\n\n// JobApplication - Status\nexport const jobApplicationStatusOptions = [\n { value: \"status_in_process\", label: \"In process\" },\n { value: \"status_archived\", label: \"Archived\" },\n { value: \"status_hired\", label: \"Hired\" },\n];\n\nexport const jobApplicationStatusNames = (name) => {\n const option = findSelectOptionByValue(jobApplicationStatusOptions, name);\n return option ? option.label : \"---\";\n};\n\n// JobApplication - Archive Reason\nexport const jobApplicationArchiveReasonOptions = [\n { value: \"archive_position_filled\", label: \"Position filled\" },\n { value: \"archive_duplicate\", label: \"Duplicate\" },\n { value: \"archive_underqualified\", label: \"Underqualified\" },\n { value: \"archive_accepted_another_offer\", label: \"Accepted another offer\" },\n { value: \"archive_not_responding\", label: \"Not responding\" },\n { value: \"archive_not_interested\", label: \"Not interested\" },\n { value: \"archive_compensation\", label: \"Compensation\" },\n { value: \"archive_other\", label: \"Other\" },\n];\n\nexport const jobApplicationArchiveReasonNames = (name) => {\n const option = findSelectOptionByValue(jobApplicationArchiveReasonOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Scorecard\nexport const scorecardRatingOptions = [\n { value: \"strong_yes\", label: \"Strong yes\" },\n { value: \"weak_yes\", label: \"Weak yes\" },\n { value: \"weak_no\", label: \"Weak no\" },\n { value: \"strong_no\", label: \"Strong no\" },\n];\n\nexport const scorecardRatingNames = (name) => {\n const option = findSelectOptionByValue(scorecardRatingOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Interview\nexport const interviewStatusOptions = [\n { value: \"inactive\", label: \"Inactive\" },\n { value: \"active\", label: \"Open\" },\n { value: \"closed\", label: \"Closed\" },\n];\n\nexport const interviewStatusNames = (name) => {\n const option = findSelectOptionByValue(interviewStatusOptions, name);\n return option ? option.label : \"---\";\n};\n\n/* COUNTRY AND REGION DATA\n--===================================================-- */\n/* Country Data\n--===================================================-- */\nexport const countryOptions = () => {\n return countriesData.map((country) => {\n return { value: country.code, label: country.name };\n });\n};\n\n/* State/Region Data\n--===================================================-- */\nexport const unitedStatesOptions = () => {\n return usStatesData.map((state) => {\n return { value: state.code, label: state.name };\n });\n};\n\n// Organization - Remoteness\nexport const organizationRemotenessOptions = [\n // { value: \"remoteness_none\", label: \"No Remote\" },\n { value: \"remoteness_some\", label: \"Some remote\" },\n { value: \"remoteness_mostly\", label: \"Mostly remote\" },\n { value: \"remoteness_fully\", label: \"Fully distributed\" },\n];\n\nexport const organizationRemotenessNames = (name) => {\n const option = findSelectOptionByValue(organizationRemotenessOptions, name);\n return option ? option.label : \"---\";\n};\n\nexport const remoteRestrictionCountryResidencyIsRequiredNames = (name) => {\n const option = findSelectOptionByValue(yesOrNoOptions, name);\n return option ? option.label : \"---\";\n};\n\nexport const remoteRestrictionOverlapHoursIsRequiredNames = (name) => {\n const option = findSelectOptionByValue(yesOrNoOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - Remoteness\nexport const jobRemotenessOptions = [\n { value: \"remoteness_none\", label: \"No remote\" },\n { value: \"remoteness_optional\", label: \"Remote friendly\" },\n { value: \"remoteness_hybrid\", label: \"Hybrid\" },\n { value: \"remoteness_only\", label: \"Remote (only)\" },\n];\n\nexport const jobRemotenessNames = (name) => {\n const option = findSelectOptionByValue(jobRemotenessOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - applyThrough\nexport const applyThroughOptions = [\n { value: \"apply_through_hire\", label: \"Through a Polymer posting\" },\n { value: \"apply_through_third_party_ats\", label: \"Through your own link\" },\n];\n\nexport const applyThroughNames = (name) => {\n const option = findSelectOptionByValue(applyThroughOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - remoteRestrictionOverlapHours\nexport const remoteRestrictionOverlapHoursOptions = [\n { value: 1, label: \"1 hour\" },\n { value: 2, label: \"2 hours\" },\n { value: 3, label: \"3 hours\" },\n { value: 4, label: \"4 hours\" },\n { value: 5, label: \"5 hours\" },\n { value: 6, label: \"6 hours\" },\n { value: 7, label: \"7 hours\" },\n { value: 8, label: \"8 hours\" },\n];\n\nexport const remoteRestrictionOverlapHoursNames = (name) => {\n const option = findSelectOptionByValue(remoteRestrictionOverlapHoursOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Stripe\n\nexport const cardBrand = (brand) => {\n const cards = {\n amex: \"American Express\",\n diners: \"Diners\",\n discover: \"Discover\",\n jcb: \"JCB\",\n mastercard: \"Mastercard\",\n unionpay: \"Unionpay\",\n visa: \"Visa\",\n };\n\n return cards[brand] || \"Unknown\";\n};\n\n/* We Work Remotely WWR\n--===================================================-- */\nexport const wwrCategoryOptions = [\n { value: \"category_design\", label: \"Design\" },\n // { value: \"category_programming\", label: \"Programming\" },\n { value: \"category_fullstack_programming\", label: \"Full-Stack Programming\" },\n { value: \"category_frontend_programming\", label: \"Front-End Programming\" },\n { value: \"category_backend_programming\", label: \"Back-End Programming\" },\n { value: \"category_customer_support\", label: \"Customer Support\" },\n // { value: \"category_copywriting\", label: \"Copywriting\" },\n { value: \"category_devops_and_sysadmin\", label: \"DevOps and Sysadmin\" },\n { value: \"category_sales_and_marketing\", label: \"Sales and Marketing\" },\n {\n value: \"category_business_and_management\",\n label: \"Business, Management and Finance\",\n },\n { value: \"category_product\", label: \"Product\" },\n { value: \"category_all_other\", label: \"All Other Remote\" },\n // { value: \"category_finance_and_legal\", label: \"Finance & Legal\" },\n // { value: \"category_administrative\", label: \"Administrative\" },\n // { value: \"category_education\", label: \"Education\" },\n // {\n // value: \"category_translation_and_transcription\",\n // label: \"Translation & Transcription\",\n // },\n // { value: \"category_medical_and_health\", label: \"Medical/Health\" },\n];\n\nexport const wwrUpgradeCosts = {\n good: { price: \"59\", total: \"358\" },\n better: { price: \"99\", total: \"398\" },\n best: { price: \"149\", total: \"448\" },\n};\n\n/* Polymer Job Fields\n--===================================================-- */\n// export const webflowJobFieldMappingOptions = [\n// { value: \"title\", label: \"Title\", type: \"PlainText\" },\n// { value: \"description\", label: \"Description\", type: \"RichText\" },\n// { value: \"kind\", label: \"Employment type\", type: \"PlainText\" },\n// { value: \"category\", label: \"Category\", type: \"PlainText\" },\n// // { value: \"department\", label: \"Department\" },\n// { value: \"location\", label: \"Location\", type: \"PlainText\" },\n// { value: \"remoteness\", label: \"Remote friendliness\", type: \"PlainText\" },\n// { value: \"publishedAt\", label: \"Published at\", type: \"DateTime\" },\n// { value: \"applicationUrl\", label: \"Application form URL\", type: \"Link\" },\n// ];\nexport const webflowJobFieldMappingOptions = (isApiV2) => {\n const dateTimeType = isApiV2 ? \"DateTime\" : \"Date\";\n return [\n { value: \"title\", label: \"Title\", type: \"PlainText\" },\n { value: \"description\", label: \"Description\", type: \"RichText\" },\n { value: \"kind\", label: \"Employment type\", type: \"PlainText\" },\n { value: \"category\", label: \"Category\", type: \"PlainText\" },\n // { value: \"department\", label: \"Department\" },\n { value: \"location\", label: \"Location\", type: \"PlainText\" },\n { value: \"remoteness\", label: \"Remote friendliness\", type: \"PlainText\" },\n { value: \"publishedAt\", label: \"Published at\", type: dateTimeType },\n { value: \"applicationUrl\", label: \"Application form URL\", type: \"Link\" },\n ];\n};\n\n/* Review Rating Options\n--===================================================-- */\nexport const reviewRatingOptions = [\n { label: \"Strong yes\", value: \"strong_yes\" },\n { label: \"Weak yes\", value: \"weak_yes\" },\n { label: \"Weak no\", value: \"weak_no\" },\n { label: \"Strong no\", value: \"strong_no\" },\n { label: \"No rating\", value: \"opt_out\" },\n];\n\nexport const salaryUnitOptions = [\n { label: \"Hourly\", value: \"HOUR\" },\n { label: \"Daily\", value: \"DAY\" },\n { label: \"Weekly\", value: \"WEEK\" },\n { label: \"Monthly\", value: \"MONTH\" },\n { label: \"Yearly\", value: \"YEAR\" },\n];\n\nexport const salaryCurrencyCodeOptions = currencyCodes.map((code) => ({\n label: code.code,\n value: code.code,\n}));\n\nexport const localeCodeOptions = [\n { label: \"English (en)\", value: \"en\" },\n { label: \"Dutch (de)\", value: \"de\" },\n { label: \"Swedish (se)\", value: \"se\" }, \n];\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","import React, { Component } from \"react\";\n\nimport isEmpty from \"lodash/isEmpty\";\nimport isArray from \"lodash/isArray\";\nimport isObject from \"lodash/isObject\";\nimport lowerCase from \"lodash/lowerCase\";\nimport upperFirst from \"lodash/upperFirst\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { prettyErrorsArray } from \"@shared/lib/formHelpers\";\n\nclass FormContainer extends Component {\n static displayName = \"FormContainer\";\n\n formErrors = (errors) => {\n if (errors && isArray(errors) && !isEmpty(errors)) {\n return this.handleErrorsArray(errors);\n } else if (errors && isObject(errors) && !isEmpty(errors)) {\n return this.handleErrorsObject(errors);\n }\n };\n\n /* Likely used to handle Joi errors\n --===================================================-- */\n handleErrorsArray = (errors) => {\n return errors.map((error, index) => {\n const key = error.context ? error.context.key : error.key;\n const keyRegex = error.context ? new RegExp(`\"${key}\" `, \"gi\") : new RegExp(`${key} `, \"gi\");\n const message = error.message ? error.message.replace(keyRegex, \"\") : error;\n return
  • {`${upperFirst(lowerCase(key))} ${message}`}
  • ;\n });\n };\n\n /* Likely Used to handle Rails and Yup errors\n --===================================================-- */\n handleErrorsObject = (errors) => {\n let groupErrorText;\n if (errors && errors.customQuestionsErrors && !isEmpty(errors.customQuestionsErrors)) {\n return
  • Questions are missing a response
  • ;\n } else {\n return prettyErrorsArray(errors).map((error, index) => {\n return
  • {error}
  • ;\n });\n }\n };\n\n // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to LogProps as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n // return React.forwardRef((props, ref) => {\n // return ;\n // });\n\n render() {\n // window.logger(\"%c[FormContainer] props\", \"color: #1976D2\", this.props);\n const { id, children, buttons, errors, onSubmit, className } = this.props;\n const formErrors = this.formErrors(errors);\n\n return (\n
    \n {children}\n\n {formErrors ? (\n \n Form Errors:\n {formErrors}\n \n ) : null}\n\n {buttons && {buttons}}\n
    \n );\n }\n}\n\nexport default FormContainer;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.ErrorsContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormContainer_ErrorsContainer;\n ${[t.p(2), t.my(6), t.rounded.sm]}\n border: 1px solid ${t.dark ? t.color.red[400] : t.color.red[600]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.red[100]};\n color: ${t.dark ? t.color.red[400] : t.color.red[600]};\n\n ${t.mq[\"md\"]} {\n ${[t.px(2), t.py(1)]}\n }\n `;\n});\n\nStyled.ErrorsLabel = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: FormContainer_ErrorsLabel;\n ${[t.text.sm, t.text.medium]}\n\n ${t.mq[\"md\"]} {\n ${t.text.xs}\n }\n `;\n});\n\nStyled.ErrorsList = styled.ul((props) => {\n const t: any = props.theme;\n return css`\n label: FormContainer_ErrorsList;\n ${[t.text.base, t.mt(1), t.pl(6)]}\n list-style-type: disc;\n li {\n ${t.mb(1)}\n }\n\n ${t.mq[\"md\"]} {\n ${t.text.sm}\n }\n `;\n});\n\nStyled.Buttons = styled.ul((props) => {\n const t: any = props.theme;\n return css`\n label: FormContainer_Buttons;\n ${t.mt(10)}\n\n ${t.mq[\"md\"]} {\n ${t.mt(8)}\n }\n `;\n});\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","import { dynamicRequire, isNodeEnv } from './node';\nimport { snipLine } from './string';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\n\nexport function getGlobalObject() {\n return isNodeEnv() ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : fallbackGlobalObject;\n}\n/**\n * Determines if running in react native\n */\n\nexport function isReactNative() {\n var _a;\n\n return ((_a = getGlobalObject().navigator) === null || _a === void 0 ? void 0 : _a.product) === 'ReactNative';\n}\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\n\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr); // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n\n arr[3] = arr[3] & 0xfff | 0x4000; // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n\n arr[4] = arr[4] & 0x3fff | 0x8000;\n\n var pad = function pad(num) {\n var v = num.toString(16);\n\n while (v.length < 4) {\n v = \"0\" + v;\n }\n\n return v;\n };\n\n return 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 } // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n\n\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = Math.random() * 16 | 0; // eslint-disable-next-line no-bitwise\n\n var v = c === 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\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 */\n\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n } // coerce to undefined values to empty string so we don't get 'undefined'\n\n\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment\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 */\n\nexport function getEventDescription(event) {\n if (event.message) {\n return event.message;\n }\n\n if (event.exception && event.exception.values && event.exception.values[0]) {\n var exception = event.exception.values[0];\n\n if (exception.type && exception.value) {\n return exception.type + \": \" + exception.value;\n }\n\n return exception.type || exception.value || event.event_id || '';\n }\n\n return event.event_id || '';\n}\n/** JSDoc */\n\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n var levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n\n if (!('console' in global)) {\n return callback();\n } // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n\n var originalConsole = global.console;\n var wrappedLevels = {}; // Restore all wrapped console methods\n\n levels.forEach(function (level) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (level in global.console && originalConsole[level].__sentry_original__) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalConsole[level].__sentry_original__;\n }\n }); // Perform callback manipulations\n\n var result = callback(); // Revert restoration to wrapped state\n\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n return result;\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 */\n\nexport function addExceptionTypeValue(event, value, type) {\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 * Adds exception mechanism to a given event.\n * @param event The event to modify.\n * @param mechanism Mechanism of the mechanism.\n * @hidden\n */\n\nexport function addExceptionMechanism(event, mechanism) {\n if (mechanism === void 0) {\n mechanism = {};\n } // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better?\n\n\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(function (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) {// no-empty\n }\n}\n/**\n * A safe form of location.href\n */\n\nexport function getLocationHref() {\n try {\n return document.location.href;\n } catch (oO) {\n return '';\n }\n}\nvar INITIAL_TIME = Date.now();\nvar prevNow = 0;\nvar performanceFallback = {\n now: function now() {\n var now = Date.now() - INITIAL_TIME;\n\n if (now < prevNow) {\n now = prevNow;\n }\n\n prevNow = now;\n return now;\n },\n timeOrigin: INITIAL_TIME\n};\n/**\n * Performance wrapper for react native as performance.now() has been found to start off with an unusual offset.\n */\n\nfunction getReactNativePerformanceWrapper() {\n // Performance only available >= RN 0.63\n var performance = getGlobalObject().performance;\n\n if (performance && typeof performance.now === 'function') {\n var INITIAL_OFFSET_1 = performance.now();\n return {\n now: function now() {\n return performance.now() - INITIAL_OFFSET_1;\n },\n timeOrigin: INITIAL_TIME\n };\n }\n\n return performanceFallback;\n}\n\nexport var crossPlatformPerformance = function () {\n // React Native's performance.now() starts with a gigantic offset, so we need to wrap it.\n if (isReactNative()) {\n return getReactNativePerformanceWrapper();\n }\n\n if (isNodeEnv()) {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks');\n return perfHooks.performance;\n } catch (_) {\n return performanceFallback;\n }\n }\n\n var performance = getGlobalObject().performance;\n\n if (!performance || !performance.now) {\n return performanceFallback;\n } // Polyfill for performance.timeOrigin.\n //\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n\n\n if (performance.timeOrigin === undefined) {\n // As of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always a\n // valid fallback. In the absence of a initial time provided by the browser, fallback to INITIAL_TIME.\n // @ts-ignore ignored because timeOrigin is a readonly property but we want to override\n // eslint-disable-next-line deprecation/deprecation\n performance.timeOrigin = performance.timing && performance.timing.navigationStart || INITIAL_TIME;\n }\n\n return performance;\n}();\n/**\n * Returns a timestamp in seconds with milliseconds precision since the UNIX epoch calculated with the monotonic clock.\n */\n\nexport function timestampWithMs() {\n return (crossPlatformPerformance.timeOrigin + crossPlatformPerformance.now()) / 1000;\n} // https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\n\nvar 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 * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\n\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var 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}\nvar 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 */\n\nexport function parseRetryAfterHeader(now, header) {\n if (!header) {\n return defaultRetryAfter;\n }\n\n var headerDelay = parseInt(\"\" + header, 10);\n\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n var headerDate = Date.parse(\"\" + header);\n\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return defaultRetryAfter;\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 */\n\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) {\n linesOfContext = 5;\n }\n\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines.slice(Math.max(0, sourceLine - linesOfContext), sourceLine).map(function (line) {\n return snipLine(line, 0);\n });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines.slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext).map(function (line) {\n return 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 */\n\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { consoleSandbox, getGlobalObject } from './misc'; // TODO: Implement different loggers for different environments\n\nvar global = getGlobalObject();\n/** Prefix for logging strings */\n\nvar PREFIX = 'Sentry Logger ';\n/** JSDoc */\n\nvar Logger =\n/** @class */\nfunction () {\n /** JSDoc */\n function Logger() {\n this._enabled = false;\n }\n /** JSDoc */\n\n\n Logger.prototype.disable = function () {\n this._enabled = false;\n };\n /** JSDoc */\n\n\n Logger.prototype.enable = function () {\n this._enabled = true;\n };\n /** JSDoc */\n\n\n Logger.prototype.log = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!this._enabled) {\n return;\n }\n\n consoleSandbox(function () {\n global.console.log(PREFIX + \"[Log]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n\n\n Logger.prototype.warn = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!this._enabled) {\n return;\n }\n\n consoleSandbox(function () {\n global.console.warn(PREFIX + \"[Warn]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n\n\n Logger.prototype.error = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!this._enabled) {\n return;\n }\n\n consoleSandbox(function () {\n global.console.error(PREFIX + \"[Error]: \" + args.join(' '));\n });\n };\n\n return Logger;\n}(); // Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\n\n\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nvar logger = global.__SENTRY__.logger || (global.__SENTRY__.logger = new Logger());\nexport { logger };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexports.__esModule = true;\nexports.Helmet = undefined;\n\nvar _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\nvar _createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactSideEffect = require(\"react-side-effect\");\n\nvar _reactSideEffect2 = _interopRequireDefault(_reactSideEffect);\n\nvar _deepEqual = require(\"deep-equal\");\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _HelmetUtils = require(\"./HelmetUtils.js\");\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n _inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n _classCallCheck(this, HelmetWrapper);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !(0, _deepEqual2[\"default\"])(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case _HelmetConstants.TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _extends2;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_extends2 = {}, _extends2[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _extends2));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _extends3, _extends4;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return _extends({}, newProps, (_extends3 = {}, _extends3[child.type] = nestedChildren, _extends3.titleAttributes = _extends({}, newChildProps), _extends3));\n\n case _HelmetConstants.TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case _HelmetConstants.TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_extends4 = {}, _extends4[child.type] = _extends({}, newChildProps), _extends4));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _extends5;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_extends5 = {}, _extends5[arrayChildName] = arrayTypeChildren[arrayChildName], _extends5));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!_HelmetConstants.VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return (0, _HelmetUtils.warn)(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return (0, _HelmetUtils.warn)(\"Only elements types \" + _HelmetConstants.VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n _react2[\"default\"].Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = _objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = (0, _HelmetUtils.convertReactPropstoHtmlAttributes)(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.LINK:\n case _HelmetConstants.TAG_NAMES.META:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = _objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return _react2[\"default\"].createElement(Component, newProps);\n };\n\n _createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n\n return HelmetWrapper;\n }(_react2[\"default\"].Component), _class.propTypes = {\n base: _propTypes2[\"default\"].object,\n bodyAttributes: _propTypes2[\"default\"].object,\n children: _propTypes2[\"default\"].oneOfType([_propTypes2[\"default\"].arrayOf(_propTypes2[\"default\"].node), _propTypes2[\"default\"].node]),\n defaultTitle: _propTypes2[\"default\"].string,\n defer: _propTypes2[\"default\"].bool,\n encodeSpecialCharacters: _propTypes2[\"default\"].bool,\n htmlAttributes: _propTypes2[\"default\"].object,\n link: _propTypes2[\"default\"].arrayOf(_propTypes2[\"default\"].object),\n meta: _propTypes2[\"default\"].arrayOf(_propTypes2[\"default\"].object),\n noscript: _propTypes2[\"default\"].arrayOf(_propTypes2[\"default\"].object),\n onChangeClientState: _propTypes2[\"default\"].func,\n script: _propTypes2[\"default\"].arrayOf(_propTypes2[\"default\"].object),\n style: _propTypes2[\"default\"].arrayOf(_propTypes2[\"default\"].object),\n title: _propTypes2[\"default\"].string,\n titleAttributes: _propTypes2[\"default\"].object,\n titleTemplate: _propTypes2[\"default\"].string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = (0, _HelmetUtils.mapStateOnServer)({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = (0, _reactSideEffect2[\"default\"])(_HelmetUtils.reducePropsToState, _HelmetUtils.handleClientStateChange, _HelmetUtils.mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexports.Helmet = HelmetExport;\nexports[\"default\"] = HelmetExport;","export * from '@react-spring/web';","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat) {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n\n case '[object Exception]':\n return true;\n\n case '[object DOMException]':\n return true;\n\n default:\n return isInstanceOf(wat, Error);\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 */\n\nexport function isErrorEvent(wat) {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\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 */\n\nexport function isDOMError(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\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 */\n\nexport function isDOMException(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\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 */\n\nexport function isString(wat) {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n/**\n * Checks whether given value's is a primitive (undefined, null, number, boolean, string)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\nexport function isPrimitive(wat) {\n return wat === null || _typeof(wat) !== 'object' && typeof wat !== 'function';\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 */\n\nexport function isPlainObject(wat) {\n return Object.prototype.toString.call(wat) === '[object Object]';\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 */\n\nexport function isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\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 */\n\nexport function isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\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 */\n\nexport function isRegExp(wat) {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\n\nexport function isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\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 */\n\nexport function isSyntheticEvent(wat) {\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 */\n\nexport function isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}","import React from \"react\"; // eslint-disable-line\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n// import { useTheme } from \"@emotion/react\";\nimport { useTransition, animated } from \"react-spring\";\nimport { useHotkeys } from \"react-hotkeys-hook\";\n\nimport ModalBackdrop from \"@ats/src/components/modals/ModalBackdrop\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\ntype Props = {\n headerTitleText: string;\n onCancel: (event?: any) => void;\n children: any;\n isVisible?: boolean;\n hasUnsavedChanges?: boolean;\n};\n\nexport default function CenterModal(props: Props) {\n // const [isVisible, setIsVisible] = React.useState(true);\n const { headerTitleText, children, onCancel, hasUnsavedChanges } = props;\n const { animationCompleteCallback, isVisible } = useModalContext();\n\n // const theme = useTheme();\n\n // window.logger(\"%c[CenterModal] RENDER\", \"background-color: #c45af5\", { ...props });\n\n const checkUnsavedChanges = React.useCallback(() => {\n if (!hasUnsavedChanges) {\n onCancel();\n }\n }, [hasUnsavedChanges]);\n\n /* HOTKEYS\n --===================================================-- */\n useHotkeys(\n \"esc\",\n (event) => {\n event.preventDefault();\n event.stopPropagation();\n checkUnsavedChanges();\n return false;\n },\n {},\n [hasUnsavedChanges],\n );\n\n const handleBackgroundClick = (event) => {\n event.stopPropagation();\n checkUnsavedChanges();\n };\n\n const handleAnimationDone = () => {\n // window.logger(\n // \"%c[CenterModal] handleAnimationDone\",\n // \"background-color: #afcdeb; color: #a10b0b\",\n // {\n // animationCompleteCallback,\n // },\n // );\n if (animationCompleteCallback != undefined) {\n animationCompleteCallback();\n }\n };\n\n const transitions = useTransition(isVisible, {\n from: {\n opacity: 0,\n transform: \"scale(1.05)\",\n },\n enter: {\n opacity: 1,\n transform: \"scale(1)\",\n },\n leave: {\n opacity: 0,\n transform: \"scale(1.05),\",\n },\n config: {\n tension: 480,\n clamp: true,\n },\n onDestroyed: handleAnimationDone,\n });\n\n // window.logger(\"%c[CenterModal] RENDER\", \"background-color: #93bce5; color: red\", {\n // transitions,\n // isVisible,\n // });\n\n return (\n \n \n\n {transitions(\n (props, item) =>\n item && (\n \n {headerTitleText}\n {children}\n \n ),\n )}\n \n );\n}\n\nCenterModal.defaultProps = {\n isVisible: true,\n hasUnsavedChanges: false,\n};\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div`\n label: CenterModal;\n display: flex;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 100;\n justify-content: center;\n align-items: center;\n overflow-y: auto;\n`;\n\nStyled.Content = styled(animated.div)((props) => {\n const t: any = props.theme;\n return css`\n label: CenterModal_Content;\n ${[t.p(4)]}\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n width: 32rem;\n z-index: 20;\n max-height: 100%;\n overflow-y: auto;\n\n ${t.mq[\"md\"]} {\n ${[t.rounded.md, t.p(6)]}\n overflow-y: visible;\n max-height: none;\n }\n\n > p {\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n\n a {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n }\n `;\n});\n\nStyled.Title = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CenterModal_Title;\n ${[t.text.h2, t.mb(2), t.mt(\"-px\")]}\n line-height: 1.4;\n `;\n});\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Text from \"@shared/components/Text\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nexport default function FormSection(props) {\n const { id, title, intro, children } = props;\n return (\n \n {title !== undefined && (\n \n {title}\n {intro ?

    {intro}

    : null}\n
    \n )}\n {children}\n
    \n );\n}\n\nFormSection.propTypes = {\n children: PropTypes.any,\n title: PropTypes.string,\n intro: PropTypes.element,\n};\n\nFormSection.defaultProps = {};\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Container = styled.div`\n margin-top: 24px;\n margin-bottom: 32px;\n`;\n\nStyled.Intro = styled.div`\n margin-bottom: 16px;\n color: ${(props) => props.theme.poly.color.primaryText};\n p {\n margin-top: 8px;\n color: ${(props) => props.theme.poly.color.secondaryText};\n }\n`;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nconst FormLabel = (props) => {\n return (\n \n \n \n {props.isRequired && ({props.requiredLabel})}\n \n {props.error && {props.error}}\n \n );\n};\n\nFormLabel.propTypes = {\n label: PropTypes.string,\n for: PropTypes.string,\n isRequired: PropTypes.bool,\n error: PropTypes.string,\n requiredLabel: PropTypes.string,\n};\n\nFormLabel.defaultProps = {\n requiredLabel: \"required\",\n};\n\nexport default FormLabel;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Container = styled.div`\n label: FormLabel;\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n`;\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormLabel_Label;\n ${[t.text.sm, t.text.bold]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n display: inline-block;\n line-height: 1.4;\n margin-bottom: 0.375rem;\n\n ${t.mq[\"md\"]} {\n ${[t.text.xs]}\n }\n `;\n});\n\nStyled.RequiredLabel = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: FormLabel_RequiredLabel;\n ${[t.text.normal, t.ml(1)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n\nStyled.Error = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormLabel_Error;\n ${t.text.sm}\n color: ${t.dark ? t.color.red[400] : t.color.red[600]};\n\n ${t.mq[\"md\"]} {\n ${[t.text.xs]}\n }\n `;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* 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","import { getCurrentHub } from '@sentry/hub';\nexport var TRACEPARENT_REGEXP = new RegExp('^[ \\\\t]*' + // whitespace\n'([0-9a-f]{32})?' + // trace_id\n'-?([0-9a-f]{16})?' + // span_id\n'-?([01])?' + // sampled\n'[ \\\\t]*$');\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\n\nexport function hasTracingEnabled(options) {\n return 'tracesSampleRate' in options || 'tracesSampler' in options;\n}\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\n\nexport function extractTraceparentData(traceparent) {\n var matches = traceparent.match(TRACEPARENT_REGEXP);\n\n if (matches) {\n var parentSampled = void 0;\n\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n\n return {\n traceId: matches[1],\n parentSampled: parentSampled,\n parentSpanId: matches[2]\n };\n }\n\n return undefined;\n}\n/** Grabs active transaction off scope, if any */\n\nexport function getActiveTransaction(hub) {\n if (hub === void 0) {\n hub = getCurrentHub();\n }\n\n var _a, _b;\n\n return (_b = (_a = hub) === null || _a === void 0 ? void 0 : _a.getScope()) === null || _b === void 0 ? void 0 : _b.getTransaction();\n}\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\n\nexport function msToSec(time) {\n return time / 1000;\n}\n/**\n * Converts from seconds to milliseconds\n * @param time time in seconds\n */\n\nexport function secToMs(time) {\n return time * 1000;\n} // so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\n\nexport { stripUrlQueryAndFragment } from '@sentry/utils';","import { ActionTypes } from './types.js'; // xstate-specific action types\n\nvar start = ActionTypes.Start;\nvar stop = ActionTypes.Stop;\nvar raise = ActionTypes.Raise;\nvar send = ActionTypes.Send;\nvar cancel = ActionTypes.Cancel;\nvar nullEvent = ActionTypes.NullEvent;\nvar assign = ActionTypes.Assign;\nvar after = ActionTypes.After;\nvar doneState = ActionTypes.DoneState;\nvar log = ActionTypes.Log;\nvar init = ActionTypes.Init;\nvar invoke = ActionTypes.Invoke;\nvar errorExecution = ActionTypes.ErrorExecution;\nvar errorPlatform = ActionTypes.ErrorPlatform;\nvar error = ActionTypes.ErrorCustom;\nvar update = ActionTypes.Update;\nvar pure = ActionTypes.Pure;\nexport { after, assign, cancel, doneState, error, errorExecution, errorPlatform, init, invoke, log, nullEvent, pure, raise, send, start, stop, update };","import React, { isValidElement, cloneElement, createContext, useRef, useState, useCallback, useEffect, useMemo } from 'react';\nexport { default as warning } from 'warning';\n/* eslint-disable no-restricted-globals, eqeqeq */\n\n/**\r\n * React currently throws a warning when using useLayoutEffect on the server.\r\n * To get around it, we can conditionally useEffect on the server (no-op) and\r\n * useLayoutEffect in the browser. We occasionally need useLayoutEffect to\r\n * ensure we don't get a render flash for certain operations, but we may also\r\n * need affected components to render on the server. One example is when setting\r\n * a component's descendants to retrieve their index values.\r\n *\r\n * Important to note that using this hook as an escape hatch will break the\r\n * eslint dependency warnings unless you rename the import to `useLayoutEffect`.\r\n * Use sparingly only when the effect won't effect the rendered HTML to avoid\r\n * any server/client mismatch.\r\n *\r\n * If a useLayoutEffect is needed and the result would create a mismatch, it's\r\n * likely that the component in question shouldn't be rendered on the server at\r\n * all, so a better approach would be to lazily render those in a parent\r\n * component after client-side hydration.\r\n *\r\n * TODO: We are calling useLayoutEffect in a couple of places that will likely\r\n * cause some issues for SSR users, whether the warning shows or not. Audit and\r\n * fix these.\r\n *\r\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\r\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\r\n *\r\n * @param effect\r\n * @param deps\r\n */\n\nvar useIsomorphicLayoutEffect = /*#__PURE__*/canUseDOM() ? React.useLayoutEffect : React.useEffect;\nvar checkedPkgs = {};\n/**\r\n * When in dev mode, checks that styles for a given @reach package are loaded.\r\n *\r\n * @param packageName Name of the package to check.\r\n * @example checkStyles(\"dialog\") will check for styles for @reach/dialog\r\n */\n// @ts-ignore\n\nvar checkStyles = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n // In CJS files, process.env.NODE_ENV is stripped from our build, but we need\n // it to prevent style checks from clogging up user logs while testing.\n // This is a workaround until we can tweak the build a bit to accommodate.\n var _ref = typeof process !== \"undefined\" ? process : {\n env: {\n NODE_ENV: \"development\"\n }\n },\n env = _ref.env;\n\n checkStyles = function checkStyles(packageName) {\n // only check once per package\n if (checkedPkgs[packageName]) return;\n checkedPkgs[packageName] = true;\n\n if (env.NODE_ENV !== \"test\" && parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--reach-\" + packageName), 10) !== 1) {\n console.warn(\"@reach/\" + packageName + \" styles not found. If you are using a bundler like webpack or parcel include this in the entry file of your app before any of your own styles:\\n\\n import \\\"@reach/\" + packageName + \"/styles.css\\\";\\n\\n Otherwise you'll need to include them some other way:\\n\\n \\n\\n For more information visit https://ui.reach.tech/styling.\\n \");\n }\n };\n}\n/**\r\n * Ponyfill for the global object in some environments.\r\n *\r\n * @link https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\r\n */\n\n\nvar ponyfillGlobal = typeof window != \"undefined\" && window.Math == Math ? window : typeof self != \"undefined\" && self.Math == Math ? self :\n/*#__PURE__*/\n// eslint-disable-next-line no-new-func\nFunction(\"return this\")();\n/**\r\n * Passes or assigns an arbitrary value to a ref function or object.\r\n *\r\n * @param ref\r\n * @param value\r\n */\n\nfunction assignRef(ref, value) {\n if (ref == null) return;\n\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(\"Cannot assign value \\\"\" + value + \"\\\" to ref \\\"\" + ref + \"\\\"\");\n }\n }\n}\n/**\r\n * Checks true|\"true\" vs false|\"false\"\r\n *\r\n * @param value\r\n */\n\n\nfunction boolOrBoolString(value) {\n return value === \"true\" ? true : isBoolean(value) ? value : false;\n}\n\nfunction canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n/**\r\n * Type-safe clone element\r\n *\r\n * @param element\r\n * @param props\r\n * @param children\r\n */\n\n\nfunction cloneValidElement(element, props) {\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n\n return isValidElement(element) ? cloneElement.apply(void 0, [element, props].concat(children)) : element;\n}\n\nfunction createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}\n/**\r\n * This is a hack for sure. The thing is, getting a component to intelligently\r\n * infer props based on a component or JSX string passed into an `as` prop is\r\n * kind of a huge pain. Getting it to work and satisfy the constraints of\r\n * `forwardRef` seems dang near impossible. To avoid needing to do this awkward\r\n * type song-and-dance every time we want to forward a ref into a component\r\n * that accepts an `as` prop, we abstract all of that mess to this function for\r\n * the time time being.\r\n */\n\n\nfunction forwardRefWithAs(render) {\n return React.forwardRef(render);\n}\n\nfunction memoWithAs(Component, propsAreEqual) {\n return React.memo(Component, propsAreEqual);\n}\n/**\r\n * Get the size of the working document minus the scrollbar offset.\r\n *\r\n * @param element\r\n */\n\n\nfunction getDocumentDimensions(element) {\n if (!canUseDOM()) return {\n width: 0,\n height: 0\n };\n var doc = element ? getOwnerDocument(element) : document;\n var win = element ? getOwnerWindow(element) : window;\n return {\n width: doc.documentElement.clientWidth || win.innerWidth,\n height: doc.documentElement.clientHeight || win.innerHeight\n };\n}\n/**\r\n * Get the scoll position of the global window object relative to a given node.\r\n *\r\n * @param element\r\n */\n\n\nfunction getScrollPosition(element) {\n if (!canUseDOM()) return {\n scrollX: 0,\n scrollY: 0\n };\n var win = element ? getOwnerWindow(element) : window;\n return {\n scrollX: win.scrollX,\n scrollY: win.scrollY\n };\n}\n/**\r\n * Get a computed style value by property, backwards compatible with IE\r\n * @param element\r\n * @param styleProp\r\n */\n\n\nfunction getElementComputedStyle(element, styleProp) {\n var y = null;\n var doc = getOwnerDocument(element);\n\n if (element.currentStyle) {\n y = element.currentStyle[styleProp];\n } else if (doc && doc.defaultView && isFunction(doc.defaultView.getComputedStyle)) {\n y = doc.defaultView.getComputedStyle(element, null).getPropertyValue(styleProp);\n }\n\n return y;\n}\n/**\r\n * Get an element's owner document. Useful when components are used in iframes\r\n * or other environments like dev tools.\r\n *\r\n * @param element\r\n */\n\n\nfunction getOwnerDocument(element) {\n return element && element.ownerDocument ? element.ownerDocument : canUseDOM() ? document : null;\n}\n\nfunction getOwnerWindow(element) {\n var doc = element ? getOwnerDocument(element) : null;\n return doc ? doc.defaultView || window : null;\n}\n/**\r\n * Get the scrollbar offset distance.\r\n *\r\n * TODO: Remove in 1.0 (we used this in public examples)\r\n */\n\n\nfunction getScrollbarOffset() {\n try {\n if (window.innerWidth > document.documentElement.clientWidth) {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n } catch (err) {}\n\n return 0;\n}\n/**\r\n * Checks whether or not a value is a boolean.\r\n *\r\n * @param value\r\n */\n\n\nfunction isBoolean(value) {\n return typeof value === \"boolean\";\n}\n/**\r\n * Checks whether or not a value is a function.\r\n *\r\n * @param value\r\n */\n\n\nfunction isFunction(value) {\n return !!(value && {}.toString.call(value) == \"[object Function]\");\n}\n/**\r\n * Checks whether or not a value is a number.\r\n *\r\n * @param value\r\n */\n\n\nfunction isNumber(value) {\n return typeof value === \"number\";\n}\n/**\r\n * Detects right clicks\r\n *\r\n * @param nativeEvent\r\n */\n\n\nfunction isRightClick(nativeEvent) {\n return nativeEvent.which === 3 || nativeEvent.button === 2;\n}\n/**\r\n * Checks whether or not a value is a string.\r\n *\r\n * @param value\r\n */\n\n\nfunction isString(value) {\n return typeof value === \"string\";\n}\n/**\r\n * Joins strings to format IDs for compound components.\r\n *\r\n * @param args\r\n */\n\n\nfunction makeId() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.filter(function (val) {\n return val != null;\n }).join(\"--\");\n}\n/**\r\n * No-op function.\r\n */\n\n\nfunction noop() {}\n/**\r\n * Convert our state strings for HTML data attributes.\r\n * No need for a fancy kebab-caser here, we know what our state strings are!\r\n *\r\n * @param state\r\n */\n\n\nfunction stateToAttributeString(state) {\n return String(state).replace(/([\\s_]+)/g, \"-\").toLowerCase();\n}\n/**\r\n * Check if a component is controlled or uncontrolled and return the correct\r\n * state value and setter accordingly. If the component state is controlled by\r\n * the app, the setter is a noop.\r\n *\r\n * @param controlledValue\r\n * @param defaultValue\r\n */\n\n\nfunction useControlledState(controlledValue, defaultValue) {\n var controlledRef = useRef(controlledValue != null);\n\n var _useState = useState(defaultValue),\n valueState = _useState[0],\n setValue = _useState[1];\n\n var set = useCallback(function (n) {\n if (!controlledRef.current) {\n setValue(n);\n }\n }, []);\n return [controlledRef.current ? controlledValue : valueState, set];\n}\n/**\r\n * Logs a warning in dev mode when a component switches from controlled to\r\n * uncontrolled, or vice versa\r\n *\r\n * A single prop should typically be used to determine whether or not a\r\n * component is controlled or not.\r\n *\r\n * @param controlledValue\r\n * @param controlledPropName\r\n * @param componentName\r\n */\n\n\nvar useControlledSwitchWarning = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n useControlledSwitchWarning = function useControlledSwitchWarning(controlledValue, controlledPropName, componentName) {\n var controlledRef = useRef(controlledValue != null);\n var nameCache = useRef({\n componentName: componentName,\n controlledPropName: controlledPropName\n });\n useEffect(function () {\n nameCache.current = {\n componentName: componentName,\n controlledPropName: controlledPropName\n };\n }, [componentName, controlledPropName]);\n useEffect(function () {\n var wasControlled = controlledRef.current;\n var _nameCache$current = nameCache.current,\n componentName = _nameCache$current.componentName,\n controlledPropName = _nameCache$current.controlledPropName;\n var isControlled = controlledValue != null;\n\n if (wasControlled !== isControlled) {\n console.error(\"A component is changing an \" + (wasControlled ? \"\" : \"un\") + \"controlled `\" + controlledPropName + \"` state of \" + componentName + \" to be \" + (wasControlled ? \"un\" : \"\") + \"controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled \" + componentName + \" element for the lifetime of the component.\\nMore info: https://fb.me/react-controlled-components\");\n }\n }, [controlledValue]);\n };\n}\n\nvar useCheckStyles = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n useCheckStyles = function useCheckStyles(pkg) {\n var name = useRef(pkg);\n useEffect(function () {\n return void (name.current = pkg);\n }, [pkg]);\n useEffect(function () {\n return checkStyles(name.current);\n }, []);\n };\n}\n/**\r\n * React hook for creating a value exactly once.\r\n * @see https://github.com/Andarist/use-constant\r\n */\n\n\nfunction useConstant(fn) {\n var ref = React.useRef();\n\n if (!ref.current) {\n ref.current = {\n v: fn()\n };\n }\n\n return ref.current.v;\n}\n/**\r\n * @param callback\r\n */\n\n\nfunction useEventCallback(callback) {\n var ref = useRef(callback);\n useIsomorphicLayoutEffect(function () {\n ref.current = callback;\n });\n return useCallback(function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return ref.current.apply(ref, [event].concat(args));\n }, []);\n}\n/**\r\n * @param callback\r\n */\n\n\nfunction useCallbackProp(callback) {\n var ref = useRef(callback);\n useEffect(function () {\n ref.current = callback;\n });\n return useCallback(function () {\n return ref.current && ref.current.apply(ref, arguments);\n }, []);\n}\n/**\r\n * Adds a DOM event listener\r\n *\r\n * @param eventName\r\n * @param listener\r\n * @param element\r\n */\n\n\nfunction useEventListener(eventName, listener, element) {\n if (element === void 0) {\n element = window;\n }\n\n var savedHandler = useRef(listener);\n useEffect(function () {\n savedHandler.current = listener;\n }, [listener]);\n useEffect(function () {\n var isSupported = element && element.addEventListener;\n\n if (!isSupported) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"Event listener not supported on the element provided\");\n }\n\n return;\n }\n\n function eventListener(event) {\n savedHandler.current(event);\n }\n\n element.addEventListener(eventName, eventListener);\n return function () {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n}\n/**\r\n * Detect when focus changes in our document.\r\n *\r\n * @param handleChange\r\n * @param when\r\n * @param ownerDocument\r\n */\n\n\nfunction useFocusChange(handleChange, when, ownerDocument) {\n if (handleChange === void 0) {\n handleChange = console.log;\n }\n\n if (when === void 0) {\n when = \"focus\";\n }\n\n if (ownerDocument === void 0) {\n ownerDocument = document;\n }\n\n var lastActiveElement = useRef(ownerDocument.activeElement);\n useEffect(function () {\n lastActiveElement.current = ownerDocument.activeElement;\n\n function onChange(event) {\n if (lastActiveElement.current !== ownerDocument.activeElement) {\n handleChange(ownerDocument.activeElement, lastActiveElement.current, event);\n lastActiveElement.current = ownerDocument.activeElement;\n }\n }\n\n ownerDocument.addEventListener(when, onChange, true);\n return function () {\n ownerDocument.removeEventListener(when, onChange);\n };\n }, [when, handleChange, ownerDocument]);\n}\n/**\r\n * Passes or assigns a value to multiple refs (typically a DOM node). Useful for\r\n * dealing with components that need an explicit ref for DOM calculations but\r\n * also forwards refs assigned by an app.\r\n *\r\n * @param refs Refs to fork\r\n */\n\n\nfunction useForkedRef() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return useMemo(function () {\n if (refs.every(function (ref) {\n return ref == null;\n })) {\n return null;\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n assignRef(ref, node);\n });\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [].concat(refs));\n}\n/**\r\n * Returns the previous value of a reference after a component update.\r\n *\r\n * @param value\r\n */\n\n\nfunction usePrevious(value) {\n var ref = useRef(null);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n/**\r\n * Call an effect after a component update, skipping the initial mount.\r\n *\r\n * @param effect Effect to call\r\n * @param deps Effect dependency list\r\n */\n\n\nfunction useUpdateEffect(effect, deps) {\n var mounted = useRef(false);\n useEffect(function () {\n if (mounted.current) {\n effect();\n } else {\n mounted.current = true;\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, deps);\n}\n/**\r\n * Just a lil state logger\r\n *\r\n * @param state\r\n * @param DEBUG\r\n */\n\n\nvar useStateLogger = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n useStateLogger = function useStateLogger(state, DEBUG) {\n if (DEBUG === void 0) {\n DEBUG = false;\n }\n\n var debugRef = useRef(DEBUG);\n useEffect(function () {\n debugRef.current = DEBUG;\n }, [DEBUG]);\n useEffect(function () {\n if (debugRef.current) {\n console.group(\"State Updated\");\n console.log(\"%c\" + state, \"font-weight: normal; font-size: 120%; font-style: italic;\");\n console.groupEnd();\n }\n }, [state]);\n };\n}\n/**\r\n * Wraps a lib-defined event handler and a user-defined event handler, returning\r\n * a single handler that allows a user to prevent lib-defined handlers from\r\n * firing.\r\n *\r\n * @param theirHandler User-supplied event handler\r\n * @param ourHandler Library-supplied event handler\r\n */\n\n\nfunction wrapEvent(theirHandler, ourHandler) {\n return function (event) {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\nexport { assignRef, boolOrBoolString, canUseDOM, checkStyles, cloneValidElement, createNamedContext, forwardRefWithAs, getDocumentDimensions, getElementComputedStyle, getOwnerDocument, getOwnerWindow, getScrollPosition, getScrollbarOffset, isBoolean, isFunction, isNumber, isRightClick, isString, makeId, memoWithAs, noop, ponyfillGlobal, stateToAttributeString, useCallbackProp, useCheckStyles, useConstant, useControlledState, useControlledSwitchWarning, useEventCallback, useEventListener, useFocusChange, useForkedRef, useIsomorphicLayoutEffect, usePrevious, useStateLogger, useUpdateEffect, wrapEvent };","import { useState, useEffect } from 'react';\nimport { useIsomorphicLayoutEffect } from '@reach/utils';\n/*\r\n * Welcome to @reach/auto-id!\r\n\n * Let's see if we can make sense of why this hook exists and its\r\n * implementation.\r\n *\r\n * Some background:\r\n * 1. Accessibiliy APIs rely heavily on element IDs\r\n * 2. Requiring developers to put IDs on every element in Reach UI is both\r\n * cumbersome and error-prone\r\n * 3. With a component model, we can generate IDs for them!\r\n *\r\n * Solution 1: Generate random IDs.\r\n *\r\n * This works great as long as you don't server render your app. When React (in\r\n * the client) tries to reuse the markup from the server, the IDs won't match\r\n * and React will then recreate the entire DOM tree.\r\n *\r\n * Solution 2: Increment an integer\r\n *\r\n * This sounds great. Since we're rendering the exact same tree on the server\r\n * and client, we can increment a counter and get a deterministic result between\r\n * client and server. Also, JS integers can go up to nine-quadrillion. I'm\r\n * pretty sure the tab will be closed before an app never needs\r\n * 10 quadrillion IDs!\r\n *\r\n * Problem solved, right?\r\n *\r\n * Ah, but there's a catch! React's concurrent rendering makes this approach\r\n * non-deterministic. While the client and server will end up with the same\r\n * elements in the end, depending on suspense boundaries (and possibly some user\r\n * input during the initial render) the incrementing integers won't always match\r\n * up.\r\n *\r\n * Solution 3: Don't use IDs at all on the server; patch after first render.\r\n *\r\n * What we've done here is solution 2 with some tricks. With this approach, the\r\n * ID returned is an empty string on the first render. This way the server and\r\n * client have the same markup no matter how wild the concurrent rendering may\r\n * have gotten.\r\n *\r\n * After the render, we patch up the components with an incremented ID. This\r\n * causes a double render on any components with `useId`. Shouldn't be a problem\r\n * since the components using this hook should be small, and we're only updating\r\n * the ID attribute on the DOM, nothing big is happening.\r\n *\r\n * It doesn't have to be an incremented number, though--we could do generate\r\n * random strings instead, but incrementing a number is probably the cheapest\r\n * thing we can do.\r\n *\r\n * Additionally, we only do this patchup on the very first client render ever.\r\n * Any calls to `useId` that happen dynamically in the client will be\r\n * populated immediately with a value. So, we only get the double render after\r\n * server hydration and never again, SO BACK OFF ALRIGHT?\r\n */\n\nvar serverHandoffComplete = false;\nvar id = 0;\n\nvar genId = function genId() {\n return ++id;\n};\n/**\r\n * useId\r\n *\r\n * Autogenerate IDs to facilitate WAI-ARIA and server rendering.\r\n *\r\n * Note: The returned ID will initially be `null` and will update after a\r\n * component mounts. Users may need to supply their own ID if they need\r\n * consistent values for SSR.\r\n *\r\n * @see Docs https://reacttraining.com/reach-ui/auto-id\r\n */\n\n\nvar useId = function useId(idFromProps) {\n /*\r\n * If this instance isn't part of the initial render, we don't have to do the\r\n * double render/patch-up dance. We can just generate the ID and return it.\r\n */\n var initialId = idFromProps || (serverHandoffComplete ? genId() : null);\n\n var _useState = useState(initialId),\n id = _useState[0],\n setId = _useState[1];\n\n useIsomorphicLayoutEffect(function () {\n if (id === null) {\n /*\r\n * Patch the ID after render. We do this in `useLayoutEffect` to avoid any\r\n * rendering flicker, though it'll make the first render slower (unlikely\r\n * to matter, but you're welcome to measure your app and let us know if\r\n * it's a problem).\r\n */\n setId(genId());\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n useEffect(function () {\n if (serverHandoffComplete === false) {\n /*\r\n * Flag all future uses of `useId` to skip the update dance. This is in\r\n * `useEffect` because it goes after `useLayoutEffect`, ensuring we don't\r\n * accidentally bail out of the patch-up dance prematurely.\r\n */\n serverHandoffComplete = true;\n }\n }, []);\n return id != null ? String(id) : undefined;\n};\n\nexport { useId };","import React, { useRef, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from '@reach/utils';\nimport { createPortal } from 'react-dom';\n/**\r\n * Welcome to @reach/portal!\r\n *\r\n * Creates and appends a DOM node to the end of `document.body` and renders a\r\n * React tree into it. Useful for rendering a natural React element hierarchy\r\n * with a different DOM hierarchy to prevent parent styles from clipping or\r\n * hiding content (for popovers, dropdowns, and modals).\r\n *\r\n * @see Docs https://reacttraining.com/reach-ui/portal\r\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/portal\r\n * @see React https://reactjs.org/docs/portals.html\r\n */\n\n/**\r\n * Portal\r\n *\r\n * @see Docs https://reacttraining.com/reach-ui/portal#portal\r\n */\n\nvar Portal = function Portal(_ref) {\n var children = _ref.children,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? \"reach-portal\" : _ref$type;\n var mountNode = useRef(null);\n var portalNode = useRef(null);\n\n var _useState = useState(),\n forceUpdate = _useState[1];\n\n useIsomorphicLayoutEffect(function () {\n // This ref may be null when a hot-loader replaces components on the page\n if (!mountNode.current) return; // It's possible that the content of the portal has, itself, been portaled.\n // In that case, it's important to append to the correct document element.\n\n var ownerDocument = mountNode.current.ownerDocument;\n portalNode.current = ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.createElement(type);\n ownerDocument.body.appendChild(portalNode.current);\n forceUpdate({});\n return function () {\n if (portalNode.current && portalNode.current.ownerDocument) {\n portalNode.current.ownerDocument.body.removeChild(portalNode.current);\n }\n };\n }, [type]);\n return portalNode.current ? createPortal(children, portalNode.current) : React.createElement(\"span\", {\n ref: mountNode\n });\n};\n\nif (process.env.NODE_ENV !== \"production\") {\n Portal.displayName = \"Portal\";\n}\n\nexport default Portal;","import React, { forwardRef } from 'react';\n/**\r\n * Welcome to @reach/visually-hidden!\r\n *\r\n * Provides text for screen readers that is visually hidden.\r\n * It is the logical opposite of the `aria-hidden` attribute.\r\n *\r\n * @see https://snook.ca/archives/html_and_css/hiding-content-for-accessibility\r\n * @see https://a11yproject.com/posts/how-to-hide-content/\r\n * @see Docs https://reacttraining.com/reach-ui/visually-hidden\r\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/visually-hidden\r\n */\n\n/**\r\n * VisuallyHidden\r\n *\r\n * Provides text for screen readers that is visually hidden.\r\n * It is the logical opposite of the `aria-hidden` attribute.\r\n */\n\nvar VisuallyHidden = /*#__PURE__*/forwardRef(function VisuallyHidden(props, ref) {\n return React.createElement(\"span\", Object.assign({\n ref: ref,\n style: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n }\n }, props));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n VisuallyHidden.displayName = \"VisuallyHidden\";\n}\n\nexport default VisuallyHidden;","var props = [\"bottom\", \"height\", \"left\", \"right\", \"top\", \"width\"];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes = /*#__PURE__*/new Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes[\"delete\"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\nexport default observeRect;","import { useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport observeRect from '@reach/observe-rect';\nimport { useIsomorphicLayoutEffect } from '@reach/utils';\n/**\r\n * Welcome to @reach/rect!\r\n *\r\n * Measures DOM elements (aka. bounding client rect).\r\n *\r\n * @see getBoundingClientRect https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect\r\n * @see Docs https://reacttraining.com/reach-ui/rect\r\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/rect\r\n */\n\n/**\r\n * Rect\r\n *\r\n * @param props\r\n */\n\nvar Rect = function Rect(_ref) {\n var onChange = _ref.onChange,\n _ref$observe = _ref.observe,\n observe = _ref$observe === void 0 ? true : _ref$observe,\n children = _ref.children;\n var ref = useRef(null);\n var rect = useRect(ref, observe, onChange);\n return children({\n ref: ref,\n rect: rect\n });\n};\n\nif (process.env.NODE_ENV !== \"production\") {\n Rect.displayName = \"Rect\";\n Rect.propTypes = {\n children: PropTypes.func.isRequired,\n observe: PropTypes.bool,\n onChange: PropTypes.func\n };\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * useRect\r\n *\r\n * @param nodeRef\r\n * @param observe\r\n * @param onChange\r\n */\n\n\nfunction useRect(nodeRef, observe, onChange) {\n if (observe === void 0) {\n observe = true;\n }\n\n var _useState = useState(nodeRef.current),\n element = _useState[0],\n setElement = _useState[1];\n\n var initialRectIsSet = useRef(false);\n var initialRefIsSet = useRef(false);\n\n var _useState2 = useState(null),\n rect = _useState2[0],\n setRect = _useState2[1];\n\n var onChangeRef = useRef();\n useIsomorphicLayoutEffect(function () {\n onChangeRef.current = onChange;\n\n if (nodeRef.current !== element) {\n setElement(nodeRef.current);\n }\n });\n useIsomorphicLayoutEffect(function () {\n if (element && !initialRectIsSet.current) {\n initialRectIsSet.current = true;\n setRect(element.getBoundingClientRect());\n }\n }, [element]);\n useIsomorphicLayoutEffect(function () {\n var observer;\n var elem = element; // State initializes before refs are placed, meaning the element state will\n // be undefined on the first render. We still want the rect on the first\n // render, so initially we'll use the nodeRef that was passed instead of\n // state for our measurements.\n\n if (!initialRefIsSet.current) {\n initialRefIsSet.current = true;\n elem = nodeRef.current;\n }\n\n if (!elem) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"You need to place the ref\");\n }\n\n return cleanup;\n }\n\n observer = observeRect(elem, function (rect) {\n onChangeRef.current && onChangeRef.current(rect);\n setRect(rect);\n });\n observe && observer.observe();\n return cleanup;\n\n function cleanup() {\n observer && observer.unobserve();\n }\n }, [observe, element]);\n return rect;\n}\n\nexport default Rect;\nexport { Rect, useRect };","import React, { useState, useRef, useEffect, Children, Fragment, cloneElement } from 'react';\nimport { useId } from '@reach/auto-id';\nimport { useForkedRef, checkStyles, getOwnerDocument, makeId, wrapEvent, forwardRefWithAs, warning, getDocumentDimensions } from '@reach/utils';\nimport Portal from '@reach/portal';\nimport VisuallyHidden from '@reach/visually-hidden';\nimport { useRect } from '@reach/rect';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _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\nvar _on, _on2, _on3, _on4, _on5, _states;\n\nvar MOUSE_REST_TIMEOUT = 100;\nvar LEAVE_TIMEOUT = 500; ////////////////////////////////////////////////////////////////////////////////\n// States\n// Nothing goin' on\n\nvar IDLE = \"IDLE\"; // We're considering showing the tooltip, but we're gonna wait a sec\n\nvar FOCUSED = \"FOCUSED\"; // It's on!\n\nvar VISIBLE = \"VISIBLE\"; // Focus has left, but we want to keep it visible for a sec\n\nvar LEAVING_VISIBLE = \"LEAVING_VISIBLE\"; // The user clicked the tool, so we want to hide the thing, we can't just use\n// IDLE because we need to ignore mousemove, etc.\n\nvar DISMISSED = \"DISMISSED\"; ////////////////////////////////////////////////////////////////////////////////\n// Events\n\nvar BLUR = \"BLUR\";\nvar FOCUS = \"FOCUS\";\nvar GLOBAL_MOUSE_MOVE = \"GLOBAL_MOUSE_MOVE\";\nvar MOUSE_DOWN = \"MOUSE_DOWN\";\nvar MOUSE_ENTER = \"MOUSE_ENTER\";\nvar MOUSE_LEAVE = \"MOUSE_LEAVE\";\nvar MOUSE_MOVE = \"MOUSE_MOVE\";\nvar REST = \"REST\";\nvar SELECT_WITH_KEYBOARD = \"SELECT_WITH_KEYBOARD\";\nvar TIME_COMPLETE = \"TIME_COMPLETE\";\nvar chart = {\n initial: IDLE,\n states: (_states = {}, _states[IDLE] = {\n enter: clearContextId,\n on: (_on = {}, _on[MOUSE_ENTER] = FOCUSED, _on[FOCUS] = VISIBLE, _on)\n }, _states[FOCUSED] = {\n enter: startRestTimer,\n leave: clearRestTimer,\n on: (_on2 = {}, _on2[MOUSE_MOVE] = FOCUSED, _on2[MOUSE_LEAVE] = IDLE, _on2[MOUSE_DOWN] = DISMISSED, _on2[BLUR] = IDLE, _on2[REST] = VISIBLE, _on2)\n }, _states[VISIBLE] = {\n on: (_on3 = {}, _on3[FOCUS] = FOCUSED, _on3[MOUSE_ENTER] = FOCUSED, _on3[MOUSE_LEAVE] = LEAVING_VISIBLE, _on3[BLUR] = LEAVING_VISIBLE, _on3[MOUSE_DOWN] = DISMISSED, _on3[SELECT_WITH_KEYBOARD] = DISMISSED, _on3[GLOBAL_MOUSE_MOVE] = LEAVING_VISIBLE, _on3)\n }, _states[LEAVING_VISIBLE] = {\n enter: startLeavingVisibleTimer,\n leave: function leave() {\n clearLeavingVisibleTimer();\n clearContextId();\n },\n on: (_on4 = {}, _on4[MOUSE_ENTER] = VISIBLE, _on4[FOCUS] = VISIBLE, _on4[TIME_COMPLETE] = IDLE, _on4)\n }, _states[DISMISSED] = {\n leave: function leave() {\n // allows us to come on back later w/o entering something else first\n context.id = null;\n },\n on: (_on5 = {}, _on5[MOUSE_LEAVE] = IDLE, _on5[BLUR] = IDLE, _on5)\n }, _states)\n};\n/*\r\n * Chart context allows us to persist some data around, in Tooltip all we use\r\n * is the id of the current tooltip being interacted with.\r\n */\n\nvar context = {\n id: null\n};\nvar state = chart.initial; ////////////////////////////////////////////////////////////////////////////////\n// Subscriptions:\n//\n// We could require apps to render a around the app and use\n// React context to notify Tooltips of changes to our state machine, instead\n// we manage subscriptions ourselves and simplify the Tooltip API.\n//\n// Maybe if default context could take a hook (instead of just a static value)\n// that was rendered at the root for us, that'd be cool! But it doesn't.\n\nvar subscriptions = [];\n\nfunction subscribe(fn) {\n subscriptions.push(fn);\n return function () {\n subscriptions.splice(subscriptions.indexOf(fn), 1);\n };\n}\n\nfunction notify() {\n subscriptions.forEach(function (fn) {\n return fn(state, context);\n });\n} ////////////////////////////////////////////////////////////////////////////////\n// Timeouts:\n// Manages when the user \"rests\" on an element. Keeps the interface from being\n// flashing tooltips all the time as the user moves the mouse around the screen.\n\n\nvar restTimeout;\n\nfunction startRestTimer() {\n window.clearTimeout(restTimeout);\n restTimeout = window.setTimeout(function () {\n return transition(REST);\n }, MOUSE_REST_TIMEOUT);\n}\n\nfunction clearRestTimer() {\n window.clearTimeout(restTimeout);\n} // Manages the delay to hide the tooltip after rest leaves.\n\n\nvar leavingVisibleTimer;\n\nfunction startLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n leavingVisibleTimer = window.setTimeout(function () {\n return transition(TIME_COMPLETE);\n }, LEAVE_TIMEOUT);\n}\n\nfunction clearLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n} // allows us to come on back later w/o entering something else first after the\n// user leaves or dismisses\n\n\nfunction clearContextId() {\n context.id = null;\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * useTooltip\r\n *\r\n * @param params\r\n */\n\n\nfunction useTooltip(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n idProp = _ref.id,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onKeyDown = _ref.onKeyDown,\n onMouseDown = _ref.onMouseDown,\n forwardedRef = _ref.ref,\n DEBUG_STYLE = _ref.DEBUG_STYLE;\n\n var id = String(useId(idProp));\n\n var _useState = useState(DEBUG_STYLE ? true : id === null ? false : context.id === id && state === VISIBLE),\n isVisible = _useState[0],\n setIsVisible = _useState[1]; // hopefully they always pass a ref if they ever pass one\n\n\n var ownRef = useRef(null);\n var ref = useForkedRef(forwardedRef, ownRef); // TODO: Fix in utils\n\n var triggerRect = useRect(ownRef, isVisible);\n useEffect(function () {\n return subscribe(function () {\n if (context.id === id && (state === VISIBLE || state === LEAVING_VISIBLE)) {\n setIsVisible(true);\n } else {\n setIsVisible(false);\n }\n });\n }, [id]);\n useEffect(function () {\n return checkStyles(\"tooltip\");\n }, []);\n useEffect(function () {\n var ownerDocument = getOwnerDocument(ownRef.current) || document;\n\n function listener(event) {\n if ((event.key === \"Escape\" || event.key === \"Esc\") && state === VISIBLE) {\n transition(SELECT_WITH_KEYBOARD);\n }\n }\n\n ownerDocument.addEventListener(\"keydown\", listener);\n return function () {\n return ownerDocument.removeEventListener(\"keydown\", listener);\n };\n }, []);\n\n function handleMouseEnter() {\n transition(MOUSE_ENTER, {\n id: id\n });\n }\n\n function handleMouseMove() {\n transition(MOUSE_MOVE, {\n id: id\n });\n }\n\n function handleFocus() {\n // @ts-ignore\n if (window.__REACH_DISABLE_TOOLTIPS) {\n return;\n }\n\n transition(FOCUS, {\n id: id\n });\n }\n\n function handleMouseLeave() {\n transition(MOUSE_LEAVE);\n }\n\n function handleBlur() {\n // Allow quick click from one tool to another\n if (context.id !== id) return;\n transition(BLUR);\n }\n\n function handleMouseDown() {\n // Allow quick click from one tool to another\n if (context.id !== id) return;\n transition(MOUSE_DOWN);\n }\n\n function handleKeyDown(event) {\n if (event.key === \"Enter\" || event.key === \" \") {\n transition(SELECT_WITH_KEYBOARD);\n }\n }\n\n var trigger = {\n // The element that triggers the tooltip references the tooltip element with\n // `aria-describedby`.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip\n \"aria-describedby\": isVisible ? makeId(\"tooltip\", id) : undefined,\n \"data-reach-tooltip-trigger\": \"\",\n ref: ref,\n onMouseEnter: wrapEvent(onMouseEnter, handleMouseEnter),\n onMouseMove: wrapEvent(onMouseMove, handleMouseMove),\n onFocus: wrapEvent(onFocus, handleFocus),\n onBlur: wrapEvent(onBlur, handleBlur),\n onMouseLeave: wrapEvent(onMouseLeave, handleMouseLeave),\n onKeyDown: wrapEvent(onKeyDown, handleKeyDown),\n onMouseDown: wrapEvent(onMouseDown, handleMouseDown)\n };\n var tooltip = {\n id: id,\n triggerRect: triggerRect,\n isVisible: isVisible\n };\n return [trigger, tooltip, isVisible];\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * Tooltip\r\n *\r\n * @see Docs https://reacttraining.com/reach-ui/tooltip#tooltip\r\n */\n\n\nvar Tooltip = /*#__PURE__*/forwardRefWithAs(function (_ref2, forwardedRef) {\n var children = _ref2.children,\n label = _ref2.label,\n DEPRECATED_ariaLabel = _ref2.ariaLabel,\n id = _ref2.id,\n DEBUG_STYLE = _ref2.DEBUG_STYLE,\n props = _objectWithoutPropertiesLoose(_ref2, [\"children\", \"label\", \"ariaLabel\", \"id\", \"DEBUG_STYLE\"]);\n\n var child = Children.only(children);\n process.env.NODE_ENV !== \"production\" ? warning(!DEPRECATED_ariaLabel, \"The `ariaLabel prop is deprecated and will be removed from @reach/tooltip in a future version. Please use `aria-label` instead.\") : void 0; // We need to pass some properties from the child into useTooltip\n // to make sure users can maintain control over the trigger's ref and events\n\n var _useTooltip = useTooltip({\n id: id,\n onMouseEnter: child.props.onMouseEnter,\n onMouseMove: child.props.onMouseMove,\n onMouseLeave: child.props.onMouseLeave,\n onFocus: child.props.onFocus,\n onBlur: child.props.onBlur,\n onKeyDown: child.props.onKeyDown,\n onMouseDown: child.props.onMouseDown,\n ref: child.ref,\n DEBUG_STYLE: DEBUG_STYLE\n }),\n trigger = _useTooltip[0],\n tooltip = _useTooltip[1];\n\n return React.createElement(Fragment, null, cloneElement(child, trigger), React.createElement(TooltipPopup, Object.assign({\n ref: forwardedRef,\n label: label,\n \"aria-label\": DEPRECATED_ariaLabel\n }, tooltip, props)));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Tooltip.displayName = \"Tooltip\";\n Tooltip.propTypes = {\n children: PropTypes.node.isRequired,\n label: PropTypes.node.isRequired,\n ariaLabel: PropTypes.string\n };\n}\n/**\r\n * TooltipPopup\r\n *\r\n * @see Docs https://reacttraining.com/reach-ui/tooltip#tooltippopup\r\n */\n\n\nvar TooltipPopup = /*#__PURE__*/forwardRefWithAs(function TooltipPopup(_ref3, forwardRef) {\n var label = _ref3.label,\n DEPRECATED_ariaLabel = _ref3.ariaLabel,\n isVisible = _ref3.isVisible,\n id = _ref3.id,\n props = _objectWithoutPropertiesLoose(_ref3, [\"label\", \"ariaLabel\", \"isVisible\", \"id\"]);\n\n return isVisible ? React.createElement(Portal, null, React.createElement(TooltipContent, Object.assign({\n ref: forwardRef,\n label: label,\n \"aria-label\": DEPRECATED_ariaLabel,\n isVisible: isVisible\n }, props, {\n id: makeId(\"tooltip\", String(id))\n }))) : null;\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n TooltipPopup.displayName = \"TooltipPopup\";\n TooltipPopup.propTypes = {\n label: PropTypes.node.isRequired,\n ariaLabel: PropTypes.string,\n position: PropTypes.func\n };\n}\n/**\r\n * TooltipContent\r\n *\r\n * We need a separate component so that useRect works inside the portal.\r\n *\r\n * @see Docs https://reacttraining.com/reach-ui/tooltip#tooltipcontent\r\n */\n\n\nvar TooltipContent = /*#__PURE__*/forwardRefWithAs(function TooltipContent(_ref4, forwardedRef) {\n var ariaLabel = _ref4.ariaLabel,\n realAriaLabel = _ref4[\"aria-label\"],\n _ref4$as = _ref4.as,\n Comp = _ref4$as === void 0 ? \"div\" : _ref4$as,\n id = _ref4.id,\n isVisible = _ref4.isVisible,\n label = _ref4.label,\n _ref4$position = _ref4.position,\n position = _ref4$position === void 0 ? positionDefault : _ref4$position,\n style = _ref4.style,\n triggerRect = _ref4.triggerRect,\n props = _objectWithoutPropertiesLoose(_ref4, [\"ariaLabel\", \"aria-label\", \"as\", \"id\", \"isVisible\", \"label\", \"position\", \"style\", \"triggerRect\"]); // The element that serves as the tooltip container has role tooltip.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip\n // When an app passes an `aria-label`, we actually want to implement\n // `role=\"tooltip\"` on a visually hidden element inside of the trigger.\n // In these cases we want the screen reader user to know both the content in\n // the tooltip, but also the content in the badge. For screen reader users,\n // the only content announced to them is whatever is in the tooltip.\n\n\n var hasAriaLabel = (realAriaLabel || ariaLabel) != null;\n var ownRef = useRef(null);\n var ref = useForkedRef(forwardedRef, ownRef);\n var tooltipRect = useRect(ownRef, isVisible);\n return React.createElement(Fragment, null, React.createElement(Comp, Object.assign({\n role: hasAriaLabel ? undefined : \"tooltip\"\n }, props, {\n ref: ref,\n \"data-reach-tooltip\": \"\",\n id: hasAriaLabel ? undefined : id,\n style: _extends({}, style, getStyles(position, triggerRect, tooltipRect))\n }), label), hasAriaLabel && React.createElement(VisuallyHidden, {\n role: \"tooltip\",\n id: id\n }, realAriaLabel || ariaLabel));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n TooltipContent.displayName = \"TooltipContent\";\n TooltipContent.propTypes = {};\n} ////////////////////////////////////////////////////////////////////////////////\n// feels awkward when it's perfectly aligned w/ the trigger\n\n\nvar OFFSET = 8;\n\nfunction getStyles(position, triggerRect, tooltipRect) {\n var haventMeasuredTooltipYet = !tooltipRect;\n\n if (haventMeasuredTooltipYet) {\n return {\n visibility: \"hidden\"\n };\n }\n\n return position(triggerRect, tooltipRect);\n}\n\nvar positionDefault = function positionDefault(triggerRect, tooltipRect) {\n var _getDocumentDimension = getDocumentDimensions(),\n windowWidth = _getDocumentDimension.width,\n windowHeight = _getDocumentDimension.height;\n\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n\n var collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n right: windowWidth < triggerRect.left + tooltipRect.width,\n bottom: windowHeight < triggerRect.bottom + tooltipRect.height + OFFSET,\n left: triggerRect.left - tooltipRect.width < 0\n };\n var directionRight = collisions.right && !collisions.left;\n var directionUp = collisions.bottom && !collisions.top;\n return {\n left: directionRight ? triggerRect.right - tooltipRect.width + window.pageXOffset + \"px\" : triggerRect.left + window.pageXOffset + \"px\",\n top: directionUp ? triggerRect.top - OFFSET - tooltipRect.height + window.pageYOffset + \"px\" : triggerRect.top + OFFSET + triggerRect.height + window.pageYOffset + \"px\"\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * Finds the next state from the current state + action. If the chart doesn't\r\n * describe that transition, it will throw.\r\n *\r\n * It also manages lifecycles of the machine, (enter/leave hooks on the state\r\n * chart)\r\n *\r\n * @param event\r\n * @param payload\r\n */\n\n\nvar transition = function transition(event, payload) {\n var stateDef = chart.states[state];\n var nextState = stateDef && stateDef.on && stateDef.on[event]; // Really useful for debugging\n // console.log({ event, state, nextState, contextId: context.id });\n // !nextState && console.log('no transition taken')\n\n if (!nextState) {\n return;\n }\n\n if (stateDef && stateDef.leave) {\n stateDef.leave();\n }\n\n if (payload) {\n context = payload;\n }\n\n var nextDef = chart.states[nextState];\n\n if (nextDef && nextDef.enter) {\n nextDef.enter();\n }\n\n state = nextState;\n notify();\n};\n\nexport default Tooltip;\nexport { LEAVE_TIMEOUT, MOUSE_REST_TIMEOUT, Tooltip, TooltipPopup, useTooltip };","import React, { cloneElement } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport { useTooltip, TooltipPopup } from \"@reach/tooltip\";\nimport { useSpring, animated, config } from \"react-spring\";\nimport { useColorSchemeContext } from \"@shared/context/ColorSchemeContext\";\nimport theme from \"@ats/styles/theme\";\n\nconst AnimatedTooltipPopup = animated(TooltipPopup);\n\n// Center the tooltip, but collisions will win\nconst centered = (triggerRect, tooltipRect) => {\n const triggerCenter = triggerRect.left + triggerRect.width / 2;\n const left = triggerCenter - tooltipRect.width / 2;\n const maxLeft = window.innerWidth - tooltipRect.width - 2;\n return {\n left: Math.min(Math.max(2, left), maxLeft) + window.scrollX,\n top: triggerRect.bottom + 4 + window.scrollY,\n };\n};\n\nfunction ReachTooltip({ children, label, \"aria-label\": ariaLabel }) {\n // get the props from useTooltip\n const [trigger, tooltip, isVisible] = useTooltip();\n const { isDarkMode } = useColorSchemeContext();\n\n const spring = useSpring({\n from: {\n opacity: 0,\n transform: \"scaleY(0.95)\",\n },\n to: {\n opacity: isVisible ? 1 : 0,\n transform: isVisible ? \"scaleY(1)\" : \"scaleY(0.95)\",\n },\n delay: 960,\n config: {\n tension: 480,\n clamp: true,\n },\n });\n\n // destructure off what we need to position the triangle\n // const { isVisible, triggerRect } = tooltip;\n return (\n <>\n {cloneElement(children, trigger)}\n {label && (\n <>\n {/* {isVisible && (\n // The Triangle. We position it relative to the trigger, not the popup\n // so that collisions don't have a triangle pointing off to nowhere.\n // Using a Portal may seem a little extreme, but we can keep the\n // positioning logic simpler here instead of needing to consider\n // the popup's position relative to the trigger and collisions\n \n \n \n )} */}\n \n \n )}\n \n );\n}\n\nexport default function Tooltip({ children, label }) {\n return (\n \n {children ? (\n
    {children}
    \n ) : (\n \n \n \n )}\n
    \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: Tooltip;\n ${[t.text.sm, t.text.bold, t.h(4), t.w(4)]}\n display: flex;\n justify-content: center;\n align-items: center;\n transform-origin: top;\n `;\n});\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { defineHidden, is, createInterpolator, eachProp, hasFluidValue, getFluidValue, each, isAnimatedString, useForceUpdate, useLayoutEffect, addFluidObserver, removeFluidObserver, raf, useOnce } from '@react-spring/shared';\nimport * as React from 'react';\nimport { forwardRef, useRef, useCallback, useEffect } from 'react';\nvar $node = Symbol[\"for\"]('Animated:node');\n\nvar isAnimated = function isAnimated(value) {\n return !!value && value[$node] === value;\n};\n\nvar getAnimated = function getAnimated(owner) {\n return owner && owner[$node];\n};\n\nvar setAnimated = function setAnimated(owner, node) {\n return defineHidden(owner, $node, node);\n};\n\nvar getPayload = function getPayload(owner) {\n return owner && owner[$node] && owner[$node].getPayload();\n};\n\nvar Animated = /*#__PURE__*/function () {\n function Animated() {\n _classCallCheck(this, Animated);\n\n this.payload = void 0;\n setAnimated(this, this);\n }\n\n _createClass(Animated, [{\n key: \"getPayload\",\n value: function getPayload() {\n return this.payload || [];\n }\n }]);\n\n return Animated;\n}();\n\nvar AnimatedValue = /*#__PURE__*/function (_Animated) {\n _inherits(AnimatedValue, _Animated);\n\n var _super = _createSuper(AnimatedValue);\n\n function AnimatedValue(_value) {\n var _this;\n\n _classCallCheck(this, AnimatedValue);\n\n _this = _super.call(this);\n _this.done = true;\n _this.elapsedTime = void 0;\n _this.lastPosition = void 0;\n _this.lastVelocity = void 0;\n _this.v0 = void 0;\n _this.durationProgress = 0;\n _this._value = _value;\n\n if (is.num(_this._value)) {\n _this.lastPosition = _this._value;\n }\n\n return _this;\n }\n\n _createClass(AnimatedValue, [{\n key: \"getPayload\",\n value: function getPayload() {\n return [this];\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this._value;\n }\n }, {\n key: \"setValue\",\n value: function setValue(value, step) {\n if (is.num(value)) {\n this.lastPosition = value;\n\n if (step) {\n value = Math.round(value / step) * step;\n\n if (this.done) {\n this.lastPosition = value;\n }\n }\n }\n\n if (this._value === value) {\n return false;\n }\n\n this._value = value;\n return true;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var done = this.done;\n this.done = false;\n\n if (is.num(this._value)) {\n this.elapsedTime = 0;\n this.durationProgress = 0;\n this.lastPosition = this._value;\n if (done) this.lastVelocity = null;\n this.v0 = null;\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n return new AnimatedValue(value);\n }\n }]);\n\n return AnimatedValue;\n}(Animated);\n\nvar AnimatedString = /*#__PURE__*/function (_AnimatedValue) {\n _inherits(AnimatedString, _AnimatedValue);\n\n var _super2 = _createSuper(AnimatedString);\n\n function AnimatedString(value) {\n var _this2;\n\n _classCallCheck(this, AnimatedString);\n\n _this2 = _super2.call(this, 0);\n _this2._string = null;\n _this2._toString = void 0;\n _this2._toString = createInterpolator({\n output: [value, value]\n });\n return _this2;\n }\n\n _createClass(AnimatedString, [{\n key: \"getValue\",\n value: function getValue() {\n var value = this._string;\n return value == null ? this._string = this._toString(this._value) : value;\n }\n }, {\n key: \"setValue\",\n value: function setValue(value) {\n if (is.str(value)) {\n if (value == this._string) {\n return false;\n }\n\n this._string = value;\n this._value = 1;\n } else if (_get(_getPrototypeOf(AnimatedString.prototype), \"setValue\", this).call(this, value)) {\n this._string = null;\n } else {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"reset\",\n value: function reset(goal) {\n if (goal) {\n this._toString = createInterpolator({\n output: [this.getValue(), goal]\n });\n }\n\n this._value = 0;\n\n _get(_getPrototypeOf(AnimatedString.prototype), \"reset\", this).call(this);\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n return new AnimatedString(value);\n }\n }]);\n\n return AnimatedString;\n}(AnimatedValue);\n\nvar TreeContext = {\n dependencies: null\n};\n\nvar AnimatedObject = /*#__PURE__*/function (_Animated2) {\n _inherits(AnimatedObject, _Animated2);\n\n var _super3 = _createSuper(AnimatedObject);\n\n function AnimatedObject(source) {\n var _this3;\n\n _classCallCheck(this, AnimatedObject);\n\n _this3 = _super3.call(this);\n _this3.source = source;\n\n _this3.setValue(source);\n\n return _this3;\n }\n\n _createClass(AnimatedObject, [{\n key: \"getValue\",\n value: function getValue(animated) {\n var values = {};\n eachProp(this.source, function (source, key) {\n if (isAnimated(source)) {\n values[key] = source.getValue(animated);\n } else if (hasFluidValue(source)) {\n values[key] = getFluidValue(source);\n } else if (!animated) {\n values[key] = source;\n }\n });\n return values;\n }\n }, {\n key: \"setValue\",\n value: function setValue(source) {\n this.source = source;\n this.payload = this._makePayload(source);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.payload) {\n each(this.payload, function (node) {\n return node.reset();\n });\n }\n }\n }, {\n key: \"_makePayload\",\n value: function _makePayload(source) {\n if (source) {\n var payload = new Set();\n eachProp(source, this._addToPayload, payload);\n return Array.from(payload);\n }\n }\n }, {\n key: \"_addToPayload\",\n value: function _addToPayload(source) {\n var _this4 = this;\n\n if (TreeContext.dependencies && hasFluidValue(source)) {\n TreeContext.dependencies.add(source);\n }\n\n var payload = getPayload(source);\n\n if (payload) {\n each(payload, function (node) {\n return _this4.add(node);\n });\n }\n }\n }]);\n\n return AnimatedObject;\n}(Animated);\n\nvar AnimatedArray = /*#__PURE__*/function (_AnimatedObject) {\n _inherits(AnimatedArray, _AnimatedObject);\n\n var _super4 = _createSuper(AnimatedArray);\n\n function AnimatedArray(source) {\n _classCallCheck(this, AnimatedArray);\n\n return _super4.call(this, source);\n }\n\n _createClass(AnimatedArray, [{\n key: \"getValue\",\n value: function getValue() {\n return this.source.map(function (node) {\n return node.getValue();\n });\n }\n }, {\n key: \"setValue\",\n value: function setValue(source) {\n var payload = this.getPayload();\n\n if (source.length == payload.length) {\n return payload.map(function (node, i) {\n return node.setValue(source[i]);\n }).some(Boolean);\n }\n\n _get(_getPrototypeOf(AnimatedArray.prototype), \"setValue\", this).call(this, source.map(makeAnimated));\n\n return true;\n }\n }], [{\n key: \"create\",\n value: function create(source) {\n return new AnimatedArray(source);\n }\n }]);\n\n return AnimatedArray;\n}(AnimatedObject);\n\nfunction makeAnimated(value) {\n var nodeType = isAnimatedString(value) ? AnimatedString : AnimatedValue;\n return nodeType.create(value);\n}\n\nfunction getAnimatedType(value) {\n var parentNode = getAnimated(value);\n return parentNode ? parentNode.constructor : is.arr(value) ? AnimatedArray : isAnimatedString(value) ? AnimatedString : AnimatedValue;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar withAnimated = function withAnimated(Component, host) {\n var hasInstance = !is.fun(Component) || Component.prototype && Component.prototype.isReactComponent;\n return forwardRef(function (givenProps, givenRef) {\n var instanceRef = useRef(null);\n var ref = hasInstance && useCallback(function (value) {\n instanceRef.current = updateRef(givenRef, value);\n }, [givenRef]);\n\n var _getAnimatedState = getAnimatedState(givenProps, host),\n _getAnimatedState2 = _slicedToArray(_getAnimatedState, 2),\n props = _getAnimatedState2[0],\n deps = _getAnimatedState2[1];\n\n var forceUpdate = useForceUpdate();\n\n var callback = function callback() {\n var instance = instanceRef.current;\n\n if (hasInstance && !instance) {\n return;\n }\n\n var didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false;\n\n if (didUpdate === false) {\n forceUpdate();\n }\n };\n\n var observer = new PropsObserver(callback, deps);\n var observerRef = useRef();\n useLayoutEffect(function () {\n var lastObserver = observerRef.current;\n observerRef.current = observer;\n each(deps, function (dep) {\n return addFluidObserver(dep, observer);\n });\n\n if (lastObserver) {\n each(lastObserver.deps, function (dep) {\n return removeFluidObserver(dep, lastObserver);\n });\n raf.cancel(lastObserver.update);\n }\n });\n useEffect(callback, []);\n useOnce(function () {\n return function () {\n var observer = observerRef.current;\n each(observer.deps, function (dep) {\n return removeFluidObserver(dep, observer);\n });\n };\n });\n var usedProps = host.getComponentProps(props.getValue());\n return React.createElement(Component, _extends({}, usedProps, {\n ref: ref\n }));\n });\n};\n\nvar PropsObserver = /*#__PURE__*/function () {\n function PropsObserver(update, deps) {\n _classCallCheck(this, PropsObserver);\n\n this.update = update;\n this.deps = deps;\n }\n\n _createClass(PropsObserver, [{\n key: \"eventObserved\",\n value: function eventObserved(event) {\n if (event.type == 'change') {\n raf.write(this.update);\n }\n }\n }]);\n\n return PropsObserver;\n}();\n\nfunction getAnimatedState(props, host) {\n var dependencies = new Set();\n TreeContext.dependencies = dependencies;\n if (props.style) props = _extends({}, props, {\n style: host.createAnimatedStyle(props.style)\n });\n props = new AnimatedObject(props);\n TreeContext.dependencies = null;\n return [props, dependencies];\n}\n\nfunction updateRef(ref, value) {\n if (ref) {\n if (is.fun(ref)) ref(value);else ref.current = value;\n }\n\n return value;\n}\n\nvar cacheKey = Symbol[\"for\"]('AnimatedComponent');\n\nvar createHost = function createHost(components) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$applyAnimatedVal = _ref.applyAnimatedValues,\n _applyAnimatedValues = _ref$applyAnimatedVal === void 0 ? function () {\n return false;\n } : _ref$applyAnimatedVal,\n _ref$createAnimatedSt = _ref.createAnimatedStyle,\n _createAnimatedStyle = _ref$createAnimatedSt === void 0 ? function (style) {\n return new AnimatedObject(style);\n } : _ref$createAnimatedSt,\n _ref$getComponentProp = _ref.getComponentProps,\n _getComponentProps = _ref$getComponentProp === void 0 ? function (props) {\n return props;\n } : _ref$getComponentProp;\n\n var hostConfig = {\n applyAnimatedValues: _applyAnimatedValues,\n createAnimatedStyle: _createAnimatedStyle,\n getComponentProps: _getComponentProps\n };\n\n var animated = function animated(Component) {\n var displayName = getDisplayName(Component) || 'Anonymous';\n\n if (is.str(Component)) {\n Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig));\n } else {\n Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig));\n }\n\n Component.displayName = \"Animated(\".concat(displayName, \")\");\n return Component;\n };\n\n eachProp(components, function (Component, key) {\n if (is.arr(components)) {\n key = getDisplayName(Component);\n }\n\n animated[key] = animated(Component);\n });\n return {\n animated: animated\n };\n};\n\nvar getDisplayName = function getDisplayName(arg) {\n return is.str(arg) ? arg : arg && is.str(arg.displayName) ? arg.displayName : is.fun(arg) && arg.name || null;\n};\n\nexport { Animated, AnimatedArray, AnimatedObject, AnimatedString, AnimatedValue, createHost, getAnimated, getAnimatedType, getPayload, isAnimated, setAnimated };","var ActionTypes;\n\n(function (ActionTypes) {\n ActionTypes[\"Start\"] = \"xstate.start\";\n ActionTypes[\"Stop\"] = \"xstate.stop\";\n ActionTypes[\"Raise\"] = \"xstate.raise\";\n ActionTypes[\"Send\"] = \"xstate.send\";\n ActionTypes[\"Cancel\"] = \"xstate.cancel\";\n ActionTypes[\"NullEvent\"] = \"\";\n ActionTypes[\"Assign\"] = \"xstate.assign\";\n ActionTypes[\"After\"] = \"xstate.after\";\n ActionTypes[\"DoneState\"] = \"done.state\";\n ActionTypes[\"DoneInvoke\"] = \"done.invoke\";\n ActionTypes[\"Log\"] = \"xstate.log\";\n ActionTypes[\"Init\"] = \"xstate.init\";\n ActionTypes[\"Invoke\"] = \"xstate.invoke\";\n ActionTypes[\"ErrorExecution\"] = \"error.execution\";\n ActionTypes[\"ErrorCommunication\"] = \"error.communication\";\n ActionTypes[\"ErrorPlatform\"] = \"error.platform\";\n ActionTypes[\"ErrorCustom\"] = \"xstate.error\";\n ActionTypes[\"Update\"] = \"xstate.update\";\n ActionTypes[\"Pure\"] = \"xstate.pure\";\n})(ActionTypes || (ActionTypes = {}));\n\nvar SpecialTargets;\n\n(function (SpecialTargets) {\n SpecialTargets[\"Parent\"] = \"#_parent\";\n SpecialTargets[\"Internal\"] = \"#_internal\";\n})(SpecialTargets || (SpecialTargets = {}));\n\nexport { ActionTypes, SpecialTargets };","import styled from \"@emotion/styled\";\n\nconst Box = styled.div`\n box-sizing: border-box;\n`;\n\nexport default Box;","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","const breakpoints: { [index: string]: number } = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n};\n\nconst breakpoint = Object.keys(breakpoints)\n .map((key) => [key, breakpoints[key]] as [string, number])\n .reduce((prev, [key, breakpoint]) => {\n prev[key] = `@media (min-width: ${breakpoint}px)`;\n return prev;\n }, {} as { [index: string]: string });\n\nexport default breakpoint;","function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\n\n\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; // dirty hack (for recharts' test)\n\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; // More than two ticks should be return\n\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; // More than two ticks should be return\n\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; // More than two ticks should be return\n\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","export default function (series, order) {\n if (!((n = series.length) > 1)) return;\n\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}","export default function (series) {\n var n = series.length,\n o = new Array(n);\n\n while (--n >= 0) {\n o[n] = n;\n }\n\n return o;\n}","function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n var series = [];\n series.key = key;\n return series;\n}\n\nexport default function () {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i,\n n = sz.length,\n j = -1,\n oz;\n\n var _iterator = _createForOfIteratorHelper(data),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var d = _step.value;\n\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function (_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function (_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function (_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function (_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isString from \"lodash/isString\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport { Legend } from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils'; // TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { filterProps } from './types';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n\n return defaultValue;\n}\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\n\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData; // 支持Date类型的x轴\n\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n\n default:\n result = fill;\n break;\n }\n\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref2) {\n var children = _ref2.children,\n formattedGraphicalItems = _ref2.formattedGraphicalItems,\n legendWidth = _ref2.legendWidth,\n legendContent = _ref2.legendContent;\n var legendItem = findChildByType(children, Legend.displayName);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref3) {\n var item = _ref3.item,\n props = _ref3.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref4) {\n var item = _ref4.item;\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n name = _item$props2.name,\n legendType = _item$props2.legendType,\n hide = _item$props2.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\n\nexport var getBarSizeList = function getBarSizeList(_ref5) {\n var globalSize = _ref5.barSize,\n _ref5$stackGroups = _ref5.stackGroups,\n stackGroups = _ref5$stackGroups === void 0 ? {} : _ref5$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\n\nexport var getBarPosition = function getBarPosition(_ref6) {\n var barGap = _ref6.barGap,\n barCategoryGap = _ref6.barCategoryGap,\n bandSize = _ref6.bandSize,\n _ref6$sizeList = _ref6.sizeList,\n sizeList = _ref6$sizeList === void 0 ? [] : _ref6$sizeList,\n maxBarSize = _ref6.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n\n return newRes;\n }, []);\n }\n\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0); // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, 'ErrorBar').filter(function (errorBarChild) {\n var direction = errorBarChild.props.direction;\n return _isNil(direction) || _isNil(axisType) ? true : axisType.indexOf(direction) >= 0;\n });\n\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\n\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\n};\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\n\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / 2 : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n\n\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis has duplicated text, serial numbers are used to generate scale\n\n\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {Function} The scale function\n */\n\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (_isString(scale)) {\n var name = \"scale\".concat(_upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n\n if (!domain || domain.length <= 2) {\n return;\n }\n\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n } // reversing items to affect render order (for layering)\n\n\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props3 = item.props,\n stackId = _item$props3.stackId,\n hide = _item$props3.hide;\n\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\n};\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\n\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n\n if (!domain.length) {\n return null;\n }\n\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index,\n dataKey = _ref7.dataKey;\n\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref8) {\n var axis = _ref8.axis,\n ticks = _ref8.ticks,\n offset = _ref8.offset,\n bandSize = _ref8.bandSize,\n entry = _ref8.entry,\n index = _ref8.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref9) {\n var numericAxis = _ref9.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\n\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType\n });\n};","import none from \"./none.js\";\nexport default function (series, order) {\n if (!((n = series.length) > 0)) return;\n\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) {\n y += series[i][j][1] || 0;\n }\n\n if (y) for (i = 0; i < n; ++i) {\n series[i][j][1] /= y;\n }\n }\n\n none(series, order);\n}","import none from \"./none.js\";\nexport default function (series, order) {\n if (!((n = series.length) > 0)) return;\n\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) {\n y += series[i][j][1] || 0;\n }\n\n s0[j][1] += s0[j][0] = -y / 2;\n }\n\n none(series, order);\n}","import none from \"./none.js\";\nexport default function (series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n\n s1 += sij0, s2 += s3 * sij0;\n }\n\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}","import keys from \"lodash/keys\";\nimport isArray from \"lodash/isArray\";\nimport isObject from \"lodash/isObject\";\nimport lowerCase from \"lodash/lowerCase\";\nimport upperFirst from \"lodash/upperFirst\";\n\nexport const errorTextViaYupOrRailsOrJoi = (props: { errors: any; name: string }) => {\n const { errors, name } = props;\n if (errors == undefined) {\n return null;\n }\n // console.log(\"%c[formHelpers] errorTextViaYupOrRailsOrJoi\", \"background-color: #65FF92\", {\n // errors,\n // name,\n // });\n\n if (errors && isObject(errors) && errors[name]) {\n let error: { fieldError?: any } = errors[name];\n\n return isArray(error) && (error as string[]).length > 0\n ? (error as string[]).join(\", \") // Rails generated error\n : isObject(error) // isObject returns true for Arrays so must be checked second\n ? error.fieldError // Yup generated error\n : null;\n }\n};\n\n// export const processErrors = (errors) => {\n// if (errors && isArray(errors) && !isEmpty(errors)) {\n// return handleErrorsArray(errors);\n// } else if (errors && isObject(errors) && !isEmpty(errors)) {\n// console.log(\n// \"%c[formHelpers] ERRORS Object NOT HANDLED YET\",\n// \"background: red; color: white\",\n// errors,\n// );\n// return handleErrorsObject(errors);\n// }\n// };\n\n// const handleErrorsArray = (errors) => {\n// return errors.reduce((accumulator, error) => {\n// const key = error.context ? error.context.key : error.key;\n// const keyRegex = error.context ? new RegExp(`\"${key}\" `, \"gi\") : new RegExp(`${key} `, \"gi\");\n// const message = error.message ? error.message.replace(keyRegex, \"\") : error;\n// accumulator[key] = message;\n// return accumulator;\n// }, {});\n// };\n\n// const handleErrorsObject = (errors) => {\n// return errors;\n// };\n\nexport const prettyErrorsArray = (errors) => {\n return keys(errors)\n .map((key) => {\n console.log(\"%c[formHelpers] prettyErrorsArray\", \"background-color: #110378; color: white;\", {\n errors,\n key,\n });\n const error = errors[key];\n if (key === \"customQuestionsErrors\") {\n return null;\n }\n\n if (isArray(error)) {\n // Rails Errors\n return key !== \"general\" ? `${upperFirst(lowerCase(key))} ${error[0]}` : error[0];\n } else if (error.groupError != undefined) {\n // Yup Errors\n return error.groupError;\n } else {\n return null;\n }\n })\n .filter((error) => error != undefined);\n};\n","/**\n * Checks if `value` is `null` or `undefined`.\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 nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;","import React from \"react\";\nimport useOnClickOutside from \"use-onclickoutside\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { useSpring, animated } from \"react-spring\";\n\ntype Props = {\n hpos?: string;\n vpos?: string;\n label?: string;\n testid?: string;\n testidPrefix?: string;\n button?: boolean;\n icon?: string;\n children?: any;\n};\n\nconst DropdownMenu = ({\n hpos = \"left\",\n vpos = \"bottom\",\n label = \"More options\",\n testid,\n testidPrefix,\n icon,\n button,\n children,\n}: // setDisableOnClickOutside,\n Props) => {\n const [dropdownIsVisible, setDropdownIsVisible] = React.useState(false);\n const ref = React.useRef(null);\n const dataTestIdPrefix = testidPrefix ? `${testidPrefix}-` : \"\";\n\n useOnClickOutside(ref, () => {\n handleClickOutside();\n });\n\n const handleClickOutside = () => {\n if (dropdownIsVisible) {\n setDropdownIsVisible(false);\n // setDisableOnClickOutside(true);\n }\n };\n\n const toggleDropdownVisibility = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDropdownIsVisible(!dropdownIsVisible);\n\n // if (dropdownIsVisible) {\n // setDisableOnClickOutside(false);\n // }\n };\n\n // closes the dropdown via a click on an intem in the dropdown\n const closeDropdown = (e) => {\n e.stopPropagation();\n handleClickOutside();\n };\n\n const spring = useSpring({\n from: {\n opacity: 0,\n transform: \"scale(0.95)\",\n pointerEvents: \"none\",\n },\n to: {\n opacity: dropdownIsVisible ? 1 : 0,\n transform: dropdownIsVisible ? \"scale(1)\" : \"scale(0.95)\",\n pointerEvents: dropdownIsVisible ? \"all\" : \"none\",\n },\n config: {\n tension: 480,\n clamp: true,\n },\n });\n\n return (\n \n \n \n \n \n \n\n \n {children}\n \n \n );\n};\n\nexport default DropdownMenu;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div`\n label: DropdownMenu;\n position: relative;\n`;\n\nStyled.Toggle = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: DropdownMenu_Toggle;\n ${[t.w(10), t.h(10), t.p(1), t.rounded.sm, t.text.base]};\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: ${props.button\n ? t.dark\n ? t.color.gray[200]\n : t.color.black\n : t.dark\n ? t.color.gray[400]\n : t.color.gray[600]};\n background-color: ${props.button\n ? t.dark\n ? t.color.gray[700]\n : t.color.gray[200]\n : \"transparent\"};\n transition: background-color 0.2s ease;\n cursor: pointer;\n &:hover {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${props.button\n ? t.dark\n ? t.color.gray[600]\n : t.color.gray[300]\n : t.dark\n ? t.color.gray[700]\n : t.color.gray[100]};\n }\n\n ${t.mq[\"md\"]} {\n ${[t.w(8), t.h(8), t.p(1)]};\n }\n `;\n});\n\nStyled.Dropdown = styled(animated.div)((props: any) => {\n const t: any = props.theme;\n const modeStyles = t.dark\n ? css`\n background-color: ${t.color.gray[700]};\n border: 1px solid ${t.color.gray[600]};\n `\n : css`\n background-color: ${t.color.white};\n border: 1px solid ${t.color.gray[400]};\n `;\n\n return css`\n label: DropdownMenu_Dropdown;\n ${[t.rounded.sm, t.p(1)]};\n padding-bottom: 2px;\n\n ${props.hpos === \"right\" ? t.l(0) : t.r(0)};\n ${props.vpos === \"top\" ? t.b(10) : t.t(10)};\n transform-origin: ${props.vpos === \"top\" ? \"bottom\" : \"top\"}\n ${props.hpos === \"right\" ? \"left\" : \"right\"};\n z-index: 19;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n white-space: nowrap;\n overflow: hidden;\n user-select: none;\n ${modeStyles}\n\n ${t.mq[\"md\"]} {\n ${props.hpos === \"right\" ? t.l(0) : t.r(0)};\n ${props.vpos === \"top\" ? t.b(8) : t.t(8)};\n }\n `;\n});\n\nStyled.DropdownContent = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: DropdownMenu_DropdownContent;\n display: flex;\n flex-direction: column;\n position: relative;\n\n > \n span,\n a,\n button,\n a:link,\n a:visited {\n ${[t.pr(6), t.text.sm, t.rounded.xs]}\n margin-bottom: 2px;\n padding-left: 0.625rem;\n height: 28px;\n display: flex;\n align-items: center;\n background: transparent;\n border: none;\n cursor: pointer;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n font-weight: 400 !important;\n transition: background-color 0.2s ease;\n &:hover,\n &:focus {\n background-color: ${t.dark ? t.color.gray[500] : t.color.gray[200]} !important;\n color: ${t.dark ? t.color.white : t.color.black};\n outline: none;\n box-shadow: none;\n text-decoration: none !important;\n\n .key {\n background-color: ${t.dark ? t.color.gray[400] : t.color.gray[300]};\n }\n }\n .key {\n position: relative;\n right: -${t.spacing[3]};\n line-height: 1.4;\n background-color: ${t.dark ? t.color.gray[500] : t.color.gray[300]};\n color: ${t.dark ? t.color.white : t.color.black};\n transition: background-color 0.2s ease;\n }\n }\n\n svg {\n margin-left: 0.375rem;\n height: 1.125em;\n width: 1.125em;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[500]};\n }\n\n ${/* Styles for resume uploader in candidate profiles */ \"\"}\n > div label {\n ${[t.h(8), t.pl(2), t.pr(6), t.text.sm, t.rounded.sm]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n font-weight: 400 !important;\n width: 100%;\n &:hover,\n &:focus {\n background-color: ${t.dark ? t.color.gray[500] : t.color.gray[200]} !important;\n color: ${t.dark ? t.color.white : t.color.black};\n outline: none;\n box-shadow: none;\n text-decoration: none !important;\n }\n > div:hover {\n color: ${t.dark ? t.color.white : t.color.black};\n }\n `;\n});\n","import _isObject from \"lodash/isObject\";\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport { isValidElement } from 'react';\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nvar SVGElementPropKeys = ['className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style', 'target', 'type', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture']; // Animation Types => TODO: Should be moved when react-smooth is typescriptified.\n\nexport var filterProps = function filterProps(props, includeEvents, isSvg) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n // viewBox only exist in \n if (SVGElementPropKeys.includes(key) || isSvg && SVGContainerPropKeys.includes(key) || includeEvents && EventKeys.includes(key)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!_isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n/** `Object#toString` result references. */\n\n\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\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 */\n\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\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\n\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;","import keys from \"lodash/keys\";\nimport isString from \"lodash/isString\";\nimport isArray from \"lodash/isArray\";\nimport isPlainObject from \"lodash/isPlainObject\";\n\n/* standardizeQueryParamsObject\n--===================================================-- */\n// This ensures that search params are in an Array\nexport function standardizeQueryParamsObject(queryObject) {\n const queryKeys = keys(queryObject);\n let filterObject = queryObject;\n queryKeys.forEach((filterKey) => {\n if (isString(filterObject[filterKey])) {\n let value = filterObject[filterKey];\n filterObject[filterKey] = [value];\n }\n });\n return filterObject;\n}\n\nexport const trimFilename = (filename) => {\n let cutStart, cutEnd;\n\n if (filename.length > 20) {\n cutStart = 10;\n cutEnd = filename.length - 7;\n return filename.substr(0, cutStart) + \"...\" + filename.substr(cutEnd + 1);\n } else {\n return filename;\n }\n};\n\nexport const clearUrlParams = (history) => {\n history.push({ search: \"\" });\n};\n\n/* URLS\n--===================================================-- */\nexport const addHttpsPrefix = (url) => {\n if (url == undefined) {\n return null;\n }\n\n // return url.replace(/(^\\w+:|^)\\/\\//, \"\");\n return url.test(/(^\\w+:|^)\\/\\//, \"\");\n};\n\nexport const removeHttpPrefix = (url) => {\n if (url == undefined) {\n return null;\n }\n\n return url.replace(/(^\\w+:|^)\\/\\//, \"\"); // removes http:// or https://\n};\n\nexport const removeKnownUrlPrefix = (url) => {\n if (url == undefined) {\n return null;\n }\n\n return removeHttpPrefix(url) // removes http:// or https://\n .replace(/(^www\\.)/, \"\") // removes www\n .replace(/(^linkedin\\.com\\/in\\/)/, \"\") // removes linkedin.com\n .replace(/(^twitter\\.com\\/)/, \"\") // removes twitter.com\n .replace(/(^github\\.com\\/)/, \"\") // removes github.com\n .replace(/(^dribbble\\.com\\/)/, \"\"); // removes dribbble.com\n // .replace(/(\\/$)/, \"\"); // removes trailing slashes\n};\n\n/* Remove from Array\n--===================================================-- */\nexport const removeFromArray = (array, fn) => {\n const index = array.findIndex(fn);\n\n return removeFromArrayAtIndex(array, index);\n};\n\nexport const removeFromArrayAtIndex = (array, index) => {\n return [...array.slice(0, index), ...array.slice(index + 1, array.length)];\n};\n\nexport const insertIntoArrayAtIndex = (array, item, index) => {\n console.log(\"%c[utils] insertIntoArrayAtIndex\", \"color: #1976D2\", { array, item, index });\n return [...array.slice(0, index), item, ...array.slice(index, array.length)];\n};\n\nexport const moveFromIndexToIndex = (array, fromIndex, toIndex) => {\n const item = array[fromIndex];\n let newArray = removeFromArrayAtIndex(array, fromIndex);\n return insertIntoArrayAtIndex(newArray, item, toIndex);\n};\n\n/* Convert Array to Select Options\n--===================================================-- */\nexport const convertArrayToSelectOptions = (options) => {\n return options.map((option, index) => {\n return { value: option, label: option };\n });\n};\n\n/* FORMATTING\n--===================================================-- */\nexport const formatPhoneNumber = (str) => {\n //Filter only numbers from the input\n let cleaned = (\"\" + str).replace(/\\D/g, \"\");\n\n //Check if the input is of correct\n let match = cleaned.match(/^(1|)?(\\d{3})(\\d{3})(\\d{4})$/);\n\n if (match) {\n //Remove the matched extension code\n // TODO: Change this to format for any country code.\n let intlCode = match[1] ? \"+1 \" : \"\";\n return [intlCode, \"(\", match[2], \") \", match[3], \"-\", match[4]].join(\"\");\n }\n\n return str;\n};\n\n/* Check Object for Empty, Null, or Undefined Values\n--====================================================-- */\nexport const objectHasEmptyValues = (obj) => {\n return Object.values(obj).some((value) => {\n if (value === null || value === undefined || value === \"\") {\n return true;\n }\n if (isArray(value) && value.length === 0) {\n return true;\n }\n if (isPlainObject(value) && keys(value).length === 0) {\n return true;\n }\n\n return false;\n });\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\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 return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","/** The status of an Span. */\n// eslint-disable-next-line import/export\nexport var SpanStatus;\n\n(function (SpanStatus) {\n /** The operation completed successfully. */\n SpanStatus[\"Ok\"] = \"ok\";\n /** Deadline expired before operation could complete. */\n\n SpanStatus[\"DeadlineExceeded\"] = \"deadline_exceeded\";\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n\n SpanStatus[\"Unauthenticated\"] = \"unauthenticated\";\n /** 403 Forbidden */\n\n SpanStatus[\"PermissionDenied\"] = \"permission_denied\";\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n\n SpanStatus[\"NotFound\"] = \"not_found\";\n /** 429 Too Many Requests */\n\n SpanStatus[\"ResourceExhausted\"] = \"resource_exhausted\";\n /** Client specified an invalid argument. 4xx. */\n\n SpanStatus[\"InvalidArgument\"] = \"invalid_argument\";\n /** 501 Not Implemented */\n\n SpanStatus[\"Unimplemented\"] = \"unimplemented\";\n /** 503 Service Unavailable */\n\n SpanStatus[\"Unavailable\"] = \"unavailable\";\n /** Other/generic 5xx. */\n\n SpanStatus[\"InternalError\"] = \"internal_error\";\n /** Unknown. Any non-standard HTTP status code. */\n\n SpanStatus[\"UnknownError\"] = \"unknown_error\";\n /** The operation was cancelled (typically by the user). */\n\n SpanStatus[\"Cancelled\"] = \"cancelled\";\n /** Already exists (409) */\n\n SpanStatus[\"AlreadyExists\"] = \"already_exists\";\n /** Operation was rejected because the system is not in a state required for the operation's */\n\n SpanStatus[\"FailedPrecondition\"] = \"failed_precondition\";\n /** The operation was aborted, typically due to a concurrency issue. */\n\n SpanStatus[\"Aborted\"] = \"aborted\";\n /** Operation was attempted past the valid range. */\n\n SpanStatus[\"OutOfRange\"] = \"out_of_range\";\n /** Unrecoverable data loss or corruption */\n\n SpanStatus[\"DataLoss\"] = \"data_loss\";\n})(SpanStatus || (SpanStatus = {})); // eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n\n\n(function (SpanStatus) {\n /**\n * Converts a HTTP status code into a {@link SpanStatus}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or {@link SpanStatus.UnknownError}.\n */\n function fromHttpCode(httpStatus) {\n if (httpStatus < 400) {\n return SpanStatus.Ok;\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return SpanStatus.Unauthenticated;\n\n case 403:\n return SpanStatus.PermissionDenied;\n\n case 404:\n return SpanStatus.NotFound;\n\n case 409:\n return SpanStatus.AlreadyExists;\n\n case 413:\n return SpanStatus.FailedPrecondition;\n\n case 429:\n return SpanStatus.ResourceExhausted;\n\n default:\n return SpanStatus.InvalidArgument;\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return SpanStatus.Unimplemented;\n\n case 503:\n return SpanStatus.Unavailable;\n\n case 504:\n return SpanStatus.DeadlineExceeded;\n\n default:\n return SpanStatus.InternalError;\n }\n }\n\n return SpanStatus.UnknownError;\n }\n\n SpanStatus.fromHttpCode = fromHttpCode;\n})(SpanStatus || (SpanStatus = {}));","import upperFirst from \"lodash/upperFirst\";\nimport lowerCase from \"lodash/lowerCase\";\nimport { object, string, array, number } from \"yup\";\n\n// setLocale({\n// mixed: {\n// default: 'Não é válido',\n// },\n// number: {\n// min: 'Deve ser maior que ${min}',\n// },\n// });\n\nconst NOT_EMPTY = \"is not allowed to be empty\";\n\nconst companySchema = object({\n name: string().required(),\n websiteUrl: string().required(),\n remoteness: string().required(),\n});\n\nconst companyLabels = {\n name: \"Organization name\",\n websiteUrl: \"Organization website\",\n remoteness: \"How remote\",\n};\n\nconst jobSchema = object({\n title: string().required(NOT_EMPTY),\n description: string().ensure().required(),\n});\n\nconst jobLabels = {\n title: \"Job title\",\n description: \"Job description\",\n};\n\nconst userSchema = object({\n firstName: string().required(),\n lastName: string().required(),\n email: string().email().required(),\n password: string().required(),\n});\n\nconst channelMessageTemplateSchema = object({\n name: string().required(),\n body: string().required(),\n});\n\nconst bulkMessageSchema = object({\n body: string().required(),\n jobApplications: array().min(1),\n});\n\nconst hiringStageSchema = object({\n hiringStageName: string().required(NOT_EMPTY),\n});\n\n// const userLabels = {\n// title: \"Job Title\",\n// description: \"Job Description\",\n// };\n\nexport async function validateSchema(fields: {}, schema: { validate: any }, labels: {} = {}) {\n return await schema\n .validate(fields, { abortEarly: false })\n .then((validation) => {\n // console.log(\"%c[YUP] validateSchema validation\", \"color: #FF34FF\", validation);\n return [true, validation];\n })\n .catch(function (err) {\n let errors = {};\n const isValid = err === null;\n\n console.log(\"%c[YUP] validateSchema err\", \"color: #FF3434\", err);\n\n if (!isValid) {\n // Match the Rails format for errors\n err.inner.forEach((error) => {\n const fieldError = error.message.replace(\n new RegExp(`${error.params.label || error.path} `, \"gi\"),\n \"\",\n );\n\n errors[error.path] = {\n label: error.params.label || error.path,\n fieldError,\n groupError: `${labels[error.path] || upperFirst(lowerCase(error.path))} ${fieldError}`,\n };\n });\n }\n\n return [isValid, errors];\n });\n}\n\nexport async function validator(\n fields: {},\n schemaAndLabels: { schema: { validate: any }; labels: {} },\n) {\n return await validateSchema(fields, schemaAndLabels.schema, schemaAndLabels.labels);\n}\n\n/* VALIDATORS\n *********************/\n\nexport async function validateRemoteCompany(fields: {}) {\n // console.log(\"%c[YUP] validateRemoteCompany fields\", \"color: #1976D2\", fields);\n return await validateSchema(fields, companySchema, companyLabels);\n}\n\nexport async function validateRemoteJob(fields: {}) {\n // console.log(\"%c[YUP] validateRemoteJob fields\", \"color: #1976D2\", fields);\n return await validateSchema(fields, jobSchema, jobLabels);\n}\n\nexport async function validateNewJob(fields: {}) {\n return await validateSchema(\n fields,\n object({\n title: string().required(NOT_EMPTY),\n }),\n { title: \"Job title\" },\n );\n}\n\nexport async function validateRemoteUser(fields: {}) {\n // console.log(\"%c[YUP] validateRemoteJob fields\", \"color: #1976D2\", fields);\n return await validateSchema(fields, userSchema);\n}\n\nexport async function validateChannelMessageTemplate(fields: {}) {\n // console.log(\"%c[YUP] validateRemoteJob fields\", \"color: #1976D2\", fields);\n return await validateSchema(fields, channelMessageTemplateSchema);\n}\n\nexport async function validateCommentTemplate(fields: {}) {\n // console.log(\"%c[YUP] validateRemoteJob fields\", \"color: #1976D2\", fields);\n return await validator(fields, {\n schema: object({\n name: string().required(),\n body: string().required(),\n }),\n labels: {\n name: \"Name\",\n body: \"Body\",\n },\n });\n}\n\nexport async function validateBulkMessage(fields: {}) {\n // console.log(\"%c[YUP] validateBulkMessage fields\", \"color: #1976D2\", fields);\n return await validateSchema(fields, bulkMessageSchema);\n}\n\nexport async function validateHiringStage(fields: {}) {\n return await validateSchema(fields, hiringStageSchema);\n}\n\nexport async function validateJobCategory(fields: {}) {\n return await validateSchema(\n fields,\n object({\n categoryName: string().required(NOT_EMPTY),\n }),\n );\n}\n\nexport async function validateWwrCategory(fields: {}) {\n return await validateSchema(\n fields,\n object({\n wwrCategory: string().required(NOT_EMPTY),\n }),\n );\n}\n\nexport async function validateAccountJobBoardNavigation(fields: { slug: string }) {\n return await validator(fields, {\n schema: object({\n slug: string().required(NOT_EMPTY),\n }),\n labels: {\n slug: \"Organization url\",\n },\n });\n}\n\nexport async function validateLogin(fields: { email: string; password: string }) {\n return await validator(fields, {\n schema: object({\n email: string().email().required(),\n password: string().required(),\n }),\n labels: {\n email: \"Email\",\n password: \"Password\",\n },\n });\n}\n\nexport async function validateRegistration(fields: {\n firstName: string;\n lastName: string;\n email: string;\n password: string;\n}) {\n return await validator(fields, {\n schema: object({\n firstName: string().required(),\n lastName: string().required(),\n email: string().email().required(),\n password: string().min(8).required(),\n }),\n labels: {\n firstName: \"First name\",\n lastName: \"Last name\",\n email: \"Email\",\n password: \"Password\",\n },\n });\n}\n\nexport async function validateNewOrganization(fields: { name: string }) {\n return await validator(fields, {\n schema: object({\n name: string().min(2).required(),\n }),\n labels: {\n name: \"Organization name\",\n },\n });\n}\n\nexport async function validateEmail(fields: { email: string }) {\n return await validator(fields, {\n schema: object({\n email: string().email().required(),\n }),\n labels: {\n email: \"Email\",\n },\n });\n}\n\nexport async function validateCreatedEmailSelection(fields: { selection: string }) {\n return await validator(fields, {\n schema: object({\n selection: string().email().required(),\n }),\n labels: {\n selection: \"Email\",\n },\n });\n}\n\nexport async function validateInviteEmail(fields: { email: string }, callback) {\n return await validator(fields, {\n schema: object({\n email: string()\n .email()\n .test(\"test-name\", \"has already been invited\", function (email) {\n //callback function checks if email is viable and returns false if not viable\n return callback(email);\n })\n .required(),\n }),\n labels: {\n email: \"Email\",\n },\n });\n}\n\nexport async function validatePassword(fields: { password: string; passwordConfirmation }) {\n return await validator(fields, {\n schema: object({\n password: string().min(8).required(),\n passwordConfirmation: string().min(8).required(),\n }),\n labels: {\n password: \"Password\",\n passwordConfirmation: \"Password confirmation\",\n },\n });\n}\n\nexport async function validateComment(fields: { body: string }) {\n return await validator(fields, {\n schema: object({\n body: string().min(2).required(),\n }),\n labels: {\n body: \"Comment\",\n },\n });\n}\n\nexport async function validateNewFeatureFlag(fields: { name: string }) {\n return await validator(fields, {\n schema: object({\n name: string().min(2).required(),\n }),\n labels: {\n title: \"Feature flag name\",\n },\n });\n}\n\nexport async function validateSupportMessage(fields: { subject: string; body: string }) {\n return await validator(fields, {\n schema: object({\n subject: string().min(2).required(),\n body: string().min(8).required(),\n }),\n labels: {\n subject: \"Subject\",\n body: \"Message\",\n },\n });\n}\n\nexport async function validateOnboardingProfile(fields: { firstName: string; lastName: string }) {\n return await validator(fields, {\n schema: object({\n firstName: string().required(),\n lastName: string().required(),\n }),\n labels: {\n firstName: \"First name\",\n lastName: \"Last name\",\n },\n });\n}\n\nexport async function validateSalaryAmounts(fields: {\n salaryMin: number;\n salaryMax: number;\n salaryType: string;\n}) {\n // Use typeError to catch null which may mean empty OR content with letters, commas, or currency symbols\n // because the form field is of input type number any of the above will be passed as null\n return await validator(fields, {\n schema: object({\n salaryMin: number().when(\"salaryType\", {\n is: (value) => [\"Range\", \"Fixed\"].includes(value),\n then: number()\n .typeError(\"Amount is required and must be a number with no non-numeric symbols.\")\n .positive(\"Amount must be a positive number\"),\n otherwise: number().nullable(),\n }),\n salaryMax: number().when(\"salaryType\", {\n is: \"Range\",\n then: number()\n .typeError(\"Amount is required and must be a number with no non-numeric symbols.\")\n .positive(\"Amount must be a positive number\"),\n otherwise: number().nullable(),\n }),\n }),\n labels: {\n salaryMin: \"Minimum\",\n salaryMax: \"Maximum\",\n },\n });\n}\n\nexport async function validateTakeoverOrganization(\n fields: { organizationName: string },\n expectedName: string,\n) {\n return await validator(fields, {\n schema: object({\n organizationName: string()\n .required(NOT_EMPTY)\n .oneOf([expectedName], `Organization name must match ${expectedName}`),\n }),\n labels: {\n organizationName: \"Organization name\",\n },\n });\n}","import styled from \"@emotion/styled\";\n\ninterface Text {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\" | \"6xl\" | \"7xl\" | \"8xl\" | \"9xl\";\n weight?: \"normal\" | \"medium\" | \"semibold\" | \"bold\";\n italic?: boolean;\n align?: \"start\" | \"end\" | \"center\" | \"justify\";\n}\n\nconst variants = {\n size: {\n xs: `\n font-size: 12px;\n line-height: 16px;\n `,\n sm: `\n font-size: 14px;\n line-height: 20px;\n `,\n md: `\n font-size: 16px;\n line-height: 24px;\n `,\n lg: `\n font-size: 18px;\n line-height: 28px;\n `,\n xl: `\n font-size: 20px;\n line-height: 28px;\n `,\n '2xl': `\n font-size: 24px;\n line-height: 32px;\n `,\n '3xl': `\n font-size: 30px;\n line-height: 36px;\n `,\n '4xl': `\n font-size: 36px;\n line-height: 40px;\n `,\n '5xl': `\n font-size: 48px;\n `,\n '6xl': `\n font-size: 60px;\n `,\n '7xl': `\n font-size: 72px;\n `,\n '8xl': `\n font-size: 96px;\n `,\n '9xl': `\n font-size: 128;\n `,\n },\n weight: {\n normal: `\n font-weight: 400;\n `,\n medium: `\n font-weight: 450;\n `,\n semibold: `\n font-weight: 500;\n `,\n bold: `\n font-weight: 600;\n `,\n },\n italic: `\n font-style: italic;\n `,\n align: {\n start: `\n text-align: start;\n `,\n end: `\n text-align: end;\n `,\n center: `\n text-align: center;\n `,\n justify: `\n text-align: justify;\n `,\n }\n};\n\nconst Text = styled.span`\n line-height: 1;\n margin: 0;\n display: block;\n color: inherit;\n ${({ size }) => variants.size[size]};\n ${({ weight }) => variants.weight[weight]};\n ${({ italic }) => italic && variants.italic};\n ${({ align }) => variants.align[align]};\n`;\n\nexport default Text;","import * as React from \"react\";\nimport { NavLink } from \"react-router-dom\";\n\nexport default function PathNavLink(props) {\n return (\n {\n // window.logger(\"%c[PathNavLink]\", \"color: #1976D2\", { props, params });\n return `${params.pathname}${params.search}` == props.to;\n }}\n {...props}\n />\n );\n}\n","import isPropValid from \"@emotion/is-prop-valid\";\nimport styled from \"@emotion/styled\";\nimport { NavLink } from \"react-router-dom\";\n// import queryString from \"query-string\";\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport Box from \"@shared/components/Box\";\nimport Text from \"@shared/components/Text\";\nimport PathNavLink from \"@ats/src/components/shared/PathNavLink\";\nimport breakpoint from \"@shared/styles/breakpoints\";\n\ntype Props = {\n to: string;\n label: string;\n icon?: string;\n count?: number;\n chevron?: boolean;\n usePathMatching?: boolean;\n};\n\nfunction NavItem(props: Props) {\n const { usePathMatching } = props;\n\n const Wrapper = usePathMatching ? StyledPathNavLinkComponent : StyledNavLinkComponent;\n\n return (\n \n \n {props.icon && }\n {props.label}\n \n {props.count && props.count}\n {props.chevron && }\n \n );\n}\n\nexport default NavItem;\n\nNavItem.defaultProps = { usePathMatching: false };\n\n/* Styled Components\n======================================================= */\n\nconst linkStyles = (props) => `\n height: 40px;\n border-radius: ${props.theme.poly.radii.sm};\n margin-left: 0.375rem;\n margin-right: 0.375rem;\n padding-left: 0.625rem;\n padding-right: ${props.chevron ? \"6px\" : \"10px\"};\n margin-bottom: 2px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n text-decoration: none;\n transition: background-color 0.2s ease;\n\n > svg {\n transition: opacity 0.2s ease;\n flex-shrink: 0;\n opacity: 0;\n }\n &.active {\n color: ${props.theme.poly.color.loudText};\n background: ${props.theme.poly.color.subtleHover};\n > svg {\n opacity: 1;\n }\n }\n\n ${breakpoint.sm} {\n height: 32px;\n &:hover {\n color: ${props.theme.poly.color.loudText};\n background: ${props.theme.poly.color.loudHover};\n > svg {\n stroke: ${props.theme.poly.color.secondaryText};\n opacity: 1;\n }\n }\n }\n`;\n\nconst StyledPathNavLinkComponent = styled(PathNavLink, { shouldForwardProp: isPropValid })(linkStyles);\n\nconst StyledNavLinkComponent = styled(NavLink, { shouldForwardProp: isPropValid })(linkStyles);\n\nconst StyledLabel = styled(Box)`\n display: flex;\n align-items: center;\n overflow: hidden;\n\n ${Text} {\n margin-right: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n svg {\n margin-right: 8px;\n flex-shrink: 0;\n }\n`;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","import { __assign, __read, __spread } from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nfunction callOnHub(method) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var hub = getCurrentHub();\n\n if (hub && hub[method]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return hub[method].apply(hub, __spread(args));\n }\n\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n\nexport function captureException(exception, captureContext) {\n var syntheticException;\n\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception;\n }\n\n return callOnHub('captureException', exception, {\n captureContext: captureContext,\n originalException: exception,\n syntheticException: syntheticException\n });\n}\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param level Define the level of the message.\n * @returns The generated eventId.\n */\n\nexport function captureMessage(message, captureContext) {\n var syntheticException;\n\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception;\n } // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n\n\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? {\n captureContext: captureContext\n } : undefined;\n return callOnHub('captureMessage', message, level, __assign({\n originalException: message,\n syntheticException: syntheticException\n }, context));\n}\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\n\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\n\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\n}\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\n\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\n}\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\n\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\n}\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\n\nexport function setTags(tags) {\n callOnHub('setTags', tags);\n}\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\n\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\n}\n/**\n * Set key:value that will be sent as tags data with the event.\n * @param key String key of tag\n * @param value String value of tag\n */\n\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\n}\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\n\nexport function setUser(user) {\n callOnHub('setUser', user);\n}\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\n\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport function _callOnClient(method) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n callOnHub.apply(void 0, __spread(['_invokeClient', method], args));\n}\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\n\nexport function startTransaction(context, customSamplingContext) {\n return callOnHub('startTransaction', __assign({}, context), customSamplingContext);\n}","import { useQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiGet, apiPut, apiPost } from \"@shared/queryHooks/api\";\n\n/* API requests\n--===================================================-- */\nconst getJob = async (jobId) => {\n // window.logger(\"%c[useJob] getJob\", \"color: #1976D2\", { key, jobId });\n if (jobId != undefined) {\n return await apiGet({\n path: `/jobs/${jobId}`,\n });\n }\n};\n\nconst getJobs = async (status) => {\n window.logger(\"%c[useJob] getJobs\\n\\n\", \"background-color: #FF76D2\", {\n status,\n });\n const statusParam = status != undefined ? `?status=${status}` : \"\";\n return await apiGet({ path: `/jobs${statusParam}` });\n};\n\nconst getAllJobs = async (status) => {\n window.logger(\"%c[useJob] getAllJobs\\n\\n\", \"background-color: #0F76D2\", {\n status,\n });\n const statusParam = status != undefined ? `?status=${status}` : \"\";\n return await apiGet({ path: `/jobs/all${statusParam}` });\n};\n\nconst createJob = async (job) => {\n window.logger(\"%c[useJob] updateJob\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n job,\n });\n return await apiPost({\n path: `/jobs`,\n variables: { job },\n });\n};\n\nconst updateJob = async ({ id, ...job }) => {\n window.logger(\"%c[useJob] updateJob\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n job,\n });\n return await apiPut({\n path: `/jobs/${id}`,\n variables: { job },\n });\n};\n\nconst publishJob = async ({ id, ...job }) => {\n window.logger(\"%c[useJob] publishJob\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n job,\n });\n return await apiPut({\n path: `/jobs/${id}/publish`,\n variables: {},\n });\n};\n\nconst cloneJob = async ({ id, ...job }) => {\n window.logger(\"%c[useJob] cloneJob\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n job,\n });\n return await apiPost({\n path: `/jobs/${id}/clone`,\n variables: {},\n });\n};\n\nconst forceWebflowSyncForJob = async ({ id, ...job }) => {\n window.logger(\"%c[useJob] forceWebflowSyncForJob\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n job,\n });\n return await apiPut({\n path: `/jobs/${id}/webflow_sync`,\n variables: {},\n });\n};\n\nconst createBoardWwrListing = async ({ jobId, ...boardWwrListing }) => {\n window.logger(\"%c[useJob] createBoardWwrListing\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n boardWwrListing,\n });\n return await apiPost({\n path: `/jobs/${jobId}/board_wwr_listings`,\n variables: { boardWwrListing },\n });\n};\n\nconst updateBoardWwrListing = async ({ jobId, id, ...boardWwrListing }) => {\n window.logger(\"%c[useJob] updateBoardWwrListing\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n boardWwrListing,\n });\n return await apiPut({\n path: `/jobs/${jobId}/board_wwr_listings/${id}`,\n variables: { boardWwrListing },\n });\n};\n\n/* Hooks\n--===================================================-- */\nfunction useCreateJob() {\n const queryClient = useQueryClient();\n return useMutation(createJob, {\n onSuccess: (data, mutationVariables) => {\n // window.logger(\"%c[useJob] useUpdateJob onSuccess\", \"color: #1976D2\", {\n // data,\n // mutationVariables,\n // });\n queryClient.invalidateQueries([\"jobs\", {}]); // empty object because when status is null it is removed by react-query\n queryClient.invalidateQueries([\"jobs\", { status: \"status_archived\" }]);\n queryClient.invalidateQueries([\"allJobs\", {}]);\n queryClient.invalidateQueries([\"allJobs\", { status: \"status_archived\" }]);\n },\n\n // throwOnError: true,\n });\n}\n\nfunction useUpdateJob() {\n const queryClient = useQueryClient();\n return useMutation(updateJob, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\"%c[useJob] useUpdateJob onSuccess\", \"color: #1976D2\", {\n data,\n mutationVariables,\n queryClient,\n });\n queryClient.invalidateQueries([\"jobs\", data.id]);\n queryClient.invalidateQueries(\"jobs\");\n // queryClient.invalidateQueries([\"jobs\", {}]);\n queryClient.invalidateQueries([\"jobs\", { status: \"status_archived\" }]);\n queryClient.invalidateQueries([\"allJobs\", {}]);\n queryClient.invalidateQueries([\"allJobs\", { status: \"status_archived\" }]);\n },\n\n // throwOnError: true,\n });\n}\n\nfunction useUpdateJobOptimistic(job) {\n const queryClient = useQueryClient();\n return useMutation(updateJob, {\n // When mutate is called:\n onMutate: (newJob) => {\n window.logger(\"%c[useJob] useUpdateJobOptimistic onMutate\", \"color: #1976D2\", {\n job,\n newJob,\n });\n // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n queryClient.cancelQueries([\"jobs\", newJob.id]);\n\n // Snapshot the previous value\n const previousJob = queryClient.getQueryData([\"jobs\", newJob.id]);\n\n // Optimistically update to the new value (combining the full job with whatever the update is)\n queryClient.setQueryData([\"jobs\", newJob.id], { ...job, ...newJob });\n\n // Return a rollback function\n return () => queryClient.setQueryData([\"jobs\", newJob.id], previousJob);\n },\n\n // onSuccess: (data, mutationVariables) => {\n // window.logger(\"%c[useJob] useUpdateJob onSuccess\", \"color: #1976D2\", {\n // data,\n // mutationVariables,\n // });\n // queryClient.invalidateQueries([\"jobs\", data.id]);\n // },\n\n // If the mutation fails, use the rollback function we returned above in onMutate\n onError: (err: any, newJob: any, rollback: any) => rollback(),\n // Always refetch after error or success:\n onSettled: (newJob) => {\n queryClient.invalidateQueries([\"jobs\", newJob.id]);\n },\n\n // throwOnError: true,\n });\n}\n\nfunction usePublishJob() {\n const queryClient = useQueryClient();\n return useMutation(publishJob, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\"%c[useJob] usePublishJob onSuccess\", \"color: #1976D2\", {\n data,\n mutationVariables,\n });\n queryClient.invalidateQueries([\"jobs\", data.id]);\n queryClient.invalidateQueries([\"jobs\", {}]);\n queryClient.invalidateQueries([\"jobs\", { status: \"status_archived\" }]);\n queryClient.invalidateQueries([\"allJobs\", {}]);\n queryClient.invalidateQueries([\"allJobs\", { status: \"status_archived\" }]);\n },\n\n // throwOnError: true,\n });\n}\n\nfunction useCloneJob() {\n const queryClient = useQueryClient();\n return useMutation(cloneJob, {\n onSuccess: (data, mutationVariables) => {\n // window.logger(\"%c[useJob] useCloneJob onSuccess\", \"color: #1976D2\", {\n // data,\n // mutationVariables,\n // });\n // queryClient.invalidateQueries([\"jobs\", data.id]);\n queryClient.refetchQueries([\"jobs\", data.id]);\n },\n\n // throwOnError: true,\n });\n}\n\nfunction useForceWebflowSyncForJob() {\n const queryClient = useQueryClient();\n return useMutation(forceWebflowSyncForJob, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\"%c[useJob] useForceWebflowSyncForJob onSuccess\", \"color: #1976D2\", {\n data,\n mutationVariables,\n });\n queryClient.invalidateQueries([\"jobs\", data.id]);\n queryClient.invalidateQueries([\"jobs\", {}]);\n queryClient.invalidateQueries([\"jobs\", { status: \"status_archived\" }]);\n queryClient.invalidateQueries([\"allJobs\", {}]);\n queryClient.invalidateQueries([\"allJobs\", { status: \"status_archived\" }]);\n },\n\n // throwOnError: true,\n });\n}\n\nfunction useCreateBoardWwrListing() {\n const queryClient = useQueryClient();\n return useMutation(createBoardWwrListing, {\n onSuccess: (data, mutationVariables) => {\n queryClient.invalidateQueries([\"jobs\", data.id]);\n },\n\n // throwOnError: true,\n });\n}\n\nfunction useUpdateBoardWwrListing() {\n const queryClient = useQueryClient();\n return useMutation(updateBoardWwrListing, {\n onSuccess: (data, mutationVariables) => {\n queryClient.invalidateQueries([\"jobs\", data.id]);\n },\n\n // throwOnError: true,\n });\n}\n\nfunction useJob({\n jobId,\n refetchOnWindowFocus = false,\n}: {\n jobId: number;\n refetchOnWindowFocus?: boolean | \"always\";\n}): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n refetch: () => any;\n} {\n window.logger(\"%c[useJob] useJob\", \"color: #1976D2\", { jobId, refetchOnWindowFocus });\n return useQuery([\"jobs\", jobId], () => getJob(jobId), {\n refetchOnWindowFocus,\n retry: (failureCount, error) =>\n !error.message.includes(401) && !error.message.includes(403) && !error.message.includes(422),\n });\n}\n\nfunction useJobs({\n refetchOnWindowFocus = false,\n status,\n enabled = true,\n}: {\n refetchOnWindowFocus?: boolean | \"always\";\n status?: string;\n enabled?: boolean;\n}): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n refetch: () => any;\n} {\n window.logger(\"%c[useJob] useJobs\", \"color: #1976D2\", { status, enabled, refetchOnWindowFocus });\n return useQuery([\"jobs\", { status }], () => getJobs(status), {\n refetchOnWindowFocus,\n enabled,\n });\n}\n\nfunction useAllJobs({\n refetchOnWindowFocus = false,\n status,\n enabled = true,\n}: {\n refetchOnWindowFocus?: boolean | \"always\";\n status?: string;\n enabled?: boolean;\n}): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n refetch: () => any;\n} {\n window.logger(\"%c[useJob] useAllJobs\", \"color: #1976D2\", {\n status,\n enabled,\n refetchOnWindowFocus,\n });\n return useQuery([\"allJobs\", { status }], () => getAllJobs(status), {\n refetchOnWindowFocus,\n enabled,\n });\n}\n\nexport {\n useJob,\n useJobs,\n useAllJobs,\n useCreateJob,\n useUpdateJob,\n useUpdateJobOptimistic,\n usePublishJob,\n useCloneJob,\n useForceWebflowSyncForJob,\n useCreateBoardWwrListing,\n useUpdateBoardWwrListing,\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { __values } from \"tslib\";\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 * 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 replacement A function that should be used to wrap a given method.\n * @returns void\n */\n\nexport function fill(source, name, replacement) {\n if (!(name in source)) {\n return;\n }\n\n var original = source[name];\n var wrapped = replacement(original); // 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\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) {// 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 * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\n\nexport function urlEncode(object) {\n return Object.keys(object).map(function (key) {\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]);\n }).join('&');\n}\n/**\n * Transforms any object into an object literal with all it's attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order to be usable by the serializer\n */\n\nfunction getWalkSource(value) {\n if (isError(value)) {\n var error = value;\n var err = {\n message: error.message,\n name: error.name,\n stack: error.stack\n };\n\n for (var 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 var event_1 = value;\n var source = {};\n source.type = event_1.type; // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n\n try {\n source.target = isElement(event_1.target) ? htmlTreeAsString(event_1.target) : Object.prototype.toString.call(event_1.target);\n } catch (_oO) {\n source.target = '';\n }\n\n try {\n source.currentTarget = isElement(event_1.currentTarget) ? htmlTreeAsString(event_1.currentTarget) : Object.prototype.toString.call(event_1.currentTarget);\n } catch (_oO) {\n source.currentTarget = '';\n }\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event_1.detail;\n }\n\n for (var i in event_1) {\n if (Object.prototype.hasOwnProperty.call(event_1, i)) {\n source[i] = event_1;\n }\n }\n\n return source;\n }\n\n return value;\n}\n/** Calculates bytes size of input string */\n\n\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n/** Calculates bytes size of input object */\n\n\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\n\n\nexport function normalizeToSize(object, // Default Node.js REPL depth\ndepth, // 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize) {\n if (depth === void 0) {\n depth = 3;\n }\n\n if (maxSize === void 0) {\n maxSize = 100 * 1024;\n }\n\n var serialized = normalize(object, depth);\n\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return serialized;\n}\n/** Transforms any input value into a string form, either primitive value or a type of the input */\n\nfunction serializeValue(value) {\n var type = Object.prototype.toString.call(value); // Node.js REPL notation\n\n if (typeof value === 'string') {\n return value;\n }\n\n if (type === '[object Object]') {\n return '[Object]';\n }\n\n if (type === '[object Array]') {\n return '[Array]';\n }\n\n var normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\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 */\n\n\nfunction normalizeValue(value, key) {\n if (key === 'domain' && value && _typeof(value) === 'object' && value._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n } // React's SyntheticEvent thingy\n\n\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 return value;\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\n\n\nexport function walk(key, value, depth, memo) {\n if (depth === void 0) {\n depth = +Infinity;\n }\n\n if (memo === void 0) {\n memo = new Memo();\n } // If we reach the maximum depth, serialize whatever has left\n\n\n if (depth === 0) {\n return serializeValue(value);\n }\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // If value implements `toJSON` method, call it and return early\n\n\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 // 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\n\n var normalized = normalizeValue(value, key);\n\n if (isPrimitive(normalized)) {\n return normalized;\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\n\n var source = getWalkSource(value); // Create an accumulator that will act as a parent for all future itterations of that branch\n\n var acc = Array.isArray(value) ? [] : {}; // If we already walked that branch, bail out, as it's circular reference\n\n if (memo.memoize(value)) {\n return '[Circular ~]';\n } // Walk all keys of the source\n\n\n for (var 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 } // Recursively walk through all the child nodes\n\n\n acc[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n } // Once walked through all the branches, remove the parent from memo storage\n\n\n memo.unmemoize(value); // Return accumulated values\n\n return acc;\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\n\nexport function normalize(input, depth) {\n try {\n return JSON.parse(JSON.stringify(input, function (key, value) {\n return walk(key, value, depth);\n }));\n } catch (_oO) {\n return '**non-serializable**';\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\n\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) {\n maxLength = 40;\n }\n\n var 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 (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n\n if (serialized.length > maxLength) {\n continue;\n }\n\n if (includedKeys === keys.length) {\n return serialized;\n }\n\n return truncate(serialized, maxLength);\n }\n\n return '';\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 */\n\nexport function dropUndefinedKeys(val) {\n var e_1, _a;\n\n if (isPlainObject(val)) {\n var obj = val;\n var rv = {};\n\n try {\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n\n if (typeof obj[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(obj[key]);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return rv;\n }\n\n if (Array.isArray(val)) {\n return val.map(dropUndefinedKeys);\n }\n\n return val;\n}","import { HiringStage } from \"@ats/types/job\";\nimport isEmpty from \"lodash/isEmpty\";\n\nexport const guid = () => {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n};\n\nexport const isServer = () => !(typeof window !== \"undefined\" && (window as any).document);\n\nexport const startsWith = (string, searchValue) => string.lastIndexOf(searchValue, 0) === 0;\n\nexport const pluralize = (word, count) => `${word}${count !== 1 ? \"s\" : \"\"}`;\n\nexport const capitalizeSingleWord = (string) => string.charAt(0).toUpperCase() + string.slice(1);\n\n// const __DEV__ = process.env.NODE_ENV === \"development\";\n// export const CareerRoot = __DEV__ ? \"http://jobs.lvh.me:5007\" : APP_JOBBOARD_ROOT_URL; // Do not have an SSL cert yet\n\n/* nextLogical\n--===================================================-- */\n// Used to find the next logical Object (that has an id attribute) in a list.\n// If there is only 1 item in the list, do nothing\n// If there are items after this item, return the next item\n// If we are at the end of the list return the previous item\nexport const nextLogical = ({ list, currentItem }) => {\n const length = list.length;\n const currentIndex = list.findIndex((item) => item.id === currentItem.id);\n\n if (currentIndex + 1 === length) {\n // last Item, check if is only one, if so do nothing.\n if (currentIndex === 0) {\n return null;\n }\n\n // return the Previous Item\n return list[currentIndex - 1];\n } else {\n // return the Next Item\n return list[currentIndex + 1];\n }\n};\n\n/* hiringStagesForJob\n--===================================================-- */\nexport const hiringStagesForJob = (job): HiringStage[] => {\n if (isEmpty(job.hiringStages)) {\n return [];\n }\n\n const hiringStages = job.hiringStages;\n const inboxStage = hiringStages.find((stage) => stage.kind === \"kind_inbox\");\n const hiredStage = hiringStages.find((stage) => stage.kind === \"kind_hired\");\n const archivedStage = hiringStages.find((stage) => stage.kind === \"kind_archived\");\n const inProcessStages = hiringStages\n .filter((stage) => stage.kind === \"kind_in_process\")\n .sort((a, b) => a.position - b.position);\n\n const stages = [inboxStage, ...inProcessStages, hiredStage, archivedStage];\n return stages;\n};\n\nexport interface HiringStageOption {\n value: number;\n label: string;\n}\n\nexport const hiringStagesForJobOptions = (job): HiringStageOption[] => {\n return hiringStagesForJob(job).map((hiringStage) => ({\n value: hiringStage.id,\n label: hiringStage.name,\n }));\n};\n\n/* hiringStageAutomation\n--===================================================-- */\nexport const activeHiringStageAutomation = (hiringStages, targetHiringStageId) => {\n const hiringStage = hiringStages.find((stage) => stage.id === targetHiringStageId);\n const targetStageAutomation = getActiveHiringStageAutomation(hiringStage)\n return targetStageAutomation;\n}\n\nexport const getActiveHiringStageAutomation = (hiringStage) => {\n const hiringStageAutomation = hiringStage?.hiringStageAutomation && hiringStage?.hiringStageAutomation.enabled === true\n ? hiringStage.hiringStageAutomation\n : null;\n return hiringStageAutomation;\n}\n\n/* arrayToObject\n--===================================================-- */\nexport const arrayToObject = (array) =>\n array.reduce((obj, item) => {\n obj[item.id] = item;\n return obj;\n }, {});\n\nexport const prettyPlanName = (plan) => {\n if (plan.includes(\"gemini\")) {\n return \"Gemini\";\n } else if (plan.includes(\"apollo\")) {\n return \"Apollo\";\n } else if (plan.includes(\"plan_simple_ats_per_job\")) {\n return \"Simple ATS\";\n } else if (plan.includes(\"plan_simple_ats_paid\")) {\n return \"Simple ATS\";\n } else {\n return \"Alpha\";\n }\n};\n\nexport const prettyBillingPrice = (price) => {\n window.logger(\"%c[prettyBillingPrice] \", \"color: #1976D2\", { price });\n let calculatedPrice =\n price.billingScheme === \"tiered\"\n ? price.tiers[0].unitAmount / 100.0\n : price.interval === \"year\" || price.recurring.interval === \"year\"\n ? price.unitAmount / 12.0 / 100.0\n : price.unitAmount / 100.0;\n\n if (calculatedPrice > 999.99) {\n return calculatedPrice.toLocaleString(undefined, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n });\n } else {\n return Number.isInteger(calculatedPrice)\n ? calculatedPrice.toString()\n : calculatedPrice.toFixed(2);\n }\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var IS_PRODUCTION = process.env.NODE_ENV === 'production';\nexport { IS_PRODUCTION };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n\n var argType = _typeof(arg);\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames[\"default\"] = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && _typeof(define.amd) === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","import React from \"react\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\ntype Props = {\n title?: string;\n message: string | object;\n icon?: string;\n borderless?: boolean;\n roomy?: boolean;\n};\n\nconst EmptyState = ({ title, message, icon, borderless, roomy }: Props) => {\n return (\n \n {icon && (\n \n \n \n )}\n {title &&

    {title}

    }\n {message &&

    {message}

    }\n
    \n );\n};\n\nexport default EmptyState;\n\n/* Styled Components\n======================================================= */\nconst Styled: any = {};\n\nStyled.Container = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: EmptyState;\n ${[t.px(6), t.rounded.md]}\n ${props.roomy ? t.py(8) : t.py(5)}\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n ${!props.borderless\n ? `\n border: 1px solid ${t.dark ? \"transparent\" : t.color.gray[200]};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : \"transparent\"};\n `\n : \"\"}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n h2 {\n ${[t.text.sm, t.mb(1)]};\n }\n p {\n ${t.text.xs}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n\nStyled.IconWrapper = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: EmptyState_IconWrapper;\n ${[t.text.sm, t.mb(2)]}\n `;\n});\n","import { ReplaceError, Slice, Fragment, MarkType } from 'prosemirror-model'; // Mappable:: interface\n// There are several things that positions can be mapped through.\n// Such objects conform to this interface.\n//\n// map:: (pos: number, assoc: ?number) → number\n// Map a position through this object. When given, `assoc` (should\n// be -1 or 1, defaults to 1) determines with which side the\n// position is associated, which determines in which direction to\n// move when a chunk of content is inserted at the mapped position.\n//\n// mapResult:: (pos: number, assoc: ?number) → MapResult\n// Map a position, and return an object containing additional\n// information about the mapping. The result's `deleted` field tells\n// you whether the position was deleted (completely enclosed in a\n// replaced range) during the mapping. When content on only one side\n// is deleted, the position itself is only considered deleted when\n// `assoc` points in the direction of the deleted content.\n// Recovery values encode a range index and an offset. They are\n// represented as numbers, because tons of them will be created when\n// mapping, for example, a large number of decorations. The number's\n// lower 16 bits provide the index, the remaining bits the offset.\n//\n// Note: We intentionally don't use bit shift operators to en- and\n// decode these, since those clip to 32 bits, which we might in rare\n// cases want to overflow. A 64-bit float can represent 48-bit\n// integers precisely.\n\nvar lower16 = 0xffff;\nvar factor16 = Math.pow(2, 16);\n\nfunction makeRecover(index, offset) {\n return index + offset * factor16;\n}\n\nfunction recoverIndex(value) {\n return value & lower16;\n}\n\nfunction recoverOffset(value) {\n return (value - (value & lower16)) / factor16;\n} // ::- An object representing a mapped position with extra\n// information.\n\n\nvar MapResult = function MapResult(pos, deleted, recover) {\n if (deleted === void 0) deleted = false;\n if (recover === void 0) recover = null; // :: number The mapped version of the position.\n\n this.pos = pos; // :: bool Tells you whether the position was deleted, that is,\n // whether the step removed its surroundings from the document.\n\n this.deleted = deleted;\n this.recover = recover;\n}; // :: class extends Mappable\n// A map describing the deletions and insertions made by a step, which\n// can be used to find the correspondence between positions in the\n// pre-step version of a document and the same position in the\n// post-step version.\n\n\nvar StepMap = function StepMap(ranges, inverted) {\n if (inverted === void 0) inverted = false;\n this.ranges = ranges;\n this.inverted = inverted;\n};\n\nStepMap.prototype.recover = function recover(value) {\n var diff = 0,\n index = recoverIndex(value);\n\n if (!this.inverted) {\n for (var i = 0; i < index; i++) {\n diff += this.ranges[i * 3 + 2] - this.ranges[i * 3 + 1];\n }\n }\n\n return this.ranges[index * 3] + diff + recoverOffset(value);\n}; // : (number, ?number) → MapResult\n\n\nStepMap.prototype.mapResult = function mapResult(pos, assoc) {\n if (assoc === void 0) assoc = 1;\n return this._map(pos, assoc, false);\n}; // : (number, ?number) → number\n\n\nStepMap.prototype.map = function map(pos, assoc) {\n if (assoc === void 0) assoc = 1;\n return this._map(pos, assoc, true);\n};\n\nStepMap.prototype._map = function _map(pos, assoc, simple) {\n var diff = 0,\n oldIndex = this.inverted ? 2 : 1,\n newIndex = this.inverted ? 1 : 2;\n\n for (var i = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i] - (this.inverted ? diff : 0);\n\n if (start > pos) {\n break;\n }\n\n var oldSize = this.ranges[i + oldIndex],\n newSize = this.ranges[i + newIndex],\n end = start + oldSize;\n\n if (pos <= end) {\n var side = !oldSize ? assoc : pos == start ? -1 : pos == end ? 1 : assoc;\n var result = start + diff + (side < 0 ? 0 : newSize);\n\n if (simple) {\n return result;\n }\n\n var recover = pos == (assoc < 0 ? start : end) ? null : makeRecover(i / 3, pos - start);\n return new MapResult(result, assoc < 0 ? pos != start : pos != end, recover);\n }\n\n diff += newSize - oldSize;\n }\n\n return simple ? pos + diff : new MapResult(pos + diff);\n};\n\nStepMap.prototype.touches = function touches(pos, recover) {\n var diff = 0,\n index = recoverIndex(recover);\n var oldIndex = this.inverted ? 2 : 1,\n newIndex = this.inverted ? 1 : 2;\n\n for (var i = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i] - (this.inverted ? diff : 0);\n\n if (start > pos) {\n break;\n }\n\n var oldSize = this.ranges[i + oldIndex],\n end = start + oldSize;\n\n if (pos <= end && i == index * 3) {\n return true;\n }\n\n diff += this.ranges[i + newIndex] - oldSize;\n }\n\n return false;\n}; // :: ((oldStart: number, oldEnd: number, newStart: number, newEnd: number))\n// Calls the given function on each of the changed ranges included in\n// this map.\n\n\nStepMap.prototype.forEach = function forEach(f) {\n var oldIndex = this.inverted ? 2 : 1,\n newIndex = this.inverted ? 1 : 2;\n\n for (var i = 0, diff = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i],\n oldStart = start - (this.inverted ? diff : 0),\n newStart = start + (this.inverted ? 0 : diff);\n var oldSize = this.ranges[i + oldIndex],\n newSize = this.ranges[i + newIndex];\n f(oldStart, oldStart + oldSize, newStart, newStart + newSize);\n diff += newSize - oldSize;\n }\n}; // :: () → StepMap\n// Create an inverted version of this map. The result can be used to\n// map positions in the post-step document to the pre-step document.\n\n\nStepMap.prototype.invert = function invert() {\n return new StepMap(this.ranges, !this.inverted);\n};\n\nStepMap.prototype.toString = function toString() {\n return (this.inverted ? \"-\" : \"\") + JSON.stringify(this.ranges);\n}; // :: (n: number) → StepMap\n// Create a map that moves all positions by offset `n` (which may be\n// negative). This can be useful when applying steps meant for a\n// sub-document to a larger document, or vice-versa.\n\n\nStepMap.offset = function offset(n) {\n return n == 0 ? StepMap.empty : new StepMap(n < 0 ? [0, -n, 0] : [0, 0, n]);\n};\n\nStepMap.empty = new StepMap([]); // :: class extends Mappable\n// A mapping represents a pipeline of zero or more [step\n// maps](#transform.StepMap). It has special provisions for losslessly\n// handling mapping positions through a series of steps in which some\n// steps are inverted versions of earlier steps. (This comes up when\n// ‘[rebasing](/docs/guide/#transform.rebasing)’ steps for\n// collaboration or history management.)\n\nvar Mapping = function Mapping(maps, mirror, from, to) {\n // :: [StepMap]\n // The step maps in this mapping.\n this.maps = maps || []; // :: number\n // The starting position in the `maps` array, used when `map` or\n // `mapResult` is called.\n\n this.from = from || 0; // :: number\n // The end position in the `maps` array.\n\n this.to = to == null ? this.maps.length : to;\n this.mirror = mirror;\n}; // :: (?number, ?number) → Mapping\n// Create a mapping that maps only through a part of this one.\n\n\nMapping.prototype.slice = function slice(from, to) {\n if (from === void 0) from = 0;\n if (to === void 0) to = this.maps.length;\n return new Mapping(this.maps, this.mirror, from, to);\n};\n\nMapping.prototype.copy = function copy() {\n return new Mapping(this.maps.slice(), this.mirror && this.mirror.slice(), this.from, this.to);\n}; // :: (StepMap, ?number)\n// Add a step map to the end of this mapping. If `mirrors` is\n// given, it should be the index of the step map that is the mirror\n// image of this one.\n\n\nMapping.prototype.appendMap = function appendMap(map, mirrors) {\n this.to = this.maps.push(map);\n\n if (mirrors != null) {\n this.setMirror(this.maps.length - 1, mirrors);\n }\n}; // :: (Mapping)\n// Add all the step maps in a given mapping to this one (preserving\n// mirroring information).\n\n\nMapping.prototype.appendMapping = function appendMapping(mapping) {\n for (var i = 0, startSize = this.maps.length; i < mapping.maps.length; i++) {\n var mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i], mirr != null && mirr < i ? startSize + mirr : null);\n }\n}; // :: (number) → ?number\n// Finds the offset of the step map that mirrors the map at the\n// given offset, in this mapping (as per the second argument to\n// `appendMap`).\n\n\nMapping.prototype.getMirror = function getMirror(n) {\n if (this.mirror) {\n for (var i = 0; i < this.mirror.length; i++) {\n if (this.mirror[i] == n) {\n return this.mirror[i + (i % 2 ? -1 : 1)];\n }\n }\n }\n};\n\nMapping.prototype.setMirror = function setMirror(n, m) {\n if (!this.mirror) {\n this.mirror = [];\n }\n\n this.mirror.push(n, m);\n}; // :: (Mapping)\n// Append the inverse of the given mapping to this one.\n\n\nMapping.prototype.appendMappingInverted = function appendMappingInverted(mapping) {\n for (var i = mapping.maps.length - 1, totalSize = this.maps.length + mapping.maps.length; i >= 0; i--) {\n var mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i].invert(), mirr != null && mirr > i ? totalSize - mirr - 1 : null);\n }\n}; // :: () → Mapping\n// Create an inverted version of this mapping.\n\n\nMapping.prototype.invert = function invert() {\n var inverse = new Mapping();\n inverse.appendMappingInverted(this);\n return inverse;\n}; // : (number, ?number) → number\n// Map a position through this mapping.\n\n\nMapping.prototype.map = function map(pos, assoc) {\n if (assoc === void 0) assoc = 1;\n\n if (this.mirror) {\n return this._map(pos, assoc, true);\n }\n\n for (var i = this.from; i < this.to; i++) {\n pos = this.maps[i].map(pos, assoc);\n }\n\n return pos;\n}; // : (number, ?number) → MapResult\n// Map a position through this mapping, returning a mapping\n// result.\n\n\nMapping.prototype.mapResult = function mapResult(pos, assoc) {\n if (assoc === void 0) assoc = 1;\n return this._map(pos, assoc, false);\n};\n\nMapping.prototype._map = function _map(pos, assoc, simple) {\n var deleted = false;\n\n for (var i = this.from; i < this.to; i++) {\n var map = this.maps[i],\n result = map.mapResult(pos, assoc);\n\n if (result.recover != null) {\n var corr = this.getMirror(i);\n\n if (corr != null && corr > i && corr < this.to) {\n i = corr;\n pos = this.maps[corr].recover(result.recover);\n continue;\n }\n }\n\n if (result.deleted) {\n deleted = true;\n }\n\n pos = result.pos;\n }\n\n return simple ? pos : new MapResult(pos, deleted);\n};\n\nfunction TransformError(message) {\n var err = Error.call(this, message);\n err.__proto__ = TransformError.prototype;\n return err;\n}\n\nTransformError.prototype = Object.create(Error.prototype);\nTransformError.prototype.constructor = TransformError;\nTransformError.prototype.name = \"TransformError\"; // ::- Abstraction to build up and track an array of\n// [steps](#transform.Step) representing a document transformation.\n//\n// Most transforming methods return the `Transform` object itself, so\n// that they can be chained.\n\nvar Transform = function Transform(doc) {\n // :: Node\n // The current document (the result of applying the steps in the\n // transform).\n this.doc = doc; // :: [Step]\n // The steps in this transform.\n\n this.steps = []; // :: [Node]\n // The documents before each of the steps.\n\n this.docs = []; // :: Mapping\n // A mapping with the maps for each of the steps in this transform.\n\n this.mapping = new Mapping();\n};\n\nvar prototypeAccessors = {\n before: {\n configurable: true\n },\n docChanged: {\n configurable: true\n }\n}; // :: Node The starting document.\n\nprototypeAccessors.before.get = function () {\n return this.docs.length ? this.docs[0] : this.doc;\n}; // :: (step: Step) → this\n// Apply a new step in this transform, saving the result. Throws an\n// error when the step fails.\n\n\nTransform.prototype.step = function step(object) {\n var result = this.maybeStep(object);\n\n if (result.failed) {\n throw new TransformError(result.failed);\n }\n\n return this;\n}; // :: (Step) → StepResult\n// Try to apply a step in this transformation, ignoring it if it\n// fails. Returns the step result.\n\n\nTransform.prototype.maybeStep = function maybeStep(step) {\n var result = step.apply(this.doc);\n\n if (!result.failed) {\n this.addStep(step, result.doc);\n }\n\n return result;\n}; // :: bool\n// True when the document has been changed (when there are any\n// steps).\n\n\nprototypeAccessors.docChanged.get = function () {\n return this.steps.length > 0;\n};\n\nTransform.prototype.addStep = function addStep(step, doc) {\n this.docs.push(this.doc);\n this.steps.push(step);\n this.mapping.appendMap(step.getMap());\n this.doc = doc;\n};\n\nObject.defineProperties(Transform.prototype, prototypeAccessors);\n\nfunction mustOverride() {\n throw new Error(\"Override me\");\n}\n\nvar stepsByID = Object.create(null); // ::- A step object represents an atomic change. It generally applies\n// only to the document it was created for, since the positions\n// stored in it will only make sense for that document.\n//\n// New steps are defined by creating classes that extend `Step`,\n// overriding the `apply`, `invert`, `map`, `getMap` and `fromJSON`\n// methods, and registering your class with a unique\n// JSON-serialization identifier using\n// [`Step.jsonID`](#transform.Step^jsonID).\n\nvar Step = function Step() {};\n\nStep.prototype.apply = function apply(_doc) {\n return mustOverride();\n}; // :: () → StepMap\n// Get the step map that represents the changes made by this step,\n// and which can be used to transform between positions in the old\n// and the new document.\n\n\nStep.prototype.getMap = function getMap() {\n return StepMap.empty;\n}; // :: (doc: Node) → Step\n// Create an inverted version of this step. Needs the document as it\n// was before the step as argument.\n\n\nStep.prototype.invert = function invert(_doc) {\n return mustOverride();\n}; // :: (mapping: Mappable) → ?Step\n// Map this step through a mappable thing, returning either a\n// version of that step with its positions adjusted, or `null` if\n// the step was entirely deleted by the mapping.\n\n\nStep.prototype.map = function map(_mapping) {\n return mustOverride();\n}; // :: (other: Step) → ?Step\n// Try to merge this step with another one, to be applied directly\n// after it. Returns the merged step when possible, null if the\n// steps can't be merged.\n\n\nStep.prototype.merge = function merge(_other) {\n return null;\n}; // :: () → Object\n// Create a JSON-serializeable representation of this step. When\n// defining this for a custom subclass, make sure the result object\n// includes the step type's [JSON id](#transform.Step^jsonID) under\n// the `stepType` property.\n\n\nStep.prototype.toJSON = function toJSON() {\n return mustOverride();\n}; // :: (Schema, Object) → Step\n// Deserialize a step from its JSON representation. Will call\n// through to the step class' own implementation of this method.\n\n\nStep.fromJSON = function fromJSON(schema, json) {\n if (!json || !json.stepType) {\n throw new RangeError(\"Invalid input for Step.fromJSON\");\n }\n\n var type = stepsByID[json.stepType];\n\n if (!type) {\n throw new RangeError(\"No step type \" + json.stepType + \" defined\");\n }\n\n return type.fromJSON(schema, json);\n}; // :: (string, constructor)\n// To be able to serialize steps to JSON, each step needs a string\n// ID to attach to its JSON representation. Use this method to\n// register an ID for your step classes. Try to pick something\n// that's unlikely to clash with steps from other modules.\n\n\nStep.jsonID = function jsonID(id, stepClass) {\n if (id in stepsByID) {\n throw new RangeError(\"Duplicate use of step JSON ID \" + id);\n }\n\n stepsByID[id] = stepClass;\n stepClass.prototype.jsonID = id;\n return stepClass;\n}; // ::- The result of [applying](#transform.Step.apply) a step. Contains either a\n// new document or a failure value.\n\n\nvar StepResult = function StepResult(doc, failed) {\n // :: ?Node The transformed document.\n this.doc = doc; // :: ?string Text providing information about a failed step.\n\n this.failed = failed;\n}; // :: (Node) → StepResult\n// Create a successful step result.\n\n\nStepResult.ok = function ok(doc) {\n return new StepResult(doc, null);\n}; // :: (string) → StepResult\n// Create a failed step result.\n\n\nStepResult.fail = function fail(message) {\n return new StepResult(null, message);\n}; // :: (Node, number, number, Slice) → StepResult\n// Call [`Node.replace`](#model.Node.replace) with the given\n// arguments. Create a successful result if it succeeds, and a\n// failed one if it throws a `ReplaceError`.\n\n\nStepResult.fromReplace = function fromReplace(doc, from, to, slice) {\n try {\n return StepResult.ok(doc.replace(from, to, slice));\n } catch (e) {\n if (e instanceof ReplaceError) {\n return StepResult.fail(e.message);\n }\n\n throw e;\n }\n}; // ::- Replace a part of the document with a slice of new content.\n\n\nvar ReplaceStep = /*@__PURE__*/function (Step) {\n function ReplaceStep(from, to, slice, structure) {\n Step.call(this); // :: number\n // The start position of the replaced range.\n\n this.from = from; // :: number\n // The end position of the replaced range.\n\n this.to = to; // :: Slice\n // The slice to insert.\n\n this.slice = slice;\n this.structure = !!structure;\n }\n\n if (Step) ReplaceStep.__proto__ = Step;\n ReplaceStep.prototype = Object.create(Step && Step.prototype);\n ReplaceStep.prototype.constructor = ReplaceStep;\n\n ReplaceStep.prototype.apply = function apply(doc) {\n if (this.structure && contentBetween(doc, this.from, this.to)) {\n return StepResult.fail(\"Structure replace would overwrite content\");\n }\n\n return StepResult.fromReplace(doc, this.from, this.to, this.slice);\n };\n\n ReplaceStep.prototype.getMap = function getMap() {\n return new StepMap([this.from, this.to - this.from, this.slice.size]);\n };\n\n ReplaceStep.prototype.invert = function invert(doc) {\n return new ReplaceStep(this.from, this.from + this.slice.size, doc.slice(this.from, this.to));\n };\n\n ReplaceStep.prototype.map = function map(mapping) {\n var from = mapping.mapResult(this.from, 1),\n to = mapping.mapResult(this.to, -1);\n\n if (from.deleted && to.deleted) {\n return null;\n }\n\n return new ReplaceStep(from.pos, Math.max(from.pos, to.pos), this.slice);\n };\n\n ReplaceStep.prototype.merge = function merge(other) {\n if (!(other instanceof ReplaceStep) || other.structure || this.structure) {\n return null;\n }\n\n if (this.from + this.slice.size == other.from && !this.slice.openEnd && !other.slice.openStart) {\n var slice = this.slice.size + other.slice.size == 0 ? Slice.empty : new Slice(this.slice.content.append(other.slice.content), this.slice.openStart, other.slice.openEnd);\n return new ReplaceStep(this.from, this.to + (other.to - other.from), slice, this.structure);\n } else if (other.to == this.from && !this.slice.openStart && !other.slice.openEnd) {\n var slice$1 = this.slice.size + other.slice.size == 0 ? Slice.empty : new Slice(other.slice.content.append(this.slice.content), other.slice.openStart, this.slice.openEnd);\n return new ReplaceStep(other.from, this.to, slice$1, this.structure);\n } else {\n return null;\n }\n };\n\n ReplaceStep.prototype.toJSON = function toJSON() {\n var json = {\n stepType: \"replace\",\n from: this.from,\n to: this.to\n };\n\n if (this.slice.size) {\n json.slice = this.slice.toJSON();\n }\n\n if (this.structure) {\n json.structure = true;\n }\n\n return json;\n };\n\n ReplaceStep.fromJSON = function fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\") {\n throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\");\n }\n\n return new ReplaceStep(json.from, json.to, Slice.fromJSON(schema, json.slice), !!json.structure);\n };\n\n return ReplaceStep;\n}(Step);\n\nStep.jsonID(\"replace\", ReplaceStep); // ::- Replace a part of the document with a slice of content, but\n// preserve a range of the replaced content by moving it into the\n// slice.\n\nvar ReplaceAroundStep = /*@__PURE__*/function (Step) {\n function ReplaceAroundStep(from, to, gapFrom, gapTo, slice, insert, structure) {\n Step.call(this); // :: number\n // The start position of the replaced range.\n\n this.from = from; // :: number\n // The end position of the replaced range.\n\n this.to = to; // :: number\n // The start of preserved range.\n\n this.gapFrom = gapFrom; // :: number\n // The end of preserved range.\n\n this.gapTo = gapTo; // :: Slice\n // The slice to insert.\n\n this.slice = slice; // :: number\n // The position in the slice where the preserved range should be\n // inserted.\n\n this.insert = insert;\n this.structure = !!structure;\n }\n\n if (Step) ReplaceAroundStep.__proto__ = Step;\n ReplaceAroundStep.prototype = Object.create(Step && Step.prototype);\n ReplaceAroundStep.prototype.constructor = ReplaceAroundStep;\n\n ReplaceAroundStep.prototype.apply = function apply(doc) {\n if (this.structure && (contentBetween(doc, this.from, this.gapFrom) || contentBetween(doc, this.gapTo, this.to))) {\n return StepResult.fail(\"Structure gap-replace would overwrite content\");\n }\n\n var gap = doc.slice(this.gapFrom, this.gapTo);\n\n if (gap.openStart || gap.openEnd) {\n return StepResult.fail(\"Gap is not a flat range\");\n }\n\n var inserted = this.slice.insertAt(this.insert, gap.content);\n\n if (!inserted) {\n return StepResult.fail(\"Content does not fit in gap\");\n }\n\n return StepResult.fromReplace(doc, this.from, this.to, inserted);\n };\n\n ReplaceAroundStep.prototype.getMap = function getMap() {\n return new StepMap([this.from, this.gapFrom - this.from, this.insert, this.gapTo, this.to - this.gapTo, this.slice.size - this.insert]);\n };\n\n ReplaceAroundStep.prototype.invert = function invert(doc) {\n var gap = this.gapTo - this.gapFrom;\n return new ReplaceAroundStep(this.from, this.from + this.slice.size + gap, this.from + this.insert, this.from + this.insert + gap, doc.slice(this.from, this.to).removeBetween(this.gapFrom - this.from, this.gapTo - this.from), this.gapFrom - this.from, this.structure);\n };\n\n ReplaceAroundStep.prototype.map = function map(mapping) {\n var from = mapping.mapResult(this.from, 1),\n to = mapping.mapResult(this.to, -1);\n var gapFrom = mapping.map(this.gapFrom, -1),\n gapTo = mapping.map(this.gapTo, 1);\n\n if (from.deleted && to.deleted || gapFrom < from.pos || gapTo > to.pos) {\n return null;\n }\n\n return new ReplaceAroundStep(from.pos, to.pos, gapFrom, gapTo, this.slice, this.insert, this.structure);\n };\n\n ReplaceAroundStep.prototype.toJSON = function toJSON() {\n var json = {\n stepType: \"replaceAround\",\n from: this.from,\n to: this.to,\n gapFrom: this.gapFrom,\n gapTo: this.gapTo,\n insert: this.insert\n };\n\n if (this.slice.size) {\n json.slice = this.slice.toJSON();\n }\n\n if (this.structure) {\n json.structure = true;\n }\n\n return json;\n };\n\n ReplaceAroundStep.fromJSON = function fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\" || typeof json.gapFrom != \"number\" || typeof json.gapTo != \"number\" || typeof json.insert != \"number\") {\n throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\");\n }\n\n return new ReplaceAroundStep(json.from, json.to, json.gapFrom, json.gapTo, Slice.fromJSON(schema, json.slice), json.insert, !!json.structure);\n };\n\n return ReplaceAroundStep;\n}(Step);\n\nStep.jsonID(\"replaceAround\", ReplaceAroundStep);\n\nfunction contentBetween(doc, from, to) {\n var $from = doc.resolve(from),\n dist = to - from,\n depth = $from.depth;\n\n while (dist > 0 && depth > 0 && $from.indexAfter(depth) == $from.node(depth).childCount) {\n depth--;\n dist--;\n }\n\n if (dist > 0) {\n var next = $from.node(depth).maybeChild($from.indexAfter(depth));\n\n while (dist > 0) {\n if (!next || next.isLeaf) {\n return true;\n }\n\n next = next.firstChild;\n dist--;\n }\n }\n\n return false;\n}\n\nfunction canCut(node, start, end) {\n return (start == 0 || node.canReplace(start, node.childCount)) && (end == node.childCount || node.canReplace(0, end));\n} // :: (NodeRange) → ?number\n// Try to find a target depth to which the content in the given range\n// can be lifted. Will not go across\n// [isolating](#model.NodeSpec.isolating) parent nodes.\n\n\nfunction liftTarget(range) {\n var parent = range.parent;\n var content = parent.content.cutByIndex(range.startIndex, range.endIndex);\n\n for (var depth = range.depth;; --depth) {\n var node = range.$from.node(depth);\n var index = range.$from.index(depth),\n endIndex = range.$to.indexAfter(depth);\n\n if (depth < range.depth && node.canReplace(index, endIndex, content)) {\n return depth;\n }\n\n if (depth == 0 || node.type.spec.isolating || !canCut(node, index, endIndex)) {\n break;\n }\n }\n} // :: (NodeRange, number) → this\n// Split the content in the given range off from its parent, if there\n// is sibling content before or after it, and move it up the tree to\n// the depth specified by `target`. You'll probably want to use\n// [`liftTarget`](#transform.liftTarget) to compute `target`, to make\n// sure the lift is valid.\n\n\nTransform.prototype.lift = function (range, target) {\n var $from = range.$from;\n var $to = range.$to;\n var depth = range.depth;\n var gapStart = $from.before(depth + 1),\n gapEnd = $to.after(depth + 1);\n var start = gapStart,\n end = gapEnd;\n var before = Fragment.empty,\n openStart = 0;\n\n for (var d = depth, splitting = false; d > target; d--) {\n if (splitting || $from.index(d) > 0) {\n splitting = true;\n before = Fragment.from($from.node(d).copy(before));\n openStart++;\n } else {\n start--;\n }\n }\n\n var after = Fragment.empty,\n openEnd = 0;\n\n for (var d$1 = depth, splitting$1 = false; d$1 > target; d$1--) {\n if (splitting$1 || $to.after(d$1 + 1) < $to.end(d$1)) {\n splitting$1 = true;\n after = Fragment.from($to.node(d$1).copy(after));\n openEnd++;\n } else {\n end++;\n }\n }\n\n return this.step(new ReplaceAroundStep(start, end, gapStart, gapEnd, new Slice(before.append(after), openStart, openEnd), before.size - openStart, true));\n}; // :: (NodeRange, NodeType, ?Object, ?NodeRange) → ?[{type: NodeType, attrs: ?Object}]\n// Try to find a valid way to wrap the content in the given range in a\n// node of the given type. May introduce extra nodes around and inside\n// the wrapper node, if necessary. Returns null if no valid wrapping\n// could be found. When `innerRange` is given, that range's content is\n// used as the content to fit into the wrapping, instead of the\n// content of `range`.\n\n\nfunction findWrapping(range, nodeType, attrs, innerRange) {\n if (innerRange === void 0) innerRange = range;\n var around = findWrappingOutside(range, nodeType);\n var inner = around && findWrappingInside(innerRange, nodeType);\n\n if (!inner) {\n return null;\n }\n\n return around.map(withAttrs).concat({\n type: nodeType,\n attrs: attrs\n }).concat(inner.map(withAttrs));\n}\n\nfunction withAttrs(type) {\n return {\n type: type,\n attrs: null\n };\n}\n\nfunction findWrappingOutside(range, type) {\n var parent = range.parent;\n var startIndex = range.startIndex;\n var endIndex = range.endIndex;\n var around = parent.contentMatchAt(startIndex).findWrapping(type);\n\n if (!around) {\n return null;\n }\n\n var outer = around.length ? around[0] : type;\n return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null;\n}\n\nfunction findWrappingInside(range, type) {\n var parent = range.parent;\n var startIndex = range.startIndex;\n var endIndex = range.endIndex;\n var inner = parent.child(startIndex);\n var inside = type.contentMatch.findWrapping(inner.type);\n\n if (!inside) {\n return null;\n }\n\n var lastType = inside.length ? inside[inside.length - 1] : type;\n var innerMatch = lastType.contentMatch;\n\n for (var i = startIndex; innerMatch && i < endIndex; i++) {\n innerMatch = innerMatch.matchType(parent.child(i).type);\n }\n\n if (!innerMatch || !innerMatch.validEnd) {\n return null;\n }\n\n return inside;\n} // :: (NodeRange, [{type: NodeType, attrs: ?Object}]) → this\n// Wrap the given [range](#model.NodeRange) in the given set of wrappers.\n// The wrappers are assumed to be valid in this position, and should\n// probably be computed with [`findWrapping`](#transform.findWrapping).\n\n\nTransform.prototype.wrap = function (range, wrappers) {\n var content = Fragment.empty;\n\n for (var i = wrappers.length - 1; i >= 0; i--) {\n content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));\n }\n\n var start = range.start,\n end = range.end;\n return this.step(new ReplaceAroundStep(start, end, start, end, new Slice(content, 0, 0), wrappers.length, true));\n}; // :: (number, ?number, NodeType, ?Object) → this\n// Set the type of all textblocks (partly) between `from` and `to` to\n// the given node type with the given attributes.\n\n\nTransform.prototype.setBlockType = function (from, to, type, attrs) {\n var this$1 = this;\n if (to === void 0) to = from;\n\n if (!type.isTextblock) {\n throw new RangeError(\"Type given to setBlockType should be a textblock\");\n }\n\n var mapFrom = this.steps.length;\n this.doc.nodesBetween(from, to, function (node, pos) {\n if (node.isTextblock && !node.hasMarkup(type, attrs) && canChangeType(this$1.doc, this$1.mapping.slice(mapFrom).map(pos), type)) {\n // Ensure all markup that isn't allowed in the new node type is cleared\n this$1.clearIncompatible(this$1.mapping.slice(mapFrom).map(pos, 1), type);\n var mapping = this$1.mapping.slice(mapFrom);\n var startM = mapping.map(pos, 1),\n endM = mapping.map(pos + node.nodeSize, 1);\n this$1.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, new Slice(Fragment.from(type.create(attrs, null, node.marks)), 0, 0), 1, true));\n return false;\n }\n });\n return this;\n};\n\nfunction canChangeType(doc, pos, type) {\n var $pos = doc.resolve(pos),\n index = $pos.index();\n return $pos.parent.canReplaceWith(index, index + 1, type);\n} // :: (number, ?NodeType, ?Object, ?[Mark]) → this\n// Change the type, attributes, and/or marks of the node at `pos`.\n// When `type` isn't given, the existing node type is preserved,\n\n\nTransform.prototype.setNodeMarkup = function (pos, type, attrs, marks) {\n var node = this.doc.nodeAt(pos);\n\n if (!node) {\n throw new RangeError(\"No node at given position\");\n }\n\n if (!type) {\n type = node.type;\n }\n\n var newNode = type.create(attrs, null, marks || node.marks);\n\n if (node.isLeaf) {\n return this.replaceWith(pos, pos + node.nodeSize, newNode);\n }\n\n if (!type.validContent(node.content)) {\n throw new RangeError(\"Invalid content for node type \" + type.name);\n }\n\n return this.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1, new Slice(Fragment.from(newNode), 0, 0), 1, true));\n}; // :: (Node, number, number, ?[?{type: NodeType, attrs: ?Object}]) → bool\n// Check whether splitting at the given position is allowed.\n\n\nfunction canSplit(doc, pos, depth, typesAfter) {\n if (depth === void 0) depth = 1;\n var $pos = doc.resolve(pos),\n base = $pos.depth - depth;\n var innerType = typesAfter && typesAfter[typesAfter.length - 1] || $pos.parent;\n\n if (base < 0 || $pos.parent.type.spec.isolating || !$pos.parent.canReplace($pos.index(), $pos.parent.childCount) || !innerType.type.validContent($pos.parent.content.cutByIndex($pos.index(), $pos.parent.childCount))) {\n return false;\n }\n\n for (var d = $pos.depth - 1, i = depth - 2; d > base; d--, i--) {\n var node = $pos.node(d),\n index$1 = $pos.index(d);\n\n if (node.type.spec.isolating) {\n return false;\n }\n\n var rest = node.content.cutByIndex(index$1, node.childCount);\n var after = typesAfter && typesAfter[i] || node;\n\n if (after != node) {\n rest = rest.replaceChild(0, after.type.create(after.attrs));\n }\n\n if (!node.canReplace(index$1 + 1, node.childCount) || !after.type.validContent(rest)) {\n return false;\n }\n }\n\n var index = $pos.indexAfter(base);\n var baseType = typesAfter && typesAfter[0];\n return $pos.node(base).canReplaceWith(index, index, baseType ? baseType.type : $pos.node(base + 1).type);\n} // :: (number, ?number, ?[?{type: NodeType, attrs: ?Object}]) → this\n// Split the node at the given position, and optionally, if `depth` is\n// greater than one, any number of nodes above that. By default, the\n// parts split off will inherit the node type of the original node.\n// This can be changed by passing an array of types and attributes to\n// use after the split.\n\n\nTransform.prototype.split = function (pos, depth, typesAfter) {\n if (depth === void 0) depth = 1;\n var $pos = this.doc.resolve(pos),\n before = Fragment.empty,\n after = Fragment.empty;\n\n for (var d = $pos.depth, e = $pos.depth - depth, i = depth - 1; d > e; d--, i--) {\n before = Fragment.from($pos.node(d).copy(before));\n var typeAfter = typesAfter && typesAfter[i];\n after = Fragment.from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d).copy(after));\n }\n\n return this.step(new ReplaceStep(pos, pos, new Slice(before.append(after), depth, depth), true));\n}; // :: (Node, number) → bool\n// Test whether the blocks before and after a given position can be\n// joined.\n\n\nfunction canJoin(doc, pos) {\n var $pos = doc.resolve(pos),\n index = $pos.index();\n return joinable($pos.nodeBefore, $pos.nodeAfter) && $pos.parent.canReplace(index, index + 1);\n}\n\nfunction joinable(a, b) {\n return a && b && !a.isLeaf && a.canAppend(b);\n} // :: (Node, number, ?number) → ?number\n// Find an ancestor of the given position that can be joined to the\n// block before (or after if `dir` is positive). Returns the joinable\n// point, if any.\n\n\nfunction joinPoint(doc, pos, dir) {\n if (dir === void 0) dir = -1;\n var $pos = doc.resolve(pos);\n\n for (var d = $pos.depth;; d--) {\n var before = void 0,\n after = void 0,\n index = $pos.index(d);\n\n if (d == $pos.depth) {\n before = $pos.nodeBefore;\n after = $pos.nodeAfter;\n } else if (dir > 0) {\n before = $pos.node(d + 1);\n index++;\n after = $pos.node(d).maybeChild(index);\n } else {\n before = $pos.node(d).maybeChild(index - 1);\n after = $pos.node(d + 1);\n }\n\n if (before && !before.isTextblock && joinable(before, after) && $pos.node(d).canReplace(index, index + 1)) {\n return pos;\n }\n\n if (d == 0) {\n break;\n }\n\n pos = dir < 0 ? $pos.before(d) : $pos.after(d);\n }\n} // :: (number, ?number) → this\n// Join the blocks around the given position. If depth is 2, their\n// last and first siblings are also joined, and so on.\n\n\nTransform.prototype.join = function (pos, depth) {\n if (depth === void 0) depth = 1;\n var step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);\n return this.step(step);\n}; // :: (Node, number, NodeType) → ?number\n// Try to find a point where a node of the given type can be inserted\n// near `pos`, by searching up the node hierarchy when `pos` itself\n// isn't a valid place but is at the start or end of a node. Return\n// null if no position was found.\n\n\nfunction insertPoint(doc, pos, nodeType) {\n var $pos = doc.resolve(pos);\n\n if ($pos.parent.canReplaceWith($pos.index(), $pos.index(), nodeType)) {\n return pos;\n }\n\n if ($pos.parentOffset == 0) {\n for (var d = $pos.depth - 1; d >= 0; d--) {\n var index = $pos.index(d);\n\n if ($pos.node(d).canReplaceWith(index, index, nodeType)) {\n return $pos.before(d + 1);\n }\n\n if (index > 0) {\n return null;\n }\n }\n }\n\n if ($pos.parentOffset == $pos.parent.content.size) {\n for (var d$1 = $pos.depth - 1; d$1 >= 0; d$1--) {\n var index$1 = $pos.indexAfter(d$1);\n\n if ($pos.node(d$1).canReplaceWith(index$1, index$1, nodeType)) {\n return $pos.after(d$1 + 1);\n }\n\n if (index$1 < $pos.node(d$1).childCount) {\n return null;\n }\n }\n }\n} // :: (Node, number, Slice) → ?number\n// Finds a position at or around the given position where the given\n// slice can be inserted. Will look at parent nodes' nearest boundary\n// and try there, even if the original position wasn't directly at the\n// start or end of that node. Returns null when no position was found.\n\n\nfunction dropPoint(doc, pos, slice) {\n var $pos = doc.resolve(pos);\n\n if (!slice.content.size) {\n return pos;\n }\n\n var content = slice.content;\n\n for (var i = 0; i < slice.openStart; i++) {\n content = content.firstChild.content;\n }\n\n for (var pass = 1; pass <= (slice.openStart == 0 && slice.size ? 2 : 1); pass++) {\n for (var d = $pos.depth; d >= 0; d--) {\n var bias = d == $pos.depth ? 0 : $pos.pos <= ($pos.start(d + 1) + $pos.end(d + 1)) / 2 ? -1 : 1;\n var insertPos = $pos.index(d) + (bias > 0 ? 1 : 0);\n var parent = $pos.node(d),\n fits = false;\n\n if (pass == 1) {\n fits = parent.canReplace(insertPos, insertPos, content);\n } else {\n var wrapping = parent.contentMatchAt(insertPos).findWrapping(content.firstChild.type);\n fits = wrapping && parent.canReplaceWith(insertPos, insertPos, wrapping[0].type);\n }\n\n if (fits) {\n return bias == 0 ? $pos.pos : bias < 0 ? $pos.before(d + 1) : $pos.after(d + 1);\n }\n }\n }\n\n return null;\n}\n\nfunction mapFragment(fragment, f, parent) {\n var mapped = [];\n\n for (var i = 0; i < fragment.childCount; i++) {\n var child = fragment.child(i);\n\n if (child.content.size) {\n child = child.copy(mapFragment(child.content, f, child));\n }\n\n if (child.isInline) {\n child = f(child, parent, i);\n }\n\n mapped.push(child);\n }\n\n return Fragment.fromArray(mapped);\n} // ::- Add a mark to all inline content between two positions.\n\n\nvar AddMarkStep = /*@__PURE__*/function (Step) {\n function AddMarkStep(from, to, mark) {\n Step.call(this); // :: number\n // The start of the marked range.\n\n this.from = from; // :: number\n // The end of the marked range.\n\n this.to = to; // :: Mark\n // The mark to add.\n\n this.mark = mark;\n }\n\n if (Step) AddMarkStep.__proto__ = Step;\n AddMarkStep.prototype = Object.create(Step && Step.prototype);\n AddMarkStep.prototype.constructor = AddMarkStep;\n\n AddMarkStep.prototype.apply = function apply(doc) {\n var this$1 = this;\n var oldSlice = doc.slice(this.from, this.to),\n $from = doc.resolve(this.from);\n var parent = $from.node($from.sharedDepth(this.to));\n var slice = new Slice(mapFragment(oldSlice.content, function (node, parent) {\n if (!node.isAtom || !parent.type.allowsMarkType(this$1.mark.type)) {\n return node;\n }\n\n return node.mark(this$1.mark.addToSet(node.marks));\n }, parent), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n };\n\n AddMarkStep.prototype.invert = function invert() {\n return new RemoveMarkStep(this.from, this.to, this.mark);\n };\n\n AddMarkStep.prototype.map = function map(mapping) {\n var from = mapping.mapResult(this.from, 1),\n to = mapping.mapResult(this.to, -1);\n\n if (from.deleted && to.deleted || from.pos >= to.pos) {\n return null;\n }\n\n return new AddMarkStep(from.pos, to.pos, this.mark);\n };\n\n AddMarkStep.prototype.merge = function merge(other) {\n if (other instanceof AddMarkStep && other.mark.eq(this.mark) && this.from <= other.to && this.to >= other.from) {\n return new AddMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n }\n };\n\n AddMarkStep.prototype.toJSON = function toJSON() {\n return {\n stepType: \"addMark\",\n mark: this.mark.toJSON(),\n from: this.from,\n to: this.to\n };\n };\n\n AddMarkStep.fromJSON = function fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\") {\n throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\");\n }\n\n return new AddMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n };\n\n return AddMarkStep;\n}(Step);\n\nStep.jsonID(\"addMark\", AddMarkStep); // ::- Remove a mark from all inline content between two positions.\n\nvar RemoveMarkStep = /*@__PURE__*/function (Step) {\n function RemoveMarkStep(from, to, mark) {\n Step.call(this); // :: number\n // The start of the unmarked range.\n\n this.from = from; // :: number\n // The end of the unmarked range.\n\n this.to = to; // :: Mark\n // The mark to remove.\n\n this.mark = mark;\n }\n\n if (Step) RemoveMarkStep.__proto__ = Step;\n RemoveMarkStep.prototype = Object.create(Step && Step.prototype);\n RemoveMarkStep.prototype.constructor = RemoveMarkStep;\n\n RemoveMarkStep.prototype.apply = function apply(doc) {\n var this$1 = this;\n var oldSlice = doc.slice(this.from, this.to);\n var slice = new Slice(mapFragment(oldSlice.content, function (node) {\n return node.mark(this$1.mark.removeFromSet(node.marks));\n }), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n };\n\n RemoveMarkStep.prototype.invert = function invert() {\n return new AddMarkStep(this.from, this.to, this.mark);\n };\n\n RemoveMarkStep.prototype.map = function map(mapping) {\n var from = mapping.mapResult(this.from, 1),\n to = mapping.mapResult(this.to, -1);\n\n if (from.deleted && to.deleted || from.pos >= to.pos) {\n return null;\n }\n\n return new RemoveMarkStep(from.pos, to.pos, this.mark);\n };\n\n RemoveMarkStep.prototype.merge = function merge(other) {\n if (other instanceof RemoveMarkStep && other.mark.eq(this.mark) && this.from <= other.to && this.to >= other.from) {\n return new RemoveMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n }\n };\n\n RemoveMarkStep.prototype.toJSON = function toJSON() {\n return {\n stepType: \"removeMark\",\n mark: this.mark.toJSON(),\n from: this.from,\n to: this.to\n };\n };\n\n RemoveMarkStep.fromJSON = function fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\") {\n throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\");\n }\n\n return new RemoveMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n };\n\n return RemoveMarkStep;\n}(Step);\n\nStep.jsonID(\"removeMark\", RemoveMarkStep); // :: (number, number, Mark) → this\n// Add the given mark to the inline content between `from` and `to`.\n\nTransform.prototype.addMark = function (from, to, mark) {\n var this$1 = this;\n var removed = [],\n added = [],\n removing = null,\n adding = null;\n this.doc.nodesBetween(from, to, function (node, pos, parent) {\n if (!node.isInline) {\n return;\n }\n\n var marks = node.marks;\n\n if (!mark.isInSet(marks) && parent.type.allowsMarkType(mark.type)) {\n var start = Math.max(pos, from),\n end = Math.min(pos + node.nodeSize, to);\n var newSet = mark.addToSet(marks);\n\n for (var i = 0; i < marks.length; i++) {\n if (!marks[i].isInSet(newSet)) {\n if (removing && removing.to == start && removing.mark.eq(marks[i])) {\n removing.to = end;\n } else {\n removed.push(removing = new RemoveMarkStep(start, end, marks[i]));\n }\n }\n }\n\n if (adding && adding.to == start) {\n adding.to = end;\n } else {\n added.push(adding = new AddMarkStep(start, end, mark));\n }\n }\n });\n removed.forEach(function (s) {\n return this$1.step(s);\n });\n added.forEach(function (s) {\n return this$1.step(s);\n });\n return this;\n}; // :: (number, number, ?union) → this\n// Remove marks from inline nodes between `from` and `to`. When `mark`\n// is a single mark, remove precisely that mark. When it is a mark type,\n// remove all marks of that type. When it is null, remove all marks of\n// any type.\n\n\nTransform.prototype.removeMark = function (from, to, mark) {\n var this$1 = this;\n if (mark === void 0) mark = null;\n var matched = [],\n step = 0;\n this.doc.nodesBetween(from, to, function (node, pos) {\n if (!node.isInline) {\n return;\n }\n\n step++;\n var toRemove = null;\n\n if (mark instanceof MarkType) {\n var set = node.marks,\n found;\n\n while (found = mark.isInSet(set)) {\n (toRemove || (toRemove = [])).push(found);\n set = found.removeFromSet(set);\n }\n } else if (mark) {\n if (mark.isInSet(node.marks)) {\n toRemove = [mark];\n }\n } else {\n toRemove = node.marks;\n }\n\n if (toRemove && toRemove.length) {\n var end = Math.min(pos + node.nodeSize, to);\n\n for (var i = 0; i < toRemove.length; i++) {\n var style = toRemove[i],\n found$1 = void 0;\n\n for (var j = 0; j < matched.length; j++) {\n var m = matched[j];\n\n if (m.step == step - 1 && style.eq(matched[j].style)) {\n found$1 = m;\n }\n }\n\n if (found$1) {\n found$1.to = end;\n found$1.step = step;\n } else {\n matched.push({\n style: style,\n from: Math.max(pos, from),\n to: end,\n step: step\n });\n }\n }\n }\n });\n matched.forEach(function (m) {\n return this$1.step(new RemoveMarkStep(m.from, m.to, m.style));\n });\n return this;\n}; // :: (number, NodeType, ?ContentMatch) → this\n// Removes all marks and nodes from the content of the node at `pos`\n// that don't match the given new parent node type. Accepts an\n// optional starting [content match](#model.ContentMatch) as third\n// argument.\n\n\nTransform.prototype.clearIncompatible = function (pos, parentType, match) {\n if (match === void 0) match = parentType.contentMatch;\n var node = this.doc.nodeAt(pos);\n var delSteps = [],\n cur = pos + 1;\n\n for (var i = 0; i < node.childCount; i++) {\n var child = node.child(i),\n end = cur + child.nodeSize;\n var allowed = match.matchType(child.type, child.attrs);\n\n if (!allowed) {\n delSteps.push(new ReplaceStep(cur, end, Slice.empty));\n } else {\n match = allowed;\n\n for (var j = 0; j < child.marks.length; j++) {\n if (!parentType.allowsMarkType(child.marks[j].type)) {\n this.step(new RemoveMarkStep(cur, end, child.marks[j]));\n }\n }\n }\n\n cur = end;\n }\n\n if (!match.validEnd) {\n var fill = match.fillBefore(Fragment.empty, true);\n this.replace(cur, cur, new Slice(fill, 0, 0));\n }\n\n for (var i$1 = delSteps.length - 1; i$1 >= 0; i$1--) {\n this.step(delSteps[i$1]);\n }\n\n return this;\n}; // :: (Node, number, ?number, ?Slice) → ?Step\n// ‘Fit’ a slice into a given position in the document, producing a\n// [step](#transform.Step) that inserts it. Will return null if\n// there's no meaningful way to insert the slice here, or inserting it\n// would be a no-op (an empty slice over an empty range).\n\n\nfunction replaceStep(doc, from, to, slice) {\n if (to === void 0) to = from;\n if (slice === void 0) slice = Slice.empty;\n\n if (from == to && !slice.size) {\n return null;\n }\n\n var $from = doc.resolve(from),\n $to = doc.resolve(to); // Optimization -- avoid work if it's obvious that it's not needed.\n\n if (fitsTrivially($from, $to, slice)) {\n return new ReplaceStep(from, to, slice);\n }\n\n return new Fitter($from, $to, slice).fit();\n} // :: (number, ?number, ?Slice) → this\n// Replace the part of the document between `from` and `to` with the\n// given `slice`.\n\n\nTransform.prototype.replace = function (from, to, slice) {\n if (to === void 0) to = from;\n if (slice === void 0) slice = Slice.empty;\n var step = replaceStep(this.doc, from, to, slice);\n\n if (step) {\n this.step(step);\n }\n\n return this;\n}; // :: (number, number, union) → this\n// Replace the given range with the given content, which may be a\n// fragment, node, or array of nodes.\n\n\nTransform.prototype.replaceWith = function (from, to, content) {\n return this.replace(from, to, new Slice(Fragment.from(content), 0, 0));\n}; // :: (number, number) → this\n// Delete the content between the given positions.\n\n\nTransform.prototype[\"delete\"] = function (from, to) {\n return this.replace(from, to, Slice.empty);\n}; // :: (number, union) → this\n// Insert the given content at the given position.\n\n\nTransform.prototype.insert = function (pos, content) {\n return this.replaceWith(pos, pos, content);\n};\n\nfunction fitsTrivially($from, $to, slice) {\n return !slice.openStart && !slice.openEnd && $from.start() == $to.start() && $from.parent.canReplace($from.index(), $to.index(), slice.content);\n} // Algorithm for 'placing' the elements of a slice into a gap:\n//\n// We consider the content of each node that is open to the left to be\n// independently placeable. I.e. in , when the\n// paragraph on the left is open, \"foo\" can be placed (somewhere on\n// the left side of the replacement gap) independently from p(\"bar\").\n//\n// This class tracks the state of the placement progress in the\n// following properties:\n//\n// - `frontier` holds a stack of `{type, match}` objects that\n// represent the open side of the replacement. It starts at\n// `$from`, then moves forward as content is placed, and is finally\n// reconciled with `$to`.\n//\n// - `unplaced` is a slice that represents the content that hasn't\n// been placed yet.\n//\n// - `placed` is a fragment of placed content. Its open-start value\n// is implicit in `$from`, and its open-end value in `frontier`.\n\n\nvar Fitter = function Fitter($from, $to, slice) {\n this.$to = $to;\n this.$from = $from;\n this.unplaced = slice;\n this.frontier = [];\n\n for (var i = 0; i <= $from.depth; i++) {\n var node = $from.node(i);\n this.frontier.push({\n type: node.type,\n match: node.contentMatchAt($from.indexAfter(i))\n });\n }\n\n this.placed = Fragment.empty;\n\n for (var i$1 = $from.depth; i$1 > 0; i$1--) {\n this.placed = Fragment.from($from.node(i$1).copy(this.placed));\n }\n};\n\nvar prototypeAccessors$1 = {\n depth: {\n configurable: true\n }\n};\n\nprototypeAccessors$1.depth.get = function () {\n return this.frontier.length - 1;\n};\n\nFitter.prototype.fit = function fit() {\n // As long as there's unplaced content, try to place some of it.\n // If that fails, either increase the open score of the unplaced\n // slice, or drop nodes from it, and then try again.\n while (this.unplaced.size) {\n var fit = this.findFittable();\n\n if (fit) {\n this.placeNodes(fit);\n } else {\n this.openMore() || this.dropNode();\n }\n } // When there's inline content directly after the frontier _and_\n // directly after `this.$to`, we must generate a `ReplaceAround`\n // step that pulls that content into the node after the frontier.\n // That means the fitting must be done to the end of the textblock\n // node after `this.$to`, not `this.$to` itself.\n\n\n var moveInline = this.mustMoveInline(),\n placedSize = this.placed.size - this.depth - this.$from.depth;\n var $from = this.$from,\n $to = this.close(moveInline < 0 ? this.$to : $from.doc.resolve(moveInline));\n\n if (!$to) {\n return null;\n } // If closing to `$to` succeeded, create a step\n\n\n var content = this.placed,\n openStart = $from.depth,\n openEnd = $to.depth;\n\n while (openStart && openEnd && content.childCount == 1) {\n // Normalize by dropping open parent nodes\n content = content.firstChild.content;\n openStart--;\n openEnd--;\n }\n\n var slice = new Slice(content, openStart, openEnd);\n\n if (moveInline > -1) {\n return new ReplaceAroundStep($from.pos, moveInline, this.$to.pos, this.$to.end(), slice, placedSize);\n }\n\n if (slice.size || $from.pos != this.$to.pos) // Don't generate no-op steps\n {\n return new ReplaceStep($from.pos, $to.pos, slice);\n }\n}; // Find a position on the start spine of `this.unplaced` that has\n// content that can be moved somewhere on the frontier. Returns two\n// depths, one for the slice and one for the frontier.\n\n\nFitter.prototype.findFittable = function findFittable() {\n // Only try wrapping nodes (pass 2) after finding a place without\n // wrapping failed.\n for (var pass = 1; pass <= 2; pass++) {\n for (var sliceDepth = this.unplaced.openStart; sliceDepth >= 0; sliceDepth--) {\n var fragment = void 0,\n parent = void 0;\n\n if (sliceDepth) {\n parent = contentAt(this.unplaced.content, sliceDepth - 1).firstChild;\n fragment = parent.content;\n } else {\n fragment = this.unplaced.content;\n }\n\n var first = fragment.firstChild;\n\n for (var frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {\n var ref = this.frontier[frontierDepth];\n var type = ref.type;\n var match = ref.match;\n var wrap = void 0,\n inject = void 0; // In pass 1, if the next node matches, or there is no next\n // node but the parents look compatible, we've found a\n // place.\n\n if (pass == 1 && (first ? match.matchType(first.type) || (inject = match.fillBefore(Fragment.from(first), false)) : type.compatibleContent(parent.type))) {\n return {\n sliceDepth: sliceDepth,\n frontierDepth: frontierDepth,\n parent: parent,\n inject: inject\n };\n } // In pass 2, look for a set of wrapping nodes that make\n // `first` fit here.\n else if (pass == 2 && first && (wrap = match.findWrapping(first.type))) {\n return {\n sliceDepth: sliceDepth,\n frontierDepth: frontierDepth,\n parent: parent,\n wrap: wrap\n };\n } // Don't continue looking further up if the parent node\n // would fit here.\n\n\n if (parent && match.matchType(parent.type)) {\n break;\n }\n }\n }\n }\n};\n\nFitter.prototype.openMore = function openMore() {\n var ref = this.unplaced;\n var content = ref.content;\n var openStart = ref.openStart;\n var openEnd = ref.openEnd;\n var inner = contentAt(content, openStart);\n\n if (!inner.childCount || inner.firstChild.isLeaf) {\n return false;\n }\n\n this.unplaced = new Slice(content, openStart + 1, Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));\n return true;\n};\n\nFitter.prototype.dropNode = function dropNode() {\n var ref = this.unplaced;\n var content = ref.content;\n var openStart = ref.openStart;\n var openEnd = ref.openEnd;\n var inner = contentAt(content, openStart);\n\n if (inner.childCount <= 1 && openStart > 0) {\n var openAtEnd = content.size - openStart <= openStart + inner.size;\n this.unplaced = new Slice(dropFromFragment(content, openStart - 1, 1), openStart - 1, openAtEnd ? openStart - 1 : openEnd);\n } else {\n this.unplaced = new Slice(dropFromFragment(content, openStart, 1), openStart, openEnd);\n }\n}; // : ({sliceDepth: number, frontierDepth: number, parent: ?Node, wrap: ?[NodeType], inject: ?Fragment})\n// Move content from the unplaced slice at `sliceDepth` to the\n// frontier node at `frontierDepth`. Close that frontier node when\n// applicable.\n\n\nFitter.prototype.placeNodes = function placeNodes(ref) {\n var sliceDepth = ref.sliceDepth;\n var frontierDepth = ref.frontierDepth;\n var parent = ref.parent;\n var inject = ref.inject;\n var wrap = ref.wrap;\n\n while (this.depth > frontierDepth) {\n this.closeFrontierNode();\n }\n\n if (wrap) {\n for (var i = 0; i < wrap.length; i++) {\n this.openFrontierNode(wrap[i]);\n }\n }\n\n var slice = this.unplaced,\n fragment = parent ? parent.content : slice.content;\n var openStart = slice.openStart - sliceDepth;\n var taken = 0,\n add = [];\n var ref$1 = this.frontier[frontierDepth];\n var match = ref$1.match;\n var type = ref$1.type;\n\n if (inject) {\n for (var i$1 = 0; i$1 < inject.childCount; i$1++) {\n add.push(inject.child(i$1));\n }\n\n match = match.matchFragment(inject);\n } // Computes the amount of (end) open nodes at the end of the\n // fragment. When 0, the parent is open, but no more. When\n // negative, nothing is open.\n\n\n var openEndCount = fragment.size + sliceDepth - (slice.content.size - slice.openEnd); // Scan over the fragment, fitting as many child nodes as\n // possible.\n\n while (taken < fragment.childCount) {\n var next = fragment.child(taken),\n matches = match.matchType(next.type);\n\n if (!matches) {\n break;\n }\n\n taken++;\n\n if (taken > 1 || openStart == 0 || next.content.size) {\n // Drop empty open nodes\n match = matches;\n add.push(closeNodeStart(next.mark(type.allowedMarks(next.marks)), taken == 1 ? openStart : 0, taken == fragment.childCount ? openEndCount : -1));\n }\n }\n\n var toEnd = taken == fragment.childCount;\n\n if (!toEnd) {\n openEndCount = -1;\n }\n\n this.placed = addToFragment(this.placed, frontierDepth, Fragment.from(add));\n this.frontier[frontierDepth].match = match; // If the parent types match, and the entire node was moved, and\n // it's not open, close this frontier node right away.\n\n if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1) {\n this.closeFrontierNode();\n } // Add new frontier nodes for any open nodes at the end.\n\n\n for (var i$2 = 0, cur = fragment; i$2 < openEndCount; i$2++) {\n var node = cur.lastChild;\n this.frontier.push({\n type: node.type,\n match: node.contentMatchAt(node.childCount)\n });\n cur = node.content;\n } // Update `this.unplaced`. Drop the entire node from which we\n // placed it we got to its end, otherwise just drop the placed\n // nodes.\n\n\n this.unplaced = !toEnd ? new Slice(dropFromFragment(slice.content, sliceDepth, taken), slice.openStart, slice.openEnd) : sliceDepth == 0 ? Slice.empty : new Slice(dropFromFragment(slice.content, sliceDepth - 1, 1), sliceDepth - 1, openEndCount < 0 ? slice.openEnd : sliceDepth - 1);\n};\n\nFitter.prototype.mustMoveInline = function mustMoveInline() {\n if (!this.$to.parent.isTextblock || this.$to.end() == this.$to.pos) {\n return -1;\n }\n\n var top = this.frontier[this.depth],\n level;\n\n if (!top.type.isTextblock || !contentAfterFits(this.$to, this.$to.depth, top.type, top.match, false) || this.$to.depth == this.depth && (level = this.findCloseLevel(this.$to)) && level.depth == this.depth) {\n return -1;\n }\n\n var ref = this.$to;\n var depth = ref.depth;\n var after = this.$to.after(depth);\n\n while (depth > 1 && after == this.$to.end(--depth)) {\n ++after;\n }\n\n return after;\n};\n\nFitter.prototype.findCloseLevel = function findCloseLevel($to) {\n scan: for (var i = Math.min(this.depth, $to.depth); i >= 0; i--) {\n var ref = this.frontier[i];\n var match = ref.match;\n var type = ref.type;\n var dropInner = i < $to.depth && $to.end(i + 1) == $to.pos + ($to.depth - (i + 1));\n var fit = contentAfterFits($to, i, type, match, dropInner);\n\n if (!fit) {\n continue;\n }\n\n for (var d = i - 1; d >= 0; d--) {\n var ref$1 = this.frontier[d];\n var match$1 = ref$1.match;\n var type$1 = ref$1.type;\n var matches = contentAfterFits($to, d, type$1, match$1, true);\n\n if (!matches || matches.childCount) {\n continue scan;\n }\n }\n\n return {\n depth: i,\n fit: fit,\n move: dropInner ? $to.doc.resolve($to.after(i + 1)) : $to\n };\n }\n};\n\nFitter.prototype.close = function close($to) {\n var close = this.findCloseLevel($to);\n\n if (!close) {\n return null;\n }\n\n while (this.depth > close.depth) {\n this.closeFrontierNode();\n }\n\n if (close.fit.childCount) {\n this.placed = addToFragment(this.placed, close.depth, close.fit);\n }\n\n $to = close.move;\n\n for (var d = close.depth + 1; d <= $to.depth; d++) {\n var node = $to.node(d),\n add = node.type.contentMatch.fillBefore(node.content, true, $to.index(d));\n this.openFrontierNode(node.type, node.attrs, add);\n }\n\n return $to;\n};\n\nFitter.prototype.openFrontierNode = function openFrontierNode(type, attrs, content) {\n var top = this.frontier[this.depth];\n top.match = top.match.matchType(type);\n this.placed = addToFragment(this.placed, this.depth, Fragment.from(type.create(attrs, content)));\n this.frontier.push({\n type: type,\n match: type.contentMatch\n });\n};\n\nFitter.prototype.closeFrontierNode = function closeFrontierNode() {\n var open = this.frontier.pop();\n var add = open.match.fillBefore(Fragment.empty, true);\n\n if (add.childCount) {\n this.placed = addToFragment(this.placed, this.frontier.length, add);\n }\n};\n\nObject.defineProperties(Fitter.prototype, prototypeAccessors$1);\n\nfunction dropFromFragment(fragment, depth, count) {\n if (depth == 0) {\n return fragment.cutByIndex(count);\n }\n\n return fragment.replaceChild(0, fragment.firstChild.copy(dropFromFragment(fragment.firstChild.content, depth - 1, count)));\n}\n\nfunction addToFragment(fragment, depth, content) {\n if (depth == 0) {\n return fragment.append(content);\n }\n\n return fragment.replaceChild(fragment.childCount - 1, fragment.lastChild.copy(addToFragment(fragment.lastChild.content, depth - 1, content)));\n}\n\nfunction contentAt(fragment, depth) {\n for (var i = 0; i < depth; i++) {\n fragment = fragment.firstChild.content;\n }\n\n return fragment;\n}\n\nfunction closeNodeStart(node, openStart, openEnd) {\n if (openStart <= 0) {\n return node;\n }\n\n var frag = node.content;\n\n if (openStart > 1) {\n frag = frag.replaceChild(0, closeNodeStart(frag.firstChild, openStart - 1, frag.childCount == 1 ? openEnd - 1 : 0));\n }\n\n if (openStart > 0) {\n frag = node.type.contentMatch.fillBefore(frag).append(frag);\n\n if (openEnd <= 0) {\n frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(Fragment.empty, true));\n }\n }\n\n return node.copy(frag);\n}\n\nfunction contentAfterFits($to, depth, type, match, open) {\n var node = $to.node(depth),\n index = open ? $to.indexAfter(depth) : $to.index(depth);\n\n if (index == node.childCount && !type.compatibleContent(node.type)) {\n return null;\n }\n\n var fit = match.fillBefore(node.content, true, index);\n return fit && !invalidMarks(type, node.content, index) ? fit : null;\n}\n\nfunction invalidMarks(type, fragment, start) {\n for (var i = start; i < fragment.childCount; i++) {\n if (!type.allowsMarks(fragment.child(i).marks)) {\n return true;\n }\n }\n\n return false;\n} // :: (number, number, Slice) → this\n// Replace a range of the document with a given slice, using `from`,\n// `to`, and the slice's [`openStart`](#model.Slice.openStart) property\n// as hints, rather than fixed start and end points. This method may\n// grow the replaced area or close open nodes in the slice in order to\n// get a fit that is more in line with WYSIWYG expectations, by\n// dropping fully covered parent nodes of the replaced region when\n// they are marked [non-defining](#model.NodeSpec.defining), or\n// including an open parent node from the slice that _is_ marked as\n// [defining](#model.NodeSpec.defining).\n//\n// This is the method, for example, to handle paste. The similar\n// [`replace`](#transform.Transform.replace) method is a more\n// primitive tool which will _not_ move the start and end of its given\n// range, and is useful in situations where you need more precise\n// control over what happens.\n\n\nTransform.prototype.replaceRange = function (from, to, slice) {\n if (!slice.size) {\n return this.deleteRange(from, to);\n }\n\n var $from = this.doc.resolve(from),\n $to = this.doc.resolve(to);\n\n if (fitsTrivially($from, $to, slice)) {\n return this.step(new ReplaceStep(from, to, slice));\n }\n\n var targetDepths = coveredDepths($from, this.doc.resolve(to)); // Can't replace the whole document, so remove 0 if it's present\n\n if (targetDepths[targetDepths.length - 1] == 0) {\n targetDepths.pop();\n } // Negative numbers represent not expansion over the whole node at\n // that depth, but replacing from $from.before(-D) to $to.pos.\n\n\n var preferredTarget = -($from.depth + 1);\n targetDepths.unshift(preferredTarget); // This loop picks a preferred target depth, if one of the covering\n // depths is not outside of a defining node, and adds negative\n // depths for any depth that has $from at its start and does not\n // cross a defining node.\n\n for (var d = $from.depth, pos = $from.pos - 1; d > 0; d--, pos--) {\n var spec = $from.node(d).type.spec;\n\n if (spec.defining || spec.isolating) {\n break;\n }\n\n if (targetDepths.indexOf(d) > -1) {\n preferredTarget = d;\n } else if ($from.before(d) == pos) {\n targetDepths.splice(1, 0, -d);\n }\n } // Try to fit each possible depth of the slice into each possible\n // target depth, starting with the preferred depths.\n\n\n var preferredTargetIndex = targetDepths.indexOf(preferredTarget);\n var leftNodes = [],\n preferredDepth = slice.openStart;\n\n for (var content = slice.content, i = 0;; i++) {\n var node = content.firstChild;\n leftNodes.push(node);\n\n if (i == slice.openStart) {\n break;\n }\n\n content = node.content;\n } // Back up if the node directly above openStart, or the node above\n // that separated only by a non-defining textblock node, is defining.\n\n\n if (preferredDepth > 0 && leftNodes[preferredDepth - 1].type.spec.defining && $from.node(preferredTargetIndex).type != leftNodes[preferredDepth - 1].type) {\n preferredDepth -= 1;\n } else if (preferredDepth >= 2 && leftNodes[preferredDepth - 1].isTextblock && leftNodes[preferredDepth - 2].type.spec.defining && $from.node(preferredTargetIndex).type != leftNodes[preferredDepth - 2].type) {\n preferredDepth -= 2;\n }\n\n for (var j = slice.openStart; j >= 0; j--) {\n var openDepth = (j + preferredDepth + 1) % (slice.openStart + 1);\n var insert = leftNodes[openDepth];\n\n if (!insert) {\n continue;\n }\n\n for (var i$1 = 0; i$1 < targetDepths.length; i$1++) {\n // Loop over possible expansion levels, starting with the\n // preferred one\n var targetDepth = targetDepths[(i$1 + preferredTargetIndex) % targetDepths.length],\n expand = true;\n\n if (targetDepth < 0) {\n expand = false;\n targetDepth = -targetDepth;\n }\n\n var parent = $from.node(targetDepth - 1),\n index = $from.index(targetDepth - 1);\n\n if (parent.canReplaceWith(index, index, insert.type, insert.marks)) {\n return this.replace($from.before(targetDepth), expand ? $to.after(targetDepth) : to, new Slice(closeFragment(slice.content, 0, slice.openStart, openDepth), openDepth, slice.openEnd));\n }\n }\n }\n\n var startSteps = this.steps.length;\n\n for (var i$2 = targetDepths.length - 1; i$2 >= 0; i$2--) {\n this.replace(from, to, slice);\n\n if (this.steps.length > startSteps) {\n break;\n }\n\n var depth = targetDepths[i$2];\n\n if (depth < 0) {\n continue;\n }\n\n from = $from.before(depth);\n to = $to.after(depth);\n }\n\n return this;\n};\n\nfunction closeFragment(fragment, depth, oldOpen, newOpen, parent) {\n if (depth < oldOpen) {\n var first = fragment.firstChild;\n fragment = fragment.replaceChild(0, first.copy(closeFragment(first.content, depth + 1, oldOpen, newOpen, first)));\n }\n\n if (depth > newOpen) {\n var match = parent.contentMatchAt(0);\n var start = match.fillBefore(fragment).append(fragment);\n fragment = start.append(match.matchFragment(start).fillBefore(Fragment.empty, true));\n }\n\n return fragment;\n} // :: (number, number, Node) → this\n// Replace the given range with a node, but use `from` and `to` as\n// hints, rather than precise positions. When from and to are the same\n// and are at the start or end of a parent node in which the given\n// node doesn't fit, this method may _move_ them out towards a parent\n// that does allow the given node to be placed. When the given range\n// completely covers a parent node, this method may completely replace\n// that parent node.\n\n\nTransform.prototype.replaceRangeWith = function (from, to, node) {\n if (!node.isInline && from == to && this.doc.resolve(from).parent.content.size) {\n var point = insertPoint(this.doc, from, node.type);\n\n if (point != null) {\n from = to = point;\n }\n }\n\n return this.replaceRange(from, to, new Slice(Fragment.from(node), 0, 0));\n}; // :: (number, number) → this\n// Delete the given range, expanding it to cover fully covered\n// parent nodes until a valid replace is found.\n\n\nTransform.prototype.deleteRange = function (from, to) {\n var $from = this.doc.resolve(from),\n $to = this.doc.resolve(to);\n var covered = coveredDepths($from, $to);\n\n for (var i = 0; i < covered.length; i++) {\n var depth = covered[i],\n last = i == covered.length - 1;\n\n if (last && depth == 0 || $from.node(depth).type.contentMatch.validEnd) {\n return this[\"delete\"]($from.start(depth), $to.end(depth));\n }\n\n if (depth > 0 && (last || $from.node(depth - 1).canReplace($from.index(depth - 1), $to.indexAfter(depth - 1)))) {\n return this[\"delete\"]($from.before(depth), $to.after(depth));\n }\n }\n\n for (var d = 1; d <= $from.depth && d <= $to.depth; d++) {\n if (from - $from.start(d) == $from.depth - d && to > $from.end(d) && $to.end(d) - to != $to.depth - d) {\n return this[\"delete\"]($from.before(d), to);\n }\n }\n\n return this[\"delete\"](from, to);\n}; // : (ResolvedPos, ResolvedPos) → [number]\n// Returns an array of all depths for which $from - $to spans the\n// whole content of the nodes at that depth.\n\n\nfunction coveredDepths($from, $to) {\n var result = [],\n minDepth = Math.min($from.depth, $to.depth);\n\n for (var d = minDepth; d >= 0; d--) {\n var start = $from.start(d);\n\n if (start < $from.pos - ($from.depth - d) || $to.end(d) > $to.pos + ($to.depth - d) || $from.node(d).type.spec.isolating || $to.node(d).type.spec.isolating) {\n break;\n }\n\n if (start == $to.start(d)) {\n result.push(d);\n }\n }\n\n return result;\n}\n\nexport { AddMarkStep, MapResult, Mapping, RemoveMarkStep, ReplaceAroundStep, ReplaceStep, Step, StepMap, StepResult, Transform, TransformError, canJoin, canSplit, dropPoint, findWrapping, insertPoint, joinPoint, liftTarget, replaceStep };","import { __values, __spread } from './_virtual/_tslib.js';\nimport { keys, flatten } from './utils.js';\n\nvar isLeafNode = function isLeafNode(stateNode) {\n return stateNode.type === 'atomic' || stateNode.type === 'final';\n};\n\nfunction getChildren(stateNode) {\n return keys(stateNode.states).map(function (key) {\n return stateNode.states[key];\n });\n}\n\nfunction getAllStateNodes(stateNode) {\n var stateNodes = [stateNode];\n\n if (isLeafNode(stateNode)) {\n return stateNodes;\n }\n\n return stateNodes.concat(flatten(getChildren(stateNode).map(getAllStateNodes)));\n}\n\nfunction getConfiguration(prevStateNodes, stateNodes) {\n var e_1, _a, e_2, _b, e_3, _c, e_4, _d;\n\n var prevConfiguration = new Set(prevStateNodes);\n var prevAdjList = getAdjList(prevConfiguration);\n var configuration = new Set(stateNodes);\n\n try {\n // add all ancestors\n for (var configuration_1 = __values(configuration), configuration_1_1 = configuration_1.next(); !configuration_1_1.done; configuration_1_1 = configuration_1.next()) {\n var s = configuration_1_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (configuration_1_1 && !configuration_1_1.done && (_a = configuration_1[\"return\"])) _a.call(configuration_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var adjList = getAdjList(configuration);\n\n try {\n // add descendants\n for (var configuration_2 = __values(configuration), configuration_2_1 = configuration_2.next(); !configuration_2_1.done; configuration_2_1 = configuration_2.next()) {\n var s = configuration_2_1.value; // if previously active, add existing child nodes\n\n if (s.type === 'compound' && (!adjList.get(s) || !adjList.get(s).length)) {\n if (prevAdjList.get(s)) {\n prevAdjList.get(s).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n s.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n } else {\n if (s.type === 'parallel') {\n try {\n for (var _e = (e_3 = void 0, __values(getChildren(s))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n\n if (child.type === 'history') {\n continue;\n }\n\n if (!configuration.has(child)) {\n configuration.add(child);\n\n if (prevAdjList.get(child)) {\n prevAdjList.get(child).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n child.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_c = _e[\"return\"])) _c.call(_e);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n }\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (configuration_2_1 && !configuration_2_1.done && (_b = configuration_2[\"return\"])) _b.call(configuration_2);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n try {\n // add all ancestors\n for (var configuration_3 = __values(configuration), configuration_3_1 = configuration_3.next(); !configuration_3_1.done; configuration_3_1 = configuration_3.next()) {\n var s = configuration_3_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (configuration_3_1 && !configuration_3_1.done && (_d = configuration_3[\"return\"])) _d.call(configuration_3);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n return configuration;\n}\n\nfunction getValueFromAdj(baseNode, adjList) {\n var childStateNodes = adjList.get(baseNode);\n\n if (!childStateNodes) {\n return {}; // todo: fix?\n }\n\n if (baseNode.type === 'compound') {\n var childStateNode = childStateNodes[0];\n\n if (childStateNode) {\n if (isLeafNode(childStateNode)) {\n return childStateNode.key;\n }\n } else {\n return {};\n }\n }\n\n var stateValue = {};\n childStateNodes.forEach(function (csn) {\n stateValue[csn.key] = getValueFromAdj(csn, adjList);\n });\n return stateValue;\n}\n\nfunction getAdjList(configuration) {\n var e_5, _a;\n\n var adjList = new Map();\n\n try {\n for (var configuration_4 = __values(configuration), configuration_4_1 = configuration_4.next(); !configuration_4_1.done; configuration_4_1 = configuration_4.next()) {\n var s = configuration_4_1.value;\n\n if (!adjList.has(s)) {\n adjList.set(s, []);\n }\n\n if (s.parent) {\n if (!adjList.has(s.parent)) {\n adjList.set(s.parent, []);\n }\n\n adjList.get(s.parent).push(s);\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (configuration_4_1 && !configuration_4_1.done && (_a = configuration_4[\"return\"])) _a.call(configuration_4);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return adjList;\n}\n\nfunction getValue(rootNode, configuration) {\n var config = getConfiguration([rootNode], configuration);\n return getValueFromAdj(rootNode, getAdjList(config));\n}\n\nfunction has(iterable, item) {\n if (Array.isArray(iterable)) {\n return iterable.some(function (member) {\n return member === item;\n });\n }\n\n if (iterable instanceof Set) {\n return iterable.has(item);\n }\n\n return false; // TODO: fix\n}\n\nfunction nextEvents(configuration) {\n return flatten(__spread(new Set(configuration.map(function (sn) {\n return sn.ownEvents;\n }))));\n}\n\nfunction isInFinalState(configuration, stateNode) {\n if (stateNode.type === 'compound') {\n return getChildren(stateNode).some(function (s) {\n return s.type === 'final' && has(configuration, s);\n });\n }\n\n if (stateNode.type === 'parallel') {\n return getChildren(stateNode).every(function (sn) {\n return isInFinalState(configuration, sn);\n });\n }\n\n return false;\n}\n\nexport { getAdjList, getAllStateNodes, getChildren, getConfiguration, getValue, has, isInFinalState, isLeafNode, nextEvents };","import React from \"react\";\nimport createPersistedState from \"use-persisted-state\";\n\ntype State = { isDarkMode: boolean; toggleMode: () => void };\ntype ColorSchemeProviderProps = { children: React.ReactNode };\n\nconst ColorSchemeContext = React.createContext(undefined);\n\nexport const usePolymerThemeState = createPersistedState(\"customTheme\"); // system, light, dark\n\nfunction ColorSchemeProvider({ children }: ColorSchemeProviderProps) {\n const customThemeState = usePolymerThemeState(null);\n const [customTheme, setCustomTheme] = customThemeState;\n\n const [isSystemDarkMode, setIsSystemDarkMode] = React.useState(\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches,\n );\n\n React.useEffect(() => {\n if (customTheme == undefined) {\n setCustomTheme(\"system\");\n }\n\n const handleModeChange = (e) => {\n // const newColorScheme = e.matches ? \"dark\" : \"light\";\n setIsSystemDarkMode(e.matches);\n };\n\n window.matchMedia(\"(prefers-color-scheme: dark)\").addEventListener(\"change\", handleModeChange);\n\n return window\n .matchMedia(\"(prefers-color-scheme: dark)\")\n .removeEventListener(\"change\", handleModeChange);\n }, []);\n\n const toggleMode = () => {\n setIsSystemDarkMode(!isSystemDarkMode);\n };\n\n const isDarkMode =\n customTheme == undefined || customTheme === \"system\"\n ? isSystemDarkMode\n : customTheme === \"dark\";\n\n return (\n \n {children}\n \n );\n}\n\nfunction useColorSchemeContext() {\n const context = React.useContext(ColorSchemeContext);\n if (context === undefined) {\n throw new Error(\"useColorSchemeContext must be used within a ColorSchemeProvider\");\n }\n return context;\n}\n\nexport { ColorSchemeProvider, useColorSchemeContext, ColorSchemeContext };\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\nmodule.exports = isArray;","'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar strictUriEncode = require('strict-uri-encode');\n\nvar decodeComponent = require('decode-uri-component');\n\nfunction encoderForArrayFormat(options) {\n switch (options.arrayFormat) {\n case 'index':\n return function (key, value, index) {\n return value === null ? [encode(key, options), '[', index, ']'].join('') : [encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('');\n };\n\n case 'bracket':\n return function (key, value) {\n return value === null ? [encode(key, options), '[]'].join('') : [encode(key, options), '[]=', encode(value, options)].join('');\n };\n\n default:\n return function (key, value) {\n return value === null ? encode(key, options) : [encode(key, options), '=', encode(value, options)].join('');\n };\n }\n}\n\nfunction parserForArrayFormat(options) {\n var result;\n\n switch (options.arrayFormat) {\n case 'index':\n return function (key, value, accumulator) {\n result = /\\[(\\d*)\\]$/.exec(key);\n key = key.replace(/\\[\\d*\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = {};\n }\n\n accumulator[key][result[1]] = value;\n };\n\n case 'bracket':\n return function (key, value, accumulator) {\n result = /(\\[\\])$/.exec(key);\n key = key.replace(/\\[\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = [value];\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n\n default:\n return function (key, value, accumulator) {\n if (accumulator[key] === undefined) {\n accumulator[key] = value;\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n }\n}\n\nfunction encode(value, options) {\n if (options.encode) {\n return options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n }\n\n return value;\n}\n\nfunction decode(value, options) {\n if (options.decode) {\n return decodeComponent(value);\n }\n\n return value;\n}\n\nfunction keysSorter(input) {\n if (Array.isArray(input)) {\n return input.sort();\n }\n\n if (_typeof(input) === 'object') {\n return keysSorter(Object.keys(input)).sort(function (a, b) {\n return Number(a) - Number(b);\n }).map(function (key) {\n return input[key];\n });\n }\n\n return input;\n}\n\nfunction extract(input) {\n var queryStart = input.indexOf('?');\n\n if (queryStart === -1) {\n return '';\n }\n\n return input.slice(queryStart + 1);\n}\n\nfunction parse(input, options) {\n options = Object.assign({\n decode: true,\n arrayFormat: 'none'\n }, options);\n var formatter = parserForArrayFormat(options); // Create an object with no prototype\n\n var ret = Object.create(null);\n\n if (typeof input !== 'string') {\n return ret;\n }\n\n input = input.trim().replace(/^[?#&]/, '');\n\n if (!input) {\n return ret;\n }\n\n var _iterator = _createForOfIteratorHelper(input.split('&')),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var param = _step.value;\n\n var _param$replace$split = param.replace(/\\+/g, ' ').split('='),\n _param$replace$split2 = _slicedToArray(_param$replace$split, 2),\n key = _param$replace$split2[0],\n value = _param$replace$split2[1]; // Missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n\n value = value === undefined ? null : decode(value, options);\n formatter(decode(key, options), value, ret);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return Object.keys(ret).sort().reduce(function (result, key) {\n var value = ret[key];\n\n if (Boolean(value) && _typeof(value) === 'object' && !Array.isArray(value)) {\n // Sort object keys, not values\n result[key] = keysSorter(value);\n } else {\n result[key] = value;\n }\n\n return result;\n }, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = function (obj, options) {\n var defaults = {\n encode: true,\n strict: true,\n arrayFormat: 'none'\n };\n options = Object.assign(defaults, options);\n\n if (options.sort === false) {\n options.sort = function () {};\n }\n\n var formatter = encoderForArrayFormat(options);\n return obj ? Object.keys(obj).sort(options.sort).map(function (key) {\n var value = obj[key];\n\n if (value === undefined) {\n return '';\n }\n\n if (value === null) {\n return encode(key, options);\n }\n\n if (Array.isArray(value)) {\n var result = [];\n\n var _iterator2 = _createForOfIteratorHelper(value.slice()),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var value2 = _step2.value;\n\n if (value2 === undefined) {\n continue;\n }\n\n result.push(formatter(key, value2, result.length));\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return result.join('&');\n }\n\n return encode(key, options) + '=' + encode(value, options);\n }).filter(function (x) {\n return x.length > 0;\n }).join('&') : '';\n};\n\nexports.parseUrl = function (input, options) {\n return {\n url: input.split('?')[0] || '',\n query: parse(extract(input), options)\n };\n};","import { useMutation, useQuery, useQueryClient } from \"react-query\";\nimport { apiPut, apiGet, apiDelete } from \"@shared/queryHooks/api\";\nimport { UserSettings } from \"@shared/types/user\";\nimport { CurrentUser } from \"@shared/types/currentUser\";\n\n/* API\n--===================================================-- */\nconst getMe = async () => {\n return await apiGet({ path: `/me` });\n};\n\nconst getMyInvites = async () => {\n return await apiGet({ path: `/me/invites` });\n};\n\nconst resendEmailConfirmation = async () => {\n return await apiPut({ path: `/me/resend_email_confirmation`, variables: {} });\n};\n\nconst rejectInvite = async ({ inviteId }) => {\n return await apiPut({ path: `/me/reject_invite`, variables: { inviteId } });\n};\n\nconst acceptInvite = async ({ inviteToken }) => {\n return await apiPut({ path: `/me/accept_invite`, variables: { inviteToken } });\n};\n\nconst updateMe = async (variables) => {\n return await apiPut({ path: `/me`, variables });\n};\n\nconst updateSettings = async (settings: UserSettings) => {\n const variables = { settings };\n return await apiPut({ path: `/me/update_settings`, variables });\n};\n\nconst chooseOrganizationUser = async ({ organization_user_id }) => {\n return await apiPut({\n path: `/me/choose_organization_user`,\n variables: { organization_user_id },\n });\n};\n\nconst deleteAvatar = async () => {\n return await apiPut({\n path: `/me/remove_avatar`,\n variables: {},\n });\n};\n\nconst deleteMe = async () => {\n return await apiDelete({ path: `/me/delete_account`, variables: {} });\n};\n\n/* Hooks\n--===================================================-- */\nexport function useGetMe({\n enabled = true,\n refetchOnWindowFocus = false,\n}: {\n enabled?: boolean;\n refetchOnWindowFocus?: boolean;\n}): {\n status: any;\n data: CurrentUser;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n} {\n // window.logger(\"%c[useMe] useGetMe\", \"color: #1976D2\", { enabled, refetchOnWindowFocus });\n return useQuery(\"me\", getMe, {\n enabled,\n refetchOnWindowFocus,\n retry: (failureCount, error) => !error.message.includes(401),\n onSettled: () => {},\n onError: (error) => {\n const search = new URLSearchParams(window.location.search);\n const isAcceptingAnInvite = search?.has(\"invite_token\");\n // If we are not accepting an invite then redirect to /logout\n if (!isAcceptingAnInvite) {\n window.logger(\"%c[useGetMe] ERROR - Redirecting to /logout\", \"color: #FF0000\", {\n // error,\n pathname: window.location.pathname,\n });\n const noredirectPaths = [\"/\", \"/jobs\", \"/interviewer\"];\n const queryParams = !noredirectPaths.includes(window.location.pathname)\n ? `?path=${window.location.pathname}`\n : \"\";\n window.location.href = `${window.APP_ATS_ROOT_URL}/logout${queryParams}`;\n }\n },\n });\n}\n\nexport function useMyInvites(): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n} {\n return useQuery(\"meInvites\", getMyInvites, {\n retry: (failureCount, error) => !error.message.includes(401),\n onSettled: () => {},\n onError: (error) => {\n // window.location.href = `${window.APP_ATS_ROOT_URL}/logout`;\n },\n });\n}\n\nexport function useResendEmailConfirmation() {\n const queryClient = useQueryClient();\n return useMutation(resendEmailConfirmation, {\n onSuccess: () => {\n queryClient.invalidateQueries(\"me\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useRejectInvite() {\n const queryClient = useQueryClient();\n return useMutation(rejectInvite, {\n onSuccess: () => {\n queryClient.invalidateQueries(\"me\");\n queryClient.invalidateQueries(\"meInvites\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useAcceptInvite() {\n const queryClient = useQueryClient();\n return useMutation(acceptInvite, {\n onSuccess: () => {\n queryClient.invalidateQueries(\"me\");\n queryClient.invalidateQueries(\"meInvites\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useUpdateMe() {\n const queryClient = useQueryClient();\n return useMutation(updateMe, {\n onSuccess: (data) => {\n queryClient.setQueryData(\"me\", data);\n // queryClient.invalidateQueries(\"me\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useUpdateSettings() {\n const queryClient = useQueryClient();\n return useMutation(updateSettings, {\n onSuccess: () => {\n queryClient.invalidateQueries(\"me\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useUploadAvatar() {\n const queryClient = useQueryClient();\n return useMutation(updateMe, {\n onSuccess: () => {\n queryClient.invalidateQueries(\"me\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useDeleteAvatar() {\n const queryClient = useQueryClient();\n return useMutation(deleteAvatar, {\n onSuccess: () => {\n queryClient.invalidateQueries(\"me\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useChooseOrganizationUser() {\n const queryClient = useQueryClient();\n return useMutation(chooseOrganizationUser, {\n onSuccess: (data) => {\n queryClient.invalidateQueries(\"currentOrganization\");\n queryClient.invalidateQueries(\"me\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useDeleteMe() {\n return useMutation(deleteMe, {\n onSuccess: (data) => {\n window.logger(\"%c[useDeleteMe] SUCCESS deleting user account\");\n },\n // throwOnError: true,\n });\n}\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\ntype Props = {\n title: string;\n subcopy?: string;\n onConfirm: ({}) => void;\n onCancel: ({}) => void;\n confirmText: string;\n cancelText: string;\n isDestructiveConfirm: boolean;\n};\n\nfunction ConfirmationModal(props: Props) {\n const {\n title,\n subcopy,\n confirmText,\n cancelText,\n onConfirm,\n onCancel,\n isDestructiveConfirm,\n } = props;\n\n const { dismissModalWithAnimation } = useModalContext();\n\n return (\n \n {subcopy && {subcopy}}\n \n dismissModalWithAnimation(() => onConfirm)}\n data-testid=\"modal-confirm-button\"\n >\n {confirmText}\n \n dismissModalWithAnimation(() => onCancel)}\n // onClick={onCancel}\n >\n {cancelText}\n \n \n \n );\n}\n\nConfirmationModal.deafultProps = {\n isDesctructiveConfirm: false,\n};\n\nexport default ConfirmationModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: ConfirmationModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ConfirmationModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","import { useQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiGet, apiPut, apiPost } from \"@shared/queryHooks/api\";\n\n/* API requests\n--===================================================-- */\nconst updateOrganization = async ({ id, ...organization }) => {\n window.logger(\"%c[useOrganization] updateOrganization\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n organization,\n });\n return await apiPut({\n path: `/organizations/${id}`,\n variables: { organization },\n });\n};\n\nconst createOrganization = async ({ ...organization }) => {\n window.logger(\"%c[useOrganization] updateOrganization\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n organization,\n });\n return await apiPost({\n path: `/organizations`,\n variables: { organization },\n });\n};\n\nconst getOrganization = async (organizationId) => {\n window.logger(\"%c[useOrganization] getOrganization\", \"background-color: #00F6D2\", {\n organizationId,\n });\n if (organizationId != undefined) {\n return await apiGet({\n path: `/organizations/${organizationId}`,\n });\n }\n};\n\nconst getOrganizationApiKeys = async (organizationId) => {\n window.logger(\"%c[useOrganization] getOrganizationApiKeys\", \"background-color: #00F6D2\", {\n organizationId,\n });\n if (organizationId != undefined) {\n return await apiGet({\n path: `/organizations/${organizationId}/api_keys`,\n });\n }\n};\n\nconst getTimestamp = async () => {\n window.logger(\"%c[useOrganization] getTimestamp\\n\\n\\n\\n\", \"background-color: #00F6D2\", {});\n return await apiGet({\n path: `/timestamp/now`,\n });\n};\n\nconst transferOrganizationOwnership = async ({ id, organizationUserId }) => {\n window.logger(\n \"%c[useOrganization] transferOrganizationOwnership\\n\\n\\n\\n\",\n \"background-color: #FF76D2\",\n {\n id,\n organizationUserId,\n },\n );\n return await apiPut({\n path: `/organizations/${id}/transfer_ownership`,\n variables: { organizationUserId },\n });\n};\n\n/* Hooks\n--===================================================-- */\nfunction useUpdateOrganization() {\n const queryClient = useQueryClient();\n return useMutation(updateOrganization, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\"%c[useOrganization] useUpdateOrganization onSuccess\", \"color: #1976D2\", {\n data,\n mutationVariables,\n });\n queryClient.invalidateQueries([\"currentOrganization\", data.id]);\n queryClient.invalidateQueries(\"me\");\n },\n // throwOnError: true,\n });\n}\n\nfunction useCreateOrganization() {\n const queryClient = useQueryClient();\n return useMutation(createOrganization, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\"%c[useOrganization] useCreateOrganization onSuccess\", \"color: #1976D2\", {\n data,\n mutationVariables,\n });\n queryClient.invalidateQueries(\"currentOrganization\");\n // queryClient.removeQueries(\"currentOrganization\");\n queryClient.setQueryData(\"currentOrganization\", data);\n queryClient.invalidateQueries(\"me\");\n },\n // throwOnError: true,\n });\n}\n\nfunction useOrganization(\n organizationId,\n): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n refetch: () => any;\n} {\n return useQuery([\"currentOrganization\", organizationId], () => getOrganization(organizationId), {\n refetchOnWindowFocus: false,\n });\n}\n\nfunction useOrganizationApiKeys(\n organizationId,\n): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n refetch: () => any;\n} {\n return useQuery(\n [\"currentOrganizationApiKeys\", organizationId],\n () => getOrganizationApiKeys(organizationId),\n {\n refetchOnWindowFocus: false,\n },\n );\n}\n\nfunction useTransferOrganizationOwnership() {\n const queryClient = useQueryClient();\n return useMutation(transferOrganizationOwnership, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c [useOrganization] useTransferOrganizationOwnership onSuccess\",\n \"color: #1976D2\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.invalidateQueries(\"me\");\n queryClient.invalidateQueries([\"currentOrganization\", data.id]);\n },\n // throwOnError: true,\n });\n}\n\nexport {\n useOrganization,\n useUpdateOrganization,\n useCreateOrganization,\n getTimestamp,\n useOrganizationApiKeys,\n useTransferOrganizationOwnership,\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from '../toDate/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` | `true` |\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 if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index.js';\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n \"long\": 'MMMM do, y',\n medium: 'MMM d, y',\n \"short\": 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n \"long\": 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n \"short\": 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n \"long\": \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n \"short\": '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = parsePatterns.findIndex(function (pattern) {\n return pattern.test(string);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(string);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}","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 valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (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 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 argumentCallback(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;","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 toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from '../../addLeadingZeros/index.js';\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from '../../toDate/index.js';\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from '../../toDate/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 if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/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 if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\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 getUTCISOWeekYear from '../getUTCISOWeekYear/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/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 if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\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';\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 if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\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 toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/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 if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\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 toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/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 if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\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 toInteger from '../toInteger/index.js';\nimport getUTCWeekYear from '../getUTCWeekYear/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/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 if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\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';\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 if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\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 lightFormatters from '../lightFormatters/index.js';\nimport getUTCDayOfYear from '../../../_lib/getUTCDayOfYear/index.js';\nimport getUTCISOWeek from '../../../_lib/getUTCISOWeek/index.js';\nimport getUTCISOWeekYear from '../../../_lib/getUTCISOWeekYear/index.js';\nimport getUTCWeek from '../../../_lib/getUTCWeek/index.js';\nimport getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport addLeadingZeros from '../../addLeadingZeros/index.js';\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","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;","var MILLISECONDS_IN_MINUTE = 60000;\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = date.getTimezoneOffset();\n date.setSeconds(0, 0);\n var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE;\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token) {\n if (token === 'YYYY') {\n throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'YY') {\n throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'D') {\n throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr');\n } else if (token === 'DD') {\n throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr');\n }\n}","import isValid from '../isValid/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport formatters from '../_lib/format/formatters/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js'; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'(.*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from '../toDate/index.js';\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are 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 {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from '../toDate/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 if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from '../toDate/index.js';\nimport differenceInCalendarMonths from '../differenceInCalendarMonths/index.js';\nimport compareAsc from '../compareAsc/index.js';\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full 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 full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - isLastMonthNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import toDate from '../toDate/index.js';\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds 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 milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getTime() - dateRight.getTime();\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds 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 seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * var result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dirtyDateLeft, dirtyDateRight) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (dirtyObject.hasOwnProperty(property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import assign from '../assign/index.js';\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","import compareAsc from '../compareAsc/index.js';\nimport differenceInMonths from '../differenceInMonths/index.js';\nimport differenceInSeconds from '../differenceInSeconds/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport toDate from '../toDate/index.js';\nimport cloneObject from '../_lib/cloneObject/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\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 `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * var result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","import distanceInWords from '../formatDistance/index.js';\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\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 `distanceInWordsToNow ` to `formatDistanceToNow`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n * ```\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if now is earlier or later than the passed date\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistanceToNow(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n return distanceInWords(dirtyDate, Date.now(), dirtyOptions);\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport setUTCDay from '../../../_lib/setUTCDay/index.js';\nimport setUTCISODay from '../../../_lib/setUTCISODay/index.js';\nimport setUTCISOWeek from '../../../_lib/setUTCISOWeek/index.js';\nimport setUTCWeek from '../../../_lib/setUTCWeek/index.js';\nimport startOfUTCISOWeek from '../../../_lib/startOfUTCISOWeek/index.js';\nimport startOfUTCWeek from '../../../_lib/startOfUTCWeek/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function set(date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function parse(string, token, match, _options) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function validate(_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function set(date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function parse(string, token, match, _options) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function validate(_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function parse(string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function set(_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function parse(string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function parse(string, token, match, _options) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function parse(string, token, match, _options) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function set(date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function parse(string, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function parse(string, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function parse(string, token, match, _options) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function set(date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function set(date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function set(date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function set(date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function parse(string, token, _match, _options) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function parse(string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function set(date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function parse(string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function set(date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function parse(string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function set(_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function parse(string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function set(_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCWeek from '../getUTCWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCISOWeek from '../getUTCISOWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport assign from '../_lib/assign/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport parsers from './_lib/parsers/index.js';\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'(.*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `backupDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `backupDate` which works as a context of parsing.\n *\n * `backupDate` must be passed for correct work of the function.\n * If you're not sure which `backupDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `backupDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `backupDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * toDate('2016-01-01')\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} backupDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions) {\n if (arguments.length < 3) {\n throw new TypeError('3 arguments required, but only ' + arguments.length + ' present');\n }\n\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyBackupDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale // If timezone isn't specified, it will be set to the system timezone\n\n };\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).reverse();\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyBackupDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import format from \"date-fns/format\";\nimport formatDistanceToNow from \"date-fns/formatDistanceToNow\";\nimport parseISO from \"date-fns/parseISO\";\nimport getTime from \"date-fns/getTime\";\nimport subHours from \"date-fns/subHours\";\nimport parse from \"date-fns/parse\";\nimport isAfter from \"date-fns/isAfter\";\n\nexport const hoursAgo = (hours) => {\n const result = subHours(new Date(), hours);\n return getTime(result);\n};\n\nexport const timeAgoInWordsShort = (datetime) => {\n if (datetime !== undefined) {\n return formatDistanceToNow(datetime * 1000)\n .replace(/ mi.*/, \" min\")\n .replace(/ h.*/, \"h\")\n .replace(/ d.*/, \"d\")\n .replace(/ mo.*/, \"M\")\n .replace(/ y.*/, \"Y\")\n .replace(/about/, \"\");\n }\n\n return null;\n};\n\nexport const timeAgoInWordsLong = (datetime) => {\n if (datetime !== undefined) {\n return formatDistanceToNow(datetime * 1000);\n // .replace(/ mi.*/, \" min\")\n // .replace(/ h.*/, \"h\")\n // .replace(/ d.*/, \"d\")\n // .replace(/ mo.*/, \"M\")\n // .replace(/ y.*/, \"Y\")\n // .replace(/about/, \"\");\n }\n\n return null;\n};\n\n// July 12th, 2021\nexport const prettyDate = (datetime) => {\n if (datetime === undefined || datetime === null) return null;\n\n return format(datetime * 1000, \"PPP\");\n};\n\n// 02/18/1981\nexport const formatMDY = (datetime) => {\n if (datetime === undefined) return null;\n\n return format(datetime * 1000, \"M/dd/yyyy\");\n};\n\n// Jul 12, 2021 at 10:50PM\nexport const prettyDateAndTime = (datetime) => {\n if (datetime === undefined) return null;\n\n const date = prettyDateSimple(datetime);\n const time = prettyTime(datetime);\n return `${date} at ${time}`;\n};\n\n// expects datetime format of ISO timestamp (Rails)\n// example datetime 2021-01-28T14:57:22.000Z\nexport const prettyDateSimpleISO = (datetime) => {\n if (datetime === undefined) return null;\n\n // return format(datetime * 1000, \"MMM d, yyyy\");\n return format(parseISO(datetime), \"MMM dd, yyyy\");\n};\n\n// expects datetime format of Unix timestamp\nexport const prettyDateSimple = (datetime) => {\n if (datetime === undefined) return null;\n\n return format(datetime * 1000, \"MMM d, yyyy\");\n};\n\nexport const prettyTime = (datetime) => {\n if (datetime === undefined) return null;\n\n return format(datetime * 1000, \"h:mma\");\n};\n\n// Returns: 10 days, or Future: in 10 days, or Past: 10 days ago\n// addSuffix = true, will add the \"in\" or the \"ago\"\nexport const distanceInWords = (date, addSuffix = true) => {\n return formatDistanceToNow(new Date(date), { addSuffix });\n};\n\nexport const isDeadlineDateAfterCurrent = (dateString: string): boolean => {\n const currentDate = new Date();\n const deadlineDate = parse(dateString, \"MM-dd-yyyy\", new Date());\n\n return isAfter(currentDate, deadlineDate);\n};","import toDate from '../toDate/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 if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import _isString from \"lodash/isString\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _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\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n}; // `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\n\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && _isArray(lastResult)) {\n return lastResult;\n }\n\n var result = [];\n Children.forEach(children, function (child) {\n if (_isNil(child)) return;\n\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var childType = _get(child, 'type.displayName') || _get(child, 'type.name');\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var displayName = _get(child, 'type.displayName');\n\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\n\n\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n var count = Children.count(nextChildren);\n\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n } // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0:\n break;\n\n case 1:\n this.range(domain);\n break;\n\n default:\n this.range(range).domain(domain);\n break;\n }\n\n return this;\n}\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0:\n break;\n\n case 1:\n {\n if (typeof domain === \"function\") this.interpolator(domain);else this.range(domain);\n break;\n }\n\n default:\n {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);else this.range(interpolator);\n break;\n }\n }\n\n return this;\n}","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\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 (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = false;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? 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 ? ObjectPrototype : null;\n};\n","import { __spread, __rest, __assign } from './_virtual/_tslib.js';\nimport { EMPTY_ACTIVITY_MAP } from './constants.js';\nimport { isString, matchesState, keys } from './utils.js';\nimport { nextEvents } from './stateUtils.js';\nimport { initEvent } from './actions.js';\n\nfunction stateValuesEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a === undefined || b === undefined) {\n return false;\n }\n\n if (isString(a) || isString(b)) {\n return a === b;\n }\n\n var aKeys = keys(a);\n var bKeys = keys(b);\n return aKeys.length === bKeys.length && aKeys.every(function (key) {\n return stateValuesEqual(a[key], b[key]);\n });\n}\n\nfunction isState(state) {\n if (isString(state)) {\n return false;\n }\n\n return 'value' in state && 'history' in state;\n}\n\nfunction bindActionToState(action, state) {\n var exec = action.exec;\n\n var boundAction = __assign(__assign({}, action), {\n exec: exec !== undefined ? function () {\n return exec(state.context, state.event, {\n action: action,\n state: state,\n _event: state._event\n });\n } : undefined\n });\n\n return boundAction;\n}\n\nvar State =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new State instance.\r\n * @param value The state value\r\n * @param context The extended state\r\n * @param historyValue The tree representing historical values of the state nodes\r\n * @param history The previous state\r\n * @param actions An array of action objects to execute as side-effects\r\n * @param activities A mapping of activities and whether they are started (`true`) or stopped (`false`).\r\n * @param meta\r\n * @param events Internal event queue. Should be empty with run-to-completion semantics.\r\n * @param configuration\r\n */\n function State(config) {\n this.actions = [];\n this.activities = EMPTY_ACTIVITY_MAP;\n this.meta = {};\n this.events = [];\n this.value = config.value;\n this.context = config.context;\n this._event = config._event;\n this._sessionid = config._sessionid;\n this.event = this._event.data;\n this.historyValue = config.historyValue;\n this.history = config.history;\n this.actions = config.actions || [];\n this.activities = config.activities || EMPTY_ACTIVITY_MAP;\n this.meta = config.meta || {};\n this.events = config.events || [];\n this.matches = this.matches.bind(this);\n this.toStrings = this.toStrings.bind(this);\n this.configuration = config.configuration;\n this.transitions = config.transitions;\n this.children = config.children;\n this.done = !!config.done;\n Object.defineProperty(this, 'nextEvents', {\n get: function get() {\n return nextEvents(config.configuration);\n }\n });\n }\n /**\r\n * Creates a new State instance for the given `stateValue` and `context`.\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.from = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (stateValue.context !== context) {\n return new State({\n value: stateValue.value,\n context: context,\n _event: stateValue._event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n actions: [],\n activities: stateValue.activities,\n meta: {},\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n }\n\n return stateValue;\n }\n\n var _event = initEvent;\n return new State({\n value: stateValue,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: undefined,\n history: undefined,\n actions: [],\n activities: undefined,\n meta: undefined,\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n };\n /**\r\n * Creates a new State instance for the given `config`.\r\n * @param config The state config\r\n */\n\n\n State.create = function (config) {\n return new State(config);\n };\n /**\r\n * Creates a new `State` instance for the given `stateValue` and `context` with no actions (side-effects).\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.inert = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (!stateValue.actions.length) {\n return stateValue;\n }\n\n var _event = initEvent;\n return new State({\n value: stateValue.value,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n activities: stateValue.activities,\n configuration: stateValue.configuration,\n transitions: [],\n children: {}\n });\n }\n\n return State.from(stateValue, context);\n };\n /**\r\n * Returns an array of all the string leaf state node paths.\r\n * @param stateValue\r\n * @param delimiter The character(s) that separate each subpath in the string state node path.\r\n */\n\n\n State.prototype.toStrings = function (stateValue, delimiter) {\n var _this = this;\n\n if (stateValue === void 0) {\n stateValue = this.value;\n }\n\n if (delimiter === void 0) {\n delimiter = '.';\n }\n\n if (isString(stateValue)) {\n return [stateValue];\n }\n\n var valueKeys = keys(stateValue);\n return valueKeys.concat.apply(valueKeys, __spread(valueKeys.map(function (key) {\n return _this.toStrings(stateValue[key], delimiter).map(function (s) {\n return key + delimiter + s;\n });\n })));\n };\n\n State.prototype.toJSON = function () {\n var _a = this,\n configuration = _a.configuration,\n transitions = _a.transitions,\n jsonValues = __rest(_a, [\"configuration\", \"transitions\"]);\n\n return jsonValues;\n };\n /**\r\n * Whether the current state value is a subset of the given parent state value.\r\n * @param parentStateValue\r\n */\n\n\n State.prototype.matches = function (parentStateValue) {\n return matchesState(parentStateValue, this.value);\n };\n\n return State;\n}();\n\nexport { State, bindActionToState, isState, stateValuesEqual };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\n;\n\n(function (globalScope) {\n 'use strict';\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\n // The limit on the value of `precision`, and on the value of the first argument to\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\n\n var MAX_DIGITS = 1e9,\n // 0 to 1e9\n // The initial configuration properties of the Decimal constructor.\n Decimal = {\n // These values must be integers within the stated ranges (inclusive).\n // Most of these values can be changed during run-time using `Decimal.config`.\n // The maximum number of significant digits of the result of a calculation or base conversion.\n // E.g. `Decimal.config({ precision: 20 });`\n precision: 20,\n // 1 to MAX_DIGITS\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\n //\n // ROUND_UP 0 Away from zero.\n // ROUND_DOWN 1 Towards zero.\n // ROUND_CEIL 2 Towards +Infinity.\n // ROUND_FLOOR 3 Towards -Infinity.\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\n //\n // E.g.\n // `Decimal.rounding = 4;`\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\n rounding: 4,\n // 0 to 8\n // The exponent value at and beneath which `toString` returns exponential notation.\n // JavaScript numbers: -7\n toExpNeg: -7,\n // 0 to -MAX_E\n // The exponent value at and above which `toString` returns exponential notation.\n // JavaScript numbers: 21\n toExpPos: 21,\n // 0 to MAX_E\n // The natural logarithm of 10.\n // 115 digits\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\n },\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\n external = true,\n decimalError = '[DecimalError] ',\n invalidArgument = decimalError + 'Invalid argument: ',\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\n mathfloor = Math.floor,\n mathpow = Math.pow,\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\n ONE,\n BASE = 1e7,\n LOG_BASE = 7,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE),\n // 1286742750677284\n // Decimal.prototype object\n P = {}; // Decimal prototype methods\n\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\n\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\n\n P.absoluteValue = P.abs = function () {\n var x = new this.constructor(this);\n if (x.s) x.s = 1;\n return x;\n };\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\n\n\n P.comparedTo = P.cmp = function (y) {\n var i,\n j,\n xdL,\n ydL,\n x = this;\n y = new x.constructor(y); // Signs differ?\n\n if (x.s !== y.s) return x.s || -y.s; // Compare exponents.\n\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\n xdL = x.d.length;\n ydL = y.d.length; // Compare digit by digit.\n\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\n } // Compare lengths.\n\n\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\n };\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\n\n\n P.decimalPlaces = P.dp = function () {\n var x = this,\n w = x.d.length - 1,\n dp = (w - x.e) * LOG_BASE; // Subtract the number of trailing zeros of the last word.\n\n w = x.d[w];\n if (w) for (; w % 10 == 0; w /= 10) {\n dp--;\n }\n return dp < 0 ? 0 : dp;\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\n\n\n P.dividedBy = P.div = function (y) {\n return divide(this, new this.constructor(y));\n };\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\n\n\n P.dividedToIntegerBy = P.idiv = function (y) {\n var x = this,\n Ctor = x.constructor;\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\n };\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\n\n\n P.equals = P.eq = function (y) {\n return !this.cmp(y);\n };\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\n\n\n P.exponent = function () {\n return getBase10Exponent(this);\n };\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\n\n\n P.greaterThan = P.gt = function (y) {\n return this.cmp(y) > 0;\n };\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\n\n\n P.greaterThanOrEqualTo = P.gte = function (y) {\n return this.cmp(y) >= 0;\n };\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\n\n\n P.isInteger = P.isint = function () {\n return this.e > this.d.length - 2;\n };\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\n\n\n P.isNegative = P.isneg = function () {\n return this.s < 0;\n };\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\n\n\n P.isPositive = P.ispos = function () {\n return this.s > 0;\n };\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\n\n\n P.isZero = function () {\n return this.s === 0;\n };\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\n\n\n P.lessThan = P.lt = function (y) {\n return this.cmp(y) < 0;\n };\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\n\n\n P.lessThanOrEqualTo = P.lte = function (y) {\n return this.cmp(y) < 1;\n };\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\n\n\n P.logarithm = P.log = function (base) {\n var r,\n x = this,\n Ctor = x.constructor,\n pr = Ctor.precision,\n wpr = pr + 5; // Default base is 10.\n\n if (base === void 0) {\n base = new Ctor(10);\n } else {\n base = new Ctor(base); // log[-b](x) = NaN\n // log[0](x) = NaN\n // log[1](x) = NaN\n\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\n } // log[b](-x) = NaN\n // log[b](0) = -Infinity\n\n\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity')); // log[b](1) = 0\n\n if (x.eq(ONE)) return new Ctor(0);\n external = false;\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\n external = true;\n return round(r, pr);\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\n\n\n P.minus = P.sub = function (y) {\n var x = this;\n y = new x.constructor(y);\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\n\n\n P.modulo = P.mod = function (y) {\n var q,\n x = this,\n Ctor = x.constructor,\n pr = Ctor.precision;\n y = new Ctor(y); // x % 0 = NaN\n\n if (!y.s) throw Error(decimalError + 'NaN'); // Return x if x is 0.\n\n if (!x.s) return round(new Ctor(x), pr); // Prevent rounding of intermediate calculations.\n\n external = false;\n q = divide(x, y, 0, 1).times(y);\n external = true;\n return x.minus(q);\n };\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\n\n\n P.naturalExponential = P.exp = function () {\n return exp(this);\n };\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\n\n\n P.naturalLogarithm = P.ln = function () {\n return ln(this);\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\n\n\n P.negated = P.neg = function () {\n var x = new this.constructor(this);\n x.s = -x.s || 0;\n return x;\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\n\n\n P.plus = P.add = function (y) {\n var x = this;\n y = new x.constructor(y);\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\n };\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\n\n\n P.precision = P.sd = function (z) {\n var e,\n sd,\n w,\n x = this;\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\n e = getBase10Exponent(x) + 1;\n w = x.d.length - 1;\n sd = w * LOG_BASE + 1;\n w = x.d[w]; // If non-zero...\n\n if (w) {\n // Subtract the number of trailing zeros of the last word.\n for (; w % 10 == 0; w /= 10) {\n sd--;\n } // Add the number of digits of the first word.\n\n\n for (w = x.d[0]; w >= 10; w /= 10) {\n sd++;\n }\n }\n\n return z && e > sd ? e : sd;\n };\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\n\n\n P.squareRoot = P.sqrt = function () {\n var e,\n n,\n pr,\n r,\n s,\n t,\n wpr,\n x = this,\n Ctor = x.constructor; // Negative or zero?\n\n if (x.s < 1) {\n if (!x.s) return new Ctor(0); // sqrt(-x) = NaN\n\n throw Error(decimalError + 'NaN');\n }\n\n e = getBase10Exponent(x);\n external = false; // Initial estimate.\n\n s = Math.sqrt(+x); // Math.sqrt underflow/overflow?\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\n\n if (s == 0 || s == 1 / 0) {\n n = digitsToString(x.d);\n if ((n.length + e) % 2 == 0) n += '0';\n s = Math.sqrt(n);\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\n\n if (s == 1 / 0) {\n n = '5e' + e;\n } else {\n n = s.toExponential();\n n = n.slice(0, n.indexOf('e') + 1) + e;\n }\n\n r = new Ctor(n);\n } else {\n r = new Ctor(s.toString());\n }\n\n pr = Ctor.precision;\n s = wpr = pr + 3; // Newton-Raphson iteration.\n\n for (;;) {\n t = r;\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\n\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\n n = n.slice(wpr - 3, wpr + 1); // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\n\n if (s == wpr && n == '4999') {\n // On the first iteration only, check to see if rounding up gives the exact result as the\n // nines may infinitely repeat.\n round(t, pr + 1, 0);\n\n if (t.times(t).eq(x)) {\n r = t;\n break;\n }\n } else if (n != '9999') {\n break;\n }\n\n wpr += 4;\n }\n }\n\n external = true;\n return round(r, pr);\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\n\n\n P.times = P.mul = function (y) {\n var carry,\n e,\n i,\n k,\n r,\n rL,\n t,\n xdL,\n ydL,\n x = this,\n Ctor = x.constructor,\n xd = x.d,\n yd = (y = new Ctor(y)).d; // Return 0 if either is 0.\n\n if (!x.s || !y.s) return new Ctor(0);\n y.s *= x.s;\n e = x.e + y.e;\n xdL = xd.length;\n ydL = yd.length; // Ensure xd points to the longer array.\n\n if (xdL < ydL) {\n r = xd;\n xd = yd;\n yd = r;\n rL = xdL;\n xdL = ydL;\n ydL = rL;\n } // Initialise the result array with zeros.\n\n\n r = [];\n rL = xdL + ydL;\n\n for (i = rL; i--;) {\n r.push(0);\n } // Multiply!\n\n\n for (i = ydL; --i >= 0;) {\n carry = 0;\n\n for (k = xdL + i; k > i;) {\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\n r[k--] = t % BASE | 0;\n carry = t / BASE | 0;\n }\n\n r[k] = (r[k] + carry) % BASE | 0;\n } // Remove trailing zeros.\n\n\n for (; !r[--rL];) {\n r.pop();\n }\n\n if (carry) ++e;else r.shift();\n y.d = r;\n y.e = e;\n return external ? round(y, Ctor.precision) : y;\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\n\n\n P.toDecimalPlaces = P.todp = function (dp, rm) {\n var x = this,\n Ctor = x.constructor;\n x = new Ctor(x);\n if (dp === void 0) return x;\n checkInt32(dp, 0, MAX_DIGITS);\n if (rm === void 0) rm = Ctor.rounding;else checkInt32(rm, 0, 8);\n return round(x, dp + getBase10Exponent(x) + 1, rm);\n };\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\n\n\n P.toExponential = function (dp, rm) {\n var str,\n x = this,\n Ctor = x.constructor;\n\n if (dp === void 0) {\n str = toString(x, true);\n } else {\n checkInt32(dp, 0, MAX_DIGITS);\n if (rm === void 0) rm = Ctor.rounding;else checkInt32(rm, 0, 8);\n x = round(new Ctor(x), dp + 1, rm);\n str = toString(x, true, dp + 1);\n }\n\n return str;\n };\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\n\n\n P.toFixed = function (dp, rm) {\n var str,\n y,\n x = this,\n Ctor = x.constructor;\n if (dp === void 0) return toString(x);\n checkInt32(dp, 0, MAX_DIGITS);\n if (rm === void 0) rm = Ctor.rounding;else checkInt32(rm, 0, 8);\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1); // To determine whether to add the minus sign look at the value before it was rounded,\n // i.e. look at `x` rather than `y`.\n\n return x.isneg() && !x.isZero() ? '-' + str : str;\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\n\n\n P.toInteger = P.toint = function () {\n var x = this,\n Ctor = x.constructor;\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\n };\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\n\n\n P.toNumber = function () {\n return +this;\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\n\n\n P.toPower = P.pow = function (y) {\n var e,\n k,\n pr,\n r,\n sign,\n yIsInt,\n x = this,\n Ctor = x.constructor,\n guard = 12,\n yn = +(y = new Ctor(y)); // pow(x, 0) = 1\n\n if (!y.s) return new Ctor(ONE);\n x = new Ctor(x); // pow(0, y > 0) = 0\n // pow(0, y < 0) = Infinity\n\n if (!x.s) {\n if (y.s < 1) throw Error(decimalError + 'Infinity');\n return x;\n } // pow(1, y) = 1\n\n\n if (x.eq(ONE)) return x;\n pr = Ctor.precision; // pow(x, 1) = x\n\n if (y.eq(ONE)) return round(x, pr);\n e = y.e;\n k = y.d.length - 1;\n yIsInt = e >= k;\n sign = x.s;\n\n if (!yIsInt) {\n // pow(x < 0, y non-integer) = NaN\n if (sign < 0) throw Error(decimalError + 'NaN'); // If y is a small integer use the 'exponentiation by squaring' algorithm.\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\n r = new Ctor(ONE); // Max k of 9007199254740991 takes 53 loop iterations.\n // Maximum digits array length; leaves [28, 34] guard digits.\n\n e = Math.ceil(pr / LOG_BASE + 4);\n external = false;\n\n for (;;) {\n if (k % 2) {\n r = r.times(x);\n truncate(r.d, e);\n }\n\n k = mathfloor(k / 2);\n if (k === 0) break;\n x = x.times(x);\n truncate(x.d, e);\n }\n\n external = true;\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\n } // Result is negative if x is negative and the last digit of integer y is odd.\n\n\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\n x.s = 1;\n external = false;\n r = y.times(ln(x, pr + guard));\n external = true;\n r = exp(r);\n r.s = sign;\n return r;\n };\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\n\n\n P.toPrecision = function (sd, rm) {\n var e,\n str,\n x = this,\n Ctor = x.constructor;\n\n if (sd === void 0) {\n e = getBase10Exponent(x);\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\n } else {\n checkInt32(sd, 1, MAX_DIGITS);\n if (rm === void 0) rm = Ctor.rounding;else checkInt32(rm, 0, 8);\n x = round(new Ctor(x), sd, rm);\n e = getBase10Exponent(x);\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\n }\n\n return str;\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\n\n\n P.toSignificantDigits = P.tosd = function (sd, rm) {\n var x = this,\n Ctor = x.constructor;\n\n if (sd === void 0) {\n sd = Ctor.precision;\n rm = Ctor.rounding;\n } else {\n checkInt32(sd, 1, MAX_DIGITS);\n if (rm === void 0) rm = Ctor.rounding;else checkInt32(rm, 0, 8);\n }\n\n return round(new Ctor(x), sd, rm);\n };\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\n\n\n P.toString = P.valueOf = P.val = P.toJSON = function () {\n var x = this,\n e = getBase10Exponent(x),\n Ctor = x.constructor;\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\n }; // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\n\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\n\n\n function add(x, y) {\n var carry,\n d,\n e,\n i,\n k,\n len,\n xd,\n yd,\n Ctor = x.constructor,\n pr = Ctor.precision; // If either is zero...\n\n if (!x.s || !y.s) {\n // Return x if y is zero.\n // Return y if y is non-zero.\n if (!y.s) y = new Ctor(x);\n return external ? round(y, pr) : y;\n }\n\n xd = x.d;\n yd = y.d; // x and y are finite, non-zero numbers with the same sign.\n\n k = x.e;\n e = y.e;\n xd = xd.slice();\n i = k - e; // If base 1e7 exponents differ...\n\n if (i) {\n if (i < 0) {\n d = xd;\n i = -i;\n len = yd.length;\n } else {\n d = yd;\n e = k;\n len = xd.length;\n } // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\n\n\n k = Math.ceil(pr / LOG_BASE);\n len = k > len ? k + 1 : len + 1;\n\n if (i > len) {\n i = len;\n d.length = 1;\n } // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\n\n\n d.reverse();\n\n for (; i--;) {\n d.push(0);\n }\n\n d.reverse();\n }\n\n len = xd.length;\n i = yd.length; // If yd is longer than xd, swap xd and yd so xd points to the longer array.\n\n if (len - i < 0) {\n i = len;\n d = yd;\n yd = xd;\n xd = d;\n } // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\n\n\n for (carry = 0; i;) {\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\n xd[i] %= BASE;\n }\n\n if (carry) {\n xd.unshift(carry);\n ++e;\n } // Remove trailing zeros.\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\n\n\n for (len = xd.length; xd[--len] == 0;) {\n xd.pop();\n }\n\n y.d = xd;\n y.e = e;\n return external ? round(y, pr) : y;\n }\n\n function checkInt32(i, min, max) {\n if (i !== ~~i || i < min || i > max) {\n throw Error(invalidArgument + i);\n }\n }\n\n function digitsToString(d) {\n var i,\n k,\n ws,\n indexOfLastWord = d.length - 1,\n str = '',\n w = d[0];\n\n if (indexOfLastWord > 0) {\n str += w;\n\n for (i = 1; i < indexOfLastWord; i++) {\n ws = d[i] + '';\n k = LOG_BASE - ws.length;\n if (k) str += getZeroString(k);\n str += ws;\n }\n\n w = d[i];\n ws = w + '';\n k = LOG_BASE - ws.length;\n if (k) str += getZeroString(k);\n } else if (w === 0) {\n return '0';\n } // Remove trailing zeros of last w.\n\n\n for (; w % 10 === 0;) {\n w /= 10;\n }\n\n return str + w;\n }\n\n var divide = function () {\n // Assumes non-zero x and k, and hence non-zero result.\n function multiplyInteger(x, k) {\n var temp,\n carry = 0,\n i = x.length;\n\n for (x = x.slice(); i--;) {\n temp = x[i] * k + carry;\n x[i] = temp % BASE | 0;\n carry = temp / BASE | 0;\n }\n\n if (carry) x.unshift(carry);\n return x;\n }\n\n function compare(a, b, aL, bL) {\n var i, r;\n\n if (aL != bL) {\n r = aL > bL ? 1 : -1;\n } else {\n for (i = r = 0; i < aL; i++) {\n if (a[i] != b[i]) {\n r = a[i] > b[i] ? 1 : -1;\n break;\n }\n }\n }\n\n return r;\n }\n\n function subtract(a, b, aL) {\n var i = 0; // Subtract b from a.\n\n for (; aL--;) {\n a[aL] -= i;\n i = a[aL] < b[aL] ? 1 : 0;\n a[aL] = i * BASE + a[aL] - b[aL];\n } // Remove leading zeros.\n\n\n for (; !a[0] && a.length > 1;) {\n a.shift();\n }\n }\n\n return function (x, y, pr, dp) {\n var cmp,\n e,\n i,\n k,\n prod,\n prodL,\n q,\n qd,\n rem,\n remL,\n rem0,\n sd,\n t,\n xi,\n xL,\n yd0,\n yL,\n yz,\n Ctor = x.constructor,\n sign = x.s == y.s ? 1 : -1,\n xd = x.d,\n yd = y.d; // Either 0?\n\n if (!x.s) return new Ctor(x);\n if (!y.s) throw Error(decimalError + 'Division by zero');\n e = x.e - y.e;\n yL = yd.length;\n xL = xd.length;\n q = new Ctor(sign);\n qd = q.d = []; // Result exponent may be one less than e.\n\n for (i = 0; yd[i] == (xd[i] || 0);) {\n ++i;\n }\n\n if (yd[i] > (xd[i] || 0)) --e;\n\n if (pr == null) {\n sd = pr = Ctor.precision;\n } else if (dp) {\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\n } else {\n sd = pr;\n }\n\n if (sd < 0) return new Ctor(0); // Convert precision in number of base 10 digits to base 1e7 digits.\n\n sd = sd / LOG_BASE + 2 | 0;\n i = 0; // divisor < 1e7\n\n if (yL == 1) {\n k = 0;\n yd = yd[0];\n sd++; // k is the carry.\n\n for (; (i < xL || k) && sd--; i++) {\n t = k * BASE + (xd[i] || 0);\n qd[i] = t / yd | 0;\n k = t % yd | 0;\n } // divisor >= 1e7\n\n } else {\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\n k = BASE / (yd[0] + 1) | 0;\n\n if (k > 1) {\n yd = multiplyInteger(yd, k);\n xd = multiplyInteger(xd, k);\n yL = yd.length;\n xL = xd.length;\n }\n\n xi = yL;\n rem = xd.slice(0, yL);\n remL = rem.length; // Add zeros to make remainder as long as divisor.\n\n for (; remL < yL;) {\n rem[remL++] = 0;\n }\n\n yz = yd.slice();\n yz.unshift(0);\n yd0 = yd[0];\n if (yd[1] >= BASE / 2) ++yd0;\n\n do {\n k = 0; // Compare divisor and remainder.\n\n cmp = compare(yd, rem, yL, remL); // If divisor < remainder.\n\n if (cmp < 0) {\n // Calculate trial digit, k.\n rem0 = rem[0];\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0); // k will be how many times the divisor goes into the current remainder.\n\n k = rem0 / yd0 | 0; // Algorithm:\n // 1. product = divisor * trial digit (k)\n // 2. if product > remainder: product -= divisor, k--\n // 3. remainder -= product\n // 4. if product was < remainder at 2:\n // 5. compare new remainder and divisor\n // 6. If remainder > divisor: remainder -= divisor, k++\n\n if (k > 1) {\n if (k >= BASE) k = BASE - 1; // product = divisor * trial digit.\n\n prod = multiplyInteger(yd, k);\n prodL = prod.length;\n remL = rem.length; // Compare product and remainder.\n\n cmp = compare(prod, rem, prodL, remL); // product > remainder.\n\n if (cmp == 1) {\n k--; // Subtract divisor from product.\n\n subtract(prod, yL < prodL ? yz : yd, prodL);\n }\n } else {\n // cmp is -1.\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\n if (k == 0) cmp = k = 1;\n prod = yd.slice();\n }\n\n prodL = prod.length;\n if (prodL < remL) prod.unshift(0); // Subtract product from remainder.\n\n subtract(rem, prod, remL); // If product was < previous remainder.\n\n if (cmp == -1) {\n remL = rem.length; // Compare divisor and new remainder.\n\n cmp = compare(yd, rem, yL, remL); // If divisor < new remainder, subtract divisor from remainder.\n\n if (cmp < 1) {\n k++; // Subtract divisor from remainder.\n\n subtract(rem, yL < remL ? yz : yd, remL);\n }\n }\n\n remL = rem.length;\n } else if (cmp === 0) {\n k++;\n rem = [0];\n } // if cmp === 1, k will be 0\n // Add the next digit, k, to the result array.\n\n\n qd[i++] = k; // Update the remainder.\n\n if (cmp && rem[0]) {\n rem[remL++] = xd[xi] || 0;\n } else {\n rem = [xd[xi]];\n remL = 1;\n }\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\n } // Leading zero?\n\n\n if (!qd[0]) qd.shift();\n q.e = e;\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\n };\n }();\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\n\n\n function exp(x, sd) {\n var denominator,\n guard,\n pow,\n sum,\n t,\n wpr,\n i = 0,\n k = 0,\n Ctor = x.constructor,\n pr = Ctor.precision;\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x)); // exp(0) = 1\n\n if (!x.s) return new Ctor(ONE);\n\n if (sd == null) {\n external = false;\n wpr = pr;\n } else {\n wpr = sd;\n }\n\n t = new Ctor(0.03125);\n\n while (x.abs().gte(0.1)) {\n x = x.times(t); // x = x / 2^5\n\n k += 5;\n } // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\n\n\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\n wpr += guard;\n denominator = pow = sum = new Ctor(ONE);\n Ctor.precision = wpr;\n\n for (;;) {\n pow = round(pow.times(x), wpr);\n denominator = denominator.times(++i);\n t = sum.plus(divide(pow, denominator, wpr));\n\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\n while (k--) {\n sum = round(sum.times(sum), wpr);\n }\n\n Ctor.precision = pr;\n return sd == null ? (external = true, round(sum, pr)) : sum;\n }\n\n sum = t;\n }\n } // Calculate the base 10 exponent from the base 1e7 exponent.\n\n\n function getBase10Exponent(x) {\n var e = x.e * LOG_BASE,\n w = x.d[0]; // Add the number of digits of the first word of the digits array.\n\n for (; w >= 10; w /= 10) {\n e++;\n }\n\n return e;\n }\n\n function getLn10(Ctor, sd, pr) {\n if (sd > Ctor.LN10.sd()) {\n // Reset global state in case the exception is caught.\n external = true;\n if (pr) Ctor.precision = pr;\n throw Error(decimalError + 'LN10 precision limit exceeded');\n }\n\n return round(new Ctor(Ctor.LN10), sd);\n }\n\n function getZeroString(k) {\n var zs = '';\n\n for (; k--;) {\n zs += '0';\n }\n\n return zs;\n }\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\n\n\n function ln(y, sd) {\n var c,\n c0,\n denominator,\n e,\n numerator,\n sum,\n t,\n wpr,\n x2,\n n = 1,\n guard = 10,\n x = y,\n xd = x.d,\n Ctor = x.constructor,\n pr = Ctor.precision; // ln(-x) = NaN\n // ln(0) = -Infinity\n\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity')); // ln(1) = 0\n\n if (x.eq(ONE)) return new Ctor(0);\n\n if (sd == null) {\n external = false;\n wpr = pr;\n } else {\n wpr = sd;\n }\n\n if (x.eq(10)) {\n if (sd == null) external = true;\n return getLn10(Ctor, wpr);\n }\n\n wpr += guard;\n Ctor.precision = wpr;\n c = digitsToString(xd);\n c0 = c.charAt(0);\n e = getBase10Exponent(x);\n\n if (Math.abs(e) < 1.5e15) {\n // Argument reduction.\n // The series converges faster the closer the argument is to 1, so using\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\n // later be divided by this number, then separate out the power of 10 using\n // ln(a*10^b) = ln(a) + b*ln(10).\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\n // max n is 6 (gives 0.7 - 1.3)\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\n x = x.times(y);\n c = digitsToString(x.d);\n c0 = c.charAt(0);\n n++;\n }\n\n e = getBase10Exponent(x);\n\n if (c0 > 1) {\n x = new Ctor('0.' + c);\n e++;\n } else {\n x = new Ctor(c0 + '.' + c.slice(1));\n }\n } else {\n // The argument reduction method above may result in overflow if the argument y is a massive\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\n // function using ln(x*10^e) = ln(x) + e*ln(10).\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\n Ctor.precision = pr;\n return sd == null ? (external = true, round(x, pr)) : x;\n } // x is reduced to a value near 1.\n // Taylor series.\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\n // where x = (y - 1)/(y + 1) (|x| < 1)\n\n\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\n x2 = round(x.times(x), wpr);\n denominator = 3;\n\n for (;;) {\n numerator = round(numerator.times(x2), wpr);\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\n\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\n sum = sum.times(2); // Reverse the argument reduction.\n\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\n sum = divide(sum, new Ctor(n), wpr);\n Ctor.precision = pr;\n return sd == null ? (external = true, round(sum, pr)) : sum;\n }\n\n sum = t;\n denominator += 2;\n }\n }\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\n\n\n function parseDecimal(x, str) {\n var e, i, len; // Decimal point?\n\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); // Exponential form?\n\n if ((i = str.search(/e/i)) > 0) {\n // Determine exponent.\n if (e < 0) e = i;\n e += +str.slice(i + 1);\n str = str.substring(0, i);\n } else if (e < 0) {\n // Integer.\n e = str.length;\n } // Determine leading zeros.\n\n\n for (i = 0; str.charCodeAt(i) === 48;) {\n ++i;\n } // Determine trailing zeros.\n\n\n for (len = str.length; str.charCodeAt(len - 1) === 48;) {\n --len;\n }\n\n str = str.slice(i, len);\n\n if (str) {\n len -= i;\n e = e - i - 1;\n x.e = mathfloor(e / LOG_BASE);\n x.d = []; // Transform base\n // e is the base 10 exponent.\n // i is where to slice str to get the first word of the digits array.\n\n i = (e + 1) % LOG_BASE;\n if (e < 0) i += LOG_BASE;\n\n if (i < len) {\n if (i) x.d.push(+str.slice(0, i));\n\n for (len -= LOG_BASE; i < len;) {\n x.d.push(+str.slice(i, i += LOG_BASE));\n }\n\n str = str.slice(i);\n i = LOG_BASE - str.length;\n } else {\n i -= len;\n }\n\n for (; i--;) {\n str += '0';\n }\n\n x.d.push(+str);\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\n } else {\n // Zero.\n x.s = 0;\n x.e = 0;\n x.d = [0];\n }\n\n return x;\n }\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\n\n\n function round(x, sd, rm) {\n var i,\n j,\n k,\n n,\n rd,\n doRound,\n w,\n xdi,\n xd = x.d; // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\n // xdi: the index of w within xd.\n // n: the number of digits of w.\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\n // they had leading zeros)\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\n // Get the length of the first word of the digits array xd.\n\n for (n = 1, k = xd[0]; k >= 10; k /= 10) {\n n++;\n }\n\n i = sd - n; // Is the rounding digit in the first word of xd?\n\n if (i < 0) {\n i += LOG_BASE;\n j = sd;\n w = xd[xdi = 0];\n } else {\n xdi = Math.ceil((i + 1) / LOG_BASE);\n k = xd.length;\n if (xdi >= k) return x;\n w = k = xd[xdi]; // Get the number of digits of w.\n\n for (n = 1; k >= 10; k /= 10) {\n n++;\n } // Get the index of rd within w.\n\n\n i %= LOG_BASE; // Get the index of rd within w, adjusted for leading zeros.\n // The number of leading zeros of w is given by LOG_BASE - n.\n\n j = i - LOG_BASE + n;\n }\n\n if (rm !== void 0) {\n k = mathpow(10, n - j - 1); // Get the rounding digit at index j of w.\n\n rd = w / k % 10 | 0; // Are there any non-zero digits after the rounding digit?\n\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k; // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\n // 714.\n\n doRound = rm < 4 ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 && // Check whether the digit to the left of the rounding digit is odd.\n (i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));\n }\n\n if (sd < 1 || !xd[0]) {\n if (doRound) {\n k = getBase10Exponent(x);\n xd.length = 1; // Convert sd to decimal places.\n\n sd = sd - k - 1; // 1, 0.1, 0.01, 0.001, 0.0001 etc.\n\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\n x.e = mathfloor(-sd / LOG_BASE) || 0;\n } else {\n xd.length = 1; // Zero.\n\n xd[0] = x.e = x.s = 0;\n }\n\n return x;\n } // Remove excess digits.\n\n\n if (i == 0) {\n xd.length = xdi;\n k = 1;\n xdi--;\n } else {\n xd.length = xdi + 1;\n k = mathpow(10, LOG_BASE - i); // E.g. 56700 becomes 56000 if 7 is the rounding digit.\n // j > 0 means i > number of leading zeros of w.\n\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\n }\n\n if (doRound) {\n for (;;) {\n // Is the digit to be rounded up in the first word of xd?\n if (xdi == 0) {\n if ((xd[0] += k) == BASE) {\n xd[0] = 1;\n ++x.e;\n }\n\n break;\n } else {\n xd[xdi] += k;\n if (xd[xdi] != BASE) break;\n xd[xdi--] = 0;\n k = 1;\n }\n }\n } // Remove trailing zeros.\n\n\n for (i = xd.length; xd[--i] === 0;) {\n xd.pop();\n }\n\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\n throw Error(exponentOutOfRange + getBase10Exponent(x));\n }\n\n return x;\n }\n\n function subtract(x, y) {\n var d,\n e,\n i,\n j,\n k,\n len,\n xd,\n xe,\n xLTy,\n yd,\n Ctor = x.constructor,\n pr = Ctor.precision; // Return y negated if x is zero.\n // Return x if y is zero and x is non-zero.\n\n if (!x.s || !y.s) {\n if (y.s) y.s = -y.s;else y = new Ctor(x);\n return external ? round(y, pr) : y;\n }\n\n xd = x.d;\n yd = y.d; // x and y are non-zero numbers with the same sign.\n\n e = y.e;\n xe = x.e;\n xd = xd.slice();\n k = xe - e; // If exponents differ...\n\n if (k) {\n xLTy = k < 0;\n\n if (xLTy) {\n d = xd;\n k = -k;\n len = yd.length;\n } else {\n d = yd;\n e = xe;\n len = xd.length;\n } // Numbers with massively different exponents would result in a very high number of zeros\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\n\n\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\n\n if (k > i) {\n k = i;\n d.length = 1;\n } // Prepend zeros to equalise exponents.\n\n\n d.reverse();\n\n for (i = k; i--;) {\n d.push(0);\n }\n\n d.reverse(); // Base 1e7 exponents equal.\n } else {\n // Check digits to determine which is the bigger number.\n i = xd.length;\n len = yd.length;\n xLTy = i < len;\n if (xLTy) len = i;\n\n for (i = 0; i < len; i++) {\n if (xd[i] != yd[i]) {\n xLTy = xd[i] < yd[i];\n break;\n }\n }\n\n k = 0;\n }\n\n if (xLTy) {\n d = xd;\n xd = yd;\n yd = d;\n y.s = -y.s;\n }\n\n len = xd.length; // Append zeros to xd if shorter.\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\n\n for (i = yd.length - len; i > 0; --i) {\n xd[len++] = 0;\n } // Subtract yd from xd.\n\n\n for (i = yd.length; i > k;) {\n if (xd[--i] < yd[i]) {\n for (j = i; j && xd[--j] === 0;) {\n xd[j] = BASE - 1;\n }\n\n --xd[j];\n xd[i] += BASE;\n }\n\n xd[i] -= yd[i];\n } // Remove trailing zeros.\n\n\n for (; xd[--len] === 0;) {\n xd.pop();\n } // Remove leading zeros and adjust exponent accordingly.\n\n\n for (; xd[0] === 0; xd.shift()) {\n --e;\n } // Zero?\n\n\n if (!xd[0]) return new Ctor(0);\n y.d = xd;\n y.e = e; //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\n\n return external ? round(y, pr) : y;\n }\n\n function toString(x, isExp, sd) {\n var k,\n e = getBase10Exponent(x),\n str = digitsToString(x.d),\n len = str.length;\n\n if (isExp) {\n if (sd && (k = sd - len) > 0) {\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\n } else if (len > 1) {\n str = str.charAt(0) + '.' + str.slice(1);\n }\n\n str = str + (e < 0 ? 'e' : 'e+') + e;\n } else if (e < 0) {\n str = '0.' + getZeroString(-e - 1) + str;\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\n } else if (e >= len) {\n str += getZeroString(e + 1 - len);\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\n } else {\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\n\n if (sd && (k = sd - len) > 0) {\n if (e + 1 === len) str += '.';\n str += getZeroString(k);\n }\n }\n\n return x.s < 0 ? '-' + str : str;\n } // Does not strip trailing zeros.\n\n\n function truncate(arr, len) {\n if (arr.length > len) {\n arr.length = len;\n return true;\n }\n } // Decimal methods\n\n /*\r\n * clone\r\n * config/set\r\n */\n\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\n\n\n function clone(obj) {\n var i, p, ps;\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\n\n function Decimal(value) {\n var x = this; // Decimal called without new.\n\n if (!(x instanceof Decimal)) return new Decimal(value); // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\n // which points to Object.\n\n x.constructor = Decimal; // Duplicate.\n\n if (value instanceof Decimal) {\n x.s = value.s;\n x.e = value.e;\n x.d = (value = value.d) ? value.slice() : value;\n return;\n }\n\n if (typeof value === 'number') {\n // Reject Infinity/NaN.\n if (value * 0 !== 0) {\n throw Error(invalidArgument + value);\n }\n\n if (value > 0) {\n x.s = 1;\n } else if (value < 0) {\n value = -value;\n x.s = -1;\n } else {\n x.s = 0;\n x.e = 0;\n x.d = [0];\n return;\n } // Fast path for small integers.\n\n\n if (value === ~~value && value < 1e7) {\n x.e = 0;\n x.d = [value];\n return;\n }\n\n return parseDecimal(x, value.toString());\n } else if (typeof value !== 'string') {\n throw Error(invalidArgument + value);\n } // Minus sign?\n\n\n if (value.charCodeAt(0) === 45) {\n value = value.slice(1);\n x.s = -1;\n } else {\n x.s = 1;\n }\n\n if (isDecimal.test(value)) parseDecimal(x, value);else throw Error(invalidArgument + value);\n }\n\n Decimal.prototype = P;\n Decimal.ROUND_UP = 0;\n Decimal.ROUND_DOWN = 1;\n Decimal.ROUND_CEIL = 2;\n Decimal.ROUND_FLOOR = 3;\n Decimal.ROUND_HALF_UP = 4;\n Decimal.ROUND_HALF_DOWN = 5;\n Decimal.ROUND_HALF_EVEN = 6;\n Decimal.ROUND_HALF_CEIL = 7;\n Decimal.ROUND_HALF_FLOOR = 8;\n Decimal.clone = clone;\n Decimal.config = Decimal.set = config;\n if (obj === void 0) obj = {};\n\n if (obj) {\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\n\n for (i = 0; i < ps.length;) {\n if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\n }\n }\n\n Decimal.config(obj);\n return Decimal;\n }\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\n\n\n function config(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n throw Error(decimalError + 'Object expected');\n }\n\n var i,\n p,\n v,\n ps = ['precision', 1, MAX_DIGITS, 'rounding', 0, 8, 'toExpNeg', -1 / 0, 0, 'toExpPos', 0, 1 / 0];\n\n for (i = 0; i < ps.length; i += 3) {\n if ((v = obj[p = ps[i]]) !== void 0) {\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;else throw Error(invalidArgument + p + ': ' + v);\n }\n }\n\n if ((v = obj[p = 'LN10']) !== void 0) {\n if (v == Math.LN10) this[p] = new this(v);else throw Error(invalidArgument + p + ': ' + v);\n }\n\n return this;\n } // Create and configure initial Decimal constructor.\n\n\n Decimal = clone(Decimal);\n Decimal['default'] = Decimal.Decimal = Decimal; // Internal constant.\n\n ONE = new Decimal(1); // Export.\n // AMD.\n\n if (typeof define == 'function' && define.amd) {\n define(function () {\n return Decimal;\n }); // Node and other environments that support module.exports.\n } else if (typeof module != 'undefined' && module.exports) {\n module.exports = Decimal; // Browser.\n } else {\n if (!globalScope) {\n globalScope = typeof self != 'undefined' && self && self.self == self ? self : Function('return this')();\n }\n\n globalScope.Decimal = Decimal;\n }\n})(this);","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\nmodule.exports = isArray;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar freeGlobal = require('./_freeGlobal');\n/** Detect free variable `self`. */\n\n\nvar freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\nmodule.exports = root;","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function webpackUniversalModuleDefinition(root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof2(module)) === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define(\"Joi\", [], factory);else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object') exports[\"Joi\"] = factory();else root[\"Joi\"] = factory();\n})(this, function () {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // identity function for calling harmony imports with the correct context\n\n /******/\n\n __webpack_require__.i = function (value) {\n return value;\n };\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n /******/\n configurable: false,\n\n /******/\n enumerable: true,\n\n /******/\n get: getter\n /******/\n\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 29);\n /******/\n }(\n /************************************************************************/\n\n /******/\n [\n /* 0 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer, process) {\n // Load modules\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var Crypto = __webpack_require__(14);\n\n var Path = __webpack_require__(34);\n\n var Util = __webpack_require__(38);\n\n var Escape = __webpack_require__(15); // Declare internals\n\n\n var internals = {}; // Clone object or array\n\n exports.clone = function (obj, seen) {\n if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' || obj === null) {\n return obj;\n }\n\n seen = seen || new Map();\n var lookup = seen.get(obj);\n\n if (lookup) {\n return lookup;\n }\n\n var newObj = void 0;\n var cloneDeep = false;\n\n if (!Array.isArray(obj)) {\n if (Buffer.isBuffer(obj)) {\n newObj = new Buffer(obj);\n } else if (obj instanceof Date) {\n newObj = new Date(obj.getTime());\n } else if (obj instanceof RegExp) {\n newObj = new RegExp(obj);\n } else {\n var proto = Object.getPrototypeOf(obj);\n\n if (proto && proto.isImmutable) {\n newObj = obj;\n } else {\n newObj = Object.create(proto);\n cloneDeep = true;\n }\n }\n } else {\n newObj = [];\n cloneDeep = true;\n }\n\n seen.set(obj, newObj);\n\n if (cloneDeep) {\n var keys = Object.getOwnPropertyNames(obj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var descriptor = Object.getOwnPropertyDescriptor(obj, key);\n\n if (descriptor && (descriptor.get || descriptor.set)) {\n Object.defineProperty(newObj, key, descriptor);\n } else {\n newObj[key] = exports.clone(obj[key], seen);\n }\n }\n }\n\n return newObj;\n }; // Merge all the properties of source into target, source wins in conflict, and by default null and undefined from source are applied\n\n /*eslint-disable */\n\n\n exports.merge = function (target, source, isNullOverride\n /* = true */\n , isMergeArrays\n /* = true */\n ) {\n /*eslint-enable */\n exports.assert(target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object', 'Invalid target value: must be an object');\n exports.assert(source === null || source === undefined || (typeof source === 'undefined' ? 'undefined' : _typeof(source)) === 'object', 'Invalid source value: must be null, undefined, or an object');\n\n if (!source) {\n return target;\n }\n\n if (Array.isArray(source)) {\n exports.assert(Array.isArray(target), 'Cannot merge array onto an object');\n\n if (isMergeArrays === false) {\n // isMergeArrays defaults to true\n target.length = 0; // Must not change target assignment\n }\n\n for (var i = 0; i < source.length; ++i) {\n target.push(exports.clone(source[i]));\n }\n\n return target;\n }\n\n var keys = Object.keys(source);\n\n for (var _i = 0; _i < keys.length; ++_i) {\n var key = keys[_i];\n var value = source[key];\n\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n if (!target[key] || _typeof(target[key]) !== 'object' || Array.isArray(target[key]) !== Array.isArray(value) || value instanceof Date || Buffer.isBuffer(value) || value instanceof RegExp) {\n target[key] = exports.clone(value);\n } else {\n exports.merge(target[key], value, isNullOverride, isMergeArrays);\n }\n } else {\n if (value !== null && value !== undefined) {\n // Explicit to preserve empty strings\n target[key] = value;\n } else if (isNullOverride !== false) {\n // Defaults to true\n target[key] = value;\n }\n }\n }\n\n return target;\n }; // Apply options to a copy of the defaults\n\n\n exports.applyToDefaults = function (defaults, options, isNullOverride) {\n exports.assert(defaults && (typeof defaults === 'undefined' ? 'undefined' : _typeof(defaults)) === 'object', 'Invalid defaults value: must be an object');\n exports.assert(!options || options === true || (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options value: must be true, falsy or an object');\n\n if (!options) {\n // If no options, return null\n return null;\n }\n\n var copy = exports.clone(defaults);\n\n if (options === true) {\n // If options is set to true, use defaults\n return copy;\n }\n\n return exports.merge(copy, options, isNullOverride === true, false);\n }; // Clone an object except for the listed keys which are shallow copied\n\n\n exports.cloneWithShallow = function (source, keys) {\n if (!source || (typeof source === 'undefined' ? 'undefined' : _typeof(source)) !== 'object') {\n return source;\n }\n\n var storage = internals.store(source, keys); // Move shallow copy items to storage\n\n var copy = exports.clone(source); // Deep copy the rest\n\n internals.restore(copy, source, storage); // Shallow copy the stored items and restore\n\n return copy;\n };\n\n internals.store = function (source, keys) {\n var storage = {};\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var value = exports.reach(source, key);\n\n if (value !== undefined) {\n storage[key] = value;\n internals.reachSet(source, key, undefined);\n }\n }\n\n return storage;\n };\n\n internals.restore = function (copy, source, storage) {\n var keys = Object.keys(storage);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n internals.reachSet(copy, key, storage[key]);\n internals.reachSet(source, key, storage[key]);\n }\n };\n\n internals.reachSet = function (obj, key, value) {\n var path = key.split('.');\n var ref = obj;\n\n for (var i = 0; i < path.length; ++i) {\n var segment = path[i];\n\n if (i + 1 === path.length) {\n ref[segment] = value;\n }\n\n ref = ref[segment];\n }\n }; // Apply options to defaults except for the listed keys which are shallow copied from option without merging\n\n\n exports.applyToDefaultsWithShallow = function (defaults, options, keys) {\n exports.assert(defaults && (typeof defaults === 'undefined' ? 'undefined' : _typeof(defaults)) === 'object', 'Invalid defaults value: must be an object');\n exports.assert(!options || options === true || (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options value: must be true, falsy or an object');\n exports.assert(keys && Array.isArray(keys), 'Invalid keys');\n\n if (!options) {\n // If no options, return null\n return null;\n }\n\n var copy = exports.cloneWithShallow(defaults, keys);\n\n if (options === true) {\n // If options is set to true, use defaults\n return copy;\n }\n\n var storage = internals.store(options, keys); // Move shallow copy items to storage\n\n exports.merge(copy, options, false, false); // Deep copy the rest\n\n internals.restore(copy, options, storage); // Shallow copy the stored items and restore\n\n return copy;\n }; // Deep object or array comparison\n\n\n exports.deepEqual = function (obj, ref, options, seen) {\n options = options || {\n prototype: true\n };\n var type = typeof obj === 'undefined' ? 'undefined' : _typeof(obj);\n\n if (type !== (typeof ref === 'undefined' ? 'undefined' : _typeof(ref))) {\n return false;\n }\n\n if (type !== 'object' || obj === null || ref === null) {\n if (obj === ref) {\n // Copied from Deep-eql, copyright(c) 2013 Jake Luer, jake@alogicalparadox.com, MIT Licensed, https://github.com/chaijs/deep-eql\n return obj !== 0 || 1 / obj === 1 / ref; // -0 / +0\n }\n\n return obj !== obj && ref !== ref; // NaN\n }\n\n seen = seen || [];\n\n if (seen.indexOf(obj) !== -1) {\n return true; // If previous comparison failed, it would have stopped execution\n }\n\n seen.push(obj);\n\n if (Array.isArray(obj)) {\n if (!Array.isArray(ref)) {\n return false;\n }\n\n if (!options.part && obj.length !== ref.length) {\n return false;\n }\n\n for (var i = 0; i < obj.length; ++i) {\n if (options.part) {\n var found = false;\n\n for (var j = 0; j < ref.length; ++j) {\n if (exports.deepEqual(obj[i], ref[j], options)) {\n found = true;\n break;\n }\n }\n\n return found;\n }\n\n if (!exports.deepEqual(obj[i], ref[i], options)) {\n return false;\n }\n }\n\n return true;\n }\n\n if (Buffer.isBuffer(obj)) {\n if (!Buffer.isBuffer(ref)) {\n return false;\n }\n\n if (obj.length !== ref.length) {\n return false;\n }\n\n for (var _i2 = 0; _i2 < obj.length; ++_i2) {\n if (obj[_i2] !== ref[_i2]) {\n return false;\n }\n }\n\n return true;\n }\n\n if (obj instanceof Date) {\n return ref instanceof Date && obj.getTime() === ref.getTime();\n }\n\n if (obj instanceof RegExp) {\n return ref instanceof RegExp && obj.toString() === ref.toString();\n }\n\n if (options.prototype) {\n if (Object.getPrototypeOf(obj) !== Object.getPrototypeOf(ref)) {\n return false;\n }\n }\n\n var keys = Object.getOwnPropertyNames(obj);\n\n if (!options.part && keys.length !== Object.getOwnPropertyNames(ref).length) {\n return false;\n }\n\n for (var _i3 = 0; _i3 < keys.length; ++_i3) {\n var key = keys[_i3];\n var descriptor = Object.getOwnPropertyDescriptor(obj, key);\n\n if (descriptor.get) {\n if (!exports.deepEqual(descriptor, Object.getOwnPropertyDescriptor(ref, key), options, seen)) {\n return false;\n }\n } else if (!exports.deepEqual(obj[key], ref[key], options, seen)) {\n return false;\n }\n }\n\n return true;\n }; // Remove duplicate items from array\n\n\n exports.unique = function (array, key) {\n var result = void 0;\n\n if (key) {\n result = [];\n var index = new Set();\n array.forEach(function (item) {\n var identifier = item[key];\n\n if (!index.has(identifier)) {\n index.add(identifier);\n result.push(item);\n }\n });\n } else {\n result = Array.from(new Set(array));\n }\n\n return result;\n }; // Convert array into object\n\n\n exports.mapToObject = function (array, key) {\n if (!array) {\n return null;\n }\n\n var obj = {};\n\n for (var i = 0; i < array.length; ++i) {\n if (key) {\n if (array[i][key]) {\n obj[array[i][key]] = true;\n }\n } else {\n obj[array[i]] = true;\n }\n }\n\n return obj;\n }; // Find the common unique items in two arrays\n\n\n exports.intersect = function (array1, array2, justFirst) {\n if (!array1 || !array2) {\n return [];\n }\n\n var common = [];\n var hash = Array.isArray(array1) ? exports.mapToObject(array1) : array1;\n var found = {};\n\n for (var i = 0; i < array2.length; ++i) {\n if (hash[array2[i]] && !found[array2[i]]) {\n if (justFirst) {\n return array2[i];\n }\n\n common.push(array2[i]);\n found[array2[i]] = true;\n }\n }\n\n return justFirst ? null : common;\n }; // Test if the reference contains the values\n\n\n exports.contain = function (ref, values, options) {\n /*\n string -> string(s)\n array -> item(s)\n object -> key(s)\n object -> object (key:value)\n */\n var valuePairs = null;\n\n if ((typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object' && (typeof values === 'undefined' ? 'undefined' : _typeof(values)) === 'object' && !Array.isArray(ref) && !Array.isArray(values)) {\n valuePairs = values;\n values = Object.keys(values);\n } else {\n values = [].concat(values);\n }\n\n options = options || {}; // deep, once, only, part\n\n exports.assert(typeof ref === 'string' || (typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object', 'Reference must be string or an object');\n exports.assert(values.length, 'Values array cannot be empty');\n var compare = void 0;\n var compareFlags = void 0;\n\n if (options.deep) {\n compare = exports.deepEqual;\n var hasOnly = options.hasOwnProperty('only');\n var hasPart = options.hasOwnProperty('part');\n compareFlags = {\n prototype: hasOnly ? options.only : hasPart ? !options.part : false,\n part: hasOnly ? !options.only : hasPart ? options.part : true\n };\n } else {\n compare = function compare(a, b) {\n return a === b;\n };\n }\n\n var misses = false;\n var matches = new Array(values.length);\n\n for (var i = 0; i < matches.length; ++i) {\n matches[i] = 0;\n }\n\n if (typeof ref === 'string') {\n var pattern = '(';\n\n for (var _i4 = 0; _i4 < values.length; ++_i4) {\n var value = values[_i4];\n exports.assert(typeof value === 'string', 'Cannot compare string reference to non-string value');\n pattern += (_i4 ? '|' : '') + exports.escapeRegex(value);\n }\n\n var regex = new RegExp(pattern + ')', 'g');\n var leftovers = ref.replace(regex, function ($0, $1) {\n var index = values.indexOf($1);\n ++matches[index];\n return ''; // Remove from string\n });\n misses = !!leftovers;\n } else if (Array.isArray(ref)) {\n for (var _i5 = 0; _i5 < ref.length; ++_i5) {\n var matched = false;\n\n for (var j = 0; j < values.length && matched === false; ++j) {\n matched = compare(values[j], ref[_i5], compareFlags) && j;\n }\n\n if (matched !== false) {\n ++matches[matched];\n } else {\n misses = true;\n }\n }\n } else {\n var keys = Object.getOwnPropertyNames(ref);\n\n for (var _i6 = 0; _i6 < keys.length; ++_i6) {\n var key = keys[_i6];\n var pos = values.indexOf(key);\n\n if (pos !== -1) {\n if (valuePairs && !compare(valuePairs[key], ref[key], compareFlags)) {\n return false;\n }\n\n ++matches[pos];\n } else {\n misses = true;\n }\n }\n }\n\n var result = false;\n\n for (var _i7 = 0; _i7 < matches.length; ++_i7) {\n result = result || !!matches[_i7];\n\n if (options.once && matches[_i7] > 1 || !options.part && !matches[_i7]) {\n return false;\n }\n }\n\n if (options.only && misses) {\n return false;\n }\n\n return result;\n }; // Flatten array\n\n\n exports.flatten = function (array, target) {\n var result = target || [];\n\n for (var i = 0; i < array.length; ++i) {\n if (Array.isArray(array[i])) {\n exports.flatten(array[i], result);\n } else {\n result.push(array[i]);\n }\n }\n\n return result;\n }; // Convert an object key chain string ('a.b.c') to reference (object[a][b][c])\n\n\n exports.reach = function (obj, chain, options) {\n if (chain === false || chain === null || typeof chain === 'undefined') {\n return obj;\n }\n\n options = options || {};\n\n if (typeof options === 'string') {\n options = {\n separator: options\n };\n }\n\n var path = chain.split(options.separator || '.');\n var ref = obj;\n\n for (var i = 0; i < path.length; ++i) {\n var key = path[i];\n\n if (key[0] === '-' && Array.isArray(ref)) {\n key = key.slice(1, key.length);\n key = ref.length - key;\n }\n\n if (!ref || !(((typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object' || typeof ref === 'function') && key in ref) || (typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) !== 'object' && options.functions === false) {\n // Only object and function can have properties\n exports.assert(!options.strict || i + 1 === path.length, 'Missing segment', key, 'in reach path ', chain);\n exports.assert((typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object' || options.functions === true || typeof ref !== 'function', 'Invalid segment', key, 'in reach path ', chain);\n ref = options[\"default\"];\n break;\n }\n\n ref = ref[key];\n }\n\n return ref;\n };\n\n exports.reachTemplate = function (obj, template, options) {\n return template.replace(/{([^}]+)}/g, function ($0, chain) {\n var value = exports.reach(obj, chain, options);\n return value === undefined || value === null ? '' : value;\n });\n };\n\n exports.formatStack = function (stack) {\n var trace = [];\n\n for (var i = 0; i < stack.length; ++i) {\n var item = stack[i];\n trace.push([item.getFileName(), item.getLineNumber(), item.getColumnNumber(), item.getFunctionName(), item.isConstructor()]);\n }\n\n return trace;\n };\n\n exports.formatTrace = function (trace) {\n var display = [];\n\n for (var i = 0; i < trace.length; ++i) {\n var row = trace[i];\n display.push((row[4] ? 'new ' : '') + row[3] + ' (' + row[0] + ':' + row[1] + ':' + row[2] + ')');\n }\n\n return display;\n };\n\n exports.callStack = function (slice) {\n // http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi\n var v8 = Error.prepareStackTrace;\n\n Error.prepareStackTrace = function (_, stack) {\n return stack;\n };\n\n var capture = {};\n Error.captureStackTrace(capture, this);\n var stack = capture.stack;\n Error.prepareStackTrace = v8;\n var trace = exports.formatStack(stack);\n return trace.slice(1 + slice);\n };\n\n exports.displayStack = function (slice) {\n var trace = exports.callStack(slice === undefined ? 1 : slice + 1);\n return exports.formatTrace(trace);\n };\n\n exports.abortThrow = false;\n\n exports.abort = function (message, hideStack) {\n if (process.env.NODE_ENV === 'test' || exports.abortThrow === true) {\n throw new Error(message || 'Unknown error');\n }\n\n var stack = '';\n\n if (!hideStack) {\n stack = exports.displayStack(1).join('\\n\\t');\n }\n\n console.log('ABORT: ' + message + '\\n\\t' + stack);\n process.exit(1);\n };\n\n exports.assert = function (condition) {\n if (condition) {\n return;\n }\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 if (args.length === 1 && args[0] instanceof Error) {\n throw args[0];\n }\n\n var msgs = args.filter(function (arg) {\n return arg !== '';\n }).map(function (arg) {\n return typeof arg === 'string' ? arg : arg instanceof Error ? arg.message : exports.stringify(arg);\n });\n throw new Error(msgs.join(' ') || 'Unknown error');\n };\n\n exports.Bench = function () {\n this.ts = 0;\n this.reset();\n };\n\n exports.Bench.prototype.reset = function () {\n this.ts = exports.Bench.now();\n };\n\n exports.Bench.prototype.elapsed = function () {\n return exports.Bench.now() - this.ts;\n };\n\n exports.Bench.now = function () {\n var ts = process.hrtime();\n return ts[0] * 1e3 + ts[1] / 1e6;\n }; // Escape string for Regex construction\n\n\n exports.escapeRegex = function (string) {\n // Escape ^$.*+-?=!:|\\/()[]{},\n return string.replace(/[\\^\\$\\.\\*\\+\\-\\?\\=\\!\\:\\|\\\\\\/\\(\\)\\[\\]\\{\\}\\,]/g, '\\\\$&');\n }; // Base64url (RFC 4648) encode\n\n\n exports.base64urlEncode = function (value, encoding) {\n exports.assert(typeof value === 'string' || Buffer.isBuffer(value), 'value must be string or buffer');\n var buf = Buffer.isBuffer(value) ? value : new Buffer(value, encoding || 'binary');\n return buf.toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_').replace(/\\=/g, '');\n }; // Base64url (RFC 4648) decode\n\n\n exports.base64urlDecode = function (value, encoding) {\n if (typeof value !== 'string') {\n throw new Error('Value not a string');\n }\n\n if (!/^[\\w\\-]*$/.test(value)) {\n throw new Error('Invalid character');\n }\n\n var buf = new Buffer(value, 'base64');\n return encoding === 'buffer' ? buf : buf.toString(encoding || 'binary');\n }; // Escape attribute value for use in HTTP header\n\n\n exports.escapeHeaderAttribute = function (attribute) {\n // Allowed value characters: !#$%&'()*+,-./:;<=>?@[]^_`{|}~ and space, a-z, A-Z, 0-9, \\, \"\n exports.assert(/^[ \\w\\!#\\$%&'\\(\\)\\*\\+,\\-\\.\\/\\:;<\\=>\\?@\\[\\]\\^`\\{\\|\\}~\\\"\\\\]*$/.test(attribute), 'Bad attribute value (' + attribute + ')');\n return attribute.replace(/\\\\/g, '\\\\\\\\').replace(/\\\"/g, '\\\\\"'); // Escape quotes and slash\n };\n\n exports.escapeHtml = function (string) {\n return Escape.escapeHtml(string);\n };\n\n exports.escapeJavaScript = function (string) {\n return Escape.escapeJavaScript(string);\n };\n\n exports.escapeJson = function (string) {\n return Escape.escapeJson(string);\n };\n\n exports.once = function (method) {\n if (method._hoekOnce) {\n return method;\n }\n\n var once = false;\n\n var wrapped = function wrapped() {\n if (!once) {\n once = true;\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n method.apply(null, args);\n }\n };\n\n wrapped._hoekOnce = true;\n return wrapped;\n };\n\n exports.isInteger = Number.isSafeInteger;\n\n exports.ignore = function () {};\n\n exports.inherits = Util.inherits;\n exports.format = Util.format;\n\n exports.transform = function (source, transform, options) {\n exports.assert(source === null || source === undefined || (typeof source === 'undefined' ? 'undefined' : _typeof(source)) === 'object' || Array.isArray(source), 'Invalid source object: must be null, undefined, an object, or an array');\n var separator = (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object' && options !== null ? options.separator || '.' : '.';\n\n if (Array.isArray(source)) {\n var results = [];\n\n for (var i = 0; i < source.length; ++i) {\n results.push(exports.transform(source[i], transform, options));\n }\n\n return results;\n }\n\n var result = {};\n var keys = Object.keys(transform);\n\n for (var _i8 = 0; _i8 < keys.length; ++_i8) {\n var key = keys[_i8];\n var path = key.split(separator);\n var sourcePath = transform[key];\n exports.assert(typeof sourcePath === 'string', 'All mappings must be \".\" delineated strings');\n var segment = void 0;\n var res = result;\n\n while (path.length > 1) {\n segment = path.shift();\n\n if (!res[segment]) {\n res[segment] = {};\n }\n\n res = res[segment];\n }\n\n segment = path.shift();\n res[segment] = exports.reach(source, sourcePath, options);\n }\n\n return result;\n };\n\n exports.uniqueFilename = function (path, extension) {\n if (extension) {\n extension = extension[0] !== '.' ? '.' + extension : extension;\n } else {\n extension = '';\n }\n\n path = Path.resolve(path);\n var name = [Date.now(), process.pid, Crypto.randomBytes(8).toString('hex')].join('-') + extension;\n return Path.join(path, name);\n };\n\n exports.stringify = function () {\n try {\n for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return JSON.stringify.apply(null, args);\n } catch (err) {\n return '[Cannot display object: ' + err.message + ']';\n }\n };\n\n exports.shallow = function (source) {\n var target = {};\n var keys = Object.keys(source);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n target[key] = source[key];\n }\n\n return target;\n };\n\n exports.wait = function (timeout) {\n return new Promise(function (resolve) {\n return setTimeout(resolve, timeout);\n });\n };\n\n exports.block = function () {\n return new Promise(exports.ignore);\n };\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(3).Buffer, __webpack_require__(5));\n /***/\n },\n /* 1 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n exports.create = function (key, options) {\n Hoek.assert(typeof key === 'string', 'Invalid reference key:', key);\n var settings = Hoek.clone(options); // options can be reused and modified\n\n var ref = function ref(value, validationOptions) {\n return Hoek.reach(ref.isContext ? validationOptions.context : value, ref.key, settings);\n };\n\n ref.isContext = key[0] === (settings && settings.contextPrefix || '$');\n ref.key = ref.isContext ? key.slice(1) : key;\n ref.path = ref.key.split(settings && settings.separator || '.');\n ref.depth = ref.path.length;\n ref.root = ref.path[0];\n ref.isJoi = true;\n\n ref.toString = function () {\n return (ref.isContext ? 'context:' : 'ref:') + ref.key;\n };\n\n return ref;\n };\n\n exports.isRef = function (ref) {\n return typeof ref === 'function' && ref.isJoi;\n };\n\n exports.push = function (array, ref) {\n if (exports.isRef(ref) && !ref.isContext) {\n array.push(ref.root);\n }\n };\n /***/\n\n },\n /* 2 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _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 var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var _createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var Hoek = __webpack_require__(0);\n\n var Ref = __webpack_require__(1);\n\n var Errors = __webpack_require__(6);\n\n var Alternatives = null; // Delay-loaded to prevent circular dependencies\n\n var Cast = null; // Declare internals\n\n var internals = {\n Set: __webpack_require__(9)\n };\n internals.defaults = {\n abortEarly: true,\n convert: true,\n allowUnknown: false,\n skipFunctions: false,\n stripUnknown: false,\n language: {},\n presence: 'optional',\n strip: false,\n noDefaults: false,\n escapeHtml: false // context: null\n\n };\n\n module.exports = internals.Any = function () {\n function _class() {\n _classCallCheck(this, _class);\n\n Cast = Cast || __webpack_require__(4);\n this.isJoi = true;\n this._type = 'any';\n this._settings = null;\n this._valids = new internals.Set();\n this._invalids = new internals.Set();\n this._tests = [];\n this._refs = [];\n this._flags = {\n /*\n presence: 'optional', // optional, required, forbidden, ignore\n allowOnly: false,\n allowUnknown: undefined,\n default: undefined,\n forbidden: false,\n encoding: undefined,\n insensitive: false,\n trim: false,\n normalize: undefined, // NFC, NFD, NFKC, NFKD\n case: undefined, // upper, lower\n empty: undefined,\n func: false,\n raw: false\n */\n };\n this._description = null;\n this._unit = null;\n this._notes = [];\n this._tags = [];\n this._examples = [];\n this._meta = [];\n this._inner = {}; // Hash of arrays of immutable objects\n }\n\n _class.prototype.createError = function createError(type, context, state, options) {\n var flags = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this._flags;\n return Errors.create(type, context, state, options, flags);\n };\n\n _class.prototype.createOverrideError = function createOverrideError(type, context, state, options, message, template) {\n return Errors.create(type, context, state, options, this._flags, message, template);\n };\n\n _class.prototype.checkOptions = function checkOptions(options) {\n var Schemas = __webpack_require__(18);\n\n var result = Schemas.options.validate(options);\n\n if (result.error) {\n throw new Error(result.error.details[0].message);\n }\n };\n\n _class.prototype.clone = function clone() {\n var obj = Object.create(Object.getPrototypeOf(this));\n obj.isJoi = true;\n obj._currentJoi = this._currentJoi;\n obj._type = this._type;\n obj._settings = internals.concatSettings(this._settings);\n obj._baseType = this._baseType;\n obj._valids = Hoek.clone(this._valids);\n obj._invalids = Hoek.clone(this._invalids);\n obj._tests = this._tests.slice();\n obj._refs = this._refs.slice();\n obj._flags = Hoek.clone(this._flags);\n obj._description = this._description;\n obj._unit = this._unit;\n obj._notes = this._notes.slice();\n obj._tags = this._tags.slice();\n obj._examples = this._examples.slice();\n obj._meta = this._meta.slice();\n obj._inner = {};\n var inners = Object.keys(this._inner);\n\n for (var i = 0; i < inners.length; ++i) {\n var key = inners[i];\n obj._inner[key] = this._inner[key] ? this._inner[key].slice() : null;\n }\n\n return obj;\n };\n\n _class.prototype.concat = function concat(schema) {\n Hoek.assert(schema instanceof internals.Any, 'Invalid schema object');\n Hoek.assert(this._type === 'any' || schema._type === 'any' || schema._type === this._type, 'Cannot merge type', this._type, 'with another type:', schema._type);\n var obj = this.clone();\n\n if (this._type === 'any' && schema._type !== 'any') {\n // Reset values as if we were \"this\"\n var tmpObj = schema.clone();\n var keysToRestore = ['_settings', '_valids', '_invalids', '_tests', '_refs', '_flags', '_description', '_unit', '_notes', '_tags', '_examples', '_meta', '_inner'];\n\n for (var i = 0; i < keysToRestore.length; ++i) {\n tmpObj[keysToRestore[i]] = obj[keysToRestore[i]];\n }\n\n obj = tmpObj;\n }\n\n obj._settings = obj._settings ? internals.concatSettings(obj._settings, schema._settings) : schema._settings;\n\n obj._valids.merge(schema._valids, schema._invalids);\n\n obj._invalids.merge(schema._invalids, schema._valids);\n\n obj._tests = obj._tests.concat(schema._tests);\n obj._refs = obj._refs.concat(schema._refs);\n Hoek.merge(obj._flags, schema._flags);\n obj._description = schema._description || obj._description;\n obj._unit = schema._unit || obj._unit;\n obj._notes = obj._notes.concat(schema._notes);\n obj._tags = obj._tags.concat(schema._tags);\n obj._examples = obj._examples.concat(schema._examples);\n obj._meta = obj._meta.concat(schema._meta);\n var inners = Object.keys(schema._inner);\n var isObject = obj._type === 'object';\n\n for (var _i = 0; _i < inners.length; ++_i) {\n var key = inners[_i];\n var source = schema._inner[key];\n\n if (source) {\n var target = obj._inner[key];\n\n if (target) {\n if (isObject && key === 'children') {\n var keys = {};\n\n for (var j = 0; j < target.length; ++j) {\n keys[target[j].key] = j;\n }\n\n for (var _j = 0; _j < source.length; ++_j) {\n var sourceKey = source[_j].key;\n\n if (keys[sourceKey] >= 0) {\n target[keys[sourceKey]] = {\n key: sourceKey,\n schema: target[keys[sourceKey]].schema.concat(source[_j].schema)\n };\n } else {\n target.push(source[_j]);\n }\n }\n } else {\n obj._inner[key] = obj._inner[key].concat(source);\n }\n } else {\n obj._inner[key] = source.slice();\n }\n }\n }\n\n return obj;\n };\n\n _class.prototype._test = function _test(name, arg, func, options) {\n var obj = this.clone();\n\n obj._tests.push({\n func: func,\n name: name,\n arg: arg,\n options: options\n });\n\n return obj;\n };\n\n _class.prototype.options = function options(_options) {\n Hoek.assert(!_options.context, 'Cannot override context');\n this.checkOptions(_options);\n var obj = this.clone();\n obj._settings = internals.concatSettings(obj._settings, _options);\n return obj;\n };\n\n _class.prototype.strict = function strict(isStrict) {\n var obj = this.clone();\n obj._settings = obj._settings || {};\n obj._settings.convert = isStrict === undefined ? false : !isStrict;\n return obj;\n };\n\n _class.prototype.raw = function raw(isRaw) {\n var value = isRaw === undefined ? true : isRaw;\n\n if (this._flags.raw === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.raw = value;\n return obj;\n };\n\n _class.prototype.error = function error(err) {\n Hoek.assert(err && (err instanceof Error || typeof err === 'function'), 'Must provide a valid Error object or a function');\n var obj = this.clone();\n obj._flags.error = err;\n return obj;\n };\n\n _class.prototype.allow = function allow() {\n for (var _len = arguments.length, values = Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call allow/valid/invalid with undefined');\n\n obj._invalids.remove(value);\n\n obj._valids.add(value, obj._refs);\n }\n\n return obj;\n };\n\n _class.prototype.valid = function valid() {\n var obj = this.allow.apply(this, arguments);\n obj._flags.allowOnly = true;\n return obj;\n };\n\n _class.prototype.invalid = function invalid() {\n for (var _len2 = arguments.length, values = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n values[_key2] = arguments[_key2];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call allow/valid/invalid with undefined');\n\n obj._valids.remove(value);\n\n obj._invalids.add(value, obj._refs);\n }\n\n return obj;\n };\n\n _class.prototype.required = function required() {\n if (this._flags.presence === 'required') {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.presence = 'required';\n return obj;\n };\n\n _class.prototype.optional = function optional() {\n if (this._flags.presence === 'optional') {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.presence = 'optional';\n return obj;\n };\n\n _class.prototype.forbidden = function forbidden() {\n if (this._flags.presence === 'forbidden') {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.presence = 'forbidden';\n return obj;\n };\n\n _class.prototype.strip = function strip() {\n if (this._flags.strip) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.strip = true;\n return obj;\n };\n\n _class.prototype.applyFunctionToChildren = function applyFunctionToChildren(children, fn, args, root) {\n children = [].concat(children);\n\n if (children.length !== 1 || children[0] !== '') {\n root = root ? root + '.' : '';\n var extraChildren = (children[0] === '' ? children.slice(1) : children).map(function (child) {\n return root + child;\n });\n throw new Error('unknown key(s) ' + extraChildren.join(', '));\n }\n\n return this[fn].apply(this, args);\n };\n\n _class.prototype[\"default\"] = function _default(value, description) {\n if (typeof value === 'function' && !Ref.isRef(value)) {\n if (!value.description && description) {\n value.description = description;\n }\n\n if (!this._flags.func) {\n Hoek.assert(typeof value.description === 'string' && value.description.length > 0, 'description must be provided when default value is a function');\n }\n }\n\n var obj = this.clone();\n obj._flags[\"default\"] = value;\n Ref.push(obj._refs, value);\n return obj;\n };\n\n _class.prototype.empty = function empty(schema) {\n var obj = this.clone();\n\n if (schema === undefined) {\n delete obj._flags.empty;\n } else {\n obj._flags.empty = Cast.schema(this._currentJoi, schema);\n }\n\n return obj;\n };\n\n _class.prototype.when = function when(condition, options) {\n Hoek.assert(options && (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options');\n Hoek.assert(options.then !== undefined || options.otherwise !== undefined, 'options must have at least one of \"then\" or \"otherwise\"');\n var then = options.hasOwnProperty('then') ? this.concat(Cast.schema(this._currentJoi, options.then)) : undefined;\n var otherwise = options.hasOwnProperty('otherwise') ? this.concat(Cast.schema(this._currentJoi, options.otherwise)) : undefined;\n Alternatives = Alternatives || __webpack_require__(10);\n var alternativeOptions = {\n then: then,\n otherwise: otherwise\n };\n\n if (Object.prototype.hasOwnProperty.call(options, 'is')) {\n alternativeOptions.is = options.is;\n }\n\n var obj = Alternatives.when(condition, alternativeOptions);\n obj._flags.presence = 'ignore';\n obj._baseType = this;\n return obj;\n };\n\n _class.prototype.description = function description(desc) {\n Hoek.assert(desc && typeof desc === 'string', 'Description must be a non-empty string');\n var obj = this.clone();\n obj._description = desc;\n return obj;\n };\n\n _class.prototype.notes = function notes(_notes) {\n Hoek.assert(_notes && (typeof _notes === 'string' || Array.isArray(_notes)), 'Notes must be a non-empty string or array');\n var obj = this.clone();\n obj._notes = obj._notes.concat(_notes);\n return obj;\n };\n\n _class.prototype.tags = function tags(_tags) {\n Hoek.assert(_tags && (typeof _tags === 'string' || Array.isArray(_tags)), 'Tags must be a non-empty string or array');\n var obj = this.clone();\n obj._tags = obj._tags.concat(_tags);\n return obj;\n };\n\n _class.prototype.meta = function meta(_meta) {\n Hoek.assert(_meta !== undefined, 'Meta cannot be undefined');\n var obj = this.clone();\n obj._meta = obj._meta.concat(_meta);\n return obj;\n };\n\n _class.prototype.example = function example() {\n Hoek.assert(arguments.length === 1, 'Missing example');\n var value = arguments.length <= 0 ? undefined : arguments[0];\n\n var result = this._validate(value, null, internals.defaults);\n\n Hoek.assert(!result.errors, 'Bad example:', result.errors && Errors.process(result.errors, value));\n var obj = this.clone();\n\n obj._examples.push(value);\n\n return obj;\n };\n\n _class.prototype.unit = function unit(name) {\n Hoek.assert(name && typeof name === 'string', 'Unit name must be a non-empty string');\n var obj = this.clone();\n obj._unit = name;\n return obj;\n };\n\n _class.prototype._prepareEmptyValue = function _prepareEmptyValue(value) {\n if (typeof value === 'string' && this._flags.trim) {\n return value.trim();\n }\n\n return value;\n };\n\n _class.prototype._validate = function _validate(value, state, options, reference) {\n var _this = this;\n\n var originalValue = value; // Setup state and settings\n\n state = state || {\n key: '',\n path: [],\n parent: null,\n reference: reference\n };\n\n if (this._settings) {\n options = internals.concatSettings(options, this._settings);\n }\n\n var errors = [];\n\n var finish = function finish() {\n var finalValue = void 0;\n\n if (value !== undefined) {\n finalValue = _this._flags.raw ? originalValue : value;\n } else if (options.noDefaults) {\n finalValue = value;\n } else if (Ref.isRef(_this._flags[\"default\"])) {\n finalValue = _this._flags[\"default\"](state.parent, options);\n } else if (typeof _this._flags[\"default\"] === 'function' && !(_this._flags.func && !_this._flags[\"default\"].description)) {\n var args = void 0;\n\n if (state.parent !== null && _this._flags[\"default\"].length > 0) {\n args = [Hoek.clone(state.parent), options];\n }\n\n var defaultValue = internals._try(_this._flags[\"default\"], args);\n\n finalValue = defaultValue.value;\n\n if (defaultValue.error) {\n errors.push(_this.createError('any.default', {\n error: defaultValue.error\n }, state, options));\n }\n } else {\n finalValue = Hoek.clone(_this._flags[\"default\"]);\n }\n\n if (errors.length && typeof _this._flags.error === 'function') {\n var change = _this._flags.error.call(_this, errors);\n\n if (typeof change === 'string') {\n errors = [_this.createOverrideError('override', {\n reason: errors\n }, state, options, change)];\n } else {\n errors = [].concat(change).map(function (err) {\n return err instanceof Error ? err : _this.createOverrideError(err.type || 'override', err.context, state, options, err.message, err.template);\n });\n }\n }\n\n return {\n value: _this._flags.strip ? undefined : finalValue,\n finalValue: finalValue,\n errors: errors.length ? errors : null\n };\n };\n\n if (this._coerce) {\n var coerced = this._coerce.call(this, value, state, options);\n\n if (coerced.errors) {\n value = coerced.value;\n errors = errors.concat(coerced.errors);\n return finish(); // Coerced error always aborts early\n }\n\n value = coerced.value;\n }\n\n if (this._flags.empty && !this._flags.empty._validate(this._prepareEmptyValue(value), null, internals.defaults).errors) {\n value = undefined;\n } // Check presence requirements\n\n\n var presence = this._flags.presence || options.presence;\n\n if (presence === 'optional') {\n if (value === undefined) {\n var isDeepDefault = this._flags.hasOwnProperty('default') && this._flags[\"default\"] === undefined;\n\n if (isDeepDefault && this._type === 'object') {\n value = {};\n } else {\n return finish();\n }\n }\n } else if (presence === 'required' && value === undefined) {\n errors.push(this.createError('any.required', null, state, options));\n return finish();\n } else if (presence === 'forbidden') {\n if (value === undefined) {\n return finish();\n }\n\n errors.push(this.createError('any.unknown', null, state, options));\n return finish();\n } // Check allowed and denied values using the original value\n\n\n if (this._valids.has(value, state, options, this._flags.insensitive)) {\n return finish();\n }\n\n if (this._invalids.has(value, state, options, this._flags.insensitive)) {\n errors.push(this.createError(value === '' ? 'any.empty' : 'any.invalid', null, state, options));\n\n if (options.abortEarly || value === undefined) {\n // No reason to keep validating missing value\n return finish();\n }\n } // Convert value and validate type\n\n\n if (this._base) {\n var base = this._base.call(this, value, state, options);\n\n if (base.errors) {\n value = base.value;\n errors = errors.concat(base.errors);\n return finish(); // Base error always aborts early\n }\n\n if (base.value !== value) {\n value = base.value; // Check allowed and denied values using the converted value\n\n if (this._valids.has(value, state, options, this._flags.insensitive)) {\n return finish();\n }\n\n if (this._invalids.has(value, state, options, this._flags.insensitive)) {\n errors.push(this.createError(value === '' ? 'any.empty' : 'any.invalid', null, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n }\n } // Required values did not match\n\n\n if (this._flags.allowOnly) {\n errors.push(this.createError('any.allowOnly', {\n valids: this._valids.values({\n stripUndefined: true\n })\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n } // Helper.validate tests\n\n\n for (var i = 0; i < this._tests.length; ++i) {\n var test = this._tests[i];\n var ret = test.func.call(this, value, state, options);\n\n if (ret instanceof Errors.Err) {\n errors.push(ret);\n\n if (options.abortEarly) {\n return finish();\n }\n } else {\n value = ret;\n }\n }\n\n return finish();\n };\n\n _class.prototype._validateWithOptions = function _validateWithOptions(value, options, callback) {\n if (options) {\n this.checkOptions(options);\n }\n\n var settings = internals.concatSettings(internals.defaults, options);\n\n var result = this._validate(value, null, settings);\n\n var errors = Errors.process(result.errors, value);\n\n if (callback) {\n return callback(errors, result.value);\n }\n\n return {\n error: errors,\n value: result.value,\n then: function then(resolve, reject) {\n if (errors) {\n return Promise.reject(errors)[\"catch\"](reject);\n }\n\n return Promise.resolve(result.value).then(resolve);\n },\n \"catch\": function _catch(reject) {\n if (errors) {\n return Promise.reject(errors)[\"catch\"](reject);\n }\n\n return Promise.resolve(result.value);\n }\n };\n };\n\n _class.prototype.validate = function validate(value, options, callback) {\n if (typeof options === 'function') {\n return this._validateWithOptions(value, null, options);\n }\n\n return this._validateWithOptions(value, options, callback);\n };\n\n _class.prototype.describe = function describe() {\n var _this2 = this;\n\n var description = {\n type: this._type\n };\n var flags = Object.keys(this._flags);\n\n if (flags.length) {\n if (['empty', 'default', 'lazy', 'label'].some(function (flag) {\n return _this2._flags.hasOwnProperty(flag);\n })) {\n description.flags = {};\n\n for (var i = 0; i < flags.length; ++i) {\n var flag = flags[i];\n\n if (flag === 'empty') {\n description.flags[flag] = this._flags[flag].describe();\n } else if (flag === 'default') {\n if (Ref.isRef(this._flags[flag])) {\n description.flags[flag] = this._flags[flag].toString();\n } else if (typeof this._flags[flag] === 'function') {\n description.flags[flag] = {\n description: this._flags[flag].description,\n \"function\": this._flags[flag]\n };\n } else {\n description.flags[flag] = this._flags[flag];\n }\n } else if (flag === 'lazy' || flag === 'label') {// We don't want it in the description\n } else {\n description.flags[flag] = this._flags[flag];\n }\n }\n } else {\n description.flags = this._flags;\n }\n }\n\n if (this._settings) {\n description.options = Hoek.clone(this._settings);\n }\n\n if (this._baseType) {\n description.base = this._baseType.describe();\n }\n\n if (this._description) {\n description.description = this._description;\n }\n\n if (this._notes.length) {\n description.notes = this._notes;\n }\n\n if (this._tags.length) {\n description.tags = this._tags;\n }\n\n if (this._meta.length) {\n description.meta = this._meta;\n }\n\n if (this._examples.length) {\n description.examples = this._examples;\n }\n\n if (this._unit) {\n description.unit = this._unit;\n }\n\n var valids = this._valids.values();\n\n if (valids.length) {\n description.valids = valids.map(function (v) {\n return Ref.isRef(v) ? v.toString() : v;\n });\n }\n\n var invalids = this._invalids.values();\n\n if (invalids.length) {\n description.invalids = invalids.map(function (v) {\n return Ref.isRef(v) ? v.toString() : v;\n });\n }\n\n description.rules = [];\n\n for (var _i2 = 0; _i2 < this._tests.length; ++_i2) {\n var validator = this._tests[_i2];\n var item = {\n name: validator.name\n };\n\n if (validator.arg !== void 0) {\n item.arg = Ref.isRef(validator.arg) ? validator.arg.toString() : validator.arg;\n }\n\n var options = validator.options;\n\n if (options) {\n if (options.hasRef) {\n item.arg = {};\n var keys = Object.keys(validator.arg);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var value = validator.arg[key];\n item.arg[key] = Ref.isRef(value) ? value.toString() : value;\n }\n }\n\n if (typeof options.description === 'string') {\n item.description = options.description;\n } else if (typeof options.description === 'function') {\n item.description = options.description(item.arg);\n }\n }\n\n description.rules.push(item);\n }\n\n if (!description.rules.length) {\n delete description.rules;\n }\n\n var label = this._getLabel();\n\n if (label) {\n description.label = label;\n }\n\n return description;\n };\n\n _class.prototype.label = function label(name) {\n Hoek.assert(name && typeof name === 'string', 'Label name must be a non-empty string');\n var obj = this.clone();\n obj._flags.label = name;\n return obj;\n };\n\n _class.prototype._getLabel = function _getLabel(def) {\n return this._flags.label || def;\n };\n\n _createClass(_class, [{\n key: 'schemaType',\n get: function get() {\n return this._type;\n }\n }]);\n\n return _class;\n }();\n\n internals.Any.prototype.isImmutable = true; // Prevents Hoek from deep cloning schema objects\n // Aliases\n\n internals.Any.prototype.only = internals.Any.prototype.equal = internals.Any.prototype.valid;\n internals.Any.prototype.disallow = internals.Any.prototype.not = internals.Any.prototype.invalid;\n internals.Any.prototype.exist = internals.Any.prototype.required;\n\n internals._try = function (fn, args) {\n var err = void 0;\n var result = void 0;\n\n try {\n result = fn.apply(null, args);\n } catch (e) {\n err = e;\n }\n\n return {\n value: result,\n error: err\n };\n };\n\n internals.concatSettings = function (target, source) {\n // Used to avoid cloning context\n if (!target && !source) {\n return null;\n }\n\n var obj = _extends({}, target);\n\n if (source) {\n var sKeys = Object.keys(source);\n\n for (var i = 0; i < sKeys.length; ++i) {\n var key = sKeys[i];\n\n if (key !== 'language' || !obj.hasOwnProperty(key)) {\n obj[key] = source[key];\n } else {\n obj[key] = Hoek.applyToDefaults(obj[key], source[key]);\n }\n }\n }\n\n return obj;\n };\n /***/\n\n },\n /* 3 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (global) {\n /*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n /* eslint-disable no-proto */\n var base64 = __webpack_require__(30);\n\n var ieee754 = __webpack_require__(31);\n\n var isArray = __webpack_require__(32);\n\n exports.Buffer = Buffer;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\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 */\n\n Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n /*\n * Export kMaxLength after typed array support is determined.\n */\n\n exports.kMaxLength = kMaxLength();\n\n function typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\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\n function kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n }\n\n function createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\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\n that.length = length;\n }\n\n return that;\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\n\n function Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n }\n\n Buffer.poolSize = 8192; // not used by this implementation\n // TODO: Legacy, not needed anymore. Remove in next major version.\n\n Buffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n };\n\n function 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 * 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 **/\n\n\n Buffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n };\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n\n if (typeof Symbol !== 'undefined' && Symbol.species && 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\n function 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\n function alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, size);\n }\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' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n }\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\n Buffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n };\n\n function allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n }\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\n Buffer.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 */\n\n\n Buffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n };\n\n function 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 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\n function fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n }\n\n function 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\n return that;\n }\n\n function 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' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\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\n function 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 ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n }\n\n function SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n }\n\n Buffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n };\n\n Buffer.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 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\n Buffer.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\n default:\n return false;\n }\n };\n\n Buffer.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\n if (length === undefined) {\n length = 0;\n\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\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n };\n\n function byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n\n Buffer.byteLength = byteLength;\n\n function slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\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\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\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 } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\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 } // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n // Buffer instances.\n\n\n Buffer.prototype._isBuffer = true;\n\n function swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n\n Buffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n };\n\n Buffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\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\n return this;\n };\n\n Buffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\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\n return this;\n };\n\n Buffer.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\n Buffer.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\n Buffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '';\n };\n\n Buffer.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\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\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\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\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 }; // 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\n\n\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\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\n byteOffset = +byteOffset; // Coerce to Number.\n\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 } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\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\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\n if (Buffer.TYPED_ARRAY_SUPPORT && 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\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n }\n\n function 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\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\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\n if (dir) {\n var foundIndex = -1;\n\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\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\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\n if (found) return i;\n }\n }\n\n return -1;\n }\n\n Buffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n\n Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n\n Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\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\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\n return i;\n }\n\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n\n function latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n }\n\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n Buffer.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; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\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 var loweredCase = false;\n\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\n Buffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n\n function 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\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 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\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\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\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\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 } // 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\n\n\n var MAX_ARGUMENTS_LENGTH = 0x1000;\n\n function decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n }\n\n function 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\n return ret;\n }\n\n function 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\n return ret;\n }\n\n function hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n }\n\n function utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n }\n\n Buffer.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 var newBuf;\n\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\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n };\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\n function 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\n Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n\n Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n\n Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n\n Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n };\n\n Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n\n Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.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\n Buffer.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\n Buffer.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\n Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n\n Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n\n Buffer.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\n Buffer.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\n Buffer.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\n Buffer.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\n function 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\n Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\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\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\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\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.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\n function objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\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)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n }\n\n Buffer.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\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\n return offset + 2;\n };\n\n Buffer.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\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\n return offset + 2;\n };\n\n function objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\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\n Buffer.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\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\n return offset + 4;\n };\n\n Buffer.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\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\n return offset + 4;\n };\n\n Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.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\n Buffer.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\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\n return offset + 2;\n };\n\n Buffer.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\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\n return offset + 2;\n };\n\n Buffer.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\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\n return offset + 4;\n };\n\n Buffer.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\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\n return offset + 4;\n };\n\n function 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\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n\n Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n\n Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n }; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\n Buffer.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; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\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'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\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(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n }; // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n\n\n Buffer.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\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\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 } // Invalid ranges are not set to a default, so can range check early.\n\n\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 if (!val) val = 0;\n var i;\n\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) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n }; // HELPER FUNCTIONS\n // ================\n\n\n var INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\n function 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, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n }\n\n function stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n }\n\n function toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n }\n\n function 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); // is surrogate component\n\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 } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\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; // encode utf8\n\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(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n }\n\n function asciiToBytes(str) {\n var byteArray = [];\n\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\n return byteArray;\n }\n\n function utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\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\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n\n function 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\n return i;\n }\n\n function isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n }\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(7));\n /***/\n },\n /* 4 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var Hoek = __webpack_require__(0);\n\n var Ref = __webpack_require__(1); // Type modules are delay-loaded to prevent circular dependencies\n // Declare internals\n\n\n var internals = {};\n\n exports.schema = function (Joi, config) {\n if (config !== undefined && config !== null && (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object') {\n if (config.isJoi) {\n return config;\n }\n\n if (Array.isArray(config)) {\n return Joi.alternatives()[\"try\"](config);\n }\n\n if (config instanceof RegExp) {\n return Joi.string().regex(config);\n }\n\n if (config instanceof Date) {\n return Joi.date().valid(config);\n }\n\n return Joi.object().keys(config);\n }\n\n if (typeof config === 'string') {\n return Joi.string().valid(config);\n }\n\n if (typeof config === 'number') {\n return Joi.number().valid(config);\n }\n\n if (typeof config === 'boolean') {\n return Joi[\"boolean\"]().valid(config);\n }\n\n if (Ref.isRef(config)) {\n return Joi.valid(config);\n }\n\n Hoek.assert(config === null, 'Invalid schema content:', config);\n return Joi.valid(null);\n };\n\n exports.ref = function (id) {\n return Ref.isRef(id) ? id : Ref.create(id);\n };\n /***/\n\n },\n /* 5 */\n\n /***/\n function (module, exports) {\n // shim for using process in browser\n var process = module.exports = {}; // 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\n var cachedSetTimeout;\n var cachedClearTimeout;\n\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n\n function defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n }\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\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n })();\n\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\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 function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\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 var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n }\n\n function drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n\n process.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n }; // v8 likes predictible objects\n\n\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n\n Item.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n\n process.title = 'browser';\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = ''; // empty string to avoid regexp issues\n\n process.versions = {};\n\n function noop() {}\n\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n\n process.listeners = function (name) {\n return [];\n };\n\n process.binding = function (name) {\n throw new Error('process.binding is not supported');\n };\n\n process.cwd = function () {\n return '/';\n };\n\n process.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n };\n\n process.umask = function () {\n return 0;\n };\n /***/\n\n },\n /* 6 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var Hoek = __webpack_require__(0);\n\n var Language = __webpack_require__(17); // Declare internals\n\n\n var internals = {\n annotations: Symbol('joi-annotations')\n };\n\n internals.stringify = function (value, wrapArrays) {\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n if (value === null) {\n return 'null';\n }\n\n if (type === 'string') {\n return value;\n }\n\n if (value instanceof exports.Err || type === 'function' || type === 'symbol') {\n return value.toString();\n }\n\n if (type === 'object') {\n if (Array.isArray(value)) {\n var partial = '';\n\n for (var i = 0; i < value.length; ++i) {\n partial = partial + (partial.length ? ', ' : '') + internals.stringify(value[i], wrapArrays);\n }\n\n return wrapArrays ? '[' + partial + ']' : partial;\n }\n\n return value.toString();\n }\n\n return JSON.stringify(value);\n };\n\n exports.Err = function () {\n function _class(type, context, state, options, flags, message, template) {\n _classCallCheck(this, _class);\n\n this.isJoi = true;\n this.type = type;\n this.context = context || {};\n this.context.key = state.path[state.path.length - 1];\n this.context.label = state.key;\n this.path = state.path;\n this.options = options;\n this.flags = flags;\n this.message = message;\n this.template = template;\n var localized = this.options.language;\n\n if (this.flags.label) {\n this.context.label = this.flags.label;\n } else if (localized && ( // language can be null for arrays exclusion check\n this.context.label === '' || this.context.label === null)) {\n this.context.label = localized.root || Language.errors.root;\n }\n }\n\n _class.prototype.toString = function toString() {\n var _this = this;\n\n if (this.message) {\n return this.message;\n }\n\n var format = void 0;\n\n if (this.template) {\n format = this.template;\n }\n\n var localized = this.options.language;\n format = format || Hoek.reach(localized, this.type) || Hoek.reach(Language.errors, this.type);\n\n if (format === undefined) {\n return 'Error code \"' + this.type + '\" is not defined, your custom type is missing the correct language definition';\n }\n\n var wrapArrays = Hoek.reach(localized, 'messages.wrapArrays');\n\n if (typeof wrapArrays !== 'boolean') {\n wrapArrays = Language.errors.messages.wrapArrays;\n }\n\n if (format === null) {\n var childrenString = internals.stringify(this.context.reason, wrapArrays);\n\n if (wrapArrays) {\n return childrenString.slice(1, -1);\n }\n\n return childrenString;\n }\n\n var hasKey = /\\{\\{\\!?label\\}\\}/.test(format);\n var skipKey = format.length > 2 && format[0] === '!' && format[1] === '!';\n\n if (skipKey) {\n format = format.slice(2);\n }\n\n if (!hasKey && !skipKey) {\n var localizedKey = Hoek.reach(localized, 'key');\n\n if (typeof localizedKey === 'string') {\n format = localizedKey + format;\n } else {\n format = Hoek.reach(Language.errors, 'key') + format;\n }\n }\n\n return format.replace(/\\{\\{(\\!?)([^}]+)\\}\\}/g, function ($0, isSecure, name) {\n var value = Hoek.reach(_this.context, name);\n var normalized = internals.stringify(value, wrapArrays);\n return isSecure && _this.options.escapeHtml ? Hoek.escapeHtml(normalized) : normalized;\n });\n };\n\n return _class;\n }();\n\n exports.create = function (type, context, state, options, flags, message, template) {\n return new exports.Err(type, context, state, options, flags, message, template);\n };\n\n exports.process = function (errors, object) {\n if (!errors || !errors.length) {\n return null;\n } // Construct error\n\n\n var message = '';\n var details = [];\n\n var processErrors = function processErrors(localErrors, parent) {\n for (var i = 0; i < localErrors.length; ++i) {\n var item = localErrors[i];\n\n if (item instanceof Error) {\n return item;\n }\n\n if (item.flags.error && typeof item.flags.error !== 'function') {\n return item.flags.error;\n }\n\n var itemMessage = void 0;\n\n if (parent === undefined) {\n itemMessage = item.toString();\n message = message + (message ? '. ' : '') + itemMessage;\n } // Do not push intermediate errors, we're only interested in leafs\n\n\n if (item.context.reason && item.context.reason.length) {\n var _override = processErrors(item.context.reason, item.path);\n\n if (_override) {\n return _override;\n }\n } else {\n details.push({\n message: itemMessage || item.toString(),\n path: item.path,\n type: item.type,\n context: item.context\n });\n }\n }\n };\n\n var override = processErrors(errors);\n\n if (override) {\n return override;\n }\n\n var error = new Error(message);\n error.isJoi = true;\n error.name = 'ValidationError';\n error.details = details;\n error._object = object;\n error.annotate = internals.annotate;\n return error;\n }; // Inspired by json-stringify-safe\n\n\n internals.safeStringify = function (obj, spaces) {\n return JSON.stringify(obj, internals.serializer(), spaces);\n };\n\n internals.serializer = function () {\n var keys = [];\n var stack = [];\n\n var cycleReplacer = function cycleReplacer(key, value) {\n if (stack[0] === value) {\n return '[Circular ~]';\n }\n\n return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';\n };\n\n return function (key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this);\n\n if (~thisPos) {\n stack.length = thisPos + 1;\n keys.length = thisPos + 1;\n keys[thisPos] = key;\n } else {\n stack.push(this);\n keys.push(key);\n }\n\n if (~stack.indexOf(value)) {\n value = cycleReplacer.call(this, key, value);\n }\n } else {\n stack.push(value);\n }\n\n if (value) {\n var annotations = value[internals.annotations];\n\n if (annotations) {\n if (Array.isArray(value)) {\n var annotated = [];\n\n for (var i = 0; i < value.length; ++i) {\n if (annotations.errors[i]) {\n annotated.push('_$idx$_' + annotations.errors[i].sort().join(', ') + '_$end$_');\n }\n\n annotated.push(value[i]);\n }\n\n value = annotated;\n } else {\n var errorKeys = Object.keys(annotations.errors);\n\n for (var _i = 0; _i < errorKeys.length; ++_i) {\n var errorKey = errorKeys[_i];\n value[errorKey + '_$key$_' + annotations.errors[errorKey].sort().join(', ') + '_$end$_'] = value[errorKey];\n value[errorKey] = undefined;\n }\n\n var missingKeys = Object.keys(annotations.missing);\n\n for (var _i2 = 0; _i2 < missingKeys.length; ++_i2) {\n var missingKey = missingKeys[_i2];\n value['_$miss$_' + missingKey + '|' + annotations.missing[missingKey] + '_$end$_'] = '__missing__';\n }\n }\n\n return value;\n }\n }\n\n if (value === Infinity || value === -Infinity || Number.isNaN(value) || typeof value === 'function' || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'symbol') {\n return '[' + value.toString() + ']';\n }\n\n return value;\n };\n };\n\n internals.annotate = function (stripColorCodes) {\n var redFgEscape = stripColorCodes ? '' : '\\x1B[31m';\n var redBgEscape = stripColorCodes ? '' : '\\x1B[41m';\n var endColor = stripColorCodes ? '' : '\\x1B[0m';\n\n if (_typeof(this._object) !== 'object') {\n return this.details[0].message;\n }\n\n var obj = Hoek.clone(this._object || {});\n\n for (var i = this.details.length - 1; i >= 0; --i) {\n // Reverse order to process deepest child first\n var pos = i + 1;\n var error = this.details[i];\n var path = error.path;\n var ref = obj;\n\n for (var j = 0;; ++j) {\n var seg = path[j];\n\n if (ref.isImmutable) {\n ref = ref.clone(); // joi schemas are not cloned by hoek, we have to take this extra step\n }\n\n if (j + 1 < path.length && ref[seg] && typeof ref[seg] !== 'string') {\n ref = ref[seg];\n } else {\n var refAnnotations = ref[internals.annotations] = ref[internals.annotations] || {\n errors: {},\n missing: {}\n };\n var value = ref[seg];\n var cacheKey = seg || error.context.label;\n\n if (value !== undefined) {\n refAnnotations.errors[cacheKey] = refAnnotations.errors[cacheKey] || [];\n refAnnotations.errors[cacheKey].push(pos);\n } else {\n refAnnotations.missing[cacheKey] = pos;\n }\n\n break;\n }\n }\n }\n\n var replacers = {\n key: /_\\$key\\$_([, \\d]+)_\\$end\\$_\\\"/g,\n missing: /\\\"_\\$miss\\$_([^\\|]+)\\|(\\d+)_\\$end\\$_\\\"\\: \\\"__missing__\\\"/g,\n arrayIndex: /\\s*\\\"_\\$idx\\$_([, \\d]+)_\\$end\\$_\\\",?\\n(.*)/g,\n specials: /\"\\[(NaN|Symbol.*|-?Infinity|function.*|\\(.*)\\]\"/g\n };\n var message = internals.safeStringify(obj, 2).replace(replacers.key, function ($0, $1) {\n return '\" ' + redFgEscape + '[' + $1 + ']' + endColor;\n }).replace(replacers.missing, function ($0, $1, $2) {\n return redBgEscape + '\"' + $1 + '\"' + endColor + redFgEscape + ' [' + $2 + ']: -- missing --' + endColor;\n }).replace(replacers.arrayIndex, function ($0, $1, $2) {\n return '\\n' + $2 + ' ' + redFgEscape + '[' + $1 + ']' + endColor;\n }).replace(replacers.specials, function ($0, $1) {\n return $1;\n });\n message = message + '\\n' + redFgEscape;\n\n for (var _i3 = 0; _i3 < this.details.length; ++_i3) {\n var _pos = _i3 + 1;\n\n message = message + '\\n[' + _pos + '] ' + this.details[_i3].message;\n }\n\n message = message + endColor;\n return message;\n };\n /***/\n\n },\n /* 7 */\n\n /***/\n function (module, exports) {\n var g; // This works in non-strict mode\n\n g = function () {\n return this;\n }();\n\n try {\n // This works if eval is allowed (see CSP)\n g = g || Function(\"return this\")() || (1, eval)(\"this\");\n } catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof2(window)) === \"object\") g = window;\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\n\n module.exports = g;\n /***/\n },\n /* 8 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _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 function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Hoek = __webpack_require__(0);\n\n var Any = __webpack_require__(2);\n\n var Cast = __webpack_require__(4);\n\n var Errors = __webpack_require__(6);\n\n var Lazy = __webpack_require__(23);\n\n var Ref = __webpack_require__(1); // Declare internals\n\n\n var internals = {\n alternatives: __webpack_require__(10),\n array: __webpack_require__(19),\n \"boolean\": __webpack_require__(21),\n binary: __webpack_require__(20),\n date: __webpack_require__(11),\n func: __webpack_require__(22),\n number: __webpack_require__(24),\n object: __webpack_require__(12),\n string: __webpack_require__(25)\n };\n\n internals.applyDefaults = function (schema) {\n Hoek.assert(this, 'Must be invoked on a Joi instance.');\n\n if (this._defaults) {\n schema = this._defaults(schema);\n }\n\n schema._currentJoi = this;\n return schema;\n };\n\n internals.root = function () {\n var any = new Any();\n var root = any.clone();\n Any.prototype._currentJoi = root;\n root._currentJoi = root;\n\n root.any = function () {\n Hoek.assert(arguments.length === 0, 'Joi.any() does not allow arguments.');\n return internals.applyDefaults.call(this, any);\n };\n\n root.alternatives = root.alt = function () {\n var alternatives = internals.applyDefaults.call(this, internals.alternatives);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.length ? alternatives[\"try\"].apply(alternatives, args) : alternatives;\n };\n\n root.array = function () {\n Hoek.assert(arguments.length === 0, 'Joi.array() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.array);\n };\n\n root[\"boolean\"] = root.bool = function () {\n Hoek.assert(arguments.length === 0, 'Joi.boolean() does not allow arguments.');\n return internals.applyDefaults.call(this, internals[\"boolean\"]);\n };\n\n root.binary = function () {\n Hoek.assert(arguments.length === 0, 'Joi.binary() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.binary);\n };\n\n root.date = function () {\n Hoek.assert(arguments.length === 0, 'Joi.date() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.date);\n };\n\n root.func = function () {\n Hoek.assert(arguments.length === 0, 'Joi.func() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.func);\n };\n\n root.number = function () {\n Hoek.assert(arguments.length === 0, 'Joi.number() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.number);\n };\n\n root.object = function () {\n var object = internals.applyDefaults.call(this, internals.object);\n return arguments.length ? object.keys.apply(object, arguments) : object;\n };\n\n root.string = function () {\n Hoek.assert(arguments.length === 0, 'Joi.string() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.string);\n };\n\n root.ref = function () {\n return Ref.create.apply(Ref, arguments);\n };\n\n root.isRef = function (ref) {\n return Ref.isRef(ref);\n };\n\n root.validate = function (value)\n /*, [schema], [options], callback */\n {\n var _ref;\n\n var last = (_ref = (arguments.length <= 1 ? 0 : arguments.length - 1) - 1 + 1, arguments.length <= _ref ? undefined : arguments[_ref]);\n var callback = typeof last === 'function' ? last : null;\n var count = (arguments.length <= 1 ? 0 : arguments.length - 1) - (callback ? 1 : 0);\n\n if (count === 0) {\n return any.validate(value, callback);\n }\n\n var options = count === 2 ? arguments.length <= 2 ? undefined : arguments[2] : {};\n var schema = root.compile(arguments.length <= 1 ? undefined : arguments[1]);\n return schema._validateWithOptions(value, options, callback);\n };\n\n root.describe = function () {\n var schema = arguments.length ? root.compile(arguments.length <= 0 ? undefined : arguments[0]) : any;\n return schema.describe();\n };\n\n root.compile = function (schema) {\n try {\n return Cast.schema(this, schema);\n } catch (err) {\n if (err.hasOwnProperty('path')) {\n err.message = err.message + '(' + err.path + ')';\n }\n\n throw err;\n }\n };\n\n root.assert = function (value, schema, message) {\n root.attempt(value, schema, message);\n };\n\n root.attempt = function (value, schema, message) {\n var result = root.validate(value, schema);\n var error = result.error;\n\n if (error) {\n if (!message) {\n if (typeof error.annotate === 'function') {\n error.message = error.annotate();\n }\n\n throw error;\n }\n\n if (!(message instanceof Error)) {\n if (typeof error.annotate === 'function') {\n error.message = message + ' ' + error.annotate();\n }\n\n throw error;\n }\n\n throw message;\n }\n\n return result.value;\n };\n\n root.reach = function (schema, path) {\n Hoek.assert(schema && schema instanceof Any, 'you must provide a joi schema');\n Hoek.assert(typeof path === 'string', 'path must be a string');\n\n if (path === '') {\n return schema;\n }\n\n var parts = path.split('.');\n var children = schema._inner.children;\n\n if (!children) {\n return;\n }\n\n var key = parts[0];\n\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n\n if (child.key === key) {\n return this.reach(child.schema, path.substr(key.length + 1));\n }\n }\n };\n\n root.lazy = function (fn) {\n return Lazy.set(fn);\n };\n\n root.defaults = function (fn) {\n var _this = this;\n\n Hoek.assert(typeof fn === 'function', 'Defaults must be a function');\n var joi = Object.create(this.any());\n joi = fn(joi);\n Hoek.assert(joi && joi instanceof this.constructor, 'defaults() must return a schema');\n\n _extends(joi, this, joi.clone()); // Re-add the types from `this` but also keep the settings from joi's potential new defaults\n\n\n joi._defaults = function (schema) {\n if (_this._defaults) {\n schema = _this._defaults(schema);\n Hoek.assert(schema instanceof _this.constructor, 'defaults() must return a schema');\n }\n\n schema = fn(schema);\n Hoek.assert(schema instanceof _this.constructor, 'defaults() must return a schema');\n return schema;\n };\n\n return joi;\n };\n\n root.extend = function () {\n var _this2 = this;\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var extensions = Hoek.flatten(args);\n Hoek.assert(extensions.length > 0, 'You need to provide at least one extension');\n this.assert(extensions, root.extensionsSchema);\n var joi = Object.create(this.any());\n\n _extends(joi, this);\n\n var _loop = function _loop(i) {\n var extension = extensions[i];\n\n if (typeof extension === 'function') {\n extension = extension(joi);\n }\n\n _this2.assert(extension, root.extensionSchema);\n\n var base = (extension.base || _this2.any()).clone(); // Cloning because we're going to override language afterwards\n\n\n var ctor = base.constructor;\n\n var type = function (_ctor) {\n _inherits(type, _ctor); // eslint-disable-line no-loop-func\n\n\n function type() {\n _classCallCheck(this, type);\n\n var _this3 = _possibleConstructorReturn(this, _ctor.call(this));\n\n if (extension.base) {\n _extends(_this3, base);\n }\n\n _this3._type = extension.name;\n\n if (extension.language) {\n _this3._settings = _this3._settings || {\n language: {}\n };\n _this3._settings.language = Hoek.applyToDefaults(_this3._settings.language, _defineProperty({}, extension.name, extension.language));\n }\n\n return _this3;\n }\n\n return type;\n }(ctor);\n\n if (extension.coerce) {\n type.prototype._coerce = function (value, state, options) {\n if (ctor.prototype._coerce) {\n var baseRet = ctor.prototype._coerce.call(this, value, state, options);\n\n if (baseRet.errors) {\n return baseRet;\n }\n\n value = baseRet.value;\n }\n\n var ret = extension.coerce.call(this, value, state, options);\n\n if (ret instanceof Errors.Err) {\n return {\n value: value,\n errors: ret\n };\n }\n\n return {\n value: ret\n };\n };\n }\n\n if (extension.pre) {\n type.prototype._base = function (value, state, options) {\n if (ctor.prototype._base) {\n var baseRet = ctor.prototype._base.call(this, value, state, options);\n\n if (baseRet.errors) {\n return baseRet;\n }\n\n value = baseRet.value;\n }\n\n var ret = extension.pre.call(this, value, state, options);\n\n if (ret instanceof Errors.Err) {\n return {\n value: value,\n errors: ret\n };\n }\n\n return {\n value: ret\n };\n };\n }\n\n if (extension.rules) {\n var _loop2 = function _loop2(j) {\n var rule = extension.rules[j];\n var ruleArgs = rule.params ? rule.params instanceof Any ? rule.params._inner.children.map(function (k) {\n return k.key;\n }) : Object.keys(rule.params) : [];\n var validateArgs = rule.params ? Cast.schema(_this2, rule.params) : null;\n\n type.prototype[rule.name] = function () {\n for (var _len3 = arguments.length, rArgs = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n rArgs[_key3] = arguments[_key3];\n } // eslint-disable-line no-loop-func\n\n\n if (rArgs.length > ruleArgs.length) {\n throw new Error('Unexpected number of arguments');\n }\n\n var hasRef = false;\n var arg = {};\n\n for (var k = 0; k < ruleArgs.length; ++k) {\n arg[ruleArgs[k]] = rArgs[k];\n\n if (!hasRef && Ref.isRef(rArgs[k])) {\n hasRef = true;\n }\n }\n\n if (validateArgs) {\n arg = joi.attempt(arg, validateArgs);\n }\n\n var schema = void 0;\n\n if (rule.validate) {\n var validate = function validate(value, state, options) {\n return rule.validate.call(this, arg, value, state, options);\n };\n\n schema = this._test(rule.name, arg, validate, {\n description: rule.description,\n hasRef: hasRef\n });\n } else {\n schema = this.clone();\n }\n\n if (rule.setup) {\n var newSchema = rule.setup.call(schema, arg);\n\n if (newSchema !== undefined) {\n Hoek.assert(newSchema instanceof Any, 'Setup of extension Joi.' + this._type + '().' + rule.name + '() must return undefined or a Joi object');\n schema = newSchema;\n }\n }\n\n return schema;\n };\n };\n\n for (var j = 0; j < extension.rules.length; ++j) {\n _loop2(j);\n }\n }\n\n if (extension.describe) {\n type.prototype.describe = function () {\n var description = ctor.prototype.describe.call(this);\n return extension.describe.call(this, description);\n };\n }\n\n var instance = new type();\n\n joi[extension.name] = function () {\n return internals.applyDefaults.call(this, instance);\n };\n };\n\n for (var i = 0; i < extensions.length; ++i) {\n _loop(i);\n }\n\n return joi;\n };\n\n root.extensionSchema = internals.object.keys({\n base: internals.object.type(Any, 'Joi object'),\n name: internals.string.required(),\n coerce: internals.func.arity(3),\n pre: internals.func.arity(3),\n language: internals.object,\n describe: internals.func.arity(1),\n rules: internals.array.items(internals.object.keys({\n name: internals.string.required(),\n setup: internals.func.arity(1),\n validate: internals.func.arity(4),\n params: [internals.object.pattern(/.*/, internals.object.type(Any, 'Joi object')), internals.object.type(internals.object.constructor, 'Joi object')],\n description: [internals.string, internals.func.arity(1)]\n }).or('setup', 'validate'))\n }).strict();\n root.extensionsSchema = internals.array.items([internals.object, internals.func.arity(1)]).strict();\n root.version = __webpack_require__(33).version;\n return root;\n };\n\n module.exports = internals.root();\n /***/\n },\n /* 9 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var Ref = __webpack_require__(1);\n\n module.exports = function () {\n function Set() {\n _classCallCheck(this, Set);\n\n this._set = [];\n }\n\n Set.prototype.add = function add(value, refs) {\n if (!Ref.isRef(value) && this.has(value, null, null, false)) {\n return;\n }\n\n if (refs !== undefined) {\n // If it's a merge, we don't have any refs\n Ref.push(refs, value);\n }\n\n this._set.push(value);\n\n return this;\n };\n\n Set.prototype.merge = function merge(add, remove) {\n for (var i = 0; i < add._set.length; ++i) {\n this.add(add._set[i]);\n }\n\n for (var _i = 0; _i < remove._set.length; ++_i) {\n this.remove(remove._set[_i]);\n }\n\n return this;\n };\n\n Set.prototype.remove = function remove(value) {\n this._set = this._set.filter(function (item) {\n return value !== item;\n });\n return this;\n };\n\n Set.prototype.has = function has(value, state, options, insensitive) {\n for (var i = 0; i < this._set.length; ++i) {\n var items = this._set[i];\n\n if (state && Ref.isRef(items)) {\n // Only resolve references if there is a state, otherwise it's a merge\n items = items(state.reference || state.parent, options);\n }\n\n if (!Array.isArray(items)) {\n items = [items];\n }\n\n for (var j = 0; j < items.length; ++j) {\n var item = items[j];\n\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== (typeof item === 'undefined' ? 'undefined' : _typeof(item))) {\n continue;\n }\n\n if (value === item || value instanceof Date && item instanceof Date && value.getTime() === item.getTime() || insensitive && typeof value === 'string' && value.toLowerCase() === item.toLowerCase() || Buffer.isBuffer(value) && Buffer.isBuffer(item) && value.length === item.length && value.toString('binary') === item.toString('binary')) {\n return true;\n }\n }\n }\n\n return false;\n };\n\n Set.prototype.values = function values(options) {\n if (options && options.stripUndefined) {\n var values = [];\n\n for (var i = 0; i < this._set.length; ++i) {\n var item = this._set[i];\n\n if (item !== undefined) {\n values.push(item);\n }\n }\n\n return values;\n }\n\n return this._set.slice();\n };\n\n Set.prototype.slice = function slice() {\n var newSet = new Set();\n newSet._set = this._set.slice();\n return newSet;\n };\n\n Set.prototype.concat = function concat(source) {\n var newSet = new Set();\n newSet._set = this._set.concat(source._set);\n return newSet;\n };\n\n return Set;\n }();\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 10 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Hoek = __webpack_require__(0);\n\n var Any = __webpack_require__(2);\n\n var Cast = __webpack_require__(4);\n\n var Ref = __webpack_require__(1); // Declare internals\n\n\n var internals = {};\n\n internals.Alternatives = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'alternatives';\n\n _this._invalids.remove(null);\n\n _this._inner.matches = [];\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var errors = [];\n var il = this._inner.matches.length;\n var baseType = this._baseType;\n\n for (var i = 0; i < il; ++i) {\n var item = this._inner.matches[i];\n\n if (!item.schema) {\n var schema = item.peek || item.is;\n var input = item.is ? item.ref(state.reference || state.parent, options) : value;\n\n var failed = schema._validate(input, null, options, state.parent).errors;\n\n if (failed) {\n if (item.otherwise) {\n return item.otherwise._validate(value, state, options);\n }\n } else if (item.then) {\n return item.then._validate(value, state, options);\n }\n\n if (i === il - 1 && baseType) {\n return baseType._validate(value, state, options);\n }\n\n continue;\n }\n\n var result = item.schema._validate(value, state, options);\n\n if (!result.errors) {\n // Found a valid match\n return result;\n }\n\n errors = errors.concat(result.errors);\n }\n\n if (errors.length) {\n return {\n errors: this.createError('alternatives.child', {\n reason: errors\n }, state, options)\n };\n }\n\n return {\n errors: this.createError('alternatives.base', null, state, options)\n };\n };\n\n _class.prototype[\"try\"] = function _try() {\n for (var _len = arguments.length, schemas = Array(_len), _key = 0; _key < _len; _key++) {\n schemas[_key] = arguments[_key];\n }\n\n schemas = Hoek.flatten(schemas);\n Hoek.assert(schemas.length, 'Cannot add other alternatives without at least one schema');\n var obj = this.clone();\n\n for (var i = 0; i < schemas.length; ++i) {\n var cast = Cast.schema(this._currentJoi, schemas[i]);\n\n if (cast._refs.length) {\n obj._refs = obj._refs.concat(cast._refs);\n }\n\n obj._inner.matches.push({\n schema: cast\n });\n }\n\n return obj;\n };\n\n _class.prototype.when = function when(condition, options) {\n var schemaCondition = false;\n Hoek.assert(Ref.isRef(condition) || typeof condition === 'string' || (schemaCondition = condition instanceof Any), 'Invalid condition:', condition);\n Hoek.assert(options, 'Missing options');\n Hoek.assert((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options');\n\n if (schemaCondition) {\n Hoek.assert(!options.hasOwnProperty('is'), '\"is\" can not be used with a schema condition');\n } else {\n Hoek.assert(options.hasOwnProperty('is'), 'Missing \"is\" directive');\n }\n\n Hoek.assert(options.then !== undefined || options.otherwise !== undefined, 'options must have at least one of \"then\" or \"otherwise\"');\n var obj = this.clone();\n var is = void 0;\n\n if (!schemaCondition) {\n is = Cast.schema(this._currentJoi, options.is);\n\n if (options.is === null || !(Ref.isRef(options.is) || options.is instanceof Any)) {\n // Only apply required if this wasn't already a schema or a ref, we'll suppose people know what they're doing\n is = is.required();\n }\n }\n\n var item = {\n ref: schemaCondition ? null : Cast.ref(condition),\n peek: schemaCondition ? condition : null,\n is: is,\n then: options.then !== undefined ? Cast.schema(this._currentJoi, options.then) : undefined,\n otherwise: options.otherwise !== undefined ? Cast.schema(this._currentJoi, options.otherwise) : undefined\n };\n\n if (obj._baseType) {\n item.then = item.then && obj._baseType.concat(item.then);\n item.otherwise = item.otherwise && obj._baseType.concat(item.otherwise);\n }\n\n if (!schemaCondition) {\n Ref.push(obj._refs, item.ref);\n obj._refs = obj._refs.concat(item.is._refs);\n }\n\n if (item.then && item.then._refs) {\n obj._refs = obj._refs.concat(item.then._refs);\n }\n\n if (item.otherwise && item.otherwise._refs) {\n obj._refs = obj._refs.concat(item.otherwise._refs);\n }\n\n obj._inner.matches.push(item);\n\n return obj;\n };\n\n _class.prototype.describe = function describe() {\n var description = Any.prototype.describe.call(this);\n var alternatives = [];\n\n for (var i = 0; i < this._inner.matches.length; ++i) {\n var item = this._inner.matches[i];\n\n if (item.schema) {\n // try()\n alternatives.push(item.schema.describe());\n } else {\n // when()\n var when = item.is ? {\n ref: item.ref.toString(),\n is: item.is.describe()\n } : {\n peek: item.peek.describe()\n };\n\n if (item.then) {\n when.then = item.then.describe();\n }\n\n if (item.otherwise) {\n when.otherwise = item.otherwise.describe();\n }\n\n alternatives.push(when);\n }\n }\n\n description.alternatives = alternatives;\n return description;\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Alternatives();\n /***/\n },\n /* 11 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Ref = __webpack_require__(1);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n internals.isoDate = /^(?:[-+]\\d{2})?(?:\\d{4}(?!\\d{2}\\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\\1(?:[12]\\d|0[1-9]|3[01]))?|W(?:[0-4]\\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\\d|[12]\\d{2}|3(?:[0-5]\\d|6[1-6])))(?![T]$|[T][\\d]+Z$)(?:[T\\s](?:(?:(?:[01]\\d|2[0-3])(?:(:?)[0-5]\\d)?|24\\:?00)(?:[.,]\\d+(?!:))?)(?:\\2[0-5]\\d(?:[.,]\\d+)?)?(?:[Z]|(?:[+-])(?:[01]\\d|2[0-3])(?::?[0-5]\\d)?)?)?)?$/;\n internals.invalidDate = new Date('');\n\n internals.isIsoDate = function () {\n var isoString = internals.isoDate.toString();\n return function (date) {\n return date && date.toString() === isoString;\n };\n }();\n\n internals.Date = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'date';\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: options.convert && internals.Date.toDate(value, this._flags.format, this._flags.timestamp, this._flags.multiplier) || value\n };\n\n if (result.value instanceof Date && !isNaN(result.value.getTime())) {\n result.errors = null;\n } else if (!options.convert) {\n result.errors = this.createError('date.strict', null, state, options);\n } else {\n var type = void 0;\n\n if (internals.isIsoDate(this._flags.format)) {\n type = 'isoDate';\n } else if (this._flags.timestamp) {\n type = 'timestamp.' + this._flags.timestamp;\n } else {\n type = 'base';\n }\n\n result.errors = this.createError('date.' + type, null, state, options);\n }\n\n return result;\n };\n\n _class.toDate = function toDate(value, format, timestamp, multiplier) {\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number' && !isNaN(value) && isFinite(value)) {\n if (typeof value === 'string' && /^[+-]?\\d+(\\.\\d+)?$/.test(value)) {\n value = parseFloat(value);\n }\n\n var date = void 0;\n\n if (format && internals.isIsoDate(format)) {\n date = format.test(value) ? new Date(value) : internals.invalidDate;\n } else if (timestamp && multiplier) {\n date = /^\\s*$/.test(value) ? internals.invalidDate : new Date(value * multiplier);\n } else {\n date = new Date(value);\n }\n\n if (!isNaN(date.getTime())) {\n return date;\n }\n }\n\n return null;\n };\n\n _class.prototype.iso = function iso() {\n if (this._flags.format === internals.isoDate) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.format = internals.isoDate;\n return obj;\n };\n\n _class.prototype.timestamp = function timestamp() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'javascript';\n var allowed = ['javascript', 'unix'];\n Hoek.assert(allowed.includes(type), '\"type\" must be one of \"' + allowed.join('\", \"') + '\"');\n\n if (this._flags.timestamp === type) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.timestamp = type;\n obj._flags.multiplier = type === 'unix' ? 1000 : 1;\n return obj;\n };\n\n _class.prototype._isIsoDate = function _isIsoDate(value) {\n return internals.isoDate.test(value);\n };\n\n return _class;\n }(Any);\n\n internals.compare = function (type, compare) {\n return function (date) {\n var isNow = date === 'now';\n var isRef = Ref.isRef(date);\n\n if (!isNow && !isRef) {\n date = internals.Date.toDate(date);\n }\n\n Hoek.assert(date, 'Invalid date format');\n return this._test(type, date, function (value, state, options) {\n var compareTo = void 0;\n\n if (isNow) {\n compareTo = Date.now();\n } else if (isRef) {\n compareTo = internals.Date.toDate(date(state.reference || state.parent, options));\n\n if (!compareTo) {\n return this.createError('date.ref', {\n ref: date.key\n }, state, options);\n }\n\n compareTo = compareTo.getTime();\n } else {\n compareTo = date.getTime();\n }\n\n if (compare(value.getTime(), compareTo)) {\n return value;\n }\n\n return this.createError('date.' + type, {\n limit: new Date(compareTo)\n }, state, options);\n });\n };\n };\n\n internals.Date.prototype.min = internals.compare('min', function (value, date) {\n return value >= date;\n });\n internals.Date.prototype.max = internals.compare('max', function (value, date) {\n return value <= date;\n });\n module.exports = new internals.Date();\n /***/\n },\n /* 12 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Hoek = __webpack_require__(0);\n\n var Topo = __webpack_require__(28);\n\n var Any = __webpack_require__(2);\n\n var Errors = __webpack_require__(6);\n\n var Cast = __webpack_require__(4); // Declare internals\n\n\n var internals = {};\n\n internals.Object = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'object';\n _this._inner.children = null;\n _this._inner.renames = [];\n _this._inner.dependencies = [];\n _this._inner.patterns = [];\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var target = value;\n var errors = [];\n\n var finish = function finish() {\n return {\n value: target,\n errors: errors.length ? errors : null\n };\n };\n\n if (typeof value === 'string' && options.convert) {\n value = internals.safeParse(value);\n }\n\n var type = this._flags.func ? 'function' : 'object';\n\n if (!value || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== type || Array.isArray(value)) {\n errors.push(this.createError(type + '.base', null, state, options));\n return finish();\n } // Skip if there are no other rules to test\n\n\n if (!this._inner.renames.length && !this._inner.dependencies.length && !this._inner.children && // null allows any keys\n !this._inner.patterns.length) {\n target = value;\n return finish();\n } // Ensure target is a local copy (parsed) or shallow copy\n\n\n if (target === value) {\n if (type === 'object') {\n target = Object.create(Object.getPrototypeOf(value));\n } else {\n target = function target() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return value.apply(this, args);\n };\n\n target.prototype = Hoek.clone(value.prototype);\n }\n\n var valueKeys = Object.keys(value);\n\n for (var i = 0; i < valueKeys.length; ++i) {\n target[valueKeys[i]] = value[valueKeys[i]];\n }\n } else {\n target = value;\n } // Rename keys\n\n\n var renamed = {};\n\n for (var _i = 0; _i < this._inner.renames.length; ++_i) {\n var rename = this._inner.renames[_i];\n\n if (rename.isRegExp) {\n var targetKeys = Object.keys(target);\n var matchedTargetKeys = [];\n\n for (var j = 0; j < targetKeys.length; ++j) {\n if (rename.from.test(targetKeys[j])) {\n matchedTargetKeys.push(targetKeys[j]);\n }\n }\n\n var allUndefined = matchedTargetKeys.every(function (key) {\n return target[key] === undefined;\n });\n\n if (rename.options.ignoreUndefined && allUndefined) {\n continue;\n }\n\n if (!rename.options.multiple && renamed[rename.to]) {\n errors.push(this.createError('object.rename.regex.multiple', {\n from: matchedTargetKeys,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(target, rename.to) && !rename.options.override && !renamed[rename.to]) {\n errors.push(this.createError('object.rename.regex.override', {\n from: matchedTargetKeys,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (allUndefined) {\n delete target[rename.to];\n } else {\n target[rename.to] = target[matchedTargetKeys[matchedTargetKeys.length - 1]];\n }\n\n renamed[rename.to] = true;\n\n if (!rename.options.alias) {\n for (var _j = 0; _j < matchedTargetKeys.length; ++_j) {\n delete target[matchedTargetKeys[_j]];\n }\n }\n } else {\n if (rename.options.ignoreUndefined && target[rename.from] === undefined) {\n continue;\n }\n\n if (!rename.options.multiple && renamed[rename.to]) {\n errors.push(this.createError('object.rename.multiple', {\n from: rename.from,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(target, rename.to) && !rename.options.override && !renamed[rename.to]) {\n errors.push(this.createError('object.rename.override', {\n from: rename.from,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (target[rename.from] === undefined) {\n delete target[rename.to];\n } else {\n target[rename.to] = target[rename.from];\n }\n\n renamed[rename.to] = true;\n\n if (!rename.options.alias) {\n delete target[rename.from];\n }\n }\n } // Validate schema\n\n\n if (!this._inner.children && // null allows any keys\n !this._inner.patterns.length && !this._inner.dependencies.length) {\n return finish();\n }\n\n var unprocessed = Hoek.mapToObject(Object.keys(target));\n\n if (this._inner.children) {\n var stripProps = [];\n\n for (var _i2 = 0; _i2 < this._inner.children.length; ++_i2) {\n var child = this._inner.children[_i2];\n var key = child.key;\n var item = target[key];\n delete unprocessed[key];\n var localState = {\n key: key,\n path: state.path.concat(key),\n parent: target,\n reference: state.reference\n };\n\n var result = child.schema._validate(item, localState, options);\n\n if (result.errors) {\n errors.push(this.createError('object.child', {\n key: key,\n child: child.schema._getLabel(key),\n reason: result.errors\n }, localState, options));\n\n if (options.abortEarly) {\n return finish();\n }\n } else {\n if (child.schema._flags.strip || result.value === undefined && result.value !== item) {\n stripProps.push(key);\n target[key] = result.finalValue;\n } else if (result.value !== undefined) {\n target[key] = result.value;\n }\n }\n }\n\n for (var _i3 = 0; _i3 < stripProps.length; ++_i3) {\n delete target[stripProps[_i3]];\n }\n } // Unknown keys\n\n\n var unprocessedKeys = Object.keys(unprocessed);\n\n if (unprocessedKeys.length && this._inner.patterns.length) {\n for (var _i4 = 0; _i4 < unprocessedKeys.length; ++_i4) {\n var _key2 = unprocessedKeys[_i4];\n var _localState = {\n key: _key2,\n path: state.path.concat(_key2),\n parent: target,\n reference: state.reference\n };\n var _item = target[_key2];\n\n for (var _j2 = 0; _j2 < this._inner.patterns.length; ++_j2) {\n var pattern = this._inner.patterns[_j2];\n\n if (pattern.regex.test(_key2)) {\n delete unprocessed[_key2];\n\n var _result = pattern.rule._validate(_item, _localState, options);\n\n if (_result.errors) {\n errors.push(this.createError('object.child', {\n key: _key2,\n child: pattern.rule._getLabel(_key2),\n reason: _result.errors\n }, _localState, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (_result.value !== undefined) {\n target[_key2] = _result.value;\n }\n }\n }\n }\n\n unprocessedKeys = Object.keys(unprocessed);\n }\n\n if ((this._inner.children || this._inner.patterns.length) && unprocessedKeys.length) {\n if (options.stripUnknown && this._flags.allowUnknown !== true || options.skipFunctions) {\n var stripUnknown = options.stripUnknown ? options.stripUnknown === true ? true : !!options.stripUnknown.objects : false;\n\n for (var _i5 = 0; _i5 < unprocessedKeys.length; ++_i5) {\n var _key3 = unprocessedKeys[_i5];\n\n if (stripUnknown) {\n delete target[_key3];\n delete unprocessed[_key3];\n } else if (typeof target[_key3] === 'function') {\n delete unprocessed[_key3];\n }\n }\n\n unprocessedKeys = Object.keys(unprocessed);\n }\n\n if (unprocessedKeys.length && (this._flags.allowUnknown !== undefined ? !this._flags.allowUnknown : !options.allowUnknown)) {\n for (var _i6 = 0; _i6 < unprocessedKeys.length; ++_i6) {\n var unprocessedKey = unprocessedKeys[_i6];\n errors.push(this.createError('object.allowUnknown', {\n child: unprocessedKey\n }, {\n key: unprocessedKey,\n path: state.path.concat(unprocessedKey)\n }, options, {}));\n }\n }\n } // Validate dependencies\n\n\n for (var _i7 = 0; _i7 < this._inner.dependencies.length; ++_i7) {\n var dep = this._inner.dependencies[_i7];\n var err = internals[dep.type].call(this, dep.key !== null && target[dep.key], dep.peers, target, {\n key: dep.key,\n path: dep.key === null ? state.path : state.path.concat(dep.key)\n }, options);\n\n if (err instanceof Errors.Err) {\n errors.push(err);\n\n if (options.abortEarly) {\n return finish();\n }\n }\n }\n\n return finish();\n };\n\n _class.prototype.keys = function keys(schema) {\n Hoek.assert(schema === null || schema === undefined || (typeof schema === 'undefined' ? 'undefined' : _typeof(schema)) === 'object', 'Object schema must be a valid object');\n Hoek.assert(!schema || !(schema instanceof Any), 'Object schema cannot be a joi schema');\n var obj = this.clone();\n\n if (!schema) {\n obj._inner.children = null;\n return obj;\n }\n\n var children = Object.keys(schema);\n\n if (!children.length) {\n obj._inner.children = [];\n return obj;\n }\n\n var topo = new Topo();\n\n if (obj._inner.children) {\n for (var i = 0; i < obj._inner.children.length; ++i) {\n var child = obj._inner.children[i]; // Only add the key if we are not going to replace it later\n\n if (!children.includes(child.key)) {\n topo.add(child, {\n after: child._refs,\n group: child.key\n });\n }\n }\n }\n\n for (var _i8 = 0; _i8 < children.length; ++_i8) {\n var key = children[_i8];\n var _child = schema[key];\n\n try {\n var cast = Cast.schema(this._currentJoi, _child);\n topo.add({\n key: key,\n schema: cast\n }, {\n after: cast._refs,\n group: key\n });\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.path = key + '.' + castErr.path;\n } else {\n castErr.path = key;\n }\n\n throw castErr;\n }\n }\n\n obj._inner.children = topo.nodes;\n return obj;\n };\n\n _class.prototype.unknown = function unknown(allow) {\n var value = allow !== false;\n\n if (this._flags.allowUnknown === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.allowUnknown = value;\n return obj;\n };\n\n _class.prototype.length = function length(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('length', limit, function (value, state, options) {\n if (Object.keys(value).length === limit) {\n return value;\n }\n\n return this.createError('object.length', {\n limit: limit\n }, state, options);\n });\n };\n\n _class.prototype.min = function min(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('min', limit, function (value, state, options) {\n if (Object.keys(value).length >= limit) {\n return value;\n }\n\n return this.createError('object.min', {\n limit: limit\n }, state, options);\n });\n };\n\n _class.prototype.max = function max(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('max', limit, function (value, state, options) {\n if (Object.keys(value).length <= limit) {\n return value;\n }\n\n return this.createError('object.max', {\n limit: limit\n }, state, options);\n });\n };\n\n _class.prototype.pattern = function pattern(_pattern, schema) {\n Hoek.assert(_pattern instanceof RegExp, 'Invalid regular expression');\n Hoek.assert(schema !== undefined, 'Invalid rule');\n _pattern = new RegExp(_pattern.source, _pattern.ignoreCase ? 'i' : undefined); // Future version should break this and forbid unsupported regex flags\n\n try {\n schema = Cast.schema(this._currentJoi, schema);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.message = castErr.message + '(' + castErr.path + ')';\n }\n\n throw castErr;\n }\n\n var obj = this.clone();\n\n obj._inner.patterns.push({\n regex: _pattern,\n rule: schema\n });\n\n return obj;\n };\n\n _class.prototype.schema = function schema() {\n return this._test('schema', null, function (value, state, options) {\n if (value instanceof Any) {\n return value;\n }\n\n return this.createError('object.schema', null, state, options);\n });\n };\n\n _class.prototype[\"with\"] = function _with(key, peers) {\n return this._dependency('with', key, peers);\n };\n\n _class.prototype.without = function without(key, peers) {\n return this._dependency('without', key, peers);\n };\n\n _class.prototype.xor = function xor() {\n for (var _len2 = arguments.length, peers = Array(_len2), _key4 = 0; _key4 < _len2; _key4++) {\n peers[_key4] = arguments[_key4];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('xor', null, peers);\n };\n\n _class.prototype.or = function or() {\n for (var _len3 = arguments.length, peers = Array(_len3), _key5 = 0; _key5 < _len3; _key5++) {\n peers[_key5] = arguments[_key5];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('or', null, peers);\n };\n\n _class.prototype.and = function and() {\n for (var _len4 = arguments.length, peers = Array(_len4), _key6 = 0; _key6 < _len4; _key6++) {\n peers[_key6] = arguments[_key6];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('and', null, peers);\n };\n\n _class.prototype.nand = function nand() {\n for (var _len5 = arguments.length, peers = Array(_len5), _key7 = 0; _key7 < _len5; _key7++) {\n peers[_key7] = arguments[_key7];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('nand', null, peers);\n };\n\n _class.prototype.requiredKeys = function requiredKeys() {\n for (var _len6 = arguments.length, children = Array(_len6), _key8 = 0; _key8 < _len6; _key8++) {\n children[_key8] = arguments[_key8];\n }\n\n children = Hoek.flatten(children);\n return this.applyFunctionToChildren(children, 'required');\n };\n\n _class.prototype.optionalKeys = function optionalKeys() {\n for (var _len7 = arguments.length, children = Array(_len7), _key9 = 0; _key9 < _len7; _key9++) {\n children[_key9] = arguments[_key9];\n }\n\n children = Hoek.flatten(children);\n return this.applyFunctionToChildren(children, 'optional');\n };\n\n _class.prototype.forbiddenKeys = function forbiddenKeys() {\n for (var _len8 = arguments.length, children = Array(_len8), _key10 = 0; _key10 < _len8; _key10++) {\n children[_key10] = arguments[_key10];\n }\n\n children = Hoek.flatten(children);\n return this.applyFunctionToChildren(children, 'forbidden');\n };\n\n _class.prototype.rename = function rename(from, to, options) {\n Hoek.assert(typeof from === 'string' || from instanceof RegExp, 'Rename missing the from argument');\n Hoek.assert(typeof to === 'string', 'Rename missing the to argument');\n Hoek.assert(to !== from, 'Cannot rename key to same name:', from);\n\n for (var i = 0; i < this._inner.renames.length; ++i) {\n Hoek.assert(this._inner.renames[i].from !== from, 'Cannot rename the same key multiple times');\n }\n\n var obj = this.clone();\n\n obj._inner.renames.push({\n from: from,\n to: to,\n options: Hoek.applyToDefaults(internals.renameDefaults, options || {}),\n isRegExp: from instanceof RegExp\n });\n\n return obj;\n };\n\n _class.prototype.applyFunctionToChildren = function applyFunctionToChildren(children, fn, args, root) {\n children = [].concat(children);\n Hoek.assert(children.length > 0, 'expected at least one children');\n var groupedChildren = internals.groupChildren(children);\n var obj = void 0;\n\n if ('' in groupedChildren) {\n obj = this[fn].apply(this, args);\n delete groupedChildren[''];\n } else {\n obj = this.clone();\n }\n\n if (obj._inner.children) {\n root = root ? root + '.' : '';\n\n for (var i = 0; i < obj._inner.children.length; ++i) {\n var child = obj._inner.children[i];\n var group = groupedChildren[child.key];\n\n if (group) {\n obj._inner.children[i] = {\n key: child.key,\n _refs: child._refs,\n schema: child.schema.applyFunctionToChildren(group, fn, args, root + child.key)\n };\n delete groupedChildren[child.key];\n }\n }\n }\n\n var remaining = Object.keys(groupedChildren);\n Hoek.assert(remaining.length === 0, 'unknown key(s)', remaining.join(', '));\n return obj;\n };\n\n _class.prototype._dependency = function _dependency(type, key, peers) {\n peers = [].concat(peers);\n\n for (var i = 0; i < peers.length; ++i) {\n Hoek.assert(typeof peers[i] === 'string', type, 'peers must be a string or array of strings');\n }\n\n var obj = this.clone();\n\n obj._inner.dependencies.push({\n type: type,\n key: key,\n peers: peers\n });\n\n return obj;\n };\n\n _class.prototype.describe = function describe(shallow) {\n var description = Any.prototype.describe.call(this);\n\n if (description.rules) {\n for (var i = 0; i < description.rules.length; ++i) {\n var rule = description.rules[i]; // Coverage off for future-proof descriptions, only object().assert() is use right now\n\n if (\n /* $lab:coverage:off$ */\n rule.arg && _typeof(rule.arg) === 'object' && rule.arg.schema && rule.arg.ref\n /* $lab:coverage:on$ */\n ) {\n rule.arg = {\n schema: rule.arg.schema.describe(),\n ref: rule.arg.ref.toString()\n };\n }\n }\n }\n\n if (this._inner.children && !shallow) {\n description.children = {};\n\n for (var _i9 = 0; _i9 < this._inner.children.length; ++_i9) {\n var child = this._inner.children[_i9];\n description.children[child.key] = child.schema.describe();\n }\n }\n\n if (this._inner.dependencies.length) {\n description.dependencies = Hoek.clone(this._inner.dependencies);\n }\n\n if (this._inner.patterns.length) {\n description.patterns = [];\n\n for (var _i10 = 0; _i10 < this._inner.patterns.length; ++_i10) {\n var pattern = this._inner.patterns[_i10];\n description.patterns.push({\n regex: pattern.regex.toString(),\n rule: pattern.rule.describe()\n });\n }\n }\n\n if (this._inner.renames.length > 0) {\n description.renames = Hoek.clone(this._inner.renames);\n }\n\n return description;\n };\n\n _class.prototype.assert = function assert(ref, schema, message) {\n ref = Cast.ref(ref);\n Hoek.assert(ref.isContext || ref.depth > 1, 'Cannot use assertions for root level references - use direct key rules instead');\n message = message || 'pass the assertion test';\n\n try {\n schema = Cast.schema(this._currentJoi, schema);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.message = castErr.message + '(' + castErr.path + ')';\n }\n\n throw castErr;\n }\n\n var key = ref.path[ref.path.length - 1];\n var path = ref.path.join('.');\n return this._test('assert', {\n schema: schema,\n ref: ref\n }, function (value, state, options) {\n var result = schema._validate(ref(value), null, options, value);\n\n if (!result.errors) {\n return value;\n }\n\n var localState = Hoek.merge({}, state);\n localState.key = key;\n localState.path = ref.path;\n return this.createError('object.assert', {\n ref: path,\n message: message\n }, localState, options);\n });\n };\n\n _class.prototype.type = function type(constructor) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : constructor.name;\n Hoek.assert(typeof constructor === 'function', 'type must be a constructor function');\n var typeData = {\n name: name,\n ctor: constructor\n };\n return this._test('type', typeData, function (value, state, options) {\n if (value instanceof constructor) {\n return value;\n }\n\n return this.createError('object.type', {\n type: typeData.name\n }, state, options);\n });\n };\n\n return _class;\n }(Any);\n\n internals.safeParse = function (value) {\n try {\n return JSON.parse(value);\n } catch (parseErr) {}\n\n return value;\n };\n\n internals.renameDefaults = {\n alias: false,\n // Keep old value in place\n multiple: false,\n // Allow renaming multiple keys into the same target\n override: false // Overrides an existing key\n\n };\n\n internals.groupChildren = function (children) {\n children.sort();\n var grouped = {};\n\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n Hoek.assert(typeof child === 'string', 'children must be strings');\n var group = child.split('.')[0];\n var childGroup = grouped[group] = grouped[group] || [];\n childGroup.push(child.substring(group.length + 1));\n }\n\n return grouped;\n };\n\n internals.keysToLabels = function (schema, keys) {\n var children = schema._inner.children;\n\n if (!children) {\n return keys;\n }\n\n var findLabel = function findLabel(key) {\n var matchingChild = children.find(function (child) {\n return child.key === key;\n });\n return matchingChild ? matchingChild.schema._getLabel(key) : key;\n };\n\n if (Array.isArray(keys)) {\n return keys.map(findLabel);\n }\n\n return findLabel(keys);\n };\n\n internals[\"with\"] = function (value, peers, parent, state, options) {\n if (value === undefined) {\n return value;\n }\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (!Object.prototype.hasOwnProperty.call(parent, peer) || parent[peer] === undefined) {\n return this.createError('object.with', {\n main: state.key,\n mainWithLabel: internals.keysToLabels(this, state.key),\n peer: peer,\n peerWithLabel: internals.keysToLabels(this, peer)\n }, state, options);\n }\n }\n\n return value;\n };\n\n internals.without = function (value, peers, parent, state, options) {\n if (value === undefined) {\n return value;\n }\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n return this.createError('object.without', {\n main: state.key,\n mainWithLabel: internals.keysToLabels(this, state.key),\n peer: peer,\n peerWithLabel: internals.keysToLabels(this, peer)\n }, state, options);\n }\n }\n\n return value;\n };\n\n internals.xor = function (value, peers, parent, state, options) {\n var present = [];\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n present.push(peer);\n }\n }\n\n if (present.length === 1) {\n return value;\n }\n\n var context = {\n peers: peers,\n peersWithLabels: internals.keysToLabels(this, peers)\n };\n\n if (present.length === 0) {\n return this.createError('object.missing', context, state, options);\n }\n\n return this.createError('object.xor', context, state, options);\n };\n\n internals.or = function (value, peers, parent, state, options) {\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n return value;\n }\n }\n\n return this.createError('object.missing', {\n peers: peers,\n peersWithLabels: internals.keysToLabels(this, peers)\n }, state, options);\n };\n\n internals.and = function (value, peers, parent, state, options) {\n var missing = [];\n var present = [];\n var count = peers.length;\n\n for (var i = 0; i < count; ++i) {\n var peer = peers[i];\n\n if (!Object.prototype.hasOwnProperty.call(parent, peer) || parent[peer] === undefined) {\n missing.push(peer);\n } else {\n present.push(peer);\n }\n }\n\n var aon = missing.length === count || present.length === count;\n\n if (!aon) {\n return this.createError('object.and', {\n present: present,\n presentWithLabels: internals.keysToLabels(this, present),\n missing: missing,\n missingWithLabels: internals.keysToLabels(this, missing)\n }, state, options);\n }\n };\n\n internals.nand = function (value, peers, parent, state, options) {\n var present = [];\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n present.push(peer);\n }\n }\n\n var values = Hoek.clone(peers);\n var main = values.splice(0, 1)[0];\n var allPresent = present.length === peers.length;\n return allPresent ? this.createError('object.nand', {\n main: main,\n mainWithLabel: internals.keysToLabels(this, main),\n peers: values,\n peersWithLabels: internals.keysToLabels(this, values)\n }, state, options) : null;\n };\n\n module.exports = new internals.Object();\n /***/\n },\n /* 13 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n // Delcare internals\n\n var internals = {\n rfc3986: {}\n };\n\n internals.generate = function () {\n /**\n * elements separated by forward slash (\"/\") are alternatives.\n */\n var or = '|';\n /**\n * Rule to support zero-padded addresses.\n */\n\n var zeroPad = '0?';\n /**\n * DIGIT = %x30-39 ; 0-9\n */\n\n var digit = '0-9';\n var digitOnly = '[' + digit + ']';\n /**\n * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n */\n\n var alpha = 'a-zA-Z';\n var alphaOnly = '[' + alpha + ']';\n /**\n * IPv4\n * cidr = DIGIT ; 0-9\n * / %x31-32 DIGIT ; 10-29\n * / \"3\" %x30-32 ; 30-32\n */\n\n internals.rfc3986.ipv4Cidr = digitOnly + or + '[1-2]' + digitOnly + or + '3' + '[0-2]';\n /**\n * IPv6\n * cidr = DIGIT ; 0-9\n * / %x31-39 DIGIT ; 10-99\n * / \"1\" %x0-1 DIGIT ; 100-119\n * / \"12\" %x0-8 ; 120-128\n */\n\n internals.rfc3986.ipv6Cidr = '(?:' + zeroPad + zeroPad + digitOnly + or + zeroPad + '[1-9]' + digitOnly + or + '1' + '[01]' + digitOnly + or + '12[0-8])';\n /**\n * HEXDIG = DIGIT / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\"\n */\n\n var hexDigit = digit + 'A-Fa-f';\n var hexDigitOnly = '[' + hexDigit + ']';\n /**\n * unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n */\n\n var unreserved = alpha + digit + '-\\\\._~';\n /**\n * sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n */\n\n var subDelims = '!\\\\$&\\'\\\\(\\\\)\\\\*\\\\+,;=';\n /**\n * pct-encoded = \"%\" HEXDIG HEXDIG\n */\n\n var pctEncoded = '%' + hexDigit;\n /**\n * pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n */\n\n var pchar = unreserved + pctEncoded + subDelims + ':@';\n var pcharOnly = '[' + pchar + ']';\n /**\n * dec-octet = DIGIT ; 0-9\n * / %x31-39 DIGIT ; 10-99\n * / \"1\" 2DIGIT ; 100-199\n * / \"2\" %x30-34 DIGIT ; 200-249\n * / \"25\" %x30-35 ; 250-255\n */\n\n var decOctect = '(?:' + zeroPad + zeroPad + digitOnly + or + zeroPad + '[1-9]' + digitOnly + or + '1' + digitOnly + digitOnly + or + '2' + '[0-4]' + digitOnly + or + '25' + '[0-5])';\n /**\n * IPv4address = dec-octet \".\" dec-octet \".\" dec-octet \".\" dec-octet\n */\n\n internals.rfc3986.IPv4address = '(?:' + decOctect + '\\\\.){3}' + decOctect;\n /**\n * h16 = 1*4HEXDIG ; 16 bits of address represented in hexadecimal\n * ls32 = ( h16 \":\" h16 ) / IPv4address ; least-significant 32 bits of address\n * IPv6address = 6( h16 \":\" ) ls32\n * / \"::\" 5( h16 \":\" ) ls32\n * / [ h16 ] \"::\" 4( h16 \":\" ) ls32\n * / [ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n * / [ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n * / [ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n * / [ *4( h16 \":\" ) h16 ] \"::\" ls32\n * / [ *5( h16 \":\" ) h16 ] \"::\" h16\n * / [ *6( h16 \":\" ) h16 ] \"::\"\n */\n\n var h16 = hexDigitOnly + '{1,4}';\n var ls32 = '(?:' + h16 + ':' + h16 + '|' + internals.rfc3986.IPv4address + ')';\n var IPv6SixHex = '(?:' + h16 + ':){6}' + ls32;\n var IPv6FiveHex = '::(?:' + h16 + ':){5}' + ls32;\n var IPv6FourHex = '(?:' + h16 + ')?::(?:' + h16 + ':){4}' + ls32;\n var IPv6ThreeHex = '(?:(?:' + h16 + ':){0,1}' + h16 + ')?::(?:' + h16 + ':){3}' + ls32;\n var IPv6TwoHex = '(?:(?:' + h16 + ':){0,2}' + h16 + ')?::(?:' + h16 + ':){2}' + ls32;\n var IPv6OneHex = '(?:(?:' + h16 + ':){0,3}' + h16 + ')?::' + h16 + ':' + ls32;\n var IPv6NoneHex = '(?:(?:' + h16 + ':){0,4}' + h16 + ')?::' + ls32;\n var IPv6NoneHex2 = '(?:(?:' + h16 + ':){0,5}' + h16 + ')?::' + h16;\n var IPv6NoneHex3 = '(?:(?:' + h16 + ':){0,6}' + h16 + ')?::';\n internals.rfc3986.IPv6address = '(?:' + IPv6SixHex + or + IPv6FiveHex + or + IPv6FourHex + or + IPv6ThreeHex + or + IPv6TwoHex + or + IPv6OneHex + or + IPv6NoneHex + or + IPv6NoneHex2 + or + IPv6NoneHex3 + ')';\n /**\n * IPvFuture = \"v\" 1*HEXDIG \".\" 1*( unreserved / sub-delims / \":\" )\n */\n\n internals.rfc3986.IPvFuture = 'v' + hexDigitOnly + '+\\\\.[' + unreserved + subDelims + ':]+';\n /**\n * scheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\n */\n\n internals.rfc3986.scheme = alphaOnly + '[' + alpha + digit + '+-\\\\.]*';\n /**\n * userinfo = *( unreserved / pct-encoded / sub-delims / \":\" )\n */\n\n var userinfo = '[' + unreserved + pctEncoded + subDelims + ':]*';\n /**\n * IP-literal = \"[\" ( IPv6address / IPvFuture ) \"]\"\n */\n\n var IPLiteral = '\\\\[(?:' + internals.rfc3986.IPv6address + or + internals.rfc3986.IPvFuture + ')\\\\]';\n /**\n * reg-name = *( unreserved / pct-encoded / sub-delims )\n */\n\n var regName = '[' + unreserved + pctEncoded + subDelims + ']{0,255}';\n /**\n * host = IP-literal / IPv4address / reg-name\n */\n\n var host = '(?:' + IPLiteral + or + internals.rfc3986.IPv4address + or + regName + ')';\n /**\n * port = *DIGIT\n */\n\n var port = digitOnly + '*';\n /**\n * authority = [ userinfo \"@\" ] host [ \":\" port ]\n */\n\n var authority = '(?:' + userinfo + '@)?' + host + '(?::' + port + ')?';\n /**\n * segment = *pchar\n * segment-nz = 1*pchar\n * path = path-abempty ; begins with \"/\" or is empty\n * / path-absolute ; begins with \"/\" but not \"//\"\n * / path-noscheme ; begins with a non-colon segment\n * / path-rootless ; begins with a segment\n * / path-empty ; zero characters\n * path-abempty = *( \"/\" segment )\n * path-absolute = \"/\" [ segment-nz *( \"/\" segment ) ]\n * path-rootless = segment-nz *( \"/\" segment )\n */\n\n var segment = pcharOnly + '*';\n var segmentNz = pcharOnly + '+';\n var segmentNzNc = '[' + unreserved + pctEncoded + subDelims + '@' + ']+';\n var pathEmpty = '';\n var pathAbEmpty = '(?:\\\\/' + segment + ')*';\n var pathAbsolute = '\\\\/(?:' + segmentNz + pathAbEmpty + ')?';\n var pathRootless = segmentNz + pathAbEmpty;\n var pathNoScheme = segmentNzNc + pathAbEmpty;\n /**\n * hier-part = \"//\" authority path\n */\n\n internals.rfc3986.hierPart = '(?:' + '(?:\\\\/\\\\/' + authority + pathAbEmpty + ')' + or + pathAbsolute + or + pathRootless + ')';\n /**\n * relative-part = \"//\" authority path-abempty\n * / path-absolute\n * / path-noscheme\n * / path-empty\n */\n\n internals.rfc3986.relativeRef = '(?:' + '(?:\\\\/\\\\/' + authority + pathAbEmpty + ')' + or + pathAbsolute + or + pathNoScheme + or + pathEmpty + ')';\n /**\n * query = *( pchar / \"/\" / \"?\" )\n */\n\n internals.rfc3986.query = '[' + pchar + '\\\\/\\\\?]*(?=#|$)'; //Finish matching either at the fragment part or end of the line.\n\n /**\n * fragment = *( pchar / \"/\" / \"?\" )\n */\n\n internals.rfc3986.fragment = '[' + pchar + '\\\\/\\\\?]*';\n };\n\n internals.generate();\n module.exports = internals.rfc3986;\n /***/\n },\n /* 14 */\n\n /***/\n function (module, exports) {\n /***/\n },\n /* 15 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n // Declare internals\n var internals = {};\n\n exports.escapeJavaScript = function (input) {\n if (!input) {\n return '';\n }\n\n var escaped = '';\n\n for (var i = 0; i < input.length; ++i) {\n var charCode = input.charCodeAt(i);\n\n if (internals.isSafe(charCode)) {\n escaped += input[i];\n } else {\n escaped += internals.escapeJavaScriptChar(charCode);\n }\n }\n\n return escaped;\n };\n\n exports.escapeHtml = function (input) {\n if (!input) {\n return '';\n }\n\n var escaped = '';\n\n for (var i = 0; i < input.length; ++i) {\n var charCode = input.charCodeAt(i);\n\n if (internals.isSafe(charCode)) {\n escaped += input[i];\n } else {\n escaped += internals.escapeHtmlChar(charCode);\n }\n }\n\n return escaped;\n };\n\n exports.escapeJson = function (input) {\n if (!input) {\n return '';\n }\n\n var lessThan = 0x3C;\n var greaterThan = 0x3E;\n var andSymbol = 0x26;\n var lineSeperator = 0x2028; // replace method\n\n var charCode = void 0;\n return input.replace(/[<>&\\u2028\\u2029]/g, function (match) {\n charCode = match.charCodeAt(0);\n\n if (charCode === lessThan) {\n return \"\\\\u003c\";\n } else if (charCode === greaterThan) {\n return \"\\\\u003e\";\n } else if (charCode === andSymbol) {\n return \"\\\\u0026\";\n } else if (charCode === lineSeperator) {\n return \"\\\\u2028\";\n }\n\n return \"\\\\u2029\";\n });\n };\n\n internals.escapeJavaScriptChar = function (charCode) {\n if (charCode >= 256) {\n return \"\\\\u\" + internals.padLeft('' + charCode, 4);\n }\n\n var hexValue = new Buffer(String.fromCharCode(charCode), 'ascii').toString('hex');\n return '\\\\x' + internals.padLeft(hexValue, 2);\n };\n\n internals.escapeHtmlChar = function (charCode) {\n var namedEscape = internals.namedHtml[charCode];\n\n if (typeof namedEscape !== 'undefined') {\n return namedEscape;\n }\n\n if (charCode >= 256) {\n return '&#' + charCode + ';';\n }\n\n var hexValue = new Buffer(String.fromCharCode(charCode), 'ascii').toString('hex');\n return '&#x' + internals.padLeft(hexValue, 2) + ';';\n };\n\n internals.padLeft = function (str, len) {\n while (str.length < len) {\n str = '0' + str;\n }\n\n return str;\n };\n\n internals.isSafe = function (charCode) {\n return typeof internals.safeCharCodes[charCode] !== 'undefined';\n };\n\n internals.namedHtml = {\n '38': '&',\n '60': '<',\n '62': '>',\n '34': '"',\n '160': ' ',\n '162': '¢',\n '163': '£',\n '164': '¤',\n '169': '©',\n '174': '®'\n };\n\n internals.safeCharCodes = function () {\n var safe = {};\n\n for (var i = 32; i < 123; ++i) {\n if (i >= 97 || // a-z\n i >= 65 && i <= 90 || // A-Z\n i >= 48 && i <= 57 || // 0-9\n i === 32 || // space\n i === 46 || // .\n i === 44 || // ,\n i === 45 || // -\n i === 58 || // :\n i === 95) {\n // _\n safe[i] = null;\n }\n }\n\n return safe;\n }();\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 16 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer, process) {\n // Load modules\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var Punycode = __webpack_require__(35); // Declare internals\n\n\n var internals = {\n hasOwn: Object.prototype.hasOwnProperty,\n indexOf: Array.prototype.indexOf,\n defaultThreshold: 16,\n maxIPv6Groups: 8,\n categories: {\n valid: 1,\n dnsWarn: 7,\n rfc5321: 15,\n cfws: 31,\n deprecated: 63,\n rfc5322: 127,\n error: 255\n },\n diagnoses: {\n // Address is valid\n valid: 0,\n // Address is valid for SMTP but has unusual elements\n rfc5321TLD: 9,\n rfc5321TLDNumeric: 10,\n rfc5321QuotedString: 11,\n rfc5321AddressLiteral: 12,\n // Address is valid for message, but must be modified for envelope\n cfwsComment: 17,\n cfwsFWS: 18,\n // Address contains deprecated elements, but may still be valid in some contexts\n deprecatedLocalPart: 33,\n deprecatedFWS: 34,\n deprecatedQTEXT: 35,\n deprecatedQP: 36,\n deprecatedComment: 37,\n deprecatedCTEXT: 38,\n deprecatedIPv6: 39,\n deprecatedCFWSNearAt: 49,\n // Address is only valid according to broad definition in RFC 5322, but is otherwise invalid\n rfc5322Domain: 65,\n rfc5322TooLong: 66,\n rfc5322LocalTooLong: 67,\n rfc5322DomainTooLong: 68,\n rfc5322LabelTooLong: 69,\n rfc5322DomainLiteral: 70,\n rfc5322DomainLiteralOBSDText: 71,\n rfc5322IPv6GroupCount: 72,\n rfc5322IPv62x2xColon: 73,\n rfc5322IPv6BadCharacter: 74,\n rfc5322IPv6MaxGroups: 75,\n rfc5322IPv6ColonStart: 76,\n rfc5322IPv6ColonEnd: 77,\n // Address is invalid for any purpose\n errExpectingDTEXT: 129,\n errNoLocalPart: 130,\n errNoDomain: 131,\n errConsecutiveDots: 132,\n errATEXTAfterCFWS: 133,\n errATEXTAfterQS: 134,\n errATEXTAfterDomainLiteral: 135,\n errExpectingQPair: 136,\n errExpectingATEXT: 137,\n errExpectingQTEXT: 138,\n errExpectingCTEXT: 139,\n errBackslashEnd: 140,\n errDotStart: 141,\n errDotEnd: 142,\n errDomainHyphenStart: 143,\n errDomainHyphenEnd: 144,\n errUnclosedQuotedString: 145,\n errUnclosedComment: 146,\n errUnclosedDomainLiteral: 147,\n errFWSCRLFx2: 148,\n errFWSCRLFEnd: 149,\n errCRNoLF: 150,\n errUnknownTLD: 160,\n errDomainTooShort: 161\n },\n components: {\n localpart: 0,\n domain: 1,\n literal: 2,\n contextComment: 3,\n contextFWS: 4,\n contextQuotedString: 5,\n contextQuotedPair: 6\n }\n };\n\n internals.specials = function () {\n var specials = '()<>[]:;@\\\\,.\"'; // US-ASCII visible characters not valid for atext (http://tools.ietf.org/html/rfc5322#section-3.2.3)\n\n var lookup = new Array(0x100);\n lookup.fill(false);\n\n for (var i = 0; i < specials.length; ++i) {\n lookup[specials.codePointAt(i)] = true;\n }\n\n return function (code) {\n return lookup[code];\n };\n }();\n\n internals.c0Controls = function () {\n var lookup = new Array(0x100);\n lookup.fill(false); // add C0 control characters\n\n for (var i = 0; i < 33; ++i) {\n lookup[i] = true;\n }\n\n return function (code) {\n return lookup[code];\n };\n }();\n\n internals.c1Controls = function () {\n var lookup = new Array(0x100);\n lookup.fill(false); // add C1 control characters\n\n for (var i = 127; i < 160; ++i) {\n lookup[i] = true;\n }\n\n return function (code) {\n return lookup[code];\n };\n }();\n\n internals.regex = {\n ipV4: /\\b(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipV6: /^[a-fA-F\\d]{0,4}$/\n }; // $lab:coverage:off$\n\n internals.nulNormalize = function (email) {\n var emailPieces = email.split('\\0');\n emailPieces = emailPieces.map(function (string) {\n return string.normalize('NFC');\n });\n return emailPieces.join('\\0');\n }; // $lab:coverage:on$\n\n\n internals.checkIpV6 = function (items) {\n return items.every(function (value) {\n return internals.regex.ipV6.test(value);\n });\n };\n\n internals.validDomain = function (tldAtom, options) {\n if (options.tldBlacklist) {\n if (Array.isArray(options.tldBlacklist)) {\n return internals.indexOf.call(options.tldBlacklist, tldAtom) === -1;\n }\n\n return !internals.hasOwn.call(options.tldBlacklist, tldAtom);\n }\n\n if (Array.isArray(options.tldWhitelist)) {\n return internals.indexOf.call(options.tldWhitelist, tldAtom) !== -1;\n }\n\n return internals.hasOwn.call(options.tldWhitelist, tldAtom);\n };\n /**\n * Check that an email address conforms to RFCs 5321, 5322, 6530 and others\n *\n * We distinguish clearly between a Mailbox as defined by RFC 5321 and an\n * addr-spec as defined by RFC 5322. Depending on the context, either can be\n * regarded as a valid email address. The RFC 5321 Mailbox specification is\n * more restrictive (comments, white space and obsolete forms are not allowed).\n *\n * @param {string} email The email address to check. See README for specifics.\n * @param {Object} options The (optional) options:\n * {*} errorLevel Determines the boundary between valid and invalid\n * addresses.\n * {*} tldBlacklist The set of domains to consider invalid.\n * {*} tldWhitelist The set of domains to consider valid.\n * {*} minDomainAtoms The minimum number of domain atoms which must be present\n * for the address to be valid.\n * @param {function(number|boolean)} callback The (optional) callback handler.\n * @return {*}\n */\n\n\n exports.validate = internals.validate = function (email, options, callback) {\n options = options || {};\n email = internals.normalize(email);\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (typeof callback !== 'function') {\n callback = null;\n }\n\n var diagnose = void 0;\n var threshold = void 0;\n\n if (typeof options.errorLevel === 'number') {\n diagnose = true;\n threshold = options.errorLevel;\n } else {\n diagnose = !!options.errorLevel;\n threshold = internals.diagnoses.valid;\n }\n\n if (options.tldWhitelist) {\n if (typeof options.tldWhitelist === 'string') {\n options.tldWhitelist = [options.tldWhitelist];\n } else if (_typeof(options.tldWhitelist) !== 'object') {\n throw new TypeError('expected array or object tldWhitelist');\n }\n }\n\n if (options.tldBlacklist) {\n if (typeof options.tldBlacklist === 'string') {\n options.tldBlacklist = [options.tldBlacklist];\n } else if (_typeof(options.tldBlacklist) !== 'object') {\n throw new TypeError('expected array or object tldBlacklist');\n }\n }\n\n if (options.minDomainAtoms && (options.minDomainAtoms !== (+options.minDomainAtoms | 0) || options.minDomainAtoms < 0)) {\n throw new TypeError('expected positive integer minDomainAtoms');\n }\n\n var maxResult = internals.diagnoses.valid;\n\n var updateResult = function updateResult(value) {\n if (value > maxResult) {\n maxResult = value;\n }\n };\n\n var context = {\n now: internals.components.localpart,\n prev: internals.components.localpart,\n stack: [internals.components.localpart]\n };\n var prevToken = '';\n var parseData = {\n local: '',\n domain: ''\n };\n var atomData = {\n locals: [''],\n domains: ['']\n };\n var elementCount = 0;\n var elementLength = 0;\n var crlfCount = 0;\n var charCode = void 0;\n var hyphenFlag = false;\n var assertEnd = false;\n var emailLength = email.length;\n var token = void 0; // Token is used outside the loop, must declare similarly\n\n for (var i = 0; i < emailLength; i += token.length) {\n // Utilize codepoints to account for Unicode surrogate pairs\n token = String.fromCodePoint(email.codePointAt(i));\n\n switch (context.now) {\n // Local-part\n case internals.components.localpart:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // local-part = dot-atom / quoted-string / obs-local-part\n //\n // dot-atom = [CFWS] dot-atom-text [CFWS]\n //\n // dot-atom-text = 1*atext *(\".\" 1*atext)\n //\n // quoted-string = [CFWS]\n // DQUOTE *([FWS] qcontent) [FWS] DQUOTE\n // [CFWS]\n //\n // obs-local-part = word *(\".\" word)\n //\n // word = atom / quoted-string\n //\n // atom = [CFWS] 1*atext [CFWS]\n switch (token) {\n // Comment\n case '(':\n if (elementLength === 0) {\n // Comments are OK at the beginning of an element\n updateResult(elementCount === 0 ? internals.diagnoses.cfwsComment : internals.diagnoses.deprecatedComment);\n } else {\n updateResult(internals.diagnoses.cfwsComment); // Cannot start a comment in an element, should be end\n\n assertEnd = true;\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextComment;\n break;\n // Next dot-atom element\n\n case '.':\n if (elementLength === 0) {\n // Another dot, already?\n updateResult(elementCount === 0 ? internals.diagnoses.errDotStart : internals.diagnoses.errConsecutiveDots);\n } else {\n // The entire local-part can be a quoted string for RFC 5321; if one atom is quoted it's an RFC 5322 obsolete form\n if (assertEnd) {\n updateResult(internals.diagnoses.deprecatedLocalPart);\n } // CFWS & quoted strings are OK again now we're at the beginning of an element (although they are obsolete forms)\n\n\n assertEnd = false;\n elementLength = 0;\n ++elementCount;\n parseData.local += token;\n atomData.locals[elementCount] = '';\n }\n\n break;\n // Quoted string\n\n case '\"':\n if (elementLength === 0) {\n // The entire local-part can be a quoted string for RFC 5321; if one atom is quoted it's an RFC 5322 obsolete form\n updateResult(elementCount === 0 ? internals.diagnoses.rfc5321QuotedString : internals.diagnoses.deprecatedLocalPart);\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8'); // Quoted string must be the entire element\n\n assertEnd = true;\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedString;\n } else {\n updateResult(internals.diagnoses.errExpectingATEXT);\n }\n\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n if (elementLength === 0) {\n updateResult(elementCount === 0 ? internals.diagnoses.cfwsFWS : internals.diagnoses.deprecatedFWS);\n } else {\n // We can't start FWS in the middle of an element, better be end\n assertEnd = true;\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n\n case '@':\n // At this point we should have a valid local-part\n // $lab:coverage:off$\n if (context.stack.length !== 1) {\n throw new Error('unexpected item on context stack');\n } // $lab:coverage:on$\n\n\n if (parseData.local.length === 0) {\n // Fatal error\n updateResult(internals.diagnoses.errNoLocalPart);\n } else if (elementLength === 0) {\n // Fatal error\n updateResult(internals.diagnoses.errDotEnd);\n } // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.1 the maximum total length of a user name or other local-part is 64\n // octets\n else if (Buffer.byteLength(parseData.local, 'utf8') > 64) {\n updateResult(internals.diagnoses.rfc5322LocalTooLong);\n } // http://tools.ietf.org/html/rfc5322#section-3.4.1 comments and folding white space SHOULD NOT be used around \"@\" in the\n // addr-spec\n //\n // http://tools.ietf.org/html/rfc2119\n // 4. SHOULD NOT this phrase, or the phrase \"NOT RECOMMENDED\" mean that there may exist valid reasons in particular\n // circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood\n // and the case carefully weighed before implementing any behavior described with this label.\n else if (context.prev === internals.components.contextComment || context.prev === internals.components.contextFWS) {\n updateResult(internals.diagnoses.deprecatedCFWSNearAt);\n } // Clear everything down for the domain parsing\n\n\n context.now = internals.components.domain;\n context.stack[0] = internals.components.domain;\n elementCount = 0;\n elementLength = 0;\n assertEnd = false; // CFWS can only appear at the end of the element\n\n break;\n // ATEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.2.3\n // atext = ALPHA / DIGIT / ; Printable US-ASCII\n // \"!\" / \"#\" / ; characters not including\n // \"$\" / \"%\" / ; specials. Used for atoms.\n // \"&\" / \"'\" /\n // \"*\" / \"+\" /\n // \"-\" / \"/\" /\n // \"=\" / \"?\" /\n // \"^\" / \"_\" /\n // \"`\" / \"{\" /\n // \"|\" / \"}\" /\n // \"~\"\n if (assertEnd) {\n // We have encountered atext where it is no longer valid\n switch (context.prev) {\n case internals.components.contextComment:\n case internals.components.contextFWS:\n updateResult(internals.diagnoses.errATEXTAfterCFWS);\n break;\n\n case internals.components.contextQuotedString:\n updateResult(internals.diagnoses.errATEXTAfterQS);\n break;\n // $lab:coverage:off$\n\n default:\n throw new Error('more atext found where none is allowed, but unrecognized prev context: ' + context.prev);\n // $lab:coverage:on$\n }\n } else {\n context.prev = context.now;\n charCode = token.codePointAt(0); // Especially if charCode == 10\n\n if (internals.specials(charCode) || internals.c0Controls(charCode) || internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingATEXT);\n }\n\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n }\n\n }\n\n break;\n\n case internals.components.domain:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // domain = dot-atom / domain-literal / obs-domain\n //\n // dot-atom = [CFWS] dot-atom-text [CFWS]\n //\n // dot-atom-text = 1*atext *(\".\" 1*atext)\n //\n // domain-literal = [CFWS] \"[\" *([FWS] dtext) [FWS] \"]\" [CFWS]\n //\n // dtext = %d33-90 / ; Printable US-ASCII\n // %d94-126 / ; characters not including\n // obs-dtext ; \"[\", \"]\", or \"\\\"\n //\n // obs-domain = atom *(\".\" atom)\n //\n // atom = [CFWS] 1*atext [CFWS]\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // Mailbox = Local-part \"@\" ( Domain / address-literal )\n //\n // Domain = sub-domain *(\".\" sub-domain)\n //\n // address-literal = \"[\" ( IPv4-address-literal /\n // IPv6-address-literal /\n // General-address-literal ) \"]\"\n // ; See Section 4.1.3\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // Note: A liberal syntax for the domain portion of addr-spec is\n // given here. However, the domain portion contains addressing\n // information specified by and used in other protocols (e.g.,\n // [RFC1034], [RFC1035], [RFC1123], [RFC5321]). It is therefore\n // incumbent upon implementations to conform to the syntax of\n // addresses for the context in which they are used.\n //\n // is_email() author's note: it's not clear how to interpret this in\n // he context of a general email address validator. The conclusion I\n // have reached is this: \"addressing information\" must comply with\n // RFC 5321 (and in turn RFC 1035), anything that is \"semantically\n // invisible\" must comply only with RFC 5322.\n switch (token) {\n // Comment\n case '(':\n if (elementLength === 0) {\n // Comments at the start of the domain are deprecated in the text, comments at the start of a subdomain are obs-domain\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n updateResult(elementCount === 0 ? internals.diagnoses.deprecatedCFWSNearAt : internals.diagnoses.deprecatedComment);\n } else {\n // We can't start a comment mid-element, better be at the end\n assertEnd = true;\n updateResult(internals.diagnoses.cfwsComment);\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextComment;\n break;\n // Next dot-atom element\n\n case '.':\n var punycodeLength = Punycode.encode(atomData.domains[elementCount]).length;\n\n if (elementLength === 0) {\n // Another dot, already? Fatal error.\n updateResult(elementCount === 0 ? internals.diagnoses.errDotStart : internals.diagnoses.errConsecutiveDots);\n } else if (hyphenFlag) {\n // Previous subdomain ended in a hyphen. Fatal error.\n updateResult(internals.diagnoses.errDomainHyphenEnd);\n } else if (punycodeLength > 63) {\n // RFC 5890 specifies that domain labels that are encoded using the Punycode algorithm\n // must adhere to the <= 63 octet requirement.\n // This includes string prefixes from the Punycode algorithm.\n //\n // https://tools.ietf.org/html/rfc5890#section-2.3.2.1\n // labels 63 octets or less\n updateResult(internals.diagnoses.rfc5322LabelTooLong);\n } // CFWS is OK again now we're at the beginning of an element (although\n // it may be obsolete CFWS)\n\n\n assertEnd = false;\n elementLength = 0;\n ++elementCount;\n atomData.domains[elementCount] = '';\n parseData.domain += token;\n break;\n // Domain literal\n\n case '[':\n if (parseData.domain.length === 0) {\n // Domain literal must be the only component\n assertEnd = true;\n elementLength += Buffer.byteLength(token, 'utf8');\n context.stack.push(context.now);\n context.now = internals.components.literal;\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n parseData.literal = '';\n } else {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingATEXT);\n }\n\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n if (elementLength === 0) {\n updateResult(elementCount === 0 ? internals.diagnoses.deprecatedCFWSNearAt : internals.diagnoses.deprecatedFWS);\n } else {\n // We can't start FWS in the middle of an element, so this better be the end\n updateResult(internals.diagnoses.cfwsFWS);\n assertEnd = true;\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // This must be ATEXT\n\n default:\n // RFC 5322 allows any atext...\n // http://tools.ietf.org/html/rfc5322#section-3.2.3\n // atext = ALPHA / DIGIT / ; Printable US-ASCII\n // \"!\" / \"#\" / ; characters not including\n // \"$\" / \"%\" / ; specials. Used for atoms.\n // \"&\" / \"'\" /\n // \"*\" / \"+\" /\n // \"-\" / \"/\" /\n // \"=\" / \"?\" /\n // \"^\" / \"_\" /\n // \"`\" / \"{\" /\n // \"|\" / \"}\" /\n // \"~\"\n // But RFC 5321 only allows letter-digit-hyphen to comply with DNS rules\n // (RFCs 1034 & 1123)\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // sub-domain = Let-dig [Ldh-str]\n //\n // Let-dig = ALPHA / DIGIT\n //\n // Ldh-str = *( ALPHA / DIGIT / \"-\" ) Let-dig\n //\n if (assertEnd) {\n // We have encountered ATEXT where it is no longer valid\n switch (context.prev) {\n case internals.components.contextComment:\n case internals.components.contextFWS:\n updateResult(internals.diagnoses.errATEXTAfterCFWS);\n break;\n\n case internals.components.literal:\n updateResult(internals.diagnoses.errATEXTAfterDomainLiteral);\n break;\n // $lab:coverage:off$\n\n default:\n throw new Error('more atext found where none is allowed, but unrecognized prev context: ' + context.prev);\n // $lab:coverage:on$\n }\n }\n\n charCode = token.codePointAt(0); // Assume this token isn't a hyphen unless we discover it is\n\n hyphenFlag = false;\n\n if (internals.specials(charCode) || internals.c0Controls(charCode) || internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingATEXT);\n } else if (token === '-') {\n if (elementLength === 0) {\n // Hyphens cannot be at the beginning of a subdomain, fatal error\n updateResult(internals.diagnoses.errDomainHyphenStart);\n }\n\n hyphenFlag = true;\n } // Check if it's a neither a number nor a latin/unicode letter\n else if (charCode < 48 || charCode > 122 && charCode < 192 || charCode > 57 && charCode < 65 || charCode > 90 && charCode < 97) {\n // This is not an RFC 5321 subdomain, but still OK by RFC 5322\n updateResult(internals.diagnoses.rfc5322Domain);\n }\n\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n }\n\n break;\n // Domain literal\n\n case internals.components.literal:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // domain-literal = [CFWS] \"[\" *([FWS] dtext) [FWS] \"]\" [CFWS]\n //\n // dtext = %d33-90 / ; Printable US-ASCII\n // %d94-126 / ; characters not including\n // obs-dtext ; \"[\", \"]\", or \"\\\"\n //\n // obs-dtext = obs-NO-WS-CTL / quoted-pair\n switch (token) {\n // End of domain literal\n case ']':\n if (maxResult < internals.categories.deprecated) {\n // Could be a valid RFC 5321 address literal, so let's check\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // address-literal = \"[\" ( IPv4-address-literal /\n // IPv6-address-literal /\n // General-address-literal ) \"]\"\n // ; See Section 4.1.3\n //\n // http://tools.ietf.org/html/rfc5321#section-4.1.3\n // IPv4-address-literal = Snum 3(\".\" Snum)\n //\n // IPv6-address-literal = \"IPv6:\" IPv6-addr\n //\n // General-address-literal = Standardized-tag \":\" 1*dcontent\n //\n // Standardized-tag = Ldh-str\n // ; Standardized-tag MUST be specified in a\n // ; Standards-Track RFC and registered with IANA\n //\n // dcontent = %d33-90 / ; Printable US-ASCII\n // %d94-126 ; excl. \"[\", \"\\\", \"]\"\n //\n // Snum = 1*3DIGIT\n // ; representing a decimal integer\n // ; value in the range 0 through 255\n //\n // IPv6-addr = IPv6-full / IPv6-comp / IPv6v4-full / IPv6v4-comp\n //\n // IPv6-hex = 1*4HEXDIG\n //\n // IPv6-full = IPv6-hex 7(\":\" IPv6-hex)\n //\n // IPv6-comp = [IPv6-hex *5(\":\" IPv6-hex)] \"::\"\n // [IPv6-hex *5(\":\" IPv6-hex)]\n // ; The \"::\" represents at least 2 16-bit groups of\n // ; zeros. No more than 6 groups in addition to the\n // ; \"::\" may be present.\n //\n // IPv6v4-full = IPv6-hex 5(\":\" IPv6-hex) \":\" IPv4-address-literal\n //\n // IPv6v4-comp = [IPv6-hex *3(\":\" IPv6-hex)] \"::\"\n // [IPv6-hex *3(\":\" IPv6-hex) \":\"]\n // IPv4-address-literal\n // ; The \"::\" represents at least 2 16-bit groups of\n // ; zeros. No more than 4 groups in addition to the\n // ; \"::\" and IPv4-address-literal may be present.\n var index = -1;\n var addressLiteral = parseData.literal;\n var matchesIP = internals.regex.ipV4.exec(addressLiteral); // Maybe extract IPv4 part from the end of the address-literal\n\n if (matchesIP) {\n index = matchesIP.index;\n\n if (index !== 0) {\n // Convert IPv4 part to IPv6 format for futher testing\n addressLiteral = addressLiteral.slice(0, index) + '0:0';\n }\n }\n\n if (index === 0) {\n // Nothing there except a valid IPv4 address, so...\n updateResult(internals.diagnoses.rfc5321AddressLiteral);\n } else if (addressLiteral.slice(0, 5).toLowerCase() !== 'ipv6:') {\n updateResult(internals.diagnoses.rfc5322DomainLiteral);\n } else {\n var match = addressLiteral.slice(5);\n var maxGroups = internals.maxIPv6Groups;\n var groups = match.split(':');\n index = match.indexOf('::');\n\n if (!~index) {\n // Need exactly the right number of groups\n if (groups.length !== maxGroups) {\n updateResult(internals.diagnoses.rfc5322IPv6GroupCount);\n }\n } else if (index !== match.lastIndexOf('::')) {\n updateResult(internals.diagnoses.rfc5322IPv62x2xColon);\n } else {\n if (index === 0 || index === match.length - 2) {\n // RFC 4291 allows :: at the start or end of an address with 7 other groups in addition\n ++maxGroups;\n }\n\n if (groups.length > maxGroups) {\n updateResult(internals.diagnoses.rfc5322IPv6MaxGroups);\n } else if (groups.length === maxGroups) {\n // Eliding a single \"::\"\n updateResult(internals.diagnoses.deprecatedIPv6);\n }\n } // IPv6 testing strategy\n\n\n if (match[0] === ':' && match[1] !== ':') {\n updateResult(internals.diagnoses.rfc5322IPv6ColonStart);\n } else if (match[match.length - 1] === ':' && match[match.length - 2] !== ':') {\n updateResult(internals.diagnoses.rfc5322IPv6ColonEnd);\n } else if (internals.checkIpV6(groups)) {\n updateResult(internals.diagnoses.rfc5321AddressLiteral);\n } else {\n updateResult(internals.diagnoses.rfc5322IPv6BadCharacter);\n }\n }\n } else {\n updateResult(internals.diagnoses.rfc5322DomainLiteral);\n }\n\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n context.prev = context.now;\n context.now = context.stack.pop();\n break;\n\n case '\\\\':\n updateResult(internals.diagnoses.rfc5322DomainLiteralOBSDText);\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedPair;\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n updateResult(internals.diagnoses.cfwsFWS);\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // DTEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // dtext = %d33-90 / ; Printable US-ASCII\n // %d94-126 / ; characters not including\n // obs-dtext ; \"[\", \"]\", or \"\\\"\n //\n // obs-dtext = obs-NO-WS-CTL / quoted-pair\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n charCode = token.codePointAt(0); // '\\r', '\\n', ' ', and '\\t' have already been parsed above\n\n if (charCode !== 127 && internals.c1Controls(charCode) || charCode === 0 || token === '[') {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingDTEXT);\n break;\n } else if (internals.c0Controls(charCode) || charCode === 127) {\n updateResult(internals.diagnoses.rfc5322DomainLiteralOBSDText);\n }\n\n parseData.literal += token;\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n }\n\n break;\n // Quoted string\n\n case internals.components.contextQuotedString:\n // http://tools.ietf.org/html/rfc5322#section-3.2.4\n // quoted-string = [CFWS]\n // DQUOTE *([FWS] qcontent) [FWS] DQUOTE\n // [CFWS]\n //\n // qcontent = qtext / quoted-pair\n switch (token) {\n // Quoted pair\n case '\\\\':\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedPair;\n break;\n // Folding white space. Spaces are allowed as regular characters inside a quoted string - it's only FWS if we include '\\t' or '\\r\\n'\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case '\\t':\n // http://tools.ietf.org/html/rfc5322#section-3.2.2\n // Runs of FWS, comment, or CFWS that occur between lexical tokens in\n // a structured header field are semantically interpreted as a single\n // space character.\n // http://tools.ietf.org/html/rfc5322#section-3.2.4\n // the CRLF in any FWS/CFWS that appears within the quoted-string [is]\n // semantically \"invisible\" and therefore not part of the\n // quoted-string\n parseData.local += ' ';\n atomData.locals[elementCount] += ' ';\n elementLength += Buffer.byteLength(token, 'utf8');\n updateResult(internals.diagnoses.cfwsFWS);\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // End of quoted string\n\n case '\"':\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n context.prev = context.now;\n context.now = context.stack.pop();\n break;\n // QTEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.2.4\n // qtext = %d33 / ; Printable US-ASCII\n // %d35-91 / ; characters not including\n // %d93-126 / ; \"\\\" or the quote character\n // obs-qtext\n //\n // obs-qtext = obs-NO-WS-CTL\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n charCode = token.codePointAt(0);\n\n if (charCode !== 127 && internals.c1Controls(charCode) || charCode === 0 || charCode === 10) {\n updateResult(internals.diagnoses.errExpectingQTEXT);\n } else if (internals.c0Controls(charCode) || charCode === 127) {\n updateResult(internals.diagnoses.deprecatedQTEXT);\n }\n\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n } // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // If the string can be represented as a dot-atom (that is, it contains\n // no characters other than atext characters or \".\" surrounded by atext\n // characters), then the dot-atom form SHOULD be used and the quoted-\n // string form SHOULD NOT be used.\n\n\n break;\n // Quoted pair\n\n case internals.components.contextQuotedPair:\n // http://tools.ietf.org/html/rfc5322#section-3.2.1\n // quoted-pair = (\"\\\" (VCHAR / WSP)) / obs-qp\n //\n // VCHAR = %d33-126 ; visible (printing) characters\n // WSP = SP / HTAB ; white space\n //\n // obs-qp = \"\\\" (%d0 / obs-NO-WS-CTL / LF / CR)\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n //\n // i.e. obs-qp = \"\\\" (%d0-8, %d10-31 / %d127)\n charCode = token.codePointAt(0);\n\n if (charCode !== 127 && internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingQPair);\n } else if (charCode < 31 && charCode !== 9 || charCode === 127) {\n // ' ' and '\\t' are allowed\n updateResult(internals.diagnoses.deprecatedQP);\n } // At this point we know where this qpair occurred so we could check to see if the character actually needed to be quoted at all.\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // the sending system SHOULD transmit the form that uses the minimum quoting possible.\n\n\n context.prev = context.now; // End of qpair\n\n context.now = context.stack.pop();\n var escapeToken = '\\\\' + token;\n\n switch (context.now) {\n case internals.components.contextComment:\n break;\n\n case internals.components.contextQuotedString:\n parseData.local += escapeToken;\n atomData.locals[elementCount] += escapeToken; // The maximum sizes specified by RFC 5321 are octet counts, so we must include the backslash\n\n elementLength += 2;\n break;\n\n case internals.components.literal:\n parseData.domain += escapeToken;\n atomData.domains[elementCount] += escapeToken; // The maximum sizes specified by RFC 5321 are octet counts, so we must include the backslash\n\n elementLength += 2;\n break;\n // $lab:coverage:off$\n\n default:\n throw new Error('quoted pair logic invoked in an invalid context: ' + context.now);\n // $lab:coverage:on$\n }\n\n break;\n // Comment\n\n case internals.components.contextComment:\n // http://tools.ietf.org/html/rfc5322#section-3.2.2\n // comment = \"(\" *([FWS] ccontent) [FWS] \")\"\n //\n // ccontent = ctext / quoted-pair / comment\n switch (token) {\n // Nested comment\n case '(':\n // Nested comments are ok\n context.stack.push(context.now);\n context.now = internals.components.contextComment;\n break;\n // End of comment\n\n case ')':\n context.prev = context.now;\n context.now = context.stack.pop();\n break;\n // Quoted pair\n\n case '\\\\':\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedPair;\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n updateResult(internals.diagnoses.cfwsFWS);\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // CTEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.2.3\n // ctext = %d33-39 / ; Printable US-ASCII\n // %d42-91 / ; characters not including\n // %d93-126 / ; \"(\", \")\", or \"\\\"\n // obs-ctext\n //\n // obs-ctext = obs-NO-WS-CTL\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n charCode = token.codePointAt(0);\n\n if (charCode === 0 || charCode === 10 || charCode !== 127 && internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingCTEXT);\n break;\n } else if (internals.c0Controls(charCode) || charCode === 127) {\n updateResult(internals.diagnoses.deprecatedCTEXT);\n }\n\n }\n\n break;\n // Folding white space\n\n case internals.components.contextFWS:\n // http://tools.ietf.org/html/rfc5322#section-3.2.2\n // FWS = ([*WSP CRLF] 1*WSP) / obs-FWS\n // ; Folding white space\n // But note the erratum:\n // http://www.rfc-editor.org/errata_search.php?rfc=5322&eid=1908:\n // In the obsolete syntax, any amount of folding white space MAY be\n // inserted where the obs-FWS rule is allowed. This creates the\n // possibility of having two consecutive \"folds\" in a line, and\n // therefore the possibility that a line which makes up a folded header\n // field could be composed entirely of white space.\n //\n // obs-FWS = 1*([CRLF] WSP)\n if (prevToken === '\\r') {\n if (token === '\\r') {\n // Fatal error\n updateResult(internals.diagnoses.errFWSCRLFx2);\n break;\n }\n\n if (++crlfCount > 1) {\n // Multiple folds => obsolete FWS\n updateResult(internals.diagnoses.deprecatedFWS);\n } else {\n crlfCount = 1;\n }\n }\n\n switch (token) {\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n }\n\n break;\n\n case ' ':\n case '\\t':\n break;\n\n default:\n if (prevToken === '\\r') {\n // Fatal error\n updateResult(internals.diagnoses.errFWSCRLFEnd);\n }\n\n crlfCount = 0; // End of FWS\n\n context.prev = context.now;\n context.now = context.stack.pop(); // Look at this token again in the parent context\n\n --i;\n }\n\n prevToken = token;\n break;\n // Unexpected context\n // $lab:coverage:off$\n\n default:\n throw new Error('unknown context: ' + context.now);\n // $lab:coverage:on$\n } // Primary state machine\n\n\n if (maxResult > internals.categories.rfc5322) {\n // Fatal error, no point continuing\n break;\n }\n } // Token loop\n // Check for errors\n\n\n if (maxResult < internals.categories.rfc5322) {\n var _punycodeLength = Punycode.encode(parseData.domain).length; // Fatal errors\n\n if (context.now === internals.components.contextQuotedString) {\n updateResult(internals.diagnoses.errUnclosedQuotedString);\n } else if (context.now === internals.components.contextQuotedPair) {\n updateResult(internals.diagnoses.errBackslashEnd);\n } else if (context.now === internals.components.contextComment) {\n updateResult(internals.diagnoses.errUnclosedComment);\n } else if (context.now === internals.components.literal) {\n updateResult(internals.diagnoses.errUnclosedDomainLiteral);\n } else if (token === '\\r') {\n updateResult(internals.diagnoses.errFWSCRLFEnd);\n } else if (parseData.domain.length === 0) {\n updateResult(internals.diagnoses.errNoDomain);\n } else if (elementLength === 0) {\n updateResult(internals.diagnoses.errDotEnd);\n } else if (hyphenFlag) {\n updateResult(internals.diagnoses.errDomainHyphenEnd);\n } // Other errors\n else if (_punycodeLength > 255) {\n // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.2\n // The maximum total length of a domain name or number is 255 octets.\n updateResult(internals.diagnoses.rfc5322DomainTooLong);\n } else if (Buffer.byteLength(parseData.local, 'utf8') + _punycodeLength +\n /* '@' */\n 1 > 254) {\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // Forward-path = Path\n //\n // Path = \"<\" [ A-d-l \":\" ] Mailbox \">\"\n //\n // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.3\n // The maximum total length of a reverse-path or forward-path is 256 octets (including the punctuation and element separators).\n //\n // Thus, even without (obsolete) routing information, the Mailbox can only be 254 characters long. This is confirmed by this verified\n // erratum to RFC 3696:\n //\n // http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=1690\n // However, there is a restriction in RFC 2821 on the length of an address in MAIL and RCPT commands of 254 characters. Since\n // addresses that do not fit in those fields are not normally useful, the upper limit on address lengths should normally be considered\n // to be 254.\n updateResult(internals.diagnoses.rfc5322TooLong);\n } else if (elementLength > 63) {\n // http://tools.ietf.org/html/rfc1035#section-2.3.4\n // labels 63 octets or less\n updateResult(internals.diagnoses.rfc5322LabelTooLong);\n } else if (options.minDomainAtoms && atomData.domains.length < options.minDomainAtoms) {\n updateResult(internals.diagnoses.errDomainTooShort);\n } else if (options.tldWhitelist || options.tldBlacklist) {\n var tldAtom = atomData.domains[elementCount];\n\n if (!internals.validDomain(tldAtom, options)) {\n updateResult(internals.diagnoses.errUnknownTLD);\n }\n }\n } // Check for errors\n // Finish\n\n\n if (maxResult < internals.categories.dnsWarn) {\n // Per RFC 5321, domain atoms are limited to letter-digit-hyphen, so we only need to check code <= 57 to check for a digit\n var code = atomData.domains[elementCount].codePointAt(0);\n\n if (code <= 57) {\n updateResult(internals.diagnoses.rfc5321TLDNumeric);\n }\n }\n\n if (maxResult < threshold) {\n maxResult = internals.diagnoses.valid;\n }\n\n var finishResult = diagnose ? maxResult : maxResult < internals.defaultThreshold;\n\n if (callback) {\n callback(finishResult);\n }\n\n return finishResult;\n };\n\n exports.diagnoses = internals.validate.diagnoses = function () {\n var diag = {};\n var keys = Object.keys(internals.diagnoses);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n diag[key] = internals.diagnoses[key];\n }\n\n return diag;\n }();\n\n exports.normalize = internals.normalize = function (email) {\n // $lab:coverage:off$\n if (process.version[1] === '4' && email.indexOf('\\0') >= 0) {\n return internals.nulNormalize(email);\n } // $lab:coverage:on$\n\n\n return email.normalize('NFC');\n };\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(3).Buffer, __webpack_require__(5));\n /***/\n },\n /* 17 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n // Declare internals\n\n var internals = {};\n exports.errors = {\n root: 'value',\n key: '\"{{!label}}\" ',\n messages: {\n wrapArrays: true\n },\n any: {\n unknown: 'is not allowed',\n invalid: 'contains an invalid value',\n empty: 'is not allowed to be empty',\n required: 'is required',\n allowOnly: 'must be one of {{valids}}',\n \"default\": 'threw an error when running default method'\n },\n alternatives: {\n base: 'not matching any of the allowed alternatives',\n child: null\n },\n array: {\n base: 'must be an array',\n includes: 'at position {{pos}} does not match any of the allowed types',\n includesSingle: 'single value of \"{{!label}}\" does not match any of the allowed types',\n includesOne: 'at position {{pos}} fails because {{reason}}',\n includesOneSingle: 'single value of \"{{!label}}\" fails because {{reason}}',\n includesRequiredUnknowns: 'does not contain {{unknownMisses}} required value(s)',\n includesRequiredKnowns: 'does not contain {{knownMisses}}',\n includesRequiredBoth: 'does not contain {{knownMisses}} and {{unknownMisses}} other required value(s)',\n excludes: 'at position {{pos}} contains an excluded value',\n excludesSingle: 'single value of \"{{!label}}\" contains an excluded value',\n min: 'must contain at least {{limit}} items',\n max: 'must contain less than or equal to {{limit}} items',\n length: 'must contain {{limit}} items',\n ordered: 'at position {{pos}} fails because {{reason}}',\n orderedLength: 'at position {{pos}} fails because array must contain at most {{limit}} items',\n ref: 'references \"{{ref}}\" which is not a positive integer',\n sparse: 'must not be a sparse array',\n unique: 'position {{pos}} contains a duplicate value'\n },\n \"boolean\": {\n base: 'must be a boolean'\n },\n binary: {\n base: 'must be a buffer or a string',\n min: 'must be at least {{limit}} bytes',\n max: 'must be less than or equal to {{limit}} bytes',\n length: 'must be {{limit}} bytes'\n },\n date: {\n base: 'must be a number of milliseconds or valid date string',\n format: 'must be a string with one of the following formats {{format}}',\n strict: 'must be a valid date',\n min: 'must be larger than or equal to \"{{limit}}\"',\n max: 'must be less than or equal to \"{{limit}}\"',\n isoDate: 'must be a valid ISO 8601 date',\n timestamp: {\n javascript: 'must be a valid timestamp or number of milliseconds',\n unix: 'must be a valid timestamp or number of seconds'\n },\n ref: 'references \"{{ref}}\" which is not a date'\n },\n \"function\": {\n base: 'must be a Function',\n arity: 'must have an arity of {{n}}',\n minArity: 'must have an arity greater or equal to {{n}}',\n maxArity: 'must have an arity lesser or equal to {{n}}',\n ref: 'must be a Joi reference',\n \"class\": 'must be a class'\n },\n lazy: {\n base: '!!schema error: lazy schema must be set',\n schema: '!!schema error: lazy schema function must return a schema'\n },\n object: {\n base: 'must be an object',\n child: '!!child \"{{!child}}\" fails because {{reason}}',\n min: 'must have at least {{limit}} children',\n max: 'must have less than or equal to {{limit}} children',\n length: 'must have {{limit}} children',\n allowUnknown: '!!\"{{!child}}\" is not allowed',\n \"with\": '!!\"{{mainWithLabel}}\" missing required peer \"{{peerWithLabel}}\"',\n without: '!!\"{{mainWithLabel}}\" conflict with forbidden peer \"{{peerWithLabel}}\"',\n missing: 'must contain at least one of {{peersWithLabels}}',\n xor: 'contains a conflict between exclusive peers {{peersWithLabels}}',\n or: 'must contain at least one of {{peersWithLabels}}',\n and: 'contains {{presentWithLabels}} without its required peers {{missingWithLabels}}',\n nand: '!!\"{{mainWithLabel}}\" must not exist simultaneously with {{peersWithLabels}}',\n assert: '!!\"{{ref}}\" validation failed because \"{{ref}}\" failed to {{message}}',\n rename: {\n multiple: 'cannot rename child \"{{from}}\" because multiple renames are disabled and another key was already renamed to \"{{to}}\"',\n override: 'cannot rename child \"{{from}}\" because override is disabled and target \"{{to}}\" exists',\n regex: {\n multiple: 'cannot rename children {{from}} because multiple renames are disabled and another key was already renamed to \"{{to}}\"',\n override: 'cannot rename children {{from}} because override is disabled and target \"{{to}}\" exists'\n }\n },\n type: 'must be an instance of \"{{type}}\"',\n schema: 'must be a Joi instance'\n },\n number: {\n base: 'must be a number',\n min: 'must be larger than or equal to {{limit}}',\n max: 'must be less than or equal to {{limit}}',\n less: 'must be less than {{limit}}',\n greater: 'must be greater than {{limit}}',\n \"float\": 'must be a float or double',\n integer: 'must be an integer',\n negative: 'must be a negative number',\n positive: 'must be a positive number',\n precision: 'must have no more than {{limit}} decimal places',\n ref: 'references \"{{ref}}\" which is not a number',\n multiple: 'must be a multiple of {{multiple}}'\n },\n string: {\n base: 'must be a string',\n min: 'length must be at least {{limit}} characters long',\n max: 'length must be less than or equal to {{limit}} characters long',\n length: 'length must be {{limit}} characters long',\n alphanum: 'must only contain alpha-numeric characters',\n token: 'must only contain alpha-numeric and underscore characters',\n regex: {\n base: 'with value \"{{!value}}\" fails to match the required pattern: {{pattern}}',\n name: 'with value \"{{!value}}\" fails to match the {{name}} pattern',\n invert: {\n base: 'with value \"{{!value}}\" matches the inverted pattern: {{pattern}}',\n name: 'with value \"{{!value}}\" matches the inverted {{name}} pattern'\n }\n },\n email: 'must be a valid email',\n uri: 'must be a valid uri',\n uriRelativeOnly: 'must be a valid relative uri',\n uriCustomScheme: 'must be a valid uri with a scheme matching the {{scheme}} pattern',\n isoDate: 'must be a valid ISO 8601 date',\n guid: 'must be a valid GUID',\n hex: 'must only contain hexadecimal characters',\n base64: 'must be a valid base64 string',\n hostname: 'must be a valid hostname',\n normalize: 'must be unicode normalized in the {{form}} form',\n lowercase: 'must only contain lowercase characters',\n uppercase: 'must only contain uppercase characters',\n trim: 'must not have leading or trailing whitespace',\n creditCard: 'must be a credit card',\n ref: 'references \"{{ref}}\" which is not a number',\n ip: 'must be a valid ip address with a {{cidr}} CIDR',\n ipVersion: 'must be a valid ip address of one of the following versions {{version}} with a {{cidr}} CIDR'\n }\n };\n /***/\n },\n /* 18 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var Joi = __webpack_require__(8); // Declare internals\n\n\n var internals = {};\n exports.options = Joi.object({\n abortEarly: Joi[\"boolean\"](),\n convert: Joi[\"boolean\"](),\n allowUnknown: Joi[\"boolean\"](),\n skipFunctions: Joi[\"boolean\"](),\n stripUnknown: [Joi[\"boolean\"](), Joi.object({\n arrays: Joi[\"boolean\"](),\n objects: Joi[\"boolean\"]()\n }).or('arrays', 'objects')],\n language: Joi.object(),\n presence: Joi.string().only('required', 'optional', 'forbidden', 'ignore'),\n raw: Joi[\"boolean\"](),\n context: Joi.object(),\n strip: Joi[\"boolean\"](),\n noDefaults: Joi[\"boolean\"](),\n escapeHtml: Joi[\"boolean\"]()\n }).strict();\n /***/\n },\n /* 19 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Cast = __webpack_require__(4);\n\n var Ref = __webpack_require__(1);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n internals.fastSplice = function (arr, i) {\n var pos = i;\n\n while (pos < arr.length) {\n arr[pos++] = arr[pos];\n }\n\n --arr.length;\n };\n\n internals.Array = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'array';\n _this._inner.items = [];\n _this._inner.ordereds = [];\n _this._inner.inclusions = [];\n _this._inner.exclusions = [];\n _this._inner.requireds = [];\n _this._flags.sparse = false;\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n internals.safeParse(value, result);\n }\n\n var isArray = Array.isArray(result.value);\n var wasArray = isArray;\n\n if (options.convert && this._flags.single && !isArray) {\n result.value = [result.value];\n isArray = true;\n }\n\n if (!isArray) {\n result.errors = this.createError('array.base', null, state, options);\n return result;\n }\n\n if (this._inner.inclusions.length || this._inner.exclusions.length || this._inner.requireds.length || this._inner.ordereds.length || !this._flags.sparse) {\n // Clone the array so that we don't modify the original\n if (wasArray) {\n result.value = result.value.slice(0);\n }\n\n result.errors = this._checkItems.call(this, result.value, wasArray, state, options);\n\n if (result.errors && wasArray && options.convert && this._flags.single) {\n // Attempt a 2nd pass by putting the array inside one.\n var previousErrors = result.errors;\n result.value = [result.value];\n result.errors = this._checkItems.call(this, result.value, wasArray, state, options);\n\n if (result.errors) {\n // Restore previous errors and value since this didn't validate either.\n result.errors = previousErrors;\n result.value = result.value[0];\n }\n }\n }\n\n return result;\n };\n\n _class.prototype._checkItems = function _checkItems(items, wasArray, state, options) {\n var errors = [];\n var errored = void 0;\n\n var requireds = this._inner.requireds.slice();\n\n var ordereds = this._inner.ordereds.slice();\n\n var inclusions = this._inner.inclusions.concat(requireds);\n\n var il = items.length;\n\n for (var i = 0; i < il; ++i) {\n errored = false;\n var item = items[i];\n var isValid = false;\n var key = wasArray ? i : state.key;\n var path = wasArray ? state.path.concat(i) : state.path;\n var localState = {\n key: key,\n path: path,\n parent: state.parent,\n reference: state.reference\n };\n var res = void 0; // Sparse\n\n if (!this._flags.sparse && item === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n\n continue;\n } // Exclusions\n\n\n for (var j = 0; j < this._inner.exclusions.length; ++j) {\n res = this._inner.exclusions[j]._validate(item, localState, {}); // Not passing options to use defaults\n\n if (!res.errors) {\n errors.push(this.createError(wasArray ? 'array.excludes' : 'array.excludesSingle', {\n pos: i,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n errored = true;\n\n if (options.abortEarly) {\n return errors;\n }\n\n break;\n }\n }\n\n if (errored) {\n continue;\n } // Ordered\n\n\n if (this._inner.ordereds.length) {\n if (ordereds.length > 0) {\n var ordered = ordereds.shift();\n res = ordered._validate(item, localState, options);\n\n if (!res.errors) {\n if (ordered._flags.strip) {\n internals.fastSplice(items, i);\n --i;\n --il;\n } else if (!this._flags.sparse && res.value === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n\n continue;\n } else {\n items[i] = res.value;\n }\n } else {\n errors.push(this.createError('array.ordered', {\n pos: i,\n reason: res.errors,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n }\n\n continue;\n } else if (!this._inner.items.length) {\n errors.push(this.createError('array.orderedLength', {\n pos: i,\n limit: this._inner.ordereds.length\n }, {\n key: state.key,\n path: localState.path\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n\n continue;\n }\n } // Requireds\n\n\n var requiredChecks = [];\n var jl = requireds.length;\n\n for (var _j = 0; _j < jl; ++_j) {\n res = requiredChecks[_j] = requireds[_j]._validate(item, localState, options);\n\n if (!res.errors) {\n items[i] = res.value;\n isValid = true;\n internals.fastSplice(requireds, _j);\n --_j;\n --jl;\n\n if (!this._flags.sparse && res.value === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n }\n\n break;\n }\n }\n\n if (isValid) {\n continue;\n } // Inclusions\n\n\n var stripUnknown = options.stripUnknown ? options.stripUnknown === true ? true : !!options.stripUnknown.arrays : false;\n jl = inclusions.length;\n\n for (var _j2 = 0; _j2 < jl; ++_j2) {\n var inclusion = inclusions[_j2]; // Avoid re-running requireds that already didn't match in the previous loop\n\n var previousCheck = requireds.indexOf(inclusion);\n\n if (previousCheck !== -1) {\n res = requiredChecks[previousCheck];\n } else {\n res = inclusion._validate(item, localState, options);\n\n if (!res.errors) {\n if (inclusion._flags.strip) {\n internals.fastSplice(items, i);\n --i;\n --il;\n } else if (!this._flags.sparse && res.value === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n errored = true;\n } else {\n items[i] = res.value;\n }\n\n isValid = true;\n break;\n }\n } // Return the actual error if only one inclusion defined\n\n\n if (jl === 1) {\n if (stripUnknown) {\n internals.fastSplice(items, i);\n --i;\n --il;\n isValid = true;\n break;\n }\n\n errors.push(this.createError(wasArray ? 'array.includesOne' : 'array.includesOneSingle', {\n pos: i,\n reason: res.errors,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n errored = true;\n\n if (options.abortEarly) {\n return errors;\n }\n\n break;\n }\n }\n\n if (errored) {\n continue;\n }\n\n if (this._inner.inclusions.length && !isValid) {\n if (stripUnknown) {\n internals.fastSplice(items, i);\n --i;\n --il;\n continue;\n }\n\n errors.push(this.createError(wasArray ? 'array.includes' : 'array.includesSingle', {\n pos: i,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n }\n }\n\n if (requireds.length) {\n this._fillMissedErrors.call(this, errors, requireds, state, options);\n }\n\n if (ordereds.length) {\n this._fillOrderedErrors.call(this, errors, ordereds, state, options);\n }\n\n return errors.length ? errors : null;\n };\n\n _class.prototype.describe = function describe() {\n var description = Any.prototype.describe.call(this);\n\n if (this._inner.ordereds.length) {\n description.orderedItems = [];\n\n for (var i = 0; i < this._inner.ordereds.length; ++i) {\n description.orderedItems.push(this._inner.ordereds[i].describe());\n }\n }\n\n if (this._inner.items.length) {\n description.items = [];\n\n for (var _i = 0; _i < this._inner.items.length; ++_i) {\n description.items.push(this._inner.items[_i].describe());\n }\n }\n\n return description;\n };\n\n _class.prototype.items = function items() {\n var _this2 = this;\n\n var obj = this.clone();\n\n for (var _len = arguments.length, schemas = Array(_len), _key = 0; _key < _len; _key++) {\n schemas[_key] = arguments[_key];\n }\n\n Hoek.flatten(schemas).forEach(function (type, index) {\n try {\n type = Cast.schema(_this2._currentJoi, type);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.path = index + '.' + castErr.path;\n } else {\n castErr.path = index;\n }\n\n castErr.message = castErr.message + '(' + castErr.path + ')';\n throw castErr;\n }\n\n obj._inner.items.push(type);\n\n if (type._flags.presence === 'required') {\n obj._inner.requireds.push(type);\n } else if (type._flags.presence === 'forbidden') {\n obj._inner.exclusions.push(type.optional());\n } else {\n obj._inner.inclusions.push(type);\n }\n });\n return obj;\n };\n\n _class.prototype.ordered = function ordered() {\n var _this3 = this;\n\n var obj = this.clone();\n\n for (var _len2 = arguments.length, schemas = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n schemas[_key2] = arguments[_key2];\n }\n\n Hoek.flatten(schemas).forEach(function (type, index) {\n try {\n type = Cast.schema(_this3._currentJoi, type);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.path = index + '.' + castErr.path;\n } else {\n castErr.path = index;\n }\n\n castErr.message = castErr.message + '(' + castErr.path + ')';\n throw castErr;\n }\n\n obj._inner.ordereds.push(type);\n });\n return obj;\n };\n\n _class.prototype.min = function min(limit) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n return this._test('min', limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) {\n return this.createError('array.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (value.length >= compareTo) {\n return value;\n }\n\n return this.createError('array.min', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.max = function max(limit) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n return this._test('max', limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) {\n return this.createError('array.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (value.length <= compareTo) {\n return value;\n }\n\n return this.createError('array.max', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.length = function length(limit) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n return this._test('length', limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) {\n return this.createError('array.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (value.length === compareTo) {\n return value;\n }\n\n return this.createError('array.length', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.unique = function unique(comparator) {\n Hoek.assert(comparator === undefined || typeof comparator === 'function' || typeof comparator === 'string', 'comparator must be a function or a string');\n var settings = {};\n\n if (typeof comparator === 'string') {\n settings.path = comparator;\n } else if (typeof comparator === 'function') {\n settings.comparator = comparator;\n }\n\n return this._test('unique', settings, function (value, state, options) {\n var found = {\n string: {},\n number: {},\n undefined: {},\n \"boolean\": {},\n object: new Map(),\n \"function\": new Map(),\n custom: new Map()\n };\n var compare = settings.comparator || Hoek.deepEqual;\n\n for (var i = 0; i < value.length; ++i) {\n var item = settings.path ? Hoek.reach(value[i], settings.path) : value[i];\n var records = settings.comparator ? found.custom : found[typeof item === 'undefined' ? 'undefined' : _typeof(item)]; // All available types are supported, so it's not possible to reach 100% coverage without ignoring this line.\n // I still want to keep the test for future js versions with new types (eg. Symbol).\n\n if (\n /* $lab:coverage:off$ */\n records\n /* $lab:coverage:on$ */\n ) {\n if (records instanceof Map) {\n var entries = records.entries();\n var current = void 0;\n\n while (!(current = entries.next()).done) {\n if (compare(current.value[0], item)) {\n var localState = {\n key: state.key,\n path: state.path.concat(i),\n parent: state.parent,\n reference: state.reference\n };\n var context = {\n pos: i,\n value: value[i],\n dupePos: current.value[1],\n dupeValue: value[current.value[1]]\n };\n\n if (settings.path) {\n context.path = settings.path;\n }\n\n return this.createError('array.unique', context, localState, options);\n }\n }\n\n records.set(item, i);\n } else {\n if (records[item] !== undefined) {\n var _localState = {\n key: state.key,\n path: state.path.concat(i),\n parent: state.parent,\n reference: state.reference\n };\n var _context = {\n pos: i,\n value: value[i],\n dupePos: records[item],\n dupeValue: value[records[item]]\n };\n\n if (settings.path) {\n _context.path = settings.path;\n }\n\n return this.createError('array.unique', _context, _localState, options);\n }\n\n records[item] = i;\n }\n }\n }\n\n return value;\n });\n };\n\n _class.prototype.sparse = function sparse(enabled) {\n var value = enabled === undefined ? true : !!enabled;\n\n if (this._flags.sparse === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.sparse = value;\n return obj;\n };\n\n _class.prototype.single = function single(enabled) {\n var value = enabled === undefined ? true : !!enabled;\n\n if (this._flags.single === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.single = value;\n return obj;\n };\n\n _class.prototype._fillMissedErrors = function _fillMissedErrors(errors, requireds, state, options) {\n var knownMisses = [];\n var unknownMisses = 0;\n\n for (var i = 0; i < requireds.length; ++i) {\n var label = requireds[i]._getLabel();\n\n if (label) {\n knownMisses.push(label);\n } else {\n ++unknownMisses;\n }\n }\n\n if (knownMisses.length) {\n if (unknownMisses) {\n errors.push(this.createError('array.includesRequiredBoth', {\n knownMisses: knownMisses,\n unknownMisses: unknownMisses\n }, {\n key: state.key,\n path: state.path\n }, options));\n } else {\n errors.push(this.createError('array.includesRequiredKnowns', {\n knownMisses: knownMisses\n }, {\n key: state.key,\n path: state.path\n }, options));\n }\n } else {\n errors.push(this.createError('array.includesRequiredUnknowns', {\n unknownMisses: unknownMisses\n }, {\n key: state.key,\n path: state.path\n }, options));\n }\n };\n\n _class.prototype._fillOrderedErrors = function _fillOrderedErrors(errors, ordereds, state, options) {\n var requiredOrdereds = [];\n\n for (var i = 0; i < ordereds.length; ++i) {\n var presence = Hoek.reach(ordereds[i], '_flags.presence');\n\n if (presence === 'required') {\n requiredOrdereds.push(ordereds[i]);\n }\n }\n\n if (requiredOrdereds.length) {\n this._fillMissedErrors.call(this, errors, requiredOrdereds, state, options);\n }\n };\n\n return _class;\n }(Any);\n\n internals.safeParse = function (value, result) {\n try {\n var converted = JSON.parse(value);\n\n if (Array.isArray(converted)) {\n result.value = converted;\n }\n } catch (e) {}\n };\n\n module.exports = new internals.Array();\n /***/\n },\n /* 20 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n // Load modules\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n internals.Binary = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'binary';\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n try {\n result.value = new Buffer(value, this._flags.encoding);\n } catch (e) {}\n }\n\n result.errors = Buffer.isBuffer(result.value) ? null : this.createError('binary.base', null, state, options);\n return result;\n };\n\n _class.prototype.encoding = function encoding(_encoding) {\n Hoek.assert(Buffer.isEncoding(_encoding), 'Invalid encoding:', _encoding);\n\n if (this._flags.encoding === _encoding) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.encoding = _encoding;\n return obj;\n };\n\n _class.prototype.min = function min(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('min', limit, function (value, state, options) {\n if (value.length >= limit) {\n return value;\n }\n\n return this.createError('binary.min', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.max = function max(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('max', limit, function (value, state, options) {\n if (value.length <= limit) {\n return value;\n }\n\n return this.createError('binary.max', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.length = function length(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('length', limit, function (value, state, options) {\n if (value.length === limit) {\n return value;\n }\n\n return this.createError('binary.length', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Binary();\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 21 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {\n Set: __webpack_require__(9)\n };\n\n internals.Boolean = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'boolean';\n _this._flags.insensitive = true;\n _this._inner.truthySet = new internals.Set();\n _this._inner.falsySet = new internals.Set();\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n var normalized = this._flags.insensitive ? value.toLowerCase() : value;\n result.value = normalized === 'true' ? true : normalized === 'false' ? false : value;\n }\n\n if (typeof result.value !== 'boolean') {\n result.value = this._inner.truthySet.has(value, null, null, this._flags.insensitive) ? true : this._inner.falsySet.has(value, null, null, this._flags.insensitive) ? false : value;\n }\n\n result.errors = typeof result.value === 'boolean' ? null : this.createError('boolean.base', null, state, options);\n return result;\n };\n\n _class.prototype.truthy = function truthy() {\n for (var _len = arguments.length, values = Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call truthy with undefined');\n\n obj._inner.truthySet.add(value);\n }\n\n return obj;\n };\n\n _class.prototype.falsy = function falsy() {\n for (var _len2 = arguments.length, values = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n values[_key2] = arguments[_key2];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call falsy with undefined');\n\n obj._inner.falsySet.add(value);\n }\n\n return obj;\n };\n\n _class.prototype.insensitive = function insensitive(enabled) {\n var insensitive = enabled === undefined ? true : !!enabled;\n\n if (this._flags.insensitive === insensitive) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.insensitive = insensitive;\n return obj;\n };\n\n _class.prototype.describe = function describe() {\n var description = Any.prototype.describe.call(this);\n description.truthy = [true].concat(this._inner.truthySet.values());\n description.falsy = [false].concat(this._inner.falsySet.values());\n return description;\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Boolean();\n /***/\n },\n /* 22 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Hoek = __webpack_require__(0);\n\n var ObjectType = __webpack_require__(12);\n\n var Ref = __webpack_require__(1); // Declare internals\n\n\n var internals = {};\n\n internals.Func = function (_ObjectType$construct) {\n _inherits(_class, _ObjectType$construct);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _ObjectType$construct.call(this));\n\n _this._flags.func = true;\n return _this;\n }\n\n _class.prototype.arity = function arity(n) {\n Hoek.assert(Number.isSafeInteger(n) && n >= 0, 'n must be a positive integer');\n return this._test('arity', n, function (value, state, options) {\n if (value.length === n) {\n return value;\n }\n\n return this.createError('function.arity', {\n n: n\n }, state, options);\n });\n };\n\n _class.prototype.minArity = function minArity(n) {\n Hoek.assert(Number.isSafeInteger(n) && n > 0, 'n must be a strict positive integer');\n return this._test('minArity', n, function (value, state, options) {\n if (value.length >= n) {\n return value;\n }\n\n return this.createError('function.minArity', {\n n: n\n }, state, options);\n });\n };\n\n _class.prototype.maxArity = function maxArity(n) {\n Hoek.assert(Number.isSafeInteger(n) && n >= 0, 'n must be a positive integer');\n return this._test('maxArity', n, function (value, state, options) {\n if (value.length <= n) {\n return value;\n }\n\n return this.createError('function.maxArity', {\n n: n\n }, state, options);\n });\n };\n\n _class.prototype.ref = function ref() {\n return this._test('ref', null, function (value, state, options) {\n if (Ref.isRef(value)) {\n return value;\n }\n\n return this.createError('function.ref', null, state, options);\n });\n };\n\n _class.prototype[\"class\"] = function _class() {\n return this._test('class', null, function (value, state, options) {\n if (/^\\s*class\\s/.test(value.toString())) {\n return value;\n }\n\n return this.createError('function.class', null, state, options);\n });\n };\n\n return _class;\n }(ObjectType.constructor);\n\n module.exports = new internals.Func();\n /***/\n },\n /* 23 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n internals.Lazy = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'lazy';\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n var lazy = this._flags.lazy;\n\n if (!lazy) {\n result.errors = this.createError('lazy.base', null, state, options);\n return result;\n }\n\n var schema = lazy();\n\n if (!(schema instanceof Any)) {\n result.errors = this.createError('lazy.schema', null, state, options);\n return result;\n }\n\n return schema._validate(value, state, options);\n };\n\n _class.prototype.set = function set(fn) {\n Hoek.assert(typeof fn === 'function', 'You must provide a function as first argument');\n var obj = this.clone();\n obj._flags.lazy = fn;\n return obj;\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Lazy();\n /***/\n },\n /* 24 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Ref = __webpack_require__(1);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {\n precisionRx: /(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/\n };\n\n internals.Number = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'number';\n\n _this._invalids.add(Infinity);\n\n _this._invalids.add(-Infinity);\n\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n errors: null,\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n var number = parseFloat(value);\n result.value = isNaN(number) || !isFinite(value) ? NaN : number;\n }\n\n var isNumber = typeof result.value === 'number' && !isNaN(result.value);\n\n if (options.convert && 'precision' in this._flags && isNumber) {\n // This is conceptually equivalent to using toFixed but it should be much faster\n var precision = Math.pow(10, this._flags.precision);\n result.value = Math.round(result.value * precision) / precision;\n }\n\n result.errors = isNumber ? null : this.createError('number.base', null, state, options);\n return result;\n };\n\n _class.prototype.multiple = function multiple(base) {\n var isRef = Ref.isRef(base);\n\n if (!isRef) {\n Hoek.assert(typeof base === 'number' && isFinite(base), 'multiple must be a number');\n Hoek.assert(base > 0, 'multiple must be greater than 0');\n }\n\n return this._test('multiple', base, function (value, state, options) {\n var divisor = isRef ? base(state.reference || state.parent, options) : base;\n\n if (isRef && (typeof divisor !== 'number' || !isFinite(divisor))) {\n return this.createError('number.ref', {\n ref: base.key\n }, state, options);\n }\n\n if (value % divisor === 0) {\n return value;\n }\n\n return this.createError('number.multiple', {\n multiple: base,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.integer = function integer() {\n return this._test('integer', undefined, function (value, state, options) {\n return Number.isSafeInteger(value) ? value : this.createError('number.integer', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.negative = function negative() {\n return this._test('negative', undefined, function (value, state, options) {\n if (value < 0) {\n return value;\n }\n\n return this.createError('number.negative', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.positive = function positive() {\n return this._test('positive', undefined, function (value, state, options) {\n if (value > 0) {\n return value;\n }\n\n return this.createError('number.positive', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.precision = function precision(limit) {\n Hoek.assert(Number.isSafeInteger(limit), 'limit must be an integer');\n Hoek.assert(!('precision' in this._flags), 'precision already set');\n\n var obj = this._test('precision', limit, function (value, state, options) {\n var places = value.toString().match(internals.precisionRx);\n var decimals = Math.max((places[1] ? places[1].length : 0) - (places[2] ? parseInt(places[2], 10) : 0), 0);\n\n if (decimals <= limit) {\n return value;\n }\n\n return this.createError('number.precision', {\n limit: limit,\n value: value\n }, state, options);\n });\n\n obj._flags.precision = limit;\n return obj;\n };\n\n return _class;\n }(Any);\n\n internals.compare = function (type, compare) {\n return function (limit) {\n var isRef = Ref.isRef(limit);\n var isNumber = typeof limit === 'number' && !isNaN(limit);\n Hoek.assert(isNumber || isRef, 'limit must be a number or reference');\n return this._test(type, limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(typeof compareTo === 'number' && !isNaN(compareTo))) {\n return this.createError('number.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (compare(value, compareTo)) {\n return value;\n }\n\n return this.createError('number.' + type, {\n limit: compareTo,\n value: value\n }, state, options);\n });\n };\n };\n\n internals.Number.prototype.min = internals.compare('min', function (value, limit) {\n return value >= limit;\n });\n internals.Number.prototype.max = internals.compare('max', function (value, limit) {\n return value <= limit;\n });\n internals.Number.prototype.greater = internals.compare('greater', function (value, limit) {\n return value > limit;\n });\n internals.Number.prototype.less = internals.compare('less', function (value, limit) {\n return value < limit;\n });\n module.exports = new internals.Number();\n /***/\n },\n /* 25 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n // Load modules\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Net = __webpack_require__(14);\n\n var Hoek = __webpack_require__(0);\n\n var Isemail = void 0; // Loaded on demand\n\n var Any = __webpack_require__(2);\n\n var Ref = __webpack_require__(1);\n\n var JoiDate = __webpack_require__(11);\n\n var Uri = __webpack_require__(27);\n\n var Ip = __webpack_require__(26); // Declare internals\n\n\n var internals = {\n uriRegex: Uri.createUriRegex(),\n ipRegex: Ip.createIpRegex(['ipv4', 'ipv6', 'ipvfuture'], 'optional'),\n guidBrackets: {\n '{': '}',\n '[': ']',\n '(': ')',\n '': ''\n },\n guidVersions: {\n uuidv1: '1',\n uuidv2: '2',\n uuidv3: '3',\n uuidv4: '4',\n uuidv5: '5'\n },\n cidrPresences: ['required', 'optional', 'forbidden'],\n normalizationForms: ['NFC', 'NFD', 'NFKC', 'NFKD']\n };\n\n internals.String = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'string';\n\n _this._invalids.add('');\n\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n if (typeof value === 'string' && options.convert) {\n if (this._flags.normalize) {\n value = value.normalize(this._flags.normalize);\n }\n\n if (this._flags[\"case\"]) {\n value = this._flags[\"case\"] === 'upper' ? value.toLocaleUpperCase() : value.toLocaleLowerCase();\n }\n\n if (this._flags.trim) {\n value = value.trim();\n }\n\n if (this._inner.replacements) {\n for (var i = 0; i < this._inner.replacements.length; ++i) {\n var replacement = this._inner.replacements[i];\n value = value.replace(replacement.pattern, replacement.replacement);\n }\n }\n\n if (this._flags.truncate) {\n for (var _i = 0; _i < this._tests.length; ++_i) {\n var test = this._tests[_i];\n\n if (test.name === 'max') {\n value = value.slice(0, test.arg);\n break;\n }\n }\n }\n }\n\n return {\n value: value,\n errors: typeof value === 'string' ? null : this.createError('string.base', {\n value: value\n }, state, options)\n };\n };\n\n _class.prototype.insensitive = function insensitive() {\n if (this._flags.insensitive) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.insensitive = true;\n return obj;\n };\n\n _class.prototype.creditCard = function creditCard() {\n return this._test('creditCard', undefined, function (value, state, options) {\n var i = value.length;\n var sum = 0;\n var mul = 1;\n\n while (i--) {\n var _char = value.charAt(i) * mul;\n\n sum = sum + (_char - (_char > 9) * 9);\n mul = mul ^ 3;\n }\n\n var check = sum % 10 === 0 && sum > 0;\n return check ? value : this.createError('string.creditCard', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.regex = function regex(pattern, patternOptions) {\n Hoek.assert(pattern instanceof RegExp, 'pattern must be a RegExp');\n var patternObject = {\n pattern: new RegExp(pattern.source, pattern.ignoreCase ? 'i' : undefined) // Future version should break this and forbid unsupported regex flags\n\n };\n\n if (typeof patternOptions === 'string') {\n patternObject.name = patternOptions;\n } else if ((typeof patternOptions === 'undefined' ? 'undefined' : _typeof(patternOptions)) === 'object') {\n patternObject.invert = !!patternOptions.invert;\n\n if (patternOptions.name) {\n patternObject.name = patternOptions.name;\n }\n }\n\n var errorCode = ['string.regex', patternObject.invert ? '.invert' : '', patternObject.name ? '.name' : '.base'].join('');\n return this._test('regex', patternObject, function (value, state, options) {\n var patternMatch = patternObject.pattern.test(value);\n\n if (patternMatch ^ patternObject.invert) {\n return value;\n }\n\n return this.createError(errorCode, {\n name: patternObject.name,\n pattern: patternObject.pattern,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.alphanum = function alphanum() {\n return this._test('alphanum', undefined, function (value, state, options) {\n if (/^[a-zA-Z0-9]+$/.test(value)) {\n return value;\n }\n\n return this.createError('string.alphanum', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.token = function token() {\n return this._test('token', undefined, function (value, state, options) {\n if (/^\\w+$/.test(value)) {\n return value;\n }\n\n return this.createError('string.token', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.email = function email(isEmailOptions) {\n if (isEmailOptions) {\n Hoek.assert((typeof isEmailOptions === 'undefined' ? 'undefined' : _typeof(isEmailOptions)) === 'object', 'email options must be an object');\n Hoek.assert(typeof isEmailOptions.checkDNS === 'undefined', 'checkDNS option is not supported');\n Hoek.assert(typeof isEmailOptions.tldWhitelist === 'undefined' || _typeof(isEmailOptions.tldWhitelist) === 'object', 'tldWhitelist must be an array or object');\n Hoek.assert(typeof isEmailOptions.minDomainAtoms === 'undefined' || Number.isSafeInteger(isEmailOptions.minDomainAtoms) && isEmailOptions.minDomainAtoms > 0, 'minDomainAtoms must be a positive integer');\n Hoek.assert(typeof isEmailOptions.errorLevel === 'undefined' || typeof isEmailOptions.errorLevel === 'boolean' || Number.isSafeInteger(isEmailOptions.errorLevel) && isEmailOptions.errorLevel >= 0, 'errorLevel must be a non-negative integer or boolean');\n }\n\n return this._test('email', isEmailOptions, function (value, state, options) {\n Isemail = Isemail || __webpack_require__(16);\n\n try {\n var result = Isemail.validate(value, isEmailOptions);\n\n if (result === true || result === 0) {\n return value;\n }\n } catch (e) {}\n\n return this.createError('string.email', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.ip = function ip() {\n var ipOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var regex = internals.ipRegex;\n Hoek.assert((typeof ipOptions === 'undefined' ? 'undefined' : _typeof(ipOptions)) === 'object', 'options must be an object');\n\n if (ipOptions.cidr) {\n Hoek.assert(typeof ipOptions.cidr === 'string', 'cidr must be a string');\n ipOptions.cidr = ipOptions.cidr.toLowerCase();\n Hoek.assert(Hoek.contain(internals.cidrPresences, ipOptions.cidr), 'cidr must be one of ' + internals.cidrPresences.join(', ')); // If we only received a `cidr` setting, create a regex for it. But we don't need to create one if `cidr` is \"optional\" since that is the default\n\n if (!ipOptions.version && ipOptions.cidr !== 'optional') {\n regex = Ip.createIpRegex(['ipv4', 'ipv6', 'ipvfuture'], ipOptions.cidr);\n }\n } else {\n // Set our default cidr strategy\n ipOptions.cidr = 'optional';\n }\n\n var versions = void 0;\n\n if (ipOptions.version) {\n if (!Array.isArray(ipOptions.version)) {\n ipOptions.version = [ipOptions.version];\n }\n\n Hoek.assert(ipOptions.version.length >= 1, 'version must have at least 1 version specified');\n versions = [];\n\n for (var i = 0; i < ipOptions.version.length; ++i) {\n var version = ipOptions.version[i];\n Hoek.assert(typeof version === 'string', 'version at position ' + i + ' must be a string');\n version = version.toLowerCase();\n Hoek.assert(Ip.versions[version], 'version at position ' + i + ' must be one of ' + Object.keys(Ip.versions).join(', '));\n versions.push(version);\n } // Make sure we have a set of versions\n\n\n versions = Hoek.unique(versions);\n regex = Ip.createIpRegex(versions, ipOptions.cidr);\n }\n\n return this._test('ip', ipOptions, function (value, state, options) {\n if (regex.test(value)) {\n return value;\n }\n\n if (versions) {\n return this.createError('string.ipVersion', {\n value: value,\n cidr: ipOptions.cidr,\n version: versions\n }, state, options);\n }\n\n return this.createError('string.ip', {\n value: value,\n cidr: ipOptions.cidr\n }, state, options);\n });\n };\n\n _class.prototype.uri = function uri(uriOptions) {\n var customScheme = '';\n var allowRelative = false;\n var relativeOnly = false;\n var regex = internals.uriRegex;\n\n if (uriOptions) {\n Hoek.assert((typeof uriOptions === 'undefined' ? 'undefined' : _typeof(uriOptions)) === 'object', 'options must be an object');\n\n if (uriOptions.scheme) {\n Hoek.assert(uriOptions.scheme instanceof RegExp || typeof uriOptions.scheme === 'string' || Array.isArray(uriOptions.scheme), 'scheme must be a RegExp, String, or Array');\n\n if (!Array.isArray(uriOptions.scheme)) {\n uriOptions.scheme = [uriOptions.scheme];\n }\n\n Hoek.assert(uriOptions.scheme.length >= 1, 'scheme must have at least 1 scheme specified'); // Flatten the array into a string to be used to match the schemes.\n\n for (var i = 0; i < uriOptions.scheme.length; ++i) {\n var scheme = uriOptions.scheme[i];\n Hoek.assert(scheme instanceof RegExp || typeof scheme === 'string', 'scheme at position ' + i + ' must be a RegExp or String'); // Add OR separators if a value already exists\n\n customScheme = customScheme + (customScheme ? '|' : ''); // If someone wants to match HTTP or HTTPS for example then we need to support both RegExp and String so we don't escape their pattern unknowingly.\n\n if (scheme instanceof RegExp) {\n customScheme = customScheme + scheme.source;\n } else {\n Hoek.assert(/[a-zA-Z][a-zA-Z0-9+-\\.]*/.test(scheme), 'scheme at position ' + i + ' must be a valid scheme');\n customScheme = customScheme + Hoek.escapeRegex(scheme);\n }\n }\n }\n\n if (uriOptions.allowRelative) {\n allowRelative = true;\n }\n\n if (uriOptions.relativeOnly) {\n relativeOnly = true;\n }\n }\n\n if (customScheme || allowRelative || relativeOnly) {\n regex = Uri.createUriRegex(customScheme, allowRelative, relativeOnly);\n }\n\n return this._test('uri', uriOptions, function (value, state, options) {\n if (regex.test(value)) {\n return value;\n }\n\n if (relativeOnly) {\n return this.createError('string.uriRelativeOnly', {\n value: value\n }, state, options);\n }\n\n if (customScheme) {\n return this.createError('string.uriCustomScheme', {\n scheme: customScheme,\n value: value\n }, state, options);\n }\n\n return this.createError('string.uri', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.isoDate = function isoDate() {\n return this._test('isoDate', undefined, function (value, state, options) {\n if (JoiDate._isIsoDate(value)) {\n if (!options.convert) {\n return value;\n }\n\n var d = new Date(value);\n\n if (!isNaN(d.getTime())) {\n return d.toISOString();\n }\n }\n\n return this.createError('string.isoDate', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.guid = function guid(guidOptions) {\n var versionNumbers = '';\n\n if (guidOptions && guidOptions.version) {\n if (!Array.isArray(guidOptions.version)) {\n guidOptions.version = [guidOptions.version];\n }\n\n Hoek.assert(guidOptions.version.length >= 1, 'version must have at least 1 valid version specified');\n var versions = new Set();\n\n for (var i = 0; i < guidOptions.version.length; ++i) {\n var version = guidOptions.version[i];\n Hoek.assert(typeof version === 'string', 'version at position ' + i + ' must be a string');\n version = version.toLowerCase();\n var versionNumber = internals.guidVersions[version];\n Hoek.assert(versionNumber, 'version at position ' + i + ' must be one of ' + Object.keys(internals.guidVersions).join(', '));\n Hoek.assert(!versions.has(versionNumber), 'version at position ' + i + ' must not be a duplicate.');\n versionNumbers += versionNumber;\n versions.add(versionNumber);\n }\n }\n\n var guidRegex = new RegExp('^([\\\\[{\\\\(]?)[0-9A-F]{8}([:-]?)[0-9A-F]{4}\\\\2?[' + (versionNumbers || '0-9A-F') + '][0-9A-F]{3}\\\\2?[' + (versionNumbers ? '89AB' : '0-9A-F') + '][0-9A-F]{3}\\\\2?[0-9A-F]{12}([\\\\]}\\\\)]?)$', 'i');\n return this._test('guid', guidOptions, function (value, state, options) {\n var results = guidRegex.exec(value);\n\n if (!results) {\n return this.createError('string.guid', {\n value: value\n }, state, options);\n } // Matching braces\n\n\n if (internals.guidBrackets[results[1]] !== results[results.length - 1]) {\n return this.createError('string.guid', {\n value: value\n }, state, options);\n }\n\n return value;\n });\n };\n\n _class.prototype.hex = function hex() {\n var regex = /^[a-f0-9]+$/i;\n return this._test('hex', regex, function (value, state, options) {\n if (regex.test(value)) {\n return value;\n }\n\n return this.createError('string.hex', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.base64 = function base64() {\n var base64Options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // Validation.\n\n Hoek.assert((typeof base64Options === 'undefined' ? 'undefined' : _typeof(base64Options)) === 'object', 'base64 options must be an object');\n Hoek.assert(typeof base64Options.paddingRequired === 'undefined' || typeof base64Options.paddingRequired === 'boolean', 'paddingRequired must be boolean'); // Determine if padding is required.\n\n var paddingRequired = base64Options.paddingRequired === false ? base64Options.paddingRequired : base64Options.paddingRequired || true; // Set validation based on preference.\n\n var regex = paddingRequired ? // Padding is required.\n /^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/ // Padding is optional.\n : /^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}(==)?|[A-Za-z0-9+\\/]{3}=?)?$/;\n return this._test('base64', regex, function (value, state, options) {\n if (regex.test(value)) {\n return value;\n }\n\n return this.createError('string.base64', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.hostname = function hostname() {\n var regex = /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$/;\n return this._test('hostname', undefined, function (value, state, options) {\n if (value.length <= 255 && regex.test(value) || Net.isIPv6(value)) {\n return value;\n }\n\n return this.createError('string.hostname', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.normalize = function normalize() {\n var form = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'NFC';\n Hoek.assert(Hoek.contain(internals.normalizationForms, form), 'normalization form must be one of ' + internals.normalizationForms.join(', '));\n\n var obj = this._test('normalize', form, function (value, state, options) {\n if (options.convert || value === value.normalize(form)) {\n return value;\n }\n\n return this.createError('string.normalize', {\n value: value,\n form: form\n }, state, options);\n });\n\n obj._flags.normalize = form;\n return obj;\n };\n\n _class.prototype.lowercase = function lowercase() {\n var obj = this._test('lowercase', undefined, function (value, state, options) {\n if (options.convert || value === value.toLocaleLowerCase()) {\n return value;\n }\n\n return this.createError('string.lowercase', {\n value: value\n }, state, options);\n });\n\n obj._flags[\"case\"] = 'lower';\n return obj;\n };\n\n _class.prototype.uppercase = function uppercase() {\n var obj = this._test('uppercase', undefined, function (value, state, options) {\n if (options.convert || value === value.toLocaleUpperCase()) {\n return value;\n }\n\n return this.createError('string.uppercase', {\n value: value\n }, state, options);\n });\n\n obj._flags[\"case\"] = 'upper';\n return obj;\n };\n\n _class.prototype.trim = function trim() {\n var obj = this._test('trim', undefined, function (value, state, options) {\n if (options.convert || value === value.trim()) {\n return value;\n }\n\n return this.createError('string.trim', {\n value: value\n }, state, options);\n });\n\n obj._flags.trim = true;\n return obj;\n };\n\n _class.prototype.replace = function replace(pattern, replacement) {\n if (typeof pattern === 'string') {\n pattern = new RegExp(Hoek.escapeRegex(pattern), 'g');\n }\n\n Hoek.assert(pattern instanceof RegExp, 'pattern must be a RegExp');\n Hoek.assert(typeof replacement === 'string', 'replacement must be a String'); // This can not be considere a test like trim, we can't \"reject\"\n // anything from this rule, so just clone the current object\n\n var obj = this.clone();\n\n if (!obj._inner.replacements) {\n obj._inner.replacements = [];\n }\n\n obj._inner.replacements.push({\n pattern: pattern,\n replacement: replacement\n });\n\n return obj;\n };\n\n _class.prototype.truncate = function truncate(enabled) {\n var value = enabled === undefined ? true : !!enabled;\n\n if (this._flags.truncate === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.truncate = value;\n return obj;\n };\n\n return _class;\n }(Any);\n\n internals.compare = function (type, compare) {\n return function (limit, encoding) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n Hoek.assert(!encoding || Buffer.isEncoding(encoding), 'Invalid encoding:', encoding);\n return this._test(type, limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!Number.isSafeInteger(compareTo)) {\n return this.createError('string.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (compare(value, compareTo, encoding)) {\n return value;\n }\n\n return this.createError('string.' + type, {\n limit: compareTo,\n value: value,\n encoding: encoding\n }, state, options);\n });\n };\n };\n\n internals.String.prototype.min = internals.compare('min', function (value, limit, encoding) {\n var length = encoding ? Buffer.byteLength(value, encoding) : value.length;\n return length >= limit;\n });\n internals.String.prototype.max = internals.compare('max', function (value, limit, encoding) {\n var length = encoding ? Buffer.byteLength(value, encoding) : value.length;\n return length <= limit;\n });\n internals.String.prototype.length = internals.compare('length', function (value, limit, encoding) {\n var length = encoding ? Buffer.byteLength(value, encoding) : value.length;\n return length === limit;\n }); // Aliases\n\n internals.String.prototype.uuid = internals.String.prototype.guid;\n module.exports = new internals.String();\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 26 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var RFC3986 = __webpack_require__(13); // Declare internals\n\n\n var internals = {\n Ip: {\n cidrs: {\n ipv4: {\n required: '\\\\/(?:' + RFC3986.ipv4Cidr + ')',\n optional: '(?:\\\\/(?:' + RFC3986.ipv4Cidr + '))?',\n forbidden: ''\n },\n ipv6: {\n required: '\\\\/' + RFC3986.ipv6Cidr,\n optional: '(?:\\\\/' + RFC3986.ipv6Cidr + ')?',\n forbidden: ''\n },\n ipvfuture: {\n required: '\\\\/' + RFC3986.ipv6Cidr,\n optional: '(?:\\\\/' + RFC3986.ipv6Cidr + ')?',\n forbidden: ''\n }\n },\n versions: {\n ipv4: RFC3986.IPv4address,\n ipv6: RFC3986.IPv6address,\n ipvfuture: RFC3986.IPvFuture\n }\n }\n };\n\n internals.Ip.createIpRegex = function (versions, cidr) {\n var regex = void 0;\n\n for (var i = 0; i < versions.length; ++i) {\n var version = versions[i];\n\n if (!regex) {\n regex = '^(?:' + internals.Ip.versions[version] + internals.Ip.cidrs[version][cidr];\n } else {\n regex += '|' + internals.Ip.versions[version] + internals.Ip.cidrs[version][cidr];\n }\n }\n\n return new RegExp(regex + ')$');\n };\n\n module.exports = internals.Ip;\n /***/\n },\n /* 27 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load Modules\n\n var RFC3986 = __webpack_require__(13); // Declare internals\n\n\n var internals = {\n Uri: {\n createUriRegex: function createUriRegex(optionalScheme, allowRelative, relativeOnly) {\n var scheme = RFC3986.scheme;\n var prefix = void 0;\n\n if (relativeOnly) {\n prefix = '(?:' + RFC3986.relativeRef + ')';\n } else {\n // If we were passed a scheme, use it instead of the generic one\n if (optionalScheme) {\n // Have to put this in a non-capturing group to handle the OR statements\n scheme = '(?:' + optionalScheme + ')';\n }\n\n var withScheme = '(?:' + scheme + ':' + RFC3986.hierPart + ')';\n prefix = allowRelative ? '(?:' + withScheme + '|' + RFC3986.relativeRef + ')' : withScheme;\n }\n /**\n * URI = scheme \":\" hier-part [ \"?\" query ] [ \"#\" fragment ]\n *\n * OR\n *\n * relative-ref = relative-part [ \"?\" query ] [ \"#\" fragment ]\n */\n\n\n return new RegExp('^' + prefix + '(?:\\\\?' + RFC3986.query + ')?' + '(?:#' + RFC3986.fragment + ')?$');\n }\n }\n };\n module.exports = internals.Uri;\n /***/\n },\n /* 28 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n exports = module.exports = internals.Topo = function () {\n this._items = [];\n this.nodes = [];\n };\n\n internals.Topo.prototype.add = function (nodes, options) {\n var _this = this;\n\n options = options || {}; // Validate rules\n\n var before = [].concat(options.before || []);\n var after = [].concat(options.after || []);\n var group = options.group || '?';\n var sort = options.sort || 0; // Used for merging only\n\n Hoek.assert(before.indexOf(group) === -1, 'Item cannot come before itself:', group);\n Hoek.assert(before.indexOf('?') === -1, 'Item cannot come before unassociated items');\n Hoek.assert(after.indexOf(group) === -1, 'Item cannot come after itself:', group);\n Hoek.assert(after.indexOf('?') === -1, 'Item cannot come after unassociated items');\n [].concat(nodes).forEach(function (node, i) {\n var item = {\n seq: _this._items.length,\n sort: sort,\n before: before,\n after: after,\n group: group,\n node: node\n };\n\n _this._items.push(item);\n }); // Insert event\n\n var error = this._sort();\n\n Hoek.assert(!error, 'item', group !== '?' ? 'added into group ' + group : '', 'created a dependencies error');\n return this.nodes;\n };\n\n internals.Topo.prototype.merge = function (others) {\n others = [].concat(others);\n\n for (var i = 0; i < others.length; ++i) {\n var other = others[i];\n\n if (other) {\n for (var j = 0; j < other._items.length; ++j) {\n var item = Hoek.shallow(other._items[j]);\n\n this._items.push(item);\n }\n }\n } // Sort items\n\n\n this._items.sort(internals.mergeSort);\n\n for (var _i = 0; _i < this._items.length; ++_i) {\n this._items[_i].seq = _i;\n }\n\n var error = this._sort();\n\n Hoek.assert(!error, 'merge created a dependencies error');\n return this.nodes;\n };\n\n internals.mergeSort = function (a, b) {\n return a.sort === b.sort ? 0 : a.sort < b.sort ? -1 : 1;\n };\n\n internals.Topo.prototype._sort = function () {\n // Construct graph\n var graph = {};\n var graphAfters = Object.create(null); // A prototype can bungle lookups w/ false positives\n\n var groups = Object.create(null);\n\n for (var i = 0; i < this._items.length; ++i) {\n var item = this._items[i];\n var seq = item.seq; // Unique across all items\n\n var group = item.group; // Determine Groups\n\n groups[group] = groups[group] || [];\n groups[group].push(seq); // Build intermediary graph using 'before'\n\n graph[seq] = item.before; // Build second intermediary graph with 'after'\n\n var after = item.after;\n\n for (var j = 0; j < after.length; ++j) {\n graphAfters[after[j]] = (graphAfters[after[j]] || []).concat(seq);\n }\n } // Expand intermediary graph\n\n\n var graphNodes = Object.keys(graph);\n\n for (var _i2 = 0; _i2 < graphNodes.length; ++_i2) {\n var node = graphNodes[_i2];\n var expandedGroups = [];\n var graphNodeItems = Object.keys(graph[node]);\n\n for (var _j = 0; _j < graphNodeItems.length; ++_j) {\n var _group = graph[node][graphNodeItems[_j]];\n groups[_group] = groups[_group] || [];\n\n for (var k = 0; k < groups[_group].length; ++k) {\n expandedGroups.push(groups[_group][k]);\n }\n }\n\n graph[node] = expandedGroups;\n } // Merge intermediary graph using graphAfters into final graph\n\n\n var afterNodes = Object.keys(graphAfters);\n\n for (var _i3 = 0; _i3 < afterNodes.length; ++_i3) {\n var _group2 = afterNodes[_i3];\n\n if (groups[_group2]) {\n for (var _j2 = 0; _j2 < groups[_group2].length; ++_j2) {\n var _node = groups[_group2][_j2];\n graph[_node] = graph[_node].concat(graphAfters[_group2]);\n }\n }\n } // Compile ancestors\n\n\n var children = void 0;\n var ancestors = {};\n graphNodes = Object.keys(graph);\n\n for (var _i4 = 0; _i4 < graphNodes.length; ++_i4) {\n var _node2 = graphNodes[_i4];\n children = graph[_node2];\n\n for (var _j3 = 0; _j3 < children.length; ++_j3) {\n ancestors[children[_j3]] = (ancestors[children[_j3]] || []).concat(_node2);\n }\n } // Topo sort\n\n\n var visited = {};\n var sorted = [];\n\n for (var _i5 = 0; _i5 < this._items.length; ++_i5) {\n // Really looping thru item.seq values out of order\n var next = _i5;\n\n if (ancestors[_i5]) {\n next = null;\n\n for (var _j4 = 0; _j4 < this._items.length; ++_j4) {\n // As above, these are item.seq values\n if (visited[_j4] === true) {\n continue;\n }\n\n if (!ancestors[_j4]) {\n ancestors[_j4] = [];\n }\n\n var shouldSeeCount = ancestors[_j4].length;\n var seenCount = 0;\n\n for (var _k = 0; _k < shouldSeeCount; ++_k) {\n if (visited[ancestors[_j4][_k]]) {\n ++seenCount;\n }\n }\n\n if (seenCount === shouldSeeCount) {\n next = _j4;\n break;\n }\n }\n }\n\n if (next !== null) {\n visited[next] = true;\n sorted.push(next);\n }\n }\n\n if (sorted.length !== this._items.length) {\n return new Error('Invalid dependencies');\n }\n\n var seqIndex = {};\n\n for (var _i6 = 0; _i6 < this._items.length; ++_i6) {\n var _item = this._items[_i6];\n seqIndex[_item.seq] = _item;\n }\n\n var sortedNodes = [];\n this._items = sorted.map(function (value) {\n var sortedItem = seqIndex[value];\n sortedNodes.push(sortedItem.node);\n return sortedItem;\n });\n this.nodes = sortedNodes;\n };\n /***/\n\n },\n /* 29 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var Joi = __webpack_require__(8);\n\n module.exports = Joi;\n /***/\n },\n /* 30 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n\n function placeHoldersCount(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 } // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n\n\n return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n }\n\n function byteLength(b64) {\n // base64 is 4/3 + up to two characters of the original data\n return b64.length * 3 / 4 - placeHoldersCount(b64);\n }\n\n function toByteArray(b64) {\n var i, l, tmp, placeHolders, arr;\n var len = b64.length;\n placeHolders = placeHoldersCount(b64);\n arr = new Arr(len * 3 / 4 - placeHolders); // if there are placeholders, only get up to the last complete 4 chars\n\n l = placeHolders > 0 ? len - 4 : len;\n var L = 0;\n\n for (i = 0; i < l; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = tmp >> 16 & 0xFF;\n arr[L++] = tmp >> 8 & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[L++] = tmp >> 8 & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr;\n }\n\n function tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n }\n\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2];\n output.push(tripletToBase64(tmp));\n }\n\n return output.join('');\n }\n\n function 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\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\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 } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[tmp << 4 & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n output += lookup[tmp >> 10];\n output += lookup[tmp >> 4 & 0x3F];\n output += lookup[tmp << 2 & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n return parts.join('');\n }\n /***/\n\n },\n /* 31 */\n\n /***/\n function (module, exports) {\n exports.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 i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\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\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\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n\n exports.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 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\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\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\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 /***/\n\n },\n /* 32 */\n\n /***/\n function (module, exports) {\n var toString = {}.toString;\n\n module.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n };\n /***/\n\n },\n /* 33 */\n\n /***/\n function (module, exports) {\n module.exports = {\n \"_args\": [[\"joi@13.0.1\", \"/Users/jeff/projects/joi-browser\"]],\n \"_development\": true,\n \"_from\": \"joi@13.0.1\",\n \"_id\": \"joi@13.0.1\",\n \"_inBundle\": false,\n \"_integrity\": \"sha512-ChTMfmbIg5yrN9pUdeaLL8vzylMQhUteXiXa1MWINsMUs3jTQ8I87lUZwR5GdfCLJlpK04U7UgrxgmU8Zp7PhQ==\",\n \"_location\": \"/joi\",\n \"_phantomChildren\": {},\n \"_requested\": {\n \"type\": \"version\",\n \"registry\": true,\n \"raw\": \"joi@13.0.1\",\n \"name\": \"joi\",\n \"escapedName\": \"joi\",\n \"rawSpec\": \"13.0.1\",\n \"saveSpec\": null,\n \"fetchSpec\": \"13.0.1\"\n },\n \"_requiredBy\": [\"#DEV:/\"],\n \"_resolved\": \"https://registry.npmjs.org/joi/-/joi-13.0.1.tgz\",\n \"_spec\": \"13.0.1\",\n \"_where\": \"/Users/jeff/projects/joi-browser\",\n \"bugs\": {\n \"url\": \"https://github.com/hapijs/joi/issues\"\n },\n \"dependencies\": {\n \"hoek\": \"5.x.x\",\n \"isemail\": \"3.x.x\",\n \"topo\": \"3.x.x\"\n },\n \"description\": \"Object schema validation\",\n \"devDependencies\": {\n \"hapitoc\": \"1.x.x\",\n \"lab\": \"14.x.x\"\n },\n \"engines\": {\n \"node\": \">=8.3.0\"\n },\n \"homepage\": \"https://github.com/hapijs/joi\",\n \"keywords\": [\"hapi\", \"schema\", \"validation\"],\n \"license\": \"BSD-3-Clause\",\n \"main\": \"lib/index.js\",\n \"name\": \"joi\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/hapijs/joi.git\"\n },\n \"scripts\": {\n \"test\": \"lab -t 100 -a code -L\",\n \"test-cov-html\": \"lab -r html -o coverage.html -a code\",\n \"test-debug\": \"lab -a code\",\n \"toc\": \"hapitoc\",\n \"version\": \"npm run toc && git add API.md README.md\"\n },\n \"version\": \"13.0.1\"\n };\n /***/\n },\n /* 34 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (process) {\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 // resolves . and .. elements in a path array with directory names there\n // must be no slashes, empty elements, or device names (c:\\) in the array\n // (so also no leading and trailing slashes - it does not distinguish\n // relative and absolute paths)\n function normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n } // Split a filename into [root, dir, basename, ext], unix version\n // 'root' is just a slash, or nothing.\n\n\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n\n var splitPath = function splitPath(filename) {\n return splitPathRe.exec(filename).slice(1);\n }; // path.resolve([from ...], to)\n // posix version\n\n\n exports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n }; // path.normalize(path)\n // posix version\n\n\n exports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n }; // posix version\n\n\n exports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n }; // posix version\n\n\n exports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n }; // path.relative(from, to)\n // posix version\n\n\n exports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n };\n\n exports.sep = '/';\n exports.delimiter = ':';\n\n exports.dirname = function (path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n };\n\n exports.basename = function (path, ext) {\n var f = splitPath(path)[2]; // TODO: make this comparison case-insensitive on windows?\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n };\n\n exports.extname = function (path) {\n return splitPath(path)[3];\n };\n\n function filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n } // String.prototype.substr - negative index don't work in IE8\n\n\n var substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n } : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n };\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(5));\n /***/\n },\n /* 35 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (module, global) {\n var __WEBPACK_AMD_DEFINE_RESULT__;\n /*! https://mths.be/punycode v1.4.1 by @mathias */\n\n\n ;\n\n (function (root) {\n /** Detect free variables */\n var freeExports = _typeof2(exports) == 'object' && exports && !exports.nodeType && exports;\n var freeModule = _typeof2(module) == 'object' && module && !module.nodeType && module;\n var freeGlobal = _typeof2(global) == 'object' && global;\n\n if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n root = freeGlobal;\n }\n /**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\n\n\n var punycode,\n\n /** Highest positive signed 32-bit float value */\n maxInt = 2147483647,\n // aka. 0x7FFFFFFF or 2^31-1\n\n /** Bootstring parameters */\n base = 36,\n tMin = 1,\n tMax = 26,\n skew = 38,\n damp = 700,\n initialBias = 72,\n initialN = 128,\n // 0x80\n delimiter = '-',\n // '\\x2D'\n\n /** Regular expressions */\n regexPunycode = /^xn--/,\n regexNonASCII = /[^\\x20-\\x7E]/,\n // unprintable ASCII chars + non-ASCII chars\n regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n // RFC 3490 separators\n\n /** Error messages */\n errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n },\n\n /** Convenience shortcuts */\n baseMinusTMin = base - tMin,\n floor = Math.floor,\n stringFromCharCode = String.fromCharCode,\n\n /** Temporary variable */\n key;\n /*--------------------------------------------------------------------------*/\n\n /**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n\n function error(type) {\n throw new RangeError(errors[type]);\n }\n /**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n\n\n function map(array, fn) {\n var length = array.length;\n var result = [];\n\n while (length--) {\n result[length] = fn(array[length]);\n }\n\n return result;\n }\n /**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n\n\n function mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n } // Avoid `split(regex)` for IE8 compatibility. See #17.\n\n\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map(labels, fn).join('.');\n return result + encoded;\n }\n /**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n\n\n function ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n\n while (counter < length) {\n value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n }\n /**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n\n\n function ucs2encode(array) {\n return map(array, function (value) {\n var output = '';\n\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n\n output += stringFromCharCode(value);\n return output;\n }).join('');\n }\n /**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n\n\n function basicToDigit(codePoint) {\n if (codePoint - 48 < 10) {\n return codePoint - 22;\n }\n\n if (codePoint - 65 < 26) {\n return codePoint - 65;\n }\n\n if (codePoint - 97 < 26) {\n return codePoint - 97;\n }\n\n return base;\n }\n /**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n\n\n function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n /**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n\n\n function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n\n for (;\n /* no initialization */\n delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n }\n /**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n\n\n function decode(input) {\n // Don't use UCS-2\n var output = [],\n inputLength = input.length,\n out,\n i = 0,\n n = initialN,\n bias = initialBias,\n basic,\n j,\n index,\n oldi,\n w,\n k,\n digit,\n t,\n\n /** Cached calculation results */\n baseMinusT; // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n basic = input.lastIndexOf(delimiter);\n\n if (basic < 0) {\n basic = 0;\n }\n\n for (j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n\n output.push(input.charCodeAt(j));\n } // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n\n for (index = basic > 0 ? basic + 1 : 0; index < inputLength;)\n /* no final expression */\n {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n for (oldi = i, w = 1, k = base;;\n /* no condition */\n k += base) {\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n baseMinusT = base - t;\n\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n }\n\n out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out; // Insert `n` at position `i` of the output\n\n output.splice(i++, 0, n);\n }\n\n return ucs2encode(output);\n }\n /**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n\n\n function encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT; // Convert the input in UCS-2 to Unicode\n\n input = ucs2decode(input); // Cache the length\n\n inputLength = input.length; // Initialize the state\n\n n = initialN;\n delta = 0;\n bias = initialBias; // Handle the basic code points\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length; // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n // Finish the basic string - if it is not empty - with a delimiter\n\n if (basicLength) {\n output.push(delimiter);\n } // Main encoding loop:\n\n\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n } // Increase `delta` enough to advance the decoder's state to ,\n // but guard against overflow\n\n\n handledCPCountPlusOne = handledCPCount + 1;\n\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base;;\n /* no condition */\n k += base) {\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (q < t) {\n break;\n }\n\n qMinusT = q - t;\n baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n\n return output.join('');\n }\n /**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n\n\n function toUnicode(input) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n }\n /**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n\n\n function toASCII(input) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n });\n }\n /*--------------------------------------------------------------------------*/\n\n /** Define the public API */\n\n\n punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n 'version': '1.4.1',\n\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n 'ucs2': {\n 'decode': ucs2decode,\n 'encode': ucs2encode\n },\n 'decode': decode,\n 'encode': encode,\n 'toASCII': toASCII,\n 'toUnicode': toUnicode\n };\n /** Expose `punycode` */\n // Some AMD build optimizers, like r.js, check for specific condition patterns\n // like the following:\n\n if (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n return punycode;\n }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (freeExports && freeModule) {\n if (module.exports == freeExports) {\n // in Node.js, io.js, or RingoJS v0.8.0+\n freeModule.exports = punycode;\n } else {\n // in Narwhal or RingoJS v0.7.0-\n for (key in punycode) {\n punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n }\n }\n } else {\n // in Rhino or a web browser\n root.punycode = punycode;\n }\n })(this);\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(39)(module), __webpack_require__(7));\n /***/\n },\n /* 36 */\n\n /***/\n function (module, exports) {\n if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, 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 } else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n }\n /***/\n\n },\n /* 37 */\n\n /***/\n function (module, exports) {\n module.exports = function isBuffer(arg) {\n return arg && _typeof2(arg) === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function';\n };\n /***/\n\n },\n /* 38 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (global, process) {\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 var formatRegExp = /%[sdj%]/g;\n\n exports.format = function (f) {\n if (!isString(f)) {\n var objects = [];\n\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\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\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n default:\n return x;\n }\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\n return str;\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.\n\n\n exports.deprecate = function (fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function () {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n\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\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n };\n\n var debugs = {};\n var debugEnviron;\n\n exports.debuglog = function (set) {\n if (isUndefined(debugEnviron)) debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n\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\n return debugs[set];\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\n /* legacy: obj, showHidden, depth, colors*/\n\n\n function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n }; // legacy...\n\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n\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 } // set default options\n\n\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 }\n\n exports.inspect = inspect; // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n\n inspect.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 }; // Don't use 'blue' not visible on cmd.exe\n\n inspect.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 function stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + 'm' + str + \"\\x1B[\" + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n }\n\n function stylizeNoColor(str, styleType) {\n return str;\n }\n\n function arrayToHash(array) {\n var hash = {};\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n return hash;\n }\n\n function 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 && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // 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\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n\n return ret;\n } // Primitive types cannot have properties\n\n\n var primitive = formatPrimitive(ctx, value);\n\n if (primitive) {\n return primitive;\n } // Look up the keys of the object.\n\n\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n } // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n\n\n if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n } // Some type of object without properties can be shortcutted.\n\n\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\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}']; // Make Array say that they are Array\n\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n } // Make functions say that they are functions\n\n\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n } // Make RegExps say that they are RegExps\n\n\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n } // Make dates with properties first say the date\n\n\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n } // Make error with message first say the error\n\n\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 var output;\n\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 return reduceToSingleString(output, base, braces);\n }\n\n function formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '').replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean'); // For some reason typeof null is \"object\", so special case here.\n\n if (isNull(value)) return ctx.stylize('null', 'null');\n }\n\n function formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n }\n\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n\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, String(i), true));\n } else {\n output.push('');\n }\n }\n\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));\n }\n });\n return output;\n }\n\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {\n value: value[key]\n };\n\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\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\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\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\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n\n name = JSON.stringify('' + key);\n\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, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n }\n\n function 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] + (base === '' ? '' : base + '\\n ') + ' ' + output.join(',\\n ') + ' ' + braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\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\n\n function isArray(ar) {\n return Array.isArray(ar);\n }\n\n exports.isArray = isArray;\n\n function isBoolean(arg) {\n return typeof arg === 'boolean';\n }\n\n exports.isBoolean = isBoolean;\n\n function isNull(arg) {\n return arg === null;\n }\n\n exports.isNull = isNull;\n\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n\n exports.isNullOrUndefined = isNullOrUndefined;\n\n function isNumber(arg) {\n return typeof arg === 'number';\n }\n\n exports.isNumber = isNumber;\n\n function isString(arg) {\n return typeof arg === 'string';\n }\n\n exports.isString = isString;\n\n function isSymbol(arg) {\n return _typeof2(arg) === 'symbol';\n }\n\n exports.isSymbol = isSymbol;\n\n function isUndefined(arg) {\n return arg === void 0;\n }\n\n exports.isUndefined = isUndefined;\n\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n }\n\n exports.isRegExp = isRegExp;\n\n function isObject(arg) {\n return _typeof2(arg) === 'object' && arg !== null;\n }\n\n exports.isObject = isObject;\n\n function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n }\n\n exports.isDate = isDate;\n\n function isError(e) {\n return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error);\n }\n\n exports.isError = isError;\n\n function isFunction(arg) {\n return typeof arg === 'function';\n }\n\n exports.isFunction = isFunction;\n\n function isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || _typeof2(arg) === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n }\n\n exports.isPrimitive = isPrimitive;\n exports.isBuffer = __webpack_require__(37);\n\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n\n function pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n }\n\n var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // 26 Feb 16:19:34\n\n function timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n } // log is just a thin wrapper to console.log that prepends a timestamp\n\n\n exports.log = function () {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\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 */\n\n\n exports.inherits = __webpack_require__(36);\n\n exports._extend = function (origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n\n return origin;\n };\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(7), __webpack_require__(5));\n /***/\n },\n /* 39 */\n\n /***/\n function (module, exports) {\n module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n };\n /***/\n\n }\n /******/\n ])\n );\n});","module.exports = require(\"regenerator-runtime\");\n","export default function (x) {\n return function constant() {\n return x;\n };\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\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}","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * The public API for putting history on context.\n */\n\nvar Router = function (_React$Component) {\n _inherits(Router, _React$Component);\n\n function Router() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Router);\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, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n match: _this.computeMatch(_this.props.history.location.pathname)\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Router.prototype.getChildContext = function getChildContext() {\n return {\n router: _extends({}, this.context.router, {\n history: this.props.history,\n route: {\n location: this.props.history.location,\n match: this.state.match\n }\n })\n };\n };\n\n Router.prototype.computeMatch = function computeMatch(pathname) {\n return {\n path: '/',\n url: '/',\n params: {},\n isExact: pathname === '/'\n };\n };\n\n Router.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this;\n\n var _props = this.props,\n children = _props.children,\n history = _props.history;\n invariant(children == null || React.Children.count(children) === 1, 'A may have only one child element'); // Do this here so we can setState when a changes the\n // location in componentWillMount. This happens e.g. when doing\n // server rendering using a .\n\n this.unlisten = history.listen(function () {\n _this2.setState({\n match: _this2.computeMatch(history.location.pathname)\n });\n });\n };\n\n Router.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n warning(this.props.history === nextProps.history, 'You cannot change ');\n };\n\n Router.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unlisten();\n };\n\n Router.prototype.render = function render() {\n var children = this.props.children;\n return children ? React.Children.only(children) : null;\n };\n\n return Router;\n}(React.Component);\n\nRouter.propTypes = {\n history: PropTypes.object.isRequired,\n children: PropTypes.node\n};\nRouter.contextTypes = {\n router: PropTypes.object\n};\nRouter.childContextTypes = {\n router: PropTypes.object.isRequired\n};\nexport default Router;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nimport warning from 'warning';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport createHistory from 'history/createMemoryHistory';\nimport Router from './Router';\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter = function (_React$Component) {\n _inherits(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, MemoryRouter);\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, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = createHistory(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n MemoryRouter.prototype.componentWillMount = function componentWillMount() {\n warning(!this.props.history, ' ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { MemoryRouter as Router }`.');\n };\n\n MemoryRouter.prototype.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nMemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n};\nexport default MemoryRouter;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n/**\n * The public API for prompting the user before navigating away\n * from a screen with a component.\n */\n\nvar Prompt = function (_React$Component) {\n _inherits(Prompt, _React$Component);\n\n function Prompt() {\n _classCallCheck(this, Prompt);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Prompt.prototype.enable = function enable(message) {\n if (this.unblock) this.unblock();\n this.unblock = this.context.router.history.block(message);\n };\n\n Prompt.prototype.disable = function disable() {\n if (this.unblock) {\n this.unblock();\n this.unblock = null;\n }\n };\n\n Prompt.prototype.componentWillMount = function componentWillMount() {\n invariant(this.context.router, 'You should not use outside a ');\n if (this.props.when) this.enable(this.props.message);\n };\n\n Prompt.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.when) {\n if (!this.props.when || this.props.message !== nextProps.message) this.enable(nextProps.message);\n } else {\n this.disable();\n }\n };\n\n Prompt.prototype.componentWillUnmount = function componentWillUnmount() {\n this.disable();\n };\n\n Prompt.prototype.render = function render() {\n return null;\n };\n\n return Prompt;\n}(React.Component);\n\nPrompt.propTypes = {\n when: PropTypes.bool,\n message: PropTypes.oneOfType([PropTypes.func, PropTypes.string]).isRequired\n};\nPrompt.defaultProps = {\n when: true\n};\nPrompt.contextTypes = {\n router: PropTypes.shape({\n history: PropTypes.shape({\n block: PropTypes.func.isRequired\n }).isRequired\n }).isRequired\n};\nexport default Prompt;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation, locationsAreEqual } from 'history';\n/**\n * The public API for updating the location programmatically\n * with a component.\n */\n\nvar Redirect = function (_React$Component) {\n _inherits(Redirect, _React$Component);\n\n function Redirect() {\n _classCallCheck(this, Redirect);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Redirect.prototype.isStatic = function isStatic() {\n return this.context.router && this.context.router.staticContext;\n };\n\n Redirect.prototype.componentWillMount = function componentWillMount() {\n invariant(this.context.router, 'You should not use outside a ');\n if (this.isStatic()) this.perform();\n };\n\n Redirect.prototype.componentDidMount = function componentDidMount() {\n if (!this.isStatic()) this.perform();\n };\n\n Redirect.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var prevTo = createLocation(prevProps.to);\n var nextTo = createLocation(this.props.to);\n\n if (locationsAreEqual(prevTo, nextTo)) {\n warning(false, 'You tried to redirect to the same route you\\'re currently on: ' + ('\"' + nextTo.pathname + nextTo.search + '\"'));\n return;\n }\n\n this.perform();\n };\n\n Redirect.prototype.perform = function perform() {\n var history = this.context.router.history;\n var _props = this.props,\n push = _props.push,\n to = _props.to;\n\n if (push) {\n history.push(to);\n } else {\n history.replace(to);\n }\n };\n\n Redirect.prototype.render = function render() {\n return null;\n };\n\n return Redirect;\n}(React.Component);\n\nRedirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n};\nRedirect.defaultProps = {\n push: false\n};\nRedirect.contextTypes = {\n router: PropTypes.shape({\n history: PropTypes.shape({\n push: PropTypes.func.isRequired,\n replace: PropTypes.func.isRequired\n }).isRequired,\n staticContext: PropTypes.object\n }).isRequired\n};\nexport default Redirect;","import pathToRegexp from 'path-to-regexp';\nvar patternCache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nvar compilePath = function compilePath(pattern, options) {\n var cacheKey = '' + options.end + options.strict + options.sensitive;\n var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});\n if (cache[pattern]) return cache[pattern];\n var keys = [];\n var re = pathToRegexp(pattern, keys, options);\n var compiledPattern = {\n re: re,\n keys: keys\n };\n\n if (cacheCount < cacheLimit) {\n cache[pattern] = compiledPattern;\n cacheCount++;\n }\n\n return compiledPattern;\n};\n/**\n * Public API for matching a URL pathname to a path pattern.\n */\n\n\nvar matchPath = function matchPath(pathname) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (typeof options === 'string') options = {\n path: options\n };\n var _options = options,\n _options$path = _options.path,\n path = _options$path === undefined ? '/' : _options$path,\n _options$exact = _options.exact,\n exact = _options$exact === undefined ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === undefined ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === undefined ? false : _options$sensitive;\n\n var _compilePath = compilePath(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n re = _compilePath.re,\n keys = _compilePath.keys;\n\n var match = re.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path pattern used to match\n url: path === '/' && url === '' ? '/' : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n};\n\nexport default matchPath;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport matchPath from './matchPath';\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n};\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = function (_React$Component) {\n _inherits(Route, _React$Component);\n\n function Route() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Route);\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, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n match: _this.computeMatch(_this.props, _this.context.router)\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Route.prototype.getChildContext = function getChildContext() {\n return {\n router: _extends({}, this.context.router, {\n route: {\n location: this.props.location || this.context.router.route.location,\n match: this.state.match\n }\n })\n };\n };\n\n Route.prototype.computeMatch = function computeMatch(_ref, router) {\n var computedMatch = _ref.computedMatch,\n location = _ref.location,\n path = _ref.path,\n strict = _ref.strict,\n exact = _ref.exact,\n sensitive = _ref.sensitive;\n if (computedMatch) return computedMatch; // already computed the match for us\n\n invariant(router, 'You should not use or withRouter() outside a ');\n var route = router.route;\n var pathname = (location || route.location).pathname;\n return path ? matchPath(pathname, {\n path: path,\n strict: strict,\n exact: exact,\n sensitive: sensitive\n }) : route.match;\n };\n\n Route.prototype.componentWillMount = function componentWillMount() {\n warning(!(this.props.component && this.props.render), 'You should not use and in the same route; will be ignored');\n warning(!(this.props.component && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use and in the same route; will be ignored');\n warning(!(this.props.render && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use and in the same route; will be ignored');\n };\n\n Route.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {\n warning(!(nextProps.location && !this.props.location), ' 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 warning(!(!nextProps.location && this.props.location), ' 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 this.setState({\n match: this.computeMatch(nextProps, nextContext.router)\n });\n };\n\n Route.prototype.render = function render() {\n var match = this.state.match;\n var _props = this.props,\n children = _props.children,\n component = _props.component,\n render = _props.render;\n var _context$router = this.context.router,\n history = _context$router.history,\n route = _context$router.route,\n staticContext = _context$router.staticContext;\n var location = this.props.location || route.location;\n var props = {\n match: match,\n location: location,\n history: history,\n staticContext: staticContext\n };\n return component ? // component prop gets first priority, only called if there's a match\n match ? React.createElement(component, props) : null : render ? // render prop is next, only called if there's a match\n match ? render(props) : null : children ? // children come last, always called\n typeof children === 'function' ? children(props) : !isEmptyChildren(children) ? React.Children.only(children) : null : null;\n };\n\n return Route;\n}(React.Component);\n\nRoute.propTypes = {\n computedMatch: PropTypes.object,\n // private, from \n path: PropTypes.string,\n exact: PropTypes.bool,\n strict: PropTypes.bool,\n sensitive: PropTypes.bool,\n component: PropTypes.func,\n render: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n location: PropTypes.object\n};\nRoute.contextTypes = {\n router: PropTypes.shape({\n history: PropTypes.object.isRequired,\n route: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n })\n};\nRoute.childContextTypes = {\n router: PropTypes.object.isRequired\n};\nexport default Route;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _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\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { addLeadingSlash, createPath, parsePath } from 'history/PathUtils';\nimport Router from './Router';\n\nvar normalizeLocation = function normalizeLocation(object) {\n var _object$pathname = object.pathname,\n pathname = _object$pathname === undefined ? '/' : _object$pathname,\n _object$search = object.search,\n search = _object$search === undefined ? '' : _object$search,\n _object$hash = object.hash,\n hash = _object$hash === undefined ? '' : _object$hash;\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nvar addBasename = function addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n};\n\nvar stripBasename = function stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n};\n\nvar createLocation = function createLocation(location) {\n return typeof location === 'string' ? parsePath(location) : normalizeLocation(location);\n};\n\nvar createURL = function createURL(location) {\n return typeof location === 'string' ? location : createPath(location);\n};\n\nvar staticHandler = function staticHandler(methodName) {\n return function () {\n invariant(false, 'You cannot %s with ', methodName);\n };\n};\n\nvar noop = function noop() {};\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 */\n\n\nvar StaticRouter = function (_React$Component) {\n _inherits(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, StaticRouter);\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, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.createHref = function (path) {\n return addLeadingSlash(_this.props.basename + createURL(path));\n }, _this.handlePush = function (location) {\n var _this$props = _this.props,\n basename = _this$props.basename,\n context = _this$props.context;\n context.action = 'PUSH';\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }, _this.handleReplace = function (location) {\n var _this$props2 = _this.props,\n basename = _this$props2.basename,\n context = _this$props2.context;\n context.action = 'REPLACE';\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }, _this.handleListen = function () {\n return noop;\n }, _this.handleBlock = function () {\n return noop;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n StaticRouter.prototype.getChildContext = function getChildContext() {\n return {\n router: {\n staticContext: this.props.context\n }\n };\n };\n\n StaticRouter.prototype.componentWillMount = function componentWillMount() {\n warning(!this.props.history, ' ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { StaticRouter as Router }`.');\n };\n\n StaticRouter.prototype.render = function render() {\n var _props = this.props,\n basename = _props.basename,\n context = _props.context,\n location = _props.location,\n props = _objectWithoutProperties(_props, ['basename', 'context', 'location']);\n\n var history = {\n createHref: this.createHref,\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 return React.createElement(Router, _extends({}, props, {\n history: history\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nStaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object.isRequired,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n};\nStaticRouter.defaultProps = {\n basename: '',\n location: '/'\n};\nStaticRouter.childContextTypes = {\n router: PropTypes.object.isRequired\n};\nexport default StaticRouter;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport matchPath from './matchPath';\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch = function (_React$Component) {\n _inherits(Switch, _React$Component);\n\n function Switch() {\n _classCallCheck(this, Switch);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Switch.prototype.componentWillMount = function componentWillMount() {\n invariant(this.context.router, 'You should not use outside a ');\n };\n\n Switch.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n warning(!(nextProps.location && !this.props.location), ' 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 warning(!(!nextProps.location && this.props.location), ' 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 Switch.prototype.render = function render() {\n var route = this.context.router.route;\n var children = this.props.children;\n var location = this.props.location || route.location;\n var match = void 0,\n child = void 0;\n React.Children.forEach(children, function (element) {\n if (!React.isValidElement(element)) return;\n var _element$props = element.props,\n pathProp = _element$props.path,\n exact = _element$props.exact,\n strict = _element$props.strict,\n sensitive = _element$props.sensitive,\n from = _element$props.from;\n var path = pathProp || from;\n\n if (match == null) {\n child = element;\n match = path ? matchPath(location.pathname, {\n path: path,\n exact: exact,\n strict: strict,\n sensitive: sensitive\n }) : route.match;\n }\n });\n return match ? React.cloneElement(child, {\n location: location,\n computedMatch: match\n }) : null;\n };\n\n return Switch;\n}(React.Component);\n\nSwitch.contextTypes = {\n router: PropTypes.shape({\n route: PropTypes.object.isRequired\n }).isRequired\n};\nSwitch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n};\nexport default Switch;","var _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\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport hoistStatics from 'hoist-non-react-statics';\nimport Route from './Route';\n/**\n * A public higher-order component to access the imperative API\n */\n\nvar withRouter = function withRouter(Component) {\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutProperties(props, ['wrappedComponentRef']);\n\n return React.createElement(Route, {\n render: function render(routeComponentProps) {\n return React.createElement(Component, _extends({}, remainingProps, routeComponentProps, {\n ref: wrappedComponentRef\n }));\n }\n });\n };\n\n C.displayName = 'withRouter(' + (Component.displayName || Component.name) + ')';\n C.WrappedComponent = Component;\n C.propTypes = {\n wrappedComponentRef: PropTypes.func\n };\n return hoistStatics(C, Component);\n};\n\nexport default withRouter;","import React from \"react\";\nimport { Prompt } from \"react-router-dom\";\nimport { withRouter, RouteComponentProps } from \"react-router\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\ntype Props = {\n hasUnsavedChanges: any;\n navigate?: (pathname) => void;\n location?: any;\n};\n\nfunction UnsavedChangesGuard(props: RouteComponentProps) {\n const { openModal, removeModal } = useModalContext();\n const [discardChanges, setDiscardChanges] = React.useState(false);\n const [desiredLocation, setDesiredLocation] = React.useState(undefined);\n const { hasUnsavedChanges, navigate } = props;\n\n // window.logger(\"%c[UnsavedChangesGuard] RENDER \", \"color: #207c3f\", {\n // discardChanges,\n // desiredLocation,\n // propsLocation: props.location,\n // });\n\n React.useEffect(() => {\n if (discardChanges) {\n if (navigate) {\n navigate(desiredLocation.pathname);\n } else {\n props.history.push(desiredLocation.pathname);\n }\n }\n }, [discardChanges, desiredLocation, navigate]);\n\n const handleConfirmNavigation = (event) => {\n event.preventDefault();\n setDiscardChanges(true);\n };\n\n const handleCancelNavigation = () => {\n removeModal();\n setDiscardChanges(false);\n };\n\n const customPrompt = (location, action) => {\n const modal = (\n \n \n Your changes have not been saved. Discard the changes to continue or select Cancel to let\n you save your work.\n \n \n \n \n \n \n );\n\n if (discardChanges) {\n removeModal();\n setDesiredLocation(undefined);\n setDiscardChanges(false);\n return true;\n }\n\n // Only show the modal if you are navigating away from current route\n if (props?.location?.pathname !== location.pathname) {\n setDesiredLocation(location);\n openModal(modal);\n }\n\n return false;\n };\n\n return ;\n}\n\nexport default withRouter(UnsavedChangesGuard);\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CandidateForm_ButtonContainer;\n ${t.mt(6)}\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: UnsavedChangesGuard_Instructions;\n ${[t.mb(5)]}\n `;\n});\n","import { bisect } from \"d3-array\";\nimport { interpolate as interpolateValue, interpolateNumber, interpolateRound } from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\nvar unit = [0, 1];\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= a = +a) ? function (x) {\n return (x - a) / b;\n } : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function (x) {\n return Math.max(a, Math.min(b, x));\n };\n} // normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\n\n\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0],\n d1 = domain[1],\n r0 = range[0],\n r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function (x) {\n return r0(d0(x));\n };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1; // Reverse descending domains.\n\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function (x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());\n}\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function (y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function (_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function (_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function (t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\nexport default function continuous() {\n return transformer()(identity, identity);\n}","export default function constants(x) {\n return function () {\n return x;\n };\n}","import React from \"react\";\n// import PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nexport default function Banner(props: { message: string | {}, loud?: boolean }) {\n return {props.message};\n}\n\n// Banner.propTypes = {\n// // message: PropTypes.string.isRequired,\n// };\n\n/* Styled Components\n======================================================= */\n\nlet Styled: any;\nStyled = {};\n\nconst getColorStyles = (isLoud, t) => {\n if (isLoud) {\n return css`\n background: ${t.dark ?\n `linear-gradient(120deg, #FBD7FF -20%, #FFDEC1 40%, #FFDEC1 60%, #FBD7FF 120%)`\n :\n t.color.black\n };\n color: ${t.dark ? t.color.black : t.color.white};\n `\n } else {\n return css`\n background: ${t.dark ?\n `linear-gradient(120deg, ${t.color.gray[700]} -20%, ${t.color.gray[600]} 40%, ${t.color.gray[600]} 60%, ${t.color.gray[700]} 120%)`\n :\n 'linear-gradient(120deg, #FFD8D8 -10%, #FFDEC1 40%, #FFDEC1 60%, #FFD8D8 110%)'\n };\n color: ${t.dark ? t.color.white : t.color.black};\n `\n }\n}\n\n\nStyled.Container = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: Banner;\n ${[t.text.xs, t.px(4), t.py(2)]};\n min-height: ${t.spacing[8]};\n flex-shrink: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n line-height: 1.4;\n z-index: 3;\n ${getColorStyles(props.isLoud, t)}\n\n a {\n ${t.text.medium}\n\n &:hover {\n text-decoration: underline;\n }\n }\n `;\n});\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\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}","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 toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * 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;","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 module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { isString } from './is';\nimport { normalize } from './object';\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\n\nexport function isNodeEnv() {\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\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\n\nexport function dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n/** Default request keys that'll be used to extract data from the request */\n\nvar DEFAULT_REQUEST_KEYS = ['cookies', 'data', 'headers', 'method', 'query_string', 'url'];\n/**\n * Normalizes data from the request object, accounting for framework differences.\n *\n * @param req The request object from which to extract data\n * @param keys An optional array of keys to include in the normalized data. Defaults to DEFAULT_REQUEST_KEYS if not\n * provided.\n * @returns An object containing normalized request data\n */\n\nexport function extractNodeRequestData(req, keys) {\n if (keys === void 0) {\n keys = DEFAULT_REQUEST_KEYS;\n } // make sure we can safely use dynamicRequire below\n\n\n if (!isNodeEnv()) {\n throw new Error(\"Can't get node request data outside of a node environment\");\n }\n\n var requestData = {}; // headers:\n // node, express: req.headers\n // koa: req.header\n\n var headers = req.headers || req.header || {}; // method:\n // node, express, koa: req.method\n\n var method = req.method; // host:\n // express: req.hostname in > 4 and req.host in < 4\n // koa: req.host\n // node: req.headers.host\n\n var host = req.hostname || req.host || headers.host || ''; // protocol:\n // node: \n // express, koa: req.protocol\n\n var protocol = req.protocol === 'https' || req.secure || (req.socket || {}).encrypted ? 'https' : 'http'; // url (including path and query string):\n // node, express: req.originalUrl\n // koa: req.url\n\n var originalUrl = req.originalUrl || req.url; // absolute url\n\n var absoluteUrl = protocol + \"://\" + host + originalUrl;\n keys.forEach(function (key) {\n switch (key) {\n case 'headers':\n requestData.headers = headers;\n break;\n\n case 'method':\n requestData.method = method;\n break;\n\n case 'url':\n requestData.url = absoluteUrl;\n break;\n\n case 'cookies':\n // cookies:\n // node, express, koa: req.headers.cookie\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n requestData.cookies = dynamicRequire(module, 'cookie').parse(headers.cookie || '');\n break;\n\n case 'query_string':\n // query string:\n // node: req.url (raw)\n // express, koa: req.query\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n requestData.query_string = dynamicRequire(module, 'url').parse(originalUrl || '', false).query;\n break;\n\n case 'data':\n if (method === 'GET' || method === 'HEAD') {\n break;\n } // body data:\n // node, express, koa: req.body\n\n\n if (req.body !== undefined) {\n requestData.data = isString(req.body) ? req.body : JSON.stringify(normalize(req.body));\n }\n\n break;\n\n default:\n if ({}.hasOwnProperty.call(req, key)) {\n requestData[key] = req[key];\n }\n\n }\n });\n return requestData;\n}","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}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _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/**\n * @fileOverview Layer\n */\n\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Layer(props) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true)), children);\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 */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\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}","import React from \"react\";\n\ninterface GlobalChannelContextState {\n updateAvailable: boolean;\n enableUpdateAvailable?: () => void;\n maintenanceComplete: boolean;\n enabledMaintenanceComplete?: () => void;\n disableMaintenanceComplete?: () => void;\n}\n\ninterface GlobalChannelContextProps {}\n\nconst GlobalChannelContext = React.createContext({\n updateAvailable: false,\n maintenanceComplete: false,\n});\n\nfunction GlobalChannelContextProvider({\n children,\n}: React.PropsWithChildren) {\n const [updateAvailable, setUpdateAvailable] = React.useState(false);\n const [maintenanceComplete, setMaintenanceComplete] = React.useState(false);\n\n const enableUpdateAvailable = () => {\n setUpdateAvailable(true);\n };\n\n const enabledMaintenanceComplete = () => {\n setMaintenanceComplete(true);\n };\n\n const disableMaintenanceComplete = () => {\n setMaintenanceComplete(false);\n };\n\n return (\n \n {children}\n \n );\n}\n\nfunction useGlobalChannelContext() {\n const context = React.useContext(GlobalChannelContext);\n if (context === undefined) {\n throw new Error(\"useGlobalChannelContext must be used within a GlobalChannelContextProvider\");\n }\n return context;\n}\n\nexport { GlobalChannelContextProvider, useGlobalChannelContext, GlobalChannelContext };\n","import _isNil from \"lodash/isNil\";\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 _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\n\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\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 setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\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 setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = SchemaType;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar _cloneDeepWith = _interopRequireDefault(require(\"lodash/cloneDeepWith\"));\n\nvar _toArray2 = _interopRequireDefault(require(\"lodash/toArray\"));\n\nvar _locale = require(\"./locale\");\n\nvar _Condition = _interopRequireDefault(require(\"./Condition\"));\n\nvar _runValidations = _interopRequireDefault(require(\"./util/runValidations\"));\n\nvar _prependDeep = _interopRequireDefault(require(\"./util/prependDeep\"));\n\nvar _isSchema = _interopRequireDefault(require(\"./util/isSchema\"));\n\nvar _createValidation = _interopRequireDefault(require(\"./util/createValidation\"));\n\nvar _printValue = _interopRequireDefault(require(\"./util/printValue\"));\n\nvar _Reference = _interopRequireDefault(require(\"./Reference\"));\n\nvar _reach = require(\"./util/reach\");\n\nvar RefSet = /*#__PURE__*/function () {\n function RefSet() {\n this.list = new Set();\n this.refs = new Map();\n }\n\n var _proto = RefSet.prototype;\n\n _proto.toArray = function toArray() {\n return (0, _toArray2[\"default\"])(this.list).concat((0, _toArray2[\"default\"])(this.refs.values()));\n };\n\n _proto.add = function add(value) {\n _Reference[\"default\"].isRef(value) ? this.refs.set(value.key, value) : this.list.add(value);\n };\n\n _proto[\"delete\"] = function _delete(value) {\n _Reference[\"default\"].isRef(value) ? this.refs[\"delete\"](value.key, value) : this.list[\"delete\"](value);\n };\n\n _proto.has = function has(value, resolve) {\n if (this.list.has(value)) return true;\n var item,\n values = this.refs.values();\n\n while (item = values.next(), !item.done) {\n if (resolve(item.value) === value) return true;\n }\n\n return false;\n };\n\n return RefSet;\n}();\n\nfunction SchemaType(options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (!(this instanceof SchemaType)) return new SchemaType();\n this._deps = [];\n this._conditions = [];\n this._options = {\n abortEarly: true,\n recursive: true\n };\n this._exclusive = Object.create(null);\n this._whitelist = new RefSet();\n this._blacklist = new RefSet();\n this.tests = [];\n this.transforms = [];\n this.withMutation(function () {\n _this.typeError(_locale.mixed.notType);\n });\n if ((0, _has[\"default\"])(options, 'default')) this._defaultDefault = options[\"default\"];\n this._type = options.type || 'mixed';\n}\n\nvar proto = SchemaType.prototype = {\n __isYupSchema__: true,\n constructor: SchemaType,\n clone: function clone() {\n var _this2 = this;\n\n if (this._mutate) return this; // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n\n return (0, _cloneDeepWith[\"default\"])(this, function (value) {\n if ((0, _isSchema[\"default\"])(value) && value !== _this2) return value;\n });\n },\n label: function label(_label) {\n var next = this.clone();\n next._label = _label;\n return next;\n },\n meta: function meta(obj) {\n if (arguments.length === 0) return this._meta;\n var next = this.clone();\n next._meta = (0, _extends2[\"default\"])(next._meta || {}, obj);\n return next;\n },\n withMutation: function withMutation(fn) {\n var before = this._mutate;\n this._mutate = true;\n var result = fn(this);\n this._mutate = before;\n return result;\n },\n concat: function concat(schema) {\n if (!schema || schema === this) return this;\n if (schema._type !== this._type && this._type !== 'mixed') throw new TypeError(\"You cannot `concat()` schema's of different types: \" + this._type + \" and \" + schema._type);\n var next = (0, _prependDeep[\"default\"])(schema.clone(), this); // new undefined default is overriden by old non-undefined one, revert\n\n if ((0, _has[\"default\"])(schema, '_default')) next._default = schema._default;\n next.tests = this.tests;\n next._exclusive = this._exclusive; // manually add the new tests to ensure\n // the deduping logic is consistent\n\n next.withMutation(function (next) {\n schema.tests.forEach(function (fn) {\n next.test(fn.OPTIONS);\n });\n });\n return next;\n },\n isType: function isType(v) {\n if (this._nullable && v === null) return true;\n return !this._typeCheck || this._typeCheck(v);\n },\n resolve: function resolve(options) {\n var schema = this;\n\n if (schema._conditions.length) {\n var conditions = schema._conditions;\n schema = schema.clone();\n schema._conditions = [];\n schema = conditions.reduce(function (schema, condition) {\n return condition.resolve(schema, options);\n }, schema);\n schema = schema.resolve(options);\n }\n\n return schema;\n },\n cast: function cast(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var resolvedSchema = this.resolve((0, _extends2[\"default\"])({}, options, {\n value: value\n }));\n\n var result = resolvedSchema._cast(value, options);\n\n if (value !== undefined && options.assert !== false && resolvedSchema.isType(result) !== true) {\n var formattedValue = (0, _printValue[\"default\"])(value);\n var formattedResult = (0, _printValue[\"default\"])(result);\n throw new TypeError(\"The value of \" + (options.path || 'field') + \" could not be cast to a value \" + (\"that satisfies the schema type: \\\"\" + resolvedSchema._type + \"\\\". \\n\\n\") + (\"attempted value: \" + formattedValue + \" \\n\") + (formattedResult !== formattedValue ? \"result of cast: \" + formattedResult : ''));\n }\n\n return result;\n },\n _cast: function _cast(rawValue) {\n var _this3 = this;\n\n var value = rawValue === undefined ? rawValue : this.transforms.reduce(function (value, fn) {\n return fn.call(_this3, value, rawValue);\n }, rawValue);\n\n if (value === undefined && (0, _has[\"default\"])(this, '_default')) {\n value = this[\"default\"]();\n }\n\n return value;\n },\n _validate: function _validate(_value, options) {\n var _this4 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var value = _value;\n var originalValue = options.originalValue != null ? options.originalValue : _value;\n\n var isStrict = this._option('strict', options);\n\n var endEarly = this._option('abortEarly', options);\n\n var sync = options.sync;\n var path = options.path;\n var label = this._label;\n\n if (!isStrict) {\n value = this._cast(value, (0, _extends2[\"default\"])({\n assert: false\n }, options));\n } // value is cast, we can check if it meets type requirements\n\n\n var validationParams = {\n value: value,\n path: path,\n schema: this,\n options: options,\n label: label,\n originalValue: originalValue,\n sync: sync\n };\n var initialTests = [];\n if (this._typeError) initialTests.push(this._typeError(validationParams));\n if (this._whitelistError) initialTests.push(this._whitelistError(validationParams));\n if (this._blacklistError) initialTests.push(this._blacklistError(validationParams));\n return (0, _runValidations[\"default\"])({\n validations: initialTests,\n endEarly: endEarly,\n value: value,\n path: path,\n sync: sync\n }).then(function (value) {\n return (0, _runValidations[\"default\"])({\n path: path,\n sync: sync,\n value: value,\n endEarly: endEarly,\n validations: _this4.tests.map(function (fn) {\n return fn(validationParams);\n })\n });\n });\n },\n validate: function validate(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var schema = this.resolve((0, _extends2[\"default\"])({}, options, {\n value: value\n }));\n return schema._validate(value, options);\n },\n validateSync: function validateSync(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var schema = this.resolve((0, _extends2[\"default\"])({}, options, {\n value: value\n }));\n var result, err;\n\n schema._validate(value, (0, _extends2[\"default\"])({}, options, {\n sync: true\n })).then(function (r) {\n return result = r;\n })[\"catch\"](function (e) {\n return err = e;\n });\n\n if (err) throw err;\n return result;\n },\n isValid: function isValid(value, options) {\n return this.validate(value, options).then(function () {\n return true;\n })[\"catch\"](function (err) {\n if (err.name === 'ValidationError') return false;\n throw err;\n });\n },\n isValidSync: function isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (err.name === 'ValidationError') return false;\n throw err;\n }\n },\n getDefault: function getDefault(options) {\n if (options === void 0) {\n options = {};\n }\n\n var schema = this.resolve(options);\n return schema[\"default\"]();\n },\n \"default\": function _default(def) {\n if (arguments.length === 0) {\n var defaultValue = (0, _has[\"default\"])(this, '_default') ? this._default : this._defaultDefault;\n return typeof defaultValue === 'function' ? defaultValue.call(this) : (0, _cloneDeepWith[\"default\"])(defaultValue);\n }\n\n var next = this.clone();\n next._default = def;\n return next;\n },\n strict: function strict(isStrict) {\n if (isStrict === void 0) {\n isStrict = true;\n }\n\n var next = this.clone();\n next._options.strict = isStrict;\n return next;\n },\n _isPresent: function _isPresent(value) {\n return value != null;\n },\n required: function required(message) {\n if (message === void 0) {\n message = _locale.mixed.required;\n }\n\n return this.test({\n message: message,\n name: 'required',\n exclusive: true,\n test: function test(value) {\n return this.schema._isPresent(value);\n }\n });\n },\n notRequired: function notRequired() {\n var next = this.clone();\n next.tests = next.tests.filter(function (test) {\n return test.OPTIONS.name !== 'required';\n });\n return next;\n },\n nullable: function nullable(isNullable) {\n if (isNullable === void 0) {\n isNullable = true;\n }\n\n var next = this.clone();\n next._nullable = isNullable;\n return next;\n },\n transform: function transform(fn) {\n var next = this.clone();\n next.transforms.push(fn);\n return next;\n },\n\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n test: function test() {\n var opts;\n\n if (arguments.length === 1) {\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'function') {\n opts = {\n test: arguments.length <= 0 ? undefined : arguments[0]\n };\n } else {\n opts = arguments.length <= 0 ? undefined : arguments[0];\n }\n } else if (arguments.length === 2) {\n opts = {\n name: arguments.length <= 0 ? undefined : arguments[0],\n test: arguments.length <= 1 ? undefined : arguments[1]\n };\n } else {\n opts = {\n name: arguments.length <= 0 ? undefined : arguments[0],\n message: arguments.length <= 1 ? undefined : arguments[1],\n test: arguments.length <= 2 ? undefined : arguments[2]\n };\n }\n\n if (opts.message === undefined) opts.message = _locale.mixed[\"default\"];\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n var next = this.clone();\n var validate = (0, _createValidation[\"default\"])(opts);\n var isExclusive = opts.exclusive || opts.name && next._exclusive[opts.name] === true;\n\n if (opts.exclusive && !opts.name) {\n throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n\n next._exclusive[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(function (fn) {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n\n return true;\n });\n next.tests.push(validate);\n return next;\n },\n when: function when(keys, options) {\n if (arguments.length === 1) {\n options = keys;\n keys = '.';\n }\n\n var next = this.clone(),\n deps = [].concat(keys).map(function (key) {\n return new _Reference[\"default\"](key);\n });\n deps.forEach(function (dep) {\n if (dep.isSibling) next._deps.push(dep.key);\n });\n\n next._conditions.push(new _Condition[\"default\"](deps, options));\n\n return next;\n },\n typeError: function typeError(message) {\n var next = this.clone();\n next._typeError = (0, _createValidation[\"default\"])({\n message: message,\n name: 'typeError',\n test: function test(value) {\n if (value !== undefined && !this.schema.isType(value)) return this.createError({\n params: {\n type: this.schema._type\n }\n });\n return true;\n }\n });\n return next;\n },\n oneOf: function oneOf(enums, message) {\n if (message === void 0) {\n message = _locale.mixed.oneOf;\n }\n\n var next = this.clone();\n enums.forEach(function (val) {\n next._whitelist.add(val);\n\n next._blacklist[\"delete\"](val);\n });\n next._whitelistError = (0, _createValidation[\"default\"])({\n message: message,\n name: 'oneOf',\n test: function test(value) {\n if (value === undefined) return true;\n var valids = this.schema._whitelist;\n return valids.has(value, this.resolve) ? true : this.createError({\n params: {\n values: valids.toArray().join(', ')\n }\n });\n }\n });\n return next;\n },\n notOneOf: function notOneOf(enums, message) {\n if (message === void 0) {\n message = _locale.mixed.notOneOf;\n }\n\n var next = this.clone();\n enums.forEach(function (val) {\n next._blacklist.add(val);\n\n next._whitelist[\"delete\"](val);\n });\n next._blacklistError = (0, _createValidation[\"default\"])({\n message: message,\n name: 'notOneOf',\n test: function test(value) {\n var invalids = this.schema._blacklist;\n if (invalids.has(value, this.resolve)) return this.createError({\n params: {\n values: invalids.toArray().join(', ')\n }\n });\n return true;\n }\n });\n return next;\n },\n strip: function strip(_strip) {\n if (_strip === void 0) {\n _strip = true;\n }\n\n var next = this.clone();\n next._strip = _strip;\n return next;\n },\n _option: function _option(key, overrides) {\n return (0, _has[\"default\"])(overrides, key) ? overrides[key] : this._options[key];\n },\n describe: function describe() {\n var next = this.clone();\n return {\n type: next._type,\n meta: next._meta,\n label: next._label,\n tests: next.tests.map(function (fn) {\n return {\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n };\n }).filter(function (n, idx, list) {\n return list.findIndex(function (c) {\n return c.name === n.name;\n }) === idx;\n })\n };\n }\n};\nvar _arr = ['validate', 'validateSync'];\n\nvar _loop = function _loop() {\n var method = _arr[_i];\n\n proto[method + \"At\"] = function (path, value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _getIn = (0, _reach.getIn)(this, path, value, options.context),\n parent = _getIn.parent,\n parentPath = _getIn.parentPath,\n schema = _getIn.schema;\n\n return schema[method](parent && parent[parentPath], (0, _extends2[\"default\"])({}, options, {\n parent: parent,\n path: path\n }));\n };\n};\n\nfor (var _i = 0; _i < _arr.length; _i++) {\n _loop();\n}\n\nvar _arr2 = ['equals', 'is'];\n\nfor (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var alias = _arr2[_i2];\n proto[alias] = proto.oneOf;\n}\n\nvar _arr3 = ['not', 'nope'];\n\nfor (var _i3 = 0; _i3 < _arr3.length; _i3++) {\n var _alias = _arr3[_i3];\n proto[_alias] = proto.notOneOf;\n}\n\nproto.optional = proto.notRequired;\nmodule.exports = exports[\"default\"];","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\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 */\n\n\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = exports.array = exports.object = exports[\"boolean\"] = exports.date = exports.number = exports.string = exports.mixed = void 0;\n\nvar _printValue = _interopRequireDefault(require(\"./util/printValue\"));\n\nvar mixed = {\n \"default\": '${path} is invalid',\n required: '${path} is a required field',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" must be a `\" + type + \"` type, \" + (\"but the final value was: `\" + (0, _printValue[\"default\"])(value, true) + \"`\") + (isCast ? \" (cast from the value `\" + (0, _printValue[\"default\"])(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n If \\\"null\\\" is intended as an empty value be sure to mark the schema as `.nullable()`\";\n }\n\n return msg;\n }\n};\nexports.mixed = mixed;\nvar string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nexports.string = string;\nvar number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n notEqual: '${path} must be not equal to ${notEqual}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nexports.number = number;\nvar date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nexports.date = date;\nvar _boolean = {};\nexports[\"boolean\"] = _boolean;\nvar object = {\n noUnknown: '${path} field cannot have keys not specified in the object shape'\n};\nexports.object = object;\nvar array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items'\n};\nexports.array = array;\nvar _default = {\n mixed: mixed,\n string: string,\n number: number,\n date: date,\n object: object,\n array: array,\n \"boolean\": _boolean\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _default = function _default(obj) {\n return obj && obj.__isYupSchema__;\n};\n\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","import { __assign } from \"tslib\";\nimport { dropUndefinedKeys, timestampWithMs, uuid4 } from '@sentry/utils';\nimport { SpanStatus } from './spanstatus';\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\n\nvar SpanRecorder =\n/** @class */\nfunction () {\n function SpanRecorder(maxlen) {\n if (maxlen === void 0) {\n maxlen = 1000;\n }\n\n this.spans = [];\n this._maxlen = maxlen;\n }\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n\n\n SpanRecorder.prototype.add = function (span) {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n } else {\n this.spans.push(span);\n }\n };\n\n return SpanRecorder;\n}();\n\nexport { SpanRecorder };\n/**\n * Span contains all data about a span\n */\n\nvar Span =\n/** @class */\nfunction () {\n /**\n * You should never call the constructor manually, always use `hub.startSpan()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Span(spanContext) {\n /**\n * @inheritDoc\n */\n this.traceId = uuid4();\n /**\n * @inheritDoc\n */\n\n this.spanId = uuid4().substring(16);\n /**\n * Timestamp in seconds when the span was created.\n */\n\n this.startTimestamp = timestampWithMs();\n /**\n * @inheritDoc\n */\n\n this.tags = {};\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n this.data = {};\n\n if (!spanContext) {\n return this;\n }\n\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n } // We want to include booleans as well here\n\n\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n /**\n * @inheritDoc\n * @deprecated\n */\n\n\n Span.prototype.child = function (spanContext) {\n return this.startChild(spanContext);\n };\n /**\n * @inheritDoc\n */\n\n\n Span.prototype.startChild = function (spanContext) {\n var span = new Span(__assign(__assign({}, spanContext), {\n parentSpanId: this.spanId,\n sampled: this.sampled,\n traceId: this.traceId\n }));\n span.spanRecorder = this.spanRecorder;\n\n if (span.spanRecorder) {\n span.spanRecorder.add(span);\n }\n\n return span;\n };\n /**\n * @inheritDoc\n */\n\n\n Span.prototype.setTag = function (key, value) {\n var _a;\n\n this.tags = __assign(__assign({}, this.tags), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n\n Span.prototype.setData = function (key, value) {\n var _a;\n\n this.data = __assign(__assign({}, this.data), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Span.prototype.setStatus = function (value) {\n this.status = value;\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Span.prototype.setHttpStatus = function (httpStatus) {\n this.setTag('http.status_code', String(httpStatus));\n var spanStatus = SpanStatus.fromHttpCode(httpStatus);\n\n if (spanStatus !== SpanStatus.UnknownError) {\n this.setStatus(spanStatus);\n }\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Span.prototype.isSuccess = function () {\n return this.status === SpanStatus.Ok;\n };\n /**\n * @inheritDoc\n */\n\n\n Span.prototype.finish = function (endTimestamp) {\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n };\n /**\n * @inheritDoc\n */\n\n\n Span.prototype.toTraceparent = function () {\n var sampledString = '';\n\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n\n return this.traceId + \"-\" + this.spanId + sampledString;\n };\n /**\n * @inheritDoc\n */\n\n\n Span.prototype.getTraceContext = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId\n });\n };\n /**\n * @inheritDoc\n */\n\n\n Span.prototype.toJSON = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId\n });\n };\n\n return Span;\n}();\n\nexport { Span };","const fileTypes = {\n image: [\"image/png\", \"image/jpeg\", \"image/jpg\", \"image/svg+xml\"],\n document: [\n \"application/pdf\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n ],\n excel: [\n \"application/vnd.ms-excel\",\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n ],\n csv: [\"text/csv\"],\n text: [\"text/plain\"],\n audio: [\n \"audio/mpeg\",\n \"audio/ogg\",\n \"audio/wav\",\n \"audio/x-wav\", // Firefox & Safari MIME type for .wav files\n \"video/ogg\", // Firefox identifies audio/ogg files as video/ogg \n ],\n};\n\nconst customQuestionUploadFileTypes = [...fileTypes.image, ...fileTypes.document, ...fileTypes.excel, ...fileTypes.csv, ...fileTypes.text, ...fileTypes.audio];\n\nfileTypes[\"combined\"] = customQuestionUploadFileTypes;\n\nexport type FileTypes = \"image\" | \"document\" | \"excel\" | \"csv\" | \"text\" | \"combined\" | \"any\";\n\nexport const KILOBYTE_IN_BYTES = 1024;\nexport const MEGABYTE_IN_KILOBYTES = 1024;\nexport const MEGABYTE_IN_BYTES = KILOBYTE_IN_BYTES * MEGABYTE_IN_KILOBYTES;\n\nexport const isAllowedFileType = (expectedFileType, actualFileType) => {\n if (expectedFileType === \"any\") return true;\n\n return expectedFileType === undefined\n ? true\n : fileTypes[expectedFileType].includes(actualFileType);\n};\n\nexport const isDocx = (contentType) => {\n return [\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"].includes(\n contentType,\n );\n};\n\nexport const isAllowedFileSize = (maxFileSize, actualFileSize) => {\n if (!maxFileSize) return true;\n return actualFileSize <= maxFileSize;\n};\n","import { isRegExp, isString } from './is';\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\n * @returns string Encoded\n */\n\nexport function truncate(str, max) {\n if (max === void 0) {\n max = 0;\n }\n\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n\n return str.length <= max ? str : str.substr(0, max) + \"...\";\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 */\n\nexport function snipLine(line, colno) {\n var newLine = line;\n var ll = newLine.length;\n\n if (ll <= 150) {\n return newLine;\n }\n\n if (colno > ll) {\n // eslint-disable-next-line no-param-reassign\n colno = ll;\n }\n\n var start = Math.max(colno - 60, 0);\n\n if (start < 5) {\n start = 0;\n }\n\n var end = Math.min(start + 140, ll);\n\n if (end > ll - 5) {\n end = ll;\n }\n\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n\n if (end < ll) {\n newLine += ' {snip}';\n }\n\n return newLine;\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\n\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n var output = []; // eslint-disable-next-line @typescript-eslint/prefer-for-of\n\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n\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 * 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 */\n\nexport function isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n\n return false;\n}","var STATE_DELIMITER = '.';\nvar EMPTY_ACTIVITY_MAP = {};\nvar DEFAULT_GUARD_TYPE = 'xstate.guard';\nvar TARGETLESS_KEY = '';\nexport { DEFAULT_GUARD_TYPE, EMPTY_ACTIVITY_MAP, STATE_DELIMITER, TARGETLESS_KEY };","import { withRouter } from \"react-router-dom\";\nimport styled from \"@emotion/styled\";\nimport { useHotkeys } from \"react-hotkeys-hook\";\nimport { Link } from \"react-router-dom\";\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\nimport ShortcutKey from \"@ats/src/components/shared/ShortcutKey\";\nimport Box from \"@shared/components/Box\";\nimport Text from \"@shared/components/Text\";\nimport breakpoint from \"@shared/styles/breakpoints\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n// import { useWindowSize } from \"@ats/src/context/WindowSizeContext\";\n\ntype Props = {\n isBack: boolean;\n backUrl?: string;\n history: any;\n title: any;\n titleUrl?: string;\n secondary?: any;\n closeUrl?: string;\n externalUrl?: string;\n orgAdminJobsListUrl?: string;\n};\n\nfunction NavBar(props: Props) {\n const { title, titleUrl, history, closeUrl, secondary, isBack, backUrl, externalUrl, orgAdminJobsListUrl } = props;\n const { modal, isVisible } = useModalContext();\n // const { size, dimensions } = useWindowSize();\n let navButton;\n\n // window.logger(\"%c[NavBar][ModalContext] render\", \"color: #1976D2\", {\n // modal,\n // });\n\n /* HOTKEYS\n --===================================================-- */\n useHotkeys(\n \"esc\",\n (event) => {\n event.preventDefault();\n\n // If there is no modal being displayed then Navigate Back, otherwise let the event propagate up to the Modal\n if (modal == undefined) {\n event.stopPropagation();\n if (isBack) {\n history.push(backUrl);\n } else if (closeUrl) {\n handleClose(event);\n }\n return false;\n }\n },\n {},\n [modal], // Need to have the modal as a dependency because it changes\n );\n\n const handleClose = (e) => {\n e.preventDefault();\n if (orgAdminJobsListUrl) {\n history.push({\n pathname: closeUrl,\n state: {\n orgAdminJobsListUrl: orgAdminJobsListUrl //allows value to be pushed back to originating job on close of review kit\n }\n });\n } else {\n history.push(closeUrl);\n }\n };\n\n const backTooltip = (\n <>\n Back Esc\n \n );\n const closeTooltip = (\n <>\n Close Esc\n \n );\n\n if (isBack) {\n navButton = (\n \n \n \n \n \n );\n } else if (closeUrl) {\n navButton = (\n \n \n \n \n \n );\n } else if (externalUrl) {\n navButton = (\n \n \n \n );\n }\n\n return (\n \n \n {navButton}\n {title}\n {/*
    \n Window is Width: {dimensions.width} x Height: {dimensions.height}. Size: {size}\n
    */}\n
    \n {secondary}\n
    \n );\n}\n\nexport default withRouter(NavBar);\n\n/* Styled Components\n======================================================= */\n\nconst StyledContainer = styled(Box)`\n height: 48px;\n min-height: 48px;\n padding-left: 4px;\n padding-right: 16px;\n position: sticky;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n z-index: 2;\n border-bottom: 1px solid ${(props: any) => props.theme.poly.color.border};\n color: ${(props: any) => props.theme.poly.color.primaryText};\n\n ${breakpoint.sm} {\n padding-left: 8px;\n }\n`;\n\nconst StyledMain = styled(Box)`\n display: flex;\n align-items: center;\n height: 100%;\n ${Text} {\n padding-left: 4px;\n }\n\n ${breakpoint.sm} {\n ${Text} {\n padding-left: 8px;\n }\n }\n`;\n\nconst StyledSecondary = styled(Box)`\n display: block;\n`;\n\nconst StyledButton = styled(Box)((props: any) => `\n width: 40px;\n height: 40px;\n border-radius: ${props.theme.poly.radii.sm};\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background-color 0.2s ease;\n &:focus {\n outline: none;\n background-color: ${props.theme.poly.color.loudHover};\n color: ${props.theme.poly.color.loudText};\n }\n\n ${breakpoint.sm} {\n width: 32px;\n height: 32px;\n &:hover {\n background-color: ${props.theme.poly.color.loudHover};\n color: ${props.theme.poly.color.loudText};\n }\n }\n`);\n","var supportsPassiveEvents;\n\nfunction arePassiveEventsSupported() {\n if (supportsPassiveEvents !== undefined) {\n return supportsPassiveEvents;\n }\n\n var passive = false;\n var options = {\n // @ts-ignore: this is a temporary object, it doesn't have to return anything\n get passive() {\n passive = true;\n }\n\n };\n\n var noop = function noop() {};\n\n window.addEventListener('t', noop, options);\n window.removeEventListener('t', noop, options);\n supportsPassiveEvents = passive;\n return passive;\n}\n\nexport default arePassiveEventsSupported;","import { useLayoutEffect } from 'react';\nvar index = useLayoutEffect;\nexport default index;","import { useRef } from 'react';\nimport useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';\n\nvar useLatest = function useLatest(value) {\n var ref = useRef(value);\n useIsomorphicLayoutEffect(function () {\n ref.current = value;\n });\n return ref;\n};\n\nexport default useLatest;","import { useEffect } from 'react';\nimport arePassiveEventsSupported from 'are-passive-events-supported';\nimport useLatest from 'use-latest';\nvar MOUSEDOWN = 'mousedown';\nvar TOUCHSTART = 'touchstart';\nvar events = [MOUSEDOWN, TOUCHSTART];\n\nvar getOptions = function getOptions(event) {\n if (event !== TOUCHSTART) {\n return;\n }\n\n if (arePassiveEventsSupported()) {\n return {\n passive: true\n };\n }\n};\n\nfunction useOnClickOutside(ref, handler) {\n var handlerRef = useLatest(handler);\n useEffect(function () {\n if (!handler) {\n return;\n }\n\n var listener = function listener(event) {\n if (!ref.current || !handlerRef.current || ref.current.contains(event.target)) {\n return;\n }\n\n handlerRef.current(event);\n };\n\n events.forEach(function (event) {\n document.addEventListener(event, listener, getOptions(event));\n });\n return function () {\n events.forEach(function (event) {\n document.removeEventListener(event, listener, getOptions(event));\n });\n };\n }, [!handler]);\n}\n\nexport default useOnClickOutside;","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\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 = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n\n\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;","var _Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n/** `Object#toString` result references. */\n\n\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\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 */\n\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar _Symbol = root.Symbol;\nmodule.exports = _Symbol;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * 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\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\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 */\n\n\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = inherits;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nfunction inherits(ctor, superCtor, spec) {\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n (0, _extends2[\"default\"])(ctor.prototype, spec);\n}\n\nmodule.exports = exports[\"default\"];","import { __extends } from \"tslib\";\nimport { getCurrentHub, Hub } from '@sentry/hub';\nimport { isInstanceOf, logger } from '@sentry/utils';\nimport { Span as SpanClass, SpanRecorder } from './span';\n/** JSDoc */\n\nvar Transaction =\n/** @class */\nfunction (_super) {\n __extends(Transaction, _super);\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n\n\n function Transaction(transactionContext, hub) {\n var _this = _super.call(this, transactionContext) || this;\n /**\n * The reference to the current hub.\n */\n\n\n _this._hub = getCurrentHub();\n\n if (isInstanceOf(hub, Hub)) {\n _this._hub = hub;\n }\n\n if (transactionContext.name) {\n _this.name = transactionContext.name;\n }\n\n _this._trimEnd = transactionContext.trimEnd;\n return _this;\n }\n /**\n * JSDoc\n */\n\n\n Transaction.prototype.setName = function (name) {\n this.name = name;\n };\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n\n\n Transaction.prototype.initSpanRecorder = function (maxlen) {\n if (maxlen === void 0) {\n maxlen = 1000;\n }\n\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n\n this.spanRecorder.add(this);\n };\n /**\n * @inheritDoc\n */\n\n\n Transaction.prototype.finish = function (endTimestamp) {\n var _this = this; // This transaction is already finished, so we should not flush it again.\n\n\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n\n if (!this.name) {\n logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n } // just sets the end timestamp\n\n\n _super.prototype.finish.call(this, endTimestamp);\n\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n return undefined;\n }\n\n var finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(function (s) {\n return s !== _this && s.endTimestamp;\n }) : [];\n\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce(function (prev, current) {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n\n return prev;\n }).endTimestamp;\n }\n\n return this._hub.captureEvent({\n contexts: {\n trace: this.getTraceContext()\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction'\n });\n };\n\n return Transaction;\n}(SpanClass);\n\nexport { Transaction };","import { __assign, __read, __spread } from \"tslib\";\nimport { consoleSandbox, getGlobalObject, isNodeEnv, logger, timestampWithMs, uuid4 } from '@sentry/utils';\nimport { Scope } from './scope';\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 */\n\nexport var API_VERSION = 3;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\n\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * Absolute maximum number of breadcrumbs added to an event. The\n * `maxBreadcrumbs` option cannot be higher than this value.\n */\n\nvar MAX_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\n\nvar Hub =\n/** @class */\nfunction () {\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 function Hub(client, scope, _version) {\n if (scope === void 0) {\n scope = new Scope();\n }\n\n if (_version === void 0) {\n _version = API_VERSION;\n }\n\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n\n this._stack = [];\n\n this._stack.push({\n client: client,\n scope: scope\n });\n\n this.bindClient(client);\n }\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var stack = this.getStack();\n var parentScope = stack.length > 0 ? stack[stack.length - 1].scope : undefined;\n var scope = Scope.clone(parentScope);\n this.getStack().push({\n client: this.getClient(),\n scope: scope\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.popScope = function () {\n return this.getStack().pop() !== undefined;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n\n\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n\n\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n\n\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = this._lastEventId = uuid4();\n var finalHint = hint; // 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\n if (!hint) {\n var syntheticException = void 0;\n\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception;\n }\n\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException\n };\n }\n\n this._invokeClient('captureException', exception, __assign(__assign({}, finalHint), {\n event_id: eventId\n }));\n\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = this._lastEventId = uuid4();\n var finalHint = hint; // 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\n if (!hint) {\n var syntheticException = void 0;\n\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception;\n }\n\n finalHint = {\n originalException: message,\n syntheticException: syntheticException\n };\n }\n\n this._invokeClient('captureMessage', message, level, __assign(__assign({}, finalHint), {\n event_id: eventId\n }));\n\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = this._lastEventId = uuid4();\n\n this._invokeClient('captureEvent', event, __assign(__assign({}, hint), {\n event_id: eventId\n }));\n\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var top = this.getStackTop();\n\n if (!top.scope || !top.client) {\n return;\n } // eslint-disable-next-line @typescript-eslint/unbound-method\n\n\n var _a = top.client.getOptions && top.client.getOptions() || {},\n _b = _a.beforeBreadcrumb,\n beforeBreadcrumb = _b === void 0 ? null : _b,\n _c = _a.maxBreadcrumbs,\n maxBreadcrumbs = _c === void 0 ? DEFAULT_BREADCRUMBS : _c;\n\n if (maxBreadcrumbs <= 0) {\n return;\n }\n\n var timestamp = timestampWithMs();\n\n var mergedBreadcrumb = __assign({\n timestamp: timestamp\n }, breadcrumb);\n\n var finalBreadcrumb = beforeBreadcrumb ? consoleSandbox(function () {\n return beforeBreadcrumb(mergedBreadcrumb, hint);\n }) : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) {\n return;\n }\n\n top.scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS));\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.setUser = function (user) {\n var top = this.getStackTop();\n\n if (!top.scope) {\n return;\n }\n\n top.scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.setTags = function (tags) {\n var top = this.getStackTop();\n\n if (!top.scope) {\n return;\n }\n\n top.scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.setExtras = function (extras) {\n var top = this.getStackTop();\n\n if (!top.scope) {\n return;\n }\n\n top.scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.setTag = function (key, value) {\n var top = this.getStackTop();\n\n if (!top.scope) {\n return;\n }\n\n top.scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.setExtra = function (key, extra) {\n var top = this.getStackTop();\n\n if (!top.scope) {\n return;\n }\n\n top.scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Hub.prototype.setContext = function (name, context) {\n var top = this.getStackTop();\n\n if (!top.scope) {\n return;\n }\n\n top.scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.configureScope = function (callback) {\n var top = this.getStackTop();\n\n if (top.scope && top.client) {\n callback(top.scope);\n }\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n\n if (!client) {\n return null;\n }\n\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 * @inheritDoc\n */\n\n\n Hub.prototype.startSpan = function (context) {\n return this._callExtensionMethod('startSpan', context);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.startTransaction = function (context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\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\n\n Hub.prototype._invokeClient = function (method) {\n var _a;\n\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var top = this.getStackTop();\n\n if (top && top.client && top.client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (_a = top.client)[method].apply(_a, __spread(args, [top.scope]));\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\n\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n\n logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n\n return Hub;\n}();\n\nexport { Hub };\n/** Returns the global shim registry. */\n\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\n\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\n\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier(); // If there's no hub, or its an old API, assign a new one\n\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n } // Prefer domains over global if they are there (applicable only to Node environment)\n\n\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n } // Return hub that lives on a global object\n\n\n return getHubFromCarrier(registry);\n}\n/**\n * Returns the active domain, if one exists\n *\n * @returns The domain, or undefined if there is no active domain\n */\n\nexport function getActiveDomain() {\n var sentry = getMainCarrier().__SENTRY__;\n\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\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 */\n\nfunction getHubFromActiveDomain(registry) {\n try {\n var activeDomain = getActiveDomain(); // If there's no active domain, just return global hub\n\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n } // If there's no hub on current domain, or it's an old API, assign a new one\n\n\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n } // Return hub that lives on a domain\n\n\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\n\n\nfunction hasHubOnCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) {\n return true;\n }\n\n return false;\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\n\n\nexport function getHubFromCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) {\n return carrier.__SENTRY__.hub;\n }\n\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\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 */\n\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier) {\n return false;\n }\n\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}","import React from \"react\";\nimport PropTypes, { any } from \"prop-types\";\nimport { errorTextViaYupOrRailsOrJoi } from \"@shared/lib/formHelpers\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport FormLabel from \"./FormLabel\";\n\ntype Props = {\n name: string;\n placeholder?: string;\n label?: string;\n description?: string;\n scope?: any; // TODO: remove usage of this prop and delete it, bad pattern\n onChange?: (...args: any[]) => void;\n onBlur?: (...args: any[]) => void;\n className?: string;\n inputType?: string;\n rows?: any;\n value?: any;\n autoFocus?: boolean;\n isRequired?: boolean;\n isDisabled?: boolean;\n errors?: any[];\n onSelectionUpdate?: ({ ...args }) => void;\n children?: any;\n maxCharacterCount?: number;\n requiredLabel?: string;\n};\nfunction FormTextarea(props: Props) {\n const { errors, name, value, maxCharacterCount, requiredLabel = \"required\" } = props;\n const textAreaRef = React.useRef(null);\n let errorText = errorTextViaYupOrRailsOrJoi({ errors, name });\n const [characterCount, setCharacterCount] = React.useState(0);\n\n React.useEffect(() => {\n updateSelection();\n }, []);\n\n React.useEffect(() => {\n textAreaRef.current.addEventListener(\"keydown\", (event) => {\n if (event.keyCode === 27 || event.key === \"Escape\") {\n textAreaRef.current.blur();\n }\n return () => {\n textAreaRef.current.removeEventListener(\"keydown\");\n };\n });\n }, []);\n\n const handleChange = (event) => {\n event.preventDefault();\n\n updateSelection();\n\n if (props.scope !== undefined) {\n // TODO: deprecate this please, don't think actively used anymore\n props.scope.setState({ [props.name]: event.currentTarget.value, errors: null });\n } else if (props.onChange !== undefined) {\n const newValue = event.currentTarget.value;\n if (newValue.length > maxCharacterCount) {\n const sliced = newValue.slice(0, 280);\n props.onChange(props.name, sliced);\n setCharacterCount(sliced.length);\n } else {\n props.onChange(props.name, event.currentTarget.value);\n setCharacterCount(newValue.length);\n }\n }\n };\n\n const handleBlur = (event) => {\n event.preventDefault();\n event.stopPropagation();\n\n // Use the parent's scope to setState\n if (props.scope !== undefined && props.onBlur === undefined) {\n props.scope.setState({ [props.name]: event.currentTarget.value });\n } else if (props.onBlur !== undefined) {\n props.onBlur(props.name, event.currentTarget.value);\n }\n };\n\n const updateSelection = () => {\n const textarea = textAreaRef.current;\n\n if (props.onSelectionUpdate != undefined) {\n props.onSelectionUpdate({\n start: textarea.selectionStart,\n end: textarea.selectionEnd,\n textarea,\n });\n }\n\n // window.logger(\"%c[CMTM] updateSelection\", \"color: #1976D2\", {\n // // textarea,\n // start: textarea.selectionStart,\n // end: textarea.selectionEnd,\n // });\n };\n\n const textareaDescription = () => {\n if (props.description) {\n return (\n

    \n {props.description}\n {maxCharacterCount != undefined ? (\n = maxCharacterCount ? \"over-count\" : \"\"}>\n {`${characterCount > 0 ? ` (${characterCount}/${maxCharacterCount})` : \"\"}`}\n \n ) : null}\n

    \n );\n }\n };\n\n const inputId = props.label\n ? `input${props.label.replace(/\\s+/g, \"\")}`\n : props.name\n ? props.name\n : \"Default\";\n\n return (\n \n \n {textareaDescription()}\n \n {props.children} {/* For displaying Joi rendered errors. See NewInviteForm example. */}\n \n );\n}\n\nFormTextarea.propTypes = {\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string,\n label: PropTypes.string,\n description: PropTypes.string,\n scope: PropTypes.object, // typically set to \"this\" from the parent so we can use setState\n onChange: PropTypes.func, //.isRequired, // This get's used as a callback if scope is not set\n className: PropTypes.string,\n inputType: PropTypes.string,\n rows: PropTypes.any,\n value: PropTypes.any,\n autoFocus: PropTypes.bool,\n isRequired: PropTypes.bool,\n isDisabled: PropTypes.bool,\n errors: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n onSelectionUpdate: PropTypes.func,\n};\n\nFormTextarea.defaultProps = {\n isRequired: false,\n isDisabled: false,\n};\n\nexport default FormTextarea;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: FormTextarea;\n ${t.mb(6)}\n > p {\n ${[t.text.sm, t.mt(-1), t.mb(2)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.text.xs}\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.mb(5)}\n }\n\n span {\n ${[t.px(1), t.rounded.xs]}\n display: inline-flex;\n\n &.over-count {\n background-color: ${t.dark ? t.color.gray[700] : t.color.red[100]};\n color: ${t.dark ? t.color.red[400] : t.color.red[600]};\n }\n }\n `;\n});\n\nStyled.TextArea = styled.textarea((props: any) => {\n const t: any = props.theme;\n return css`\n label: FormTextarea_UI;\n ${[t.p(2), t.text.base, t.rounded.sm]}\n appearance: none;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.white};\n width: 100%;\n max-width: 100%;\n min-width: 100%;\n min-height: ${t.spacing[24]};\n line-height: 1.4;\n text-overflow: ellipsis;\n border-width: 1px;\n border-style: solid;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[400]\n : t.color.red[500]\n : t.dark\n ? \"transparent\"\n : t.color.gray[300]};\n &::placeholder {\n color: ${t.color.gray[500]};\n }\n &:hover {\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[400]};\n }\n &:focus {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &:disabled {\n color: ${t.dark ? t.color.gray[500] : t.color.gray[600]};\n background-color: ${t.dark ? \"transparent\" : t.color.gray[100]};\n ${t.dark && `border: 1px solid ${t.color.gray[800]};`}\n }\n &:disabled:hover {\n ${!t.dark && `border-color: ${t.color.gray[300]};`}\n }\n\n ${t.mq[\"md\"]} {\n ${[t.text.sm]}\n }\n `;\n});\n","var baseGet = require('./_baseGet');\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 */\n\n\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nclass InitialsAvatar extends Component {\n static displayName = \"InitialsAvatar\";\n\n static propTypes = {\n initials: PropTypes.string.isRequired,\n size: PropTypes.string,\n };\n\n static defaultProps = {};\n\n state = {\n // key: value,\n };\n\n constructor(props) {\n super(props);\n //this.state = {};\n }\n\n render() {\n return {this.props.initials};\n }\n}\n\nexport default InitialsAvatar;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nconst tinyFont = css`\n font-size: 0.7rem;\n`;\n\nStyled.Avatar = styled.div((props) => {\n const t = props.theme;\n const size = props.size;\n return css`\n label: InitialsAvatar;\n ${size === \"lg\" ? [t.h(10), t.w(10), t.text.lg, t.rounded.sm, t.text.bold] :\n size === \"sm\" ? [t.h(6), t.w(6), tinyFont, t.rounded.xs, t.text.bold] :\n [t.h(8), t.w(8), t.text.base, t.rounded.sm, t.text.bold]}\n display: flex;\n justify-content: center;\n align-items: center;\n color: ${t.color.white};\n background-color: ${t.color.gray[600]};\n text-transform: lowercase;\n flex-shrink: 0;\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport InitialsAvatar from \"@ats/src/components/shared/InitialsAvatar\";\n\nfunction UserAvatar(props: {\n size: string;\n user: { initials; hasAvatar; avatarSmall?: string; avatarMedium };\n}) {\n const { size, user } = props;\n const { initials, hasAvatar, avatarSmall, avatarMedium } = user;\n\n // window.logger(\"%c[UserAvatar] render\", \"color: #1976D2\", { size, user });\n\n return hasAvatar ? (\n \n \n \n ) : (\n \n );\n}\n\nUserAvatar.propTypes = {};\n\nUserAvatar.defaultProps = {};\n\nexport default UserAvatar;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Avatar = styled.div((props: any) => {\n const t: any = props.theme;\n const size = props.size;\n return css`\n label: UserAvatar;\n ${[t.text.bold]};\n ${size === \"lg\"\n ? [t.h(10), t.w(10), t.text.lg, t.rounded.sm]\n : size === \"sm\"\n ? [t.h(6), t.w(6), t.text.xs, t.rounded.xs]\n : [t.h(8), t.w(8), t.text.base, t.rounded.sm]}\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n flex-shrink: 0;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: relative;\n }\n `;\n});\n","import React from \"react\";\n// import PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nexport default function ShortcutKey(props: { children: React.ReactNode | {} }) {\n return {props.children};\n}\n\n/* Styled Components\n======================================================= */\n\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: ShortcutKey;\n ${[t.text.xs, t.px(1), t.py(\"px\"), t.rounded.xs]};\n display: inline-block;\n background-color: ${t.color.gray[500]};\n color: ${t.color.white};\n &:first-of-type {\n ${t.ml(2)};\n }\n `;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($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++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","module.exports = {};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(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 (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\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.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar keys = require('object-keys');\n\nvar hasSymbols = typeof Symbol === 'function' && _typeof(Symbol('foo')) === 'symbol';\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function isFunction(fn) {\n return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function arePropertyDescriptorsSupported() {\n var obj = {};\n\n try {\n origDefineProperty(obj, 'x', {\n enumerable: false,\n value: obj\n }); // eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\n for (var _ in obj) {\n // jscs:ignore disallowUnusedVariables\n return false;\n }\n\n return obj.x === obj;\n } catch (e) {\n /* this is IE 8. */\n return false;\n }\n};\n\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function defineProperty(object, name, value, predicate) {\n if (name in object && (!isFunction(predicate) || !predicate())) {\n return;\n }\n\n if (supportsDescriptors) {\n origDefineProperty(object, name, {\n configurable: true,\n enumerable: false,\n value: value,\n writable: true\n });\n } else {\n object[name] = value;\n }\n};\n\nvar defineProperties = function defineProperties(object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\nmodule.exports = defineProperties;","var baseToString = require('./_baseToString');\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 */\n\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;","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/** `Object#toString` result references. */\n\n\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\nvar dataViewTag = '[object DataView]';\n/** Used to detect maps, sets, and weakmaps. */\n\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\nvar getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n\nif (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function getTag(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:\n return dataViewTag;\n\n case mapCtorString:\n return mapTag;\n\n case promiseCtorString:\n return promiseTag;\n\n case setCtorString:\n return setTag;\n\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n\n return result;\n };\n}\n\nmodule.exports = getTag;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propertyExpr = require(\"property-expr\");\n\nvar prefixes = {\n context: '$',\n value: '.'\n};\n\nvar Reference = /*#__PURE__*/function () {\n function Reference(key, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n var prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && (0, _propertyExpr.getter)(this.path, true);\n this.map = options.map;\n }\n\n var _proto = Reference.prototype;\n\n _proto.getValue = function getValue(options) {\n var result = this.isContext ? options.context : this.isValue ? options.value : options.parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n };\n\n _proto.cast = function cast(value, options) {\n return this.getValue((0, _extends2[\"default\"])({}, options, {\n value: value\n }));\n };\n\n _proto.resolve = function resolve() {\n return this;\n };\n\n _proto.describe = function describe() {\n return {\n type: 'ref',\n key: this.key\n };\n };\n\n _proto.toString = function toString() {\n return \"Ref(\" + this.key + \")\";\n };\n\n Reference.isRef = function isRef(value) {\n return value && value.__isYupRef;\n };\n\n return Reference;\n}();\n\nexports[\"default\"] = Reference;\nReference.prototype.__isYupRef = true;\nmodule.exports = exports[\"default\"];","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { __assign } from \"tslib\";\nimport { getActiveDomain, getMainCarrier } from '@sentry/hub';\nimport { dynamicRequire, extractNodeRequestData, getGlobalObject, isInstanceOf, isNodeEnv, logger } from '@sentry/utils';\nimport { registerErrorInstrumentation } from './errors';\nimport { IdleTransaction } from './idletransaction';\nimport { Transaction } from './transaction';\nimport { hasTracingEnabled } from './utils';\n/** Returns all trace headers that are currently on the top scope. */\n\nfunction traceHeaders() {\n var scope = this.getScope();\n\n if (scope) {\n var span = scope.getSpan();\n\n if (span) {\n return {\n 'sentry-trace': span.toTraceparent()\n };\n }\n }\n\n return {};\n}\n/**\n * Implements sampling inheritance and falls back to user-provided static rate if no parent decision is available.\n *\n * @param parentSampled: The parent transaction's sampling decision, if any.\n * @param givenRate: The rate to use if no parental decision is available.\n *\n * @returns The parent's sampling decision (if one exists), or the provided static rate\n */\n\n\nfunction _inheritOrUseGivenRate(parentSampled, givenRate) {\n return parentSampled !== undefined ? parentSampled : givenRate;\n}\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param hub: The hub off of which to read config options\n * @param transaction: The transaction needing a sampling decision\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\n\n\nfunction sample(hub, transaction, samplingContext) {\n var _a;\n\n var client = hub.getClient();\n var options = client && client.getOptions() || {}; // nothing to do if there's no client or if tracing is disabled\n\n if (!client || !hasTracingEnabled(options)) {\n transaction.sampled = false;\n return transaction;\n } // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n // work; prefer the hook if so\n\n\n var sampleRate = typeof options.tracesSampler === 'function' ? options.tracesSampler(samplingContext) : _inheritOrUseGivenRate(samplingContext.parentSampled, options.tracesSampleRate); // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n\n if (!isValidSampleRate(sampleRate)) {\n logger.warn(\"[Tracing] Discarding transaction because of invalid sample rate.\");\n transaction.sampled = false;\n return transaction;\n } // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n\n\n if (!sampleRate) {\n logger.log(\"[Tracing] Discarding transaction because \" + (typeof options.tracesSampler === 'function' ? 'tracesSampler returned 0 or false' : 'tracesSampleRate is set to 0'));\n transaction.sampled = false;\n return transaction;\n } // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n\n\n transaction.sampled = Math.random() < sampleRate; // if we're not going to keep it, we're done\n\n if (!transaction.sampled) {\n logger.log(\"[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = \" + Number(sampleRate) + \")\");\n return transaction;\n } // at this point we know we're keeping the transaction, whether because of an inherited decision or because it got\n // lucky with the dice roll\n\n\n transaction.initSpanRecorder((_a = options._experiments) === null || _a === void 0 ? void 0 : _a.maxSpans);\n logger.log(\"[Tracing] starting \" + transaction.op + \" transaction - \" + transaction.name);\n return transaction;\n}\n/**\n * Gets the correct context to pass to the tracesSampler, based on the environment (i.e., which SDK is being used)\n *\n * @returns The default sample context\n */\n\n\nfunction getDefaultSamplingContext(transactionContext) {\n // promote parent sampling decision (if any) for easy access\n var parentSampled = transactionContext.parentSampled;\n var defaultSamplingContext = {\n transactionContext: transactionContext,\n parentSampled: parentSampled\n };\n\n if (isNodeEnv()) {\n var domain = getActiveDomain();\n\n if (domain) {\n // for all node servers that we currently support, we store the incoming request object (which is an instance of\n // http.IncomingMessage) on the domain\n // the domain members are stored as an array, so our only way to find the request is to iterate through the array\n // and compare types\n var nodeHttpModule = dynamicRequire(module, 'http'); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n var requestType_1 = nodeHttpModule.IncomingMessage; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n var request = domain.members.find(function (member) {\n return isInstanceOf(member, requestType_1);\n });\n\n if (request) {\n defaultSamplingContext.request = extractNodeRequestData(request);\n }\n }\n } // we must be in browser-js (or some derivative thereof)\n else {\n // we use `getGlobalObject()` rather than `window` since service workers also have a `location` property on `self`\n var globalObject = getGlobalObject();\n\n if ('location' in globalObject) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n defaultSamplingContext.location = __assign({}, globalObject.location);\n }\n }\n\n return defaultSamplingContext;\n}\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\n\n\nfunction isValidSampleRate(rate) {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got \" + JSON.stringify(rate) + \" of type \" + JSON.stringify(_typeof(rate)) + \".\");\n return false;\n } // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n\n\n if (rate < 0 || rate > 1) {\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got \" + rate + \".\");\n return false;\n }\n\n return true;\n}\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`.\n * Exists as a separate function so that it can be injected into the class as an \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\n\n\nfunction _startTransaction(transactionContext, customSamplingContext) {\n var transaction = new Transaction(transactionContext, this);\n return sample(this, transaction, __assign(__assign({}, getDefaultSamplingContext(transactionContext)), customSamplingContext));\n}\n/**\n * Create new idle transaction.\n */\n\n\nexport function startIdleTransaction(hub, transactionContext, idleTimeout, onScope) {\n var transaction = new IdleTransaction(transactionContext, hub, idleTimeout, onScope);\n return sample(hub, transaction, getDefaultSamplingContext(transactionContext));\n}\n/**\n * @private\n */\n\nexport function _addTracingExtensions() {\n var carrier = getMainCarrier();\n\n if (carrier.__SENTRY__) {\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n }\n}\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\n\nexport function addExtensionMethods() {\n _addTracingExtensions(); // If an error happens globally, we should make sure transaction status is set to error.\n\n\n registerErrorInstrumentation();\n}","const theme = {\n radii: {\n xs: \"4px\",\n sm: \"5px\",\n md: \"7px\",\n lg: \"13px\",\n },\n shadow: \"0px 8px 20px -4px rgba(0, 0, 0, 0.08)\",\n};\n\nexport default theme;\n","import React from \"react\";\n// import PropTypes from \"prop-types\";\nimport { errorTextViaYupOrRailsOrJoi } from \"@shared/lib/formHelpers\";\nimport { DirectUpload } from \"activestorage\";\nimport { useMachine } from \"@xstate/react\";\nimport { Machine } from \"xstate\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\n\nimport { isAllowedFileSize, isAllowedFileType } from \"@ats/src/lib/utils/fileUploads\";\n\ntype Props = {\n displayType?: string;\n allowAutomaticUploading: boolean;\n htmlFor?: string; // used to connect the input and the uploader\n file?: any;\n fileName?: string;\n fileIsAlreadyUploaded: boolean;\n isRequired?: boolean;\n requiredLabel?: string;\n loading: boolean;\n name: string;\n label?: string;\n placeholder: {} | string;\n description?: string;\n tabIndex?: string;\n onChange?: ({}) => void;\n onCompleteDirectUpload: any;\n onStartDirectUpload?: (loading: boolean) => void;\n onInvalidFile: (file, expectedFileType) => void;\n errors: any;\n children?: any;\n expectedFileType: string;\n maxFileSize?: number;\n};\n\nexport default function FormUploader(props: Props) {\n // window.logger(\"%c[FormUploader] \", \"color: #1976D2\", { props });\n const {\n displayType,\n allowAutomaticUploading,\n tabIndex,\n placeholder,\n htmlFor,\n file,\n fileIsAlreadyUploaded,\n fileName, // useful for when displaying information for an already uploaded file\n label,\n isRequired,\n description,\n loading,\n children,\n expectedFileType,\n maxFileSize,\n onStartDirectUpload,\n requiredLabel = \"required\",\n } = props;\n\n const uploadMachine = Machine(\n {\n id: \"upload\",\n initial: \"noFile\",\n states: {\n noFile: {\n on: {\n ATTACH_FILE: \"fileAttachedForUpload\",\n AUTO_UPLOAD_FILE: \"newFileIsUploading\",\n HAS_EXISTING_FILE: \"existingFile\",\n },\n },\n existingFile: {\n on: {\n ATTACH_FILE: \"fileAttachedForUpload\",\n AUTO_UPLOAD_FILE: {\n target: \"replacementFileIsUploading\",\n actions: [\"sendOnLoadingCallback\"],\n },\n },\n },\n fileSuccessfullyUploaded: {\n on: {\n ATTACH_FILE: \"fileAttachedForUpload\",\n AUTO_UPLOAD_FILE: {\n target: \"replacementFileIsUploading\",\n actions: [\"sendOnLoadingCallback\"],\n },\n },\n },\n fileAttachedForUpload: {\n on: { INVALID_FILE: \"noFile\" },\n },\n newFileIsUploading: {\n on: { UPLOAD_COMPLETE: \"fileSuccessfullyUploaded\" },\n },\n replacementFileIsUploading: {\n on: { UPLOAD_COMPLETE: \"fileSuccessfullyUploaded\" },\n },\n },\n },\n {\n actions: {\n sendOnLoadingCallback: (context, event) => {\n window.logger(\"%c[FormUploader] sendOnLoadingCallback\", \"color: #1976D2\", {\n context,\n event,\n });\n const isLoading = event.type === \"AUTO_UPLOAD_FILE\";\n if (onStartDirectUpload != undefined) {\n onStartDirectUpload(isLoading);\n }\n },\n },\n },\n );\n\n const [state, send] = useMachine(uploadMachine);\n\n const [fileToUpload, setFileToUpload] = React.useState(file);\n\n let errorText = errorTextViaYupOrRailsOrJoi(props);\n\n React.useEffect(() => {\n setFileToUpload(file);\n\n if (fileIsAlreadyUploaded) {\n send(\"HAS_EXISTING_FILE\");\n }\n }, [file, fileIsAlreadyUploaded, send]);\n\n // window.logger(\"%c[FormUploader] STATE MACHINE value\", \"color: #1976D2\", { value: state.value });\n\n const fileExists = [\n \"existingFile\",\n \"fileAttachedForUpload\",\n \"fileSuccessfullyUploaded\",\n \"replacementFileIsUploading\",\n ].includes(String(state.value));\n\n const buttonText =\n displayType !== \"button\"\n ? placeholder\n : file != null && fileToUpload != null && fileExists\n ? fileToUpload.name\n : fileIsAlreadyUploaded && fileName\n ? fileName\n : placeholder;\n\n // const fileTypes = {\n // image: [\"image/png\", \"image/jpeg\", \"image/jpg\", \"image/svg+xml\"],\n // document: [\n // \"application/pdf\",\n // \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n // ],\n // };\n\n // const trimFilename = (filename) => {\n // let cutStart, cutEnd;\n\n // if (filename.length > 20) {\n // cutStart = 10;\n // cutEnd = filename.length - 7;\n // return filename.substr(0, cutStart) + \"...\" + filename.substr(cutEnd + 1);\n // } else {\n // return filename;\n // }\n // };\n\n // const isAllowedFileType = (expectedFileType, fileType) => {\n // return expectedFileType === undefined ? true : fileTypes[expectedFileType].includes(fileType);\n // };\n\n /* Handle File Input Change\n --===================================================-- */\n const handleFileInputChange = (e) => {\n e.preventDefault();\n const file = e.currentTarget.files[0];\n const upload = new DirectUpload(\n file,\n `/api/v1/public/rails/active_storage/direct_uploads`,\n this,\n );\n\n if (\n file &&\n isAllowedFileType(expectedFileType, file.type) &&\n isAllowedFileSize(maxFileSize, file.size)\n ) {\n if (props.onChange) props.onChange({ fileToUpload: file });\n\n if (allowAutomaticUploading) {\n send(\"AUTO_UPLOAD_FILE\");\n upload.create((error, blob) => {\n if (error) {\n console.error(\"[FormUploader] handleFileInputChange directUpload error\", error);\n } else {\n // window.logger('%c[FormUploader] uploaded file', 'color: #1976D2', { blob });\n props.onCompleteDirectUpload(blob).then((data) => {\n window.logger(\"%c[FormUploader] onCompleteDirectUpload\", \"color: #1976D2\", { data });\n if (data !== undefined) send(\"UPLOAD_COMPLETE\");\n });\n }\n });\n } else {\n setFileToUpload(file);\n send(\"ATTACH_FILE\");\n }\n } else {\n send(\"INVALID_FILE\");\n props.onInvalidFile(file, expectedFileType);\n }\n };\n\n return (\n \n {label && (\n \n )}\n {description &&

    {description}

    }\n \n \n \n {displayType === \"button\" && }\n {buttonText}\n \n\n {loading && (\n \n \n \n )}\n {!loading && displayType === \"button\" && state.value === \"fileSuccessfullyUploaded\" && (\n \n \n Uploaded\n \n )}\n {!loading && displayType === \"button\" && state.value === \"fileAttachedForUpload\" && (\n \n \n {window.APP_TRANSLATIONS.file_attached_label}\n \n )}\n \n {children}\n {/* For displaying Joi rendered errors. See NewInviteForm example. */}\n
    \n );\n}\n\nFormUploader.defaultProps = {\n // allowAutomaticUploading: true,\n displayType: \"button\",\n};\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: FormUploader;\n ${props.displayType === \"dropdownLink\" ? \"margin-bottom: 2px\" : t.mb(6)};\n > p {\n ${[t.text.sm, t.mt(-1), t.mb(2)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.text.xs}\n }\n }\n\n ${t.mq[\"md\"]} {\n ${props.displayType === \"dropdownLink\" ? \"margin-bottom: 2px\" : t.mb(5)};\n }\n `;\n});\n\nStyled.UIContainer = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: FormUploader_UI;\n display: flex;\n align-items: center;\n\n [type=\"file\"]:focus + label,\n [type=\"file\"]:focus + label:hover {\n transition: border-color 0.2s ease, box-shadow 0.2s;\n ${props.displayType === \"dropdownLink\"\n ? \"text-decoration: underline;\"\n : t.dark\n ? \"\"\n : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`};\n border-color: ${t.dark ? t.color.gray[500] : t.color.gray[400]};\n }\n `;\n});\n\nStyled.UploadButton = styled.label((props: any) => {\n const t: any = props.theme;\n const base = css`\n label: FormUploader_UploadButton;\n border: none;\n appearance: none;\n outline: none;\n position: relative;\n cursor: pointer;\n overflow: hidden;\n display: flex;\n align-items: center;\n `;\n\n if (props.displayType === \"dropdownLink\") {\n return css`\n ${[t.text.medium, base]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n background-color: transparent;\n &:hover {\n text-decoration: underline;\n }\n `;\n } else {\n return props.fileExists\n ? css`\n ${[t.h(10), t.text.base, t.rounded.sm, base]};\n padding: 0 ${t.spacing[2]};\n width: 100%;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n border: 1px solid ${t.dark ? \"transparent\" : t.color.gray[300]};\n background-color: ${t.dark ? \"rgba(255,255,255,0.08)\" : t.color.white};\n transition: background-color 0.2s ease, border-color 0.2s ease;\n svg {\n margin-right: ${t.spacing[1]};\n }\n &:hover {\n border-color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n `\n : css`\n ${[t.h(10), t.text.base, t.rounded.sm, base]}\n padding: 0 ${t.spacing[4]};\n transition: background-color 0.2s ease;\n background-color: ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n font-weight: 450;\n color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[200]\n : t.color.black};\n svg {\n display: none;\n }\n &:hover {\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[300]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n `;\n }\n});\n\nStyled.UploadButtonLabel = styled.span`\n label: FormUploader_UploadButtonLabel;\n display: flex;\n align-items: center;\n flex-shrink: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`;\n\nStyled.Input = styled.input`\n label: FormUploader_Input;\n position: absolute;\n margin: -1px;\n width: 1px;\n height: 1px;\n border: 0;\n clip: rect(0, 0, 0, 0);\n overflow: hidden;\n`;\n\nStyled.UploadStatus = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormUploader_UploadStatus;\n ${t.ml(3)}\n display: flex;\n align-items: center;\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n svg {\n ${t.mr(1)}\n }\n `;\n});\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\n/* eslint-disable @typescript-eslint/typedef */\n\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n/** SyncPromise internal states */\n\nvar States;\n\n(function (States) {\n /** Pending */\n States[\"PENDING\"] = \"PENDING\";\n /** Resolved / OK */\n\n States[\"RESOLVED\"] = \"RESOLVED\";\n /** Rejected / Error */\n\n States[\"REJECTED\"] = \"REJECTED\";\n})(States || (States = {}));\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\n\n\nvar SyncPromise =\n/** @class */\nfunction () {\n function SyncPromise(executor) {\n var _this = this;\n\n this._state = States.PENDING;\n this._handlers = [];\n /** JSDoc */\n\n this._resolve = function (value) {\n _this._setResult(States.RESOLVED, value);\n };\n /** JSDoc */\n\n\n this._reject = function (reason) {\n _this._setResult(States.REJECTED, reason);\n };\n /** JSDoc */\n\n\n this._setResult = function (state, value) {\n if (_this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n value.then(_this._resolve, _this._reject);\n return;\n }\n\n _this._state = state;\n _this._value = value;\n\n _this._executeHandlers();\n }; // TODO: FIXME\n\n /** JSDoc */\n\n\n this._attachHandler = function (handler) {\n _this._handlers = _this._handlers.concat(handler);\n\n _this._executeHandlers();\n };\n /** JSDoc */\n\n\n this._executeHandlers = function () {\n if (_this._state === States.PENDING) {\n return;\n }\n\n var cachedHandlers = _this._handlers.slice();\n\n _this._handlers = [];\n cachedHandlers.forEach(function (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);\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 try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n\n\n SyncPromise.resolve = function (value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n };\n /** JSDoc */\n\n\n SyncPromise.reject = function (reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n };\n /** JSDoc */\n\n\n SyncPromise.all = function (collection) {\n return new SyncPromise(function (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 var counter = collection.length;\n var resolvedCollection = [];\n collection.forEach(function (item, index) {\n SyncPromise.resolve(item).then(function (value) {\n resolvedCollection[index] = value;\n counter -= 1;\n\n if (counter !== 0) {\n return;\n }\n\n resolve(resolvedCollection);\n }).then(null, reject);\n });\n });\n };\n /** JSDoc */\n\n\n SyncPromise.prototype.then = function (_onfulfilled, _onrejected) {\n var _this = this;\n\n return new SyncPromise(function (resolve, reject) {\n _this._attachHandler({\n done: false,\n onfulfilled: function onfulfilled(result) {\n if (!_onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n return;\n }\n\n try {\n resolve(_onfulfilled(result));\n return;\n } catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: function onrejected(reason) {\n if (!_onrejected) {\n reject(reason);\n return;\n }\n\n try {\n resolve(_onrejected(reason));\n return;\n } catch (e) {\n reject(e);\n return;\n }\n }\n });\n });\n };\n /** JSDoc */\n\n\n SyncPromise.prototype[\"catch\"] = function (onrejected) {\n return this.then(function (val) {\n return val;\n }, onrejected);\n };\n /** JSDoc */\n\n\n SyncPromise.prototype[\"finally\"] = function (onfinally) {\n var _this = this;\n\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val);\n });\n });\n };\n /** JSDoc */\n\n\n SyncPromise.prototype.toString = function () {\n return '[object SyncPromise]';\n };\n\n return SyncPromise;\n}();\n\nexport { SyncPromise };","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * 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\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;","import { ticks, tickIncrement } from \"d3-array\";\nimport continuous, { copy } from \"./continuous.js\";\nimport { initRange } from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function (count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function (count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function (count) {\n if (count == null) count = 10;\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n\n if (step === prestep) {\n d[i0] = start;\n d[i1] = stop;\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function () {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n return linearish(scale);\n}","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents'; // eslint-disable-next-line no-redeclare","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\n\n// Forced replacement object prototype accessors methods\nmodule.exports = IS_PURE || !fails(function () {\n var key = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call\n __defineSetter__.call(null, key, function () { /* empty */ });\n delete global[key];\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$
    ') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var nativeExpm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.github.io/ecma262/#sec-math.expm1\nmodule.exports = (!nativeExpm1\n // Old FF bug\n || nativeExpm1(10) > 22025.465794806719 || nativeExpm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || nativeExpm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;\n} : nativeExpm1;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\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 // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\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 NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","var getNative = require('./_getNative');\n/* Built-in method references that are verified to be native. */\n\n\nvar nativeCreate = getNative(Object, 'create');\nmodule.exports = nativeCreate;","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `ListCache`.\n\n\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\nmodule.exports = ListCache;","var eq = require('./eq');\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 */\n\n\nfunction assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\n}\n\nmodule.exports = assocIndexOf;","var isKeyable = require('./_isKeyable');\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 */\n\n\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\n\nmodule.exports = getMapData;","var isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar INFINITY = 1 / 0;\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 */\n\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n\nmodule.exports = toKey;","var defineProperty = require('./_defineProperty');\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 */\n\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;","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\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 */\n\n\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n\n return object;\n}\n\nmodule.exports = copyObject;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexports.__esModule = true;\nexports[\"default\"] = printValue;\nvar toString = Object.prototype.toString;\nvar errorToString = Error.prototype.toString;\nvar regExpToString = RegExp.prototype.toString;\nvar symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : function () {\n return '';\n};\nvar SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n var isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings) {\n if (quoteStrings === void 0) {\n quoteStrings = false;\n }\n\n if (val == null || val === true || val === false) return '' + val;\n\n var typeOf = _typeof(val);\n\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? \"\\\"\" + val + \"\\\"\" : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n var tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\n\nfunction printValue(value, quoteStrings) {\n var result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n var result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\nmodule.exports = exports[\"default\"];","/**\n * Based on Kendo UI Core expression code \n */\n'use strict';\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize;\n this.clear();\n}\n\nCache.prototype.clear = function () {\n this._size = 0;\n this._values = {};\n};\n\nCache.prototype.get = function (key) {\n return this._values[key];\n};\n\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear();\n\n if (!this._values.hasOwnProperty(key)) {\n this._size++;\n }\n\n return this._values[key] = value;\n};\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512;\nvar contentSecurityPolicy = false,\n pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE);\n\ntry {\n new Function('');\n} catch (error) {\n contentSecurityPolicy = true;\n}\n\nmodule.exports = {\n Cache: Cache,\n expr: expr,\n split: split,\n normalizePath: normalizePath,\n setter: contentSecurityPolicy ? function (path) {\n var parts = normalizePath(path);\n return function (data, value) {\n return setterFallback(parts, data, value);\n };\n } : function (path) {\n return setCache.get(path) || setCache.set(path, new Function('data, value', expr(path, 'data') + ' = value'));\n },\n getter: contentSecurityPolicy ? function (path, safe) {\n var parts = normalizePath(path);\n return function (data) {\n return getterFallback(parts, safe, data);\n };\n } : function (path, safe) {\n var key = path + '_' + safe;\n return getCache.get(key) || getCache.set(key, new Function('data', 'return ' + expr(path, safe, 'data')));\n },\n join: function join(segments) {\n return segments.reduce(function (path, part) {\n return path + (isQuoted(part) || DIGIT_REGEX.test(part) ? '[' + part + ']' : (path ? '.' : '') + part);\n }, '');\n },\n forEach: function forEach(path, cb, thisArg) {\n _forEach(split(path), cb, thisArg);\n }\n};\n\nfunction setterFallback(parts, data, value) {\n var index = 0,\n len = parts.length;\n\n while (index < len - 1) {\n data = data[parts[index++]];\n }\n\n data[parts[index]] = value;\n}\n\nfunction getterFallback(parts, safe, data) {\n var index = 0,\n len = parts.length;\n\n while (index < len) {\n if (data != null || !safe) {\n data = data[parts[index++]];\n } else {\n return;\n }\n }\n\n return data;\n}\n\nfunction normalizePath(path) {\n return pathCache.get(path) || pathCache.set(path, split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2');\n }));\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX);\n}\n\nfunction expr(expression, safe, param) {\n expression = expression || '';\n\n if (typeof safe === 'string') {\n param = safe;\n safe = false;\n }\n\n param = param || 'data';\n if (expression && expression.charAt(0) !== '[') expression = '.' + expression;\n return safe ? makeSafe(expression, param) : param + expression;\n}\n\nfunction _forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket;\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx];\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"';\n }\n\n isBracket = isQuoted(part);\n isArray = !isBracket && /^\\d+$/.test(part);\n iter.call(thisArg, part, isBracket, isArray, idx, parts);\n }\n }\n}\n\nfunction isQuoted(str) {\n return typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1;\n}\n\nfunction makeSafe(path, param) {\n var result = param,\n parts = split(path),\n isLast;\n\n _forEach(parts, function (part, isBracket, isArray, idx, parts) {\n isLast = idx === parts.length - 1;\n part = isBracket || isArray ? '[' + part + ']' : '.' + part;\n result += part + (!isLast ? ' || {})' : ')');\n });\n\n return new Array(parts.length + 1).join('(') + result;\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX);\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part);\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part));\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _default = function _default(value) {\n return value == null;\n};\n\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { eachProp, is, toArray, isAnimatedString, Globals, getFluidValue, useLayoutEffect, each, raf, flush, FluidValue, deprecateInterpolate, callFluidObservers, frameLoop, hasFluidValue, flushCalls, isEqual, getFluidObservers, addFluidObserver, removeFluidObserver, noop, useMemoOne, deprecateDirectCall, useForceUpdate, usePrev, useOnce, createInterpolator, createStringInterpolator } from '@react-spring/shared';\nexport { Globals, createInterpolator } from '@react-spring/shared';\nimport * as React from 'react';\nimport { useContext, useMemo, useRef, useState } from 'react';\nimport { getAnimated, AnimatedValue, getPayload, AnimatedString, getAnimatedType, setAnimated } from '@react-spring/animated';\nexport * from '@react-spring/types/animated';\nexport * from '@react-spring/types/interpolation';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction callProp(value) {\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 is.fun(value) ? value.apply(void 0, args) : value;\n}\n\nvar matchProp = function matchProp(value, key) {\n return value === true || !!(key && value && (is.fun(value) ? value(key) : toArray(value).includes(key)));\n};\n\nvar resolveProp = function resolveProp(prop, key) {\n return is.obj(prop) ? key && prop[key] : prop;\n};\n\nvar getDefaultProp = function getDefaultProp(props, key) {\n return props[\"default\"] === true ? props[key] : props[\"default\"] ? props[\"default\"][key] : undefined;\n};\n\nvar noopTransform = function noopTransform(value) {\n return value;\n};\n\nvar getDefaultProps = function getDefaultProps(props) {\n var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noopTransform;\n var keys = DEFAULT_PROPS;\n\n if (props[\"default\"] && props[\"default\"] !== true) {\n props = props[\"default\"];\n keys = Object.keys(props);\n }\n\n var defaults = {};\n\n var _iterator = _createForOfIteratorHelper(keys),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n var value = transform(props[key], key);\n\n if (!is.und(value)) {\n defaults[key] = value;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return defaults;\n};\n\nvar DEFAULT_PROPS = ['config', 'onProps', 'onStart', 'onChange', 'onPause', 'onResume', 'onRest'];\nvar RESERVED_PROPS = {\n config: 1,\n from: 1,\n to: 1,\n ref: 1,\n loop: 1,\n reset: 1,\n pause: 1,\n cancel: 1,\n reverse: 1,\n immediate: 1,\n \"default\": 1,\n delay: 1,\n onProps: 1,\n onStart: 1,\n onChange: 1,\n onPause: 1,\n onResume: 1,\n onRest: 1,\n onResolve: 1,\n items: 1,\n trail: 1,\n sort: 1,\n expires: 1,\n initial: 1,\n enter: 1,\n update: 1,\n leave: 1,\n children: 1,\n onDestroyed: 1,\n keys: 1,\n callId: 1,\n parentId: 1\n};\n\nfunction getForwardProps(props) {\n var forward = {};\n var count = 0;\n eachProp(props, function (value, prop) {\n if (!RESERVED_PROPS[prop]) {\n forward[prop] = value;\n count++;\n }\n });\n\n if (count) {\n return forward;\n }\n}\n\nfunction inferTo(props) {\n var to = getForwardProps(props);\n\n if (to) {\n var out = {\n to: to\n };\n eachProp(props, function (val, key) {\n return key in to || (out[key] = val);\n });\n return out;\n }\n\n return _extends({}, props);\n}\n\nfunction computeGoal(value) {\n value = getFluidValue(value);\n return is.arr(value) ? value.map(computeGoal) : isAnimatedString(value) ? Globals.createStringInterpolator({\n range: [0, 1],\n output: [value, value]\n })(1) : value;\n}\n\nfunction hasProps(props) {\n for (var _ in props) {\n return true;\n }\n\n return false;\n}\n\nfunction isAsyncTo(to) {\n return is.fun(to) || is.arr(to) && is.obj(to[0]);\n}\n\nfunction detachRefs(ctrl, ref) {\n var _ctrl$ref;\n\n (_ctrl$ref = ctrl.ref) == null ? void 0 : _ctrl$ref[\"delete\"](ctrl);\n ref == null ? void 0 : ref[\"delete\"](ctrl);\n}\n\nfunction replaceRef(ctrl, ref) {\n if (ref && ctrl.ref !== ref) {\n var _ctrl$ref2;\n\n (_ctrl$ref2 = ctrl.ref) == null ? void 0 : _ctrl$ref2[\"delete\"](ctrl);\n ref.add(ctrl);\n ctrl.ref = ref;\n }\n}\n\nfunction useChain(refs, timeSteps) {\n var timeFrame = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n useLayoutEffect(function () {\n if (timeSteps) {\n var prevDelay = 0;\n each(refs, function (ref, i) {\n var controllers = ref.current;\n\n if (controllers.length) {\n var delay = timeFrame * timeSteps[i];\n if (isNaN(delay)) delay = prevDelay;else prevDelay = delay;\n each(controllers, function (ctrl) {\n each(ctrl.queue, function (props) {\n var memoizedDelayProp = props.delay;\n\n props.delay = function (key) {\n return delay + callProp(memoizedDelayProp || 0, key);\n };\n });\n ctrl.start();\n });\n }\n });\n } else {\n var p = Promise.resolve();\n each(refs, function (ref) {\n var controllers = ref.current;\n\n if (controllers.length) {\n var queues = controllers.map(function (ctrl) {\n var q = ctrl.queue;\n ctrl.queue = [];\n return q;\n });\n p = p.then(function () {\n each(controllers, function (ctrl, i) {\n return each(queues[i] || [], function (update) {\n return ctrl.queue.push(update);\n });\n });\n return ref.start();\n });\n }\n });\n }\n });\n}\n\nvar config = {\n \"default\": {\n tension: 170,\n friction: 26\n },\n gentle: {\n tension: 120,\n friction: 14\n },\n wobbly: {\n tension: 180,\n friction: 12\n },\n stiff: {\n tension: 210,\n friction: 20\n },\n slow: {\n tension: 280,\n friction: 60\n },\n molasses: {\n tension: 280,\n friction: 120\n }\n};\n\nvar linear = function linear(t) {\n return t;\n};\n\nvar defaults = _extends({}, config[\"default\"], {\n mass: 1,\n damping: 1,\n easing: linear,\n clamp: false\n});\n\nvar AnimationConfig = function AnimationConfig() {\n _classCallCheck(this, AnimationConfig);\n\n this.tension = void 0;\n this.friction = void 0;\n this.frequency = void 0;\n this.damping = void 0;\n this.mass = void 0;\n this.velocity = 0;\n this.restVelocity = void 0;\n this.precision = void 0;\n this.progress = void 0;\n this.duration = void 0;\n this.easing = void 0;\n this.clamp = void 0;\n this.bounce = void 0;\n this.decay = void 0;\n this.round = void 0;\n Object.assign(this, defaults);\n};\n\nfunction mergeConfig(config, newConfig, defaultConfig) {\n if (defaultConfig) {\n defaultConfig = _extends({}, defaultConfig);\n sanitizeConfig(defaultConfig, newConfig);\n newConfig = _extends({}, defaultConfig, newConfig);\n }\n\n sanitizeConfig(config, newConfig);\n Object.assign(config, newConfig);\n\n for (var key in defaults) {\n if (config[key] == null) {\n config[key] = defaults[key];\n }\n }\n\n var mass = config.mass,\n frequency = config.frequency,\n damping = config.damping;\n\n if (!is.und(frequency)) {\n if (frequency < 0.01) frequency = 0.01;\n if (damping < 0) damping = 0;\n config.tension = Math.pow(2 * Math.PI / frequency, 2) * mass;\n config.friction = 4 * Math.PI * damping * mass / frequency;\n }\n\n return config;\n}\n\nfunction sanitizeConfig(config, props) {\n if (!is.und(props.decay)) {\n config.duration = undefined;\n } else {\n var isTensionConfig = !is.und(props.tension) || !is.und(props.friction);\n\n if (isTensionConfig || !is.und(props.frequency) || !is.und(props.damping) || !is.und(props.mass)) {\n config.duration = undefined;\n config.decay = undefined;\n }\n\n if (isTensionConfig) {\n config.frequency = undefined;\n }\n }\n}\n\nvar emptyArray = [];\n\nvar Animation = function Animation() {\n _classCallCheck(this, Animation);\n\n this.changed = false;\n this.values = emptyArray;\n this.toValues = null;\n this.fromValues = emptyArray;\n this.to = void 0;\n this.from = void 0;\n this.config = new AnimationConfig();\n this.immediate = false;\n};\n\nfunction scheduleProps(callId, _ref2) {\n var key = _ref2.key,\n props = _ref2.props,\n defaultProps = _ref2.defaultProps,\n state = _ref2.state,\n actions = _ref2.actions;\n return new Promise(function (resolve, reject) {\n var _props$cancel;\n\n var delay;\n var timeout;\n var cancel = matchProp((_props$cancel = props.cancel) != null ? _props$cancel : defaultProps == null ? void 0 : defaultProps.cancel, key);\n\n if (cancel) {\n onStart();\n } else {\n if (!is.und(props.pause)) {\n state.paused = matchProp(props.pause, key);\n }\n\n var pause = defaultProps == null ? void 0 : defaultProps.pause;\n\n if (pause !== true) {\n pause = state.paused || matchProp(pause, key);\n }\n\n delay = callProp(props.delay || 0, key);\n\n if (pause) {\n state.resumeQueue.add(onResume);\n actions.pause();\n } else {\n actions.resume();\n onResume();\n }\n }\n\n function onPause() {\n state.resumeQueue.add(onResume);\n state.timeouts[\"delete\"](timeout);\n timeout.cancel();\n delay = timeout.time - raf.now();\n }\n\n function onResume() {\n if (delay > 0) {\n timeout = raf.setTimeout(onStart, delay);\n state.pauseQueue.add(onPause);\n state.timeouts.add(timeout);\n } else {\n onStart();\n }\n }\n\n function onStart() {\n state.pauseQueue[\"delete\"](onPause);\n state.timeouts[\"delete\"](timeout);\n\n if (callId <= (state.cancelId || 0)) {\n cancel = true;\n }\n\n try {\n actions.start(_extends({}, props, {\n callId: callId,\n cancel: cancel\n }), resolve);\n } catch (err) {\n reject(err);\n }\n }\n });\n}\n\nvar getCombinedResult = function getCombinedResult(target, results) {\n return results.length == 1 ? results[0] : results.some(function (result) {\n return result.cancelled;\n }) ? getCancelledResult(target.get()) : results.every(function (result) {\n return result.noop;\n }) ? getNoopResult(target.get()) : getFinishedResult(target.get(), results.every(function (result) {\n return result.finished;\n }));\n};\n\nvar getNoopResult = function getNoopResult(value) {\n return {\n value: value,\n noop: true,\n finished: true,\n cancelled: false\n };\n};\n\nvar getFinishedResult = function getFinishedResult(value, finished) {\n var cancelled = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return {\n value: value,\n finished: finished,\n cancelled: cancelled\n };\n};\n\nvar getCancelledResult = function getCancelledResult(value) {\n return {\n value: value,\n cancelled: true,\n finished: false\n };\n};\n\nfunction runAsync(to, props, state, target) {\n var callId = props.callId,\n parentId = props.parentId,\n onRest = props.onRest;\n var prevTo = state.asyncTo,\n prevPromise = state.promise;\n\n if (!parentId && to === prevTo && !props.reset) {\n return prevPromise;\n }\n\n return state.promise = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n var defaultProps, preventBail, bail, bailPromise, bailIfEnded, animate, result, animating;\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n state.asyncId = callId;\n state.asyncTo = to;\n defaultProps = getDefaultProps(props, function (value, key) {\n return key === 'onRest' ? undefined : value;\n });\n bailPromise = new Promise(function (resolve, reject) {\n return preventBail = resolve, bail = reject;\n });\n\n bailIfEnded = function bailIfEnded(bailSignal) {\n var bailResult = callId <= (state.cancelId || 0) && getCancelledResult(target) || callId !== state.asyncId && getFinishedResult(target, false);\n\n if (bailResult) {\n bailSignal.result = bailResult;\n bail(bailSignal);\n throw bailSignal;\n }\n };\n\n animate = function animate(arg1, arg2) {\n var bailSignal = new BailSignal();\n var skipAnimationSignal = new SkipAniamtionSignal();\n return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var props, result;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!Globals.skipAnimation) {\n _context.next = 5;\n break;\n }\n\n stopAsync(state);\n skipAnimationSignal.result = getFinishedResult(target, false);\n bail(skipAnimationSignal);\n throw skipAnimationSignal;\n\n case 5:\n bailIfEnded(bailSignal);\n props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n to: arg1\n });\n props.parentId = callId;\n eachProp(defaultProps, function (value, key) {\n if (is.und(props[key])) {\n props[key] = value;\n }\n });\n _context.next = 11;\n return target.start(props);\n\n case 11:\n result = _context.sent;\n bailIfEnded(bailSignal);\n\n if (!state.paused) {\n _context.next = 16;\n break;\n }\n\n _context.next = 16;\n return new Promise(function (resume) {\n state.resumeQueue.add(resume);\n });\n\n case 16:\n return _context.abrupt(\"return\", result);\n\n case 17:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n };\n\n if (!Globals.skipAnimation) {\n _context3.next = 9;\n break;\n }\n\n stopAsync(state);\n return _context3.abrupt(\"return\", getFinishedResult(target, false));\n\n case 9:\n _context3.prev = 9;\n\n if (is.arr(to)) {\n animating = function () {\n var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(queue) {\n var _iterator2, _step2, _props;\n\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _iterator2 = _createForOfIteratorHelper(queue);\n _context2.prev = 1;\n\n _iterator2.s();\n\n case 3:\n if ((_step2 = _iterator2.n()).done) {\n _context2.next = 9;\n break;\n }\n\n _props = _step2.value;\n _context2.next = 7;\n return animate(_props);\n\n case 7:\n _context2.next = 3;\n break;\n\n case 9:\n _context2.next = 14;\n break;\n\n case 11:\n _context2.prev = 11;\n _context2.t0 = _context2[\"catch\"](1);\n\n _iterator2.e(_context2.t0);\n\n case 14:\n _context2.prev = 14;\n\n _iterator2.f();\n\n return _context2.finish(14);\n\n case 17:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[1, 11, 14, 17]]);\n }));\n\n return function (_x) {\n return _ref5.apply(this, arguments);\n };\n }()(to);\n } else {\n animating = Promise.resolve(to(animate, target.stop.bind(target)));\n }\n\n _context3.next = 13;\n return Promise.all([animating.then(preventBail), bailPromise]);\n\n case 13:\n result = getFinishedResult(target.get(), true, false);\n _context3.next = 27;\n break;\n\n case 16:\n _context3.prev = 16;\n _context3.t0 = _context3[\"catch\"](9);\n\n if (!(_context3.t0 instanceof BailSignal)) {\n _context3.next = 22;\n break;\n }\n\n result = _context3.t0.result;\n _context3.next = 27;\n break;\n\n case 22:\n if (!(_context3.t0 instanceof SkipAniamtionSignal)) {\n _context3.next = 26;\n break;\n }\n\n result = _context3.t0.result;\n _context3.next = 27;\n break;\n\n case 26:\n throw _context3.t0;\n\n case 27:\n _context3.prev = 27;\n\n if (callId == state.asyncId) {\n state.asyncId = parentId;\n state.asyncTo = parentId ? prevTo : undefined;\n state.promise = parentId ? prevPromise : undefined;\n }\n\n return _context3.finish(27);\n\n case 30:\n if (is.fun(onRest)) {\n raf.batchedUpdates(function () {\n onRest(result, target, target.item);\n });\n }\n\n return _context3.abrupt(\"return\", result);\n\n case 32:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, null, [[9, 16, 27, 30]]);\n }))();\n}\n\nfunction stopAsync(state, cancelId) {\n flush(state.timeouts, function (t) {\n return t.cancel();\n });\n state.pauseQueue.clear();\n state.resumeQueue.clear();\n state.asyncId = state.asyncTo = state.promise = undefined;\n if (cancelId) state.cancelId = cancelId;\n}\n\nvar BailSignal = /*#__PURE__*/function (_Error) {\n _inherits(BailSignal, _Error);\n\n var _super = _createSuper(BailSignal);\n\n function BailSignal() {\n var _this;\n\n _classCallCheck(this, BailSignal);\n\n _this = _super.call(this, 'An async animation has been interrupted. You see this error because you ' + 'forgot to use `await` or `.catch(...)` on its returned promise.');\n _this.result = void 0;\n return _this;\n }\n\n return BailSignal;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar SkipAniamtionSignal = /*#__PURE__*/function (_Error2) {\n _inherits(SkipAniamtionSignal, _Error2);\n\n var _super2 = _createSuper(SkipAniamtionSignal);\n\n function SkipAniamtionSignal() {\n var _this2;\n\n _classCallCheck(this, SkipAniamtionSignal);\n\n _this2 = _super2.call(this, 'SkipAnimationSignal');\n _this2.result = void 0;\n return _this2;\n }\n\n return SkipAniamtionSignal;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar isFrameValue = function isFrameValue(value) {\n return value instanceof FrameValue;\n};\n\nvar nextId$1 = 1;\n\nvar FrameValue = /*#__PURE__*/function (_FluidValue) {\n _inherits(FrameValue, _FluidValue);\n\n var _super3 = _createSuper(FrameValue);\n\n function FrameValue() {\n var _this3;\n\n _classCallCheck(this, FrameValue);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this3 = _super3.call.apply(_super3, [this].concat(args));\n _this3.id = nextId$1++;\n _this3.key = void 0;\n _this3._priority = 0;\n return _this3;\n }\n\n _createClass(FrameValue, [{\n key: \"priority\",\n get: function get() {\n return this._priority;\n },\n set: function set(priority) {\n if (this._priority != priority) {\n this._priority = priority;\n\n this._onPriorityChange(priority);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n var node = getAnimated(this);\n return node && node.getValue();\n }\n }, {\n key: \"to\",\n value: function to() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return Globals.to(this, args);\n }\n }, {\n key: \"interpolate\",\n value: function interpolate() {\n deprecateInterpolate();\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return Globals.to(this, args);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.get();\n }\n }, {\n key: \"observerAdded\",\n value: function observerAdded(count) {\n if (count == 1) this._attach();\n }\n }, {\n key: \"observerRemoved\",\n value: function observerRemoved(count) {\n if (count == 0) this._detach();\n }\n }, {\n key: \"_attach\",\n value: function _attach() {}\n }, {\n key: \"_detach\",\n value: function _detach() {}\n }, {\n key: \"_onChange\",\n value: function _onChange(value) {\n var idle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n callFluidObservers(this, {\n type: 'change',\n parent: this,\n value: value,\n idle: idle\n });\n }\n }, {\n key: \"_onPriorityChange\",\n value: function _onPriorityChange(priority) {\n if (!this.idle) {\n frameLoop.sort(this);\n }\n\n callFluidObservers(this, {\n type: 'priority',\n parent: this,\n priority: priority\n });\n }\n }]);\n\n return FrameValue;\n}(FluidValue);\n\nvar $P = Symbol[\"for\"]('SpringPhase');\nvar HAS_ANIMATED = 1;\nvar IS_ANIMATING = 2;\nvar IS_PAUSED = 4;\n\nvar hasAnimated = function hasAnimated(target) {\n return (target[$P] & HAS_ANIMATED) > 0;\n};\n\nvar isAnimating = function isAnimating(target) {\n return (target[$P] & IS_ANIMATING) > 0;\n};\n\nvar isPaused = function isPaused(target) {\n return (target[$P] & IS_PAUSED) > 0;\n};\n\nvar setActiveBit = function setActiveBit(target, active) {\n return active ? target[$P] |= IS_ANIMATING | HAS_ANIMATED : target[$P] &= ~IS_ANIMATING;\n};\n\nvar setPausedBit = function setPausedBit(target, paused) {\n return paused ? target[$P] |= IS_PAUSED : target[$P] &= ~IS_PAUSED;\n};\n\nvar SpringValue = /*#__PURE__*/function (_FrameValue) {\n _inherits(SpringValue, _FrameValue);\n\n var _super4 = _createSuper(SpringValue);\n\n function SpringValue(arg1, arg2) {\n var _this4;\n\n _classCallCheck(this, SpringValue);\n\n _this4 = _super4.call(this);\n _this4.key = void 0;\n _this4.animation = new Animation();\n _this4.queue = void 0;\n _this4.defaultProps = {};\n _this4._state = {\n paused: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n _this4._pendingCalls = new Set();\n _this4._lastCallId = 0;\n _this4._lastToId = 0;\n _this4._memoizedDuration = 0;\n\n if (!is.und(arg1) || !is.und(arg2)) {\n var props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n from: arg1\n });\n\n if (is.und(props[\"default\"])) {\n props[\"default\"] = true;\n }\n\n _this4.start(props);\n }\n\n return _this4;\n }\n\n _createClass(SpringValue, [{\n key: \"idle\",\n get: function get() {\n return !(isAnimating(this) || this._state.asyncTo) || isPaused(this);\n }\n }, {\n key: \"goal\",\n get: function get() {\n return getFluidValue(this.animation.to);\n }\n }, {\n key: \"velocity\",\n get: function get() {\n var node = getAnimated(this);\n return node instanceof AnimatedValue ? node.lastVelocity || 0 : node.getPayload().map(function (node) {\n return node.lastVelocity || 0;\n });\n }\n }, {\n key: \"hasAnimated\",\n get: function get() {\n return hasAnimated(this);\n }\n }, {\n key: \"isAnimating\",\n get: function get() {\n return isAnimating(this);\n }\n }, {\n key: \"isPaused\",\n get: function get() {\n return isPaused(this);\n }\n }, {\n key: \"advance\",\n value: function advance(dt) {\n var _this5 = this;\n\n var idle = true;\n var changed = false;\n var anim = this.animation;\n var config = anim.config,\n toValues = anim.toValues;\n var payload = getPayload(anim.to);\n\n if (!payload && hasFluidValue(anim.to)) {\n toValues = toArray(getFluidValue(anim.to));\n }\n\n anim.values.forEach(function (node, i) {\n if (node.done) return;\n var to = node.constructor == AnimatedString ? 1 : payload ? payload[i].lastPosition : toValues[i];\n var finished = anim.immediate;\n var position = to;\n\n if (!finished) {\n position = node.lastPosition;\n\n if (config.tension <= 0) {\n node.done = true;\n return;\n }\n\n var elapsed = node.elapsedTime += dt;\n var from = anim.fromValues[i];\n var v0 = node.v0 != null ? node.v0 : node.v0 = is.arr(config.velocity) ? config.velocity[i] : config.velocity;\n var velocity;\n\n if (!is.und(config.duration)) {\n var p = 1;\n\n if (config.duration > 0) {\n if (_this5._memoizedDuration !== config.duration) {\n _this5._memoizedDuration = config.duration;\n\n if (node.durationProgress > 0) {\n node.elapsedTime = config.duration * node.durationProgress;\n elapsed = node.elapsedTime += dt;\n }\n }\n\n p = (config.progress || 0) + elapsed / _this5._memoizedDuration;\n p = p > 1 ? 1 : p < 0 ? 0 : p;\n node.durationProgress = p;\n }\n\n position = from + config.easing(p) * (to - from);\n velocity = (position - node.lastPosition) / dt;\n finished = p == 1;\n } else if (config.decay) {\n var decay = config.decay === true ? 0.998 : config.decay;\n var e = Math.exp(-(1 - decay) * elapsed);\n position = from + v0 / (1 - decay) * (1 - e);\n finished = Math.abs(node.lastPosition - position) < 0.1;\n velocity = v0 * e;\n } else {\n velocity = node.lastVelocity == null ? v0 : node.lastVelocity;\n var precision = config.precision || (from == to ? 0.005 : Math.min(1, Math.abs(to - from) * 0.001));\n var restVelocity = config.restVelocity || precision / 10;\n var bounceFactor = config.clamp ? 0 : config.bounce;\n var canBounce = !is.und(bounceFactor);\n var isGrowing = from == to ? node.v0 > 0 : from < to;\n var isMoving;\n var isBouncing = false;\n var step = 1;\n var numSteps = Math.ceil(dt / step);\n\n for (var n = 0; n < numSteps; ++n) {\n isMoving = Math.abs(velocity) > restVelocity;\n\n if (!isMoving) {\n finished = Math.abs(to - position) <= precision;\n\n if (finished) {\n break;\n }\n }\n\n if (canBounce) {\n isBouncing = position == to || position > to == isGrowing;\n\n if (isBouncing) {\n velocity = -velocity * bounceFactor;\n position = to;\n }\n }\n\n var springForce = -config.tension * 0.000001 * (position - to);\n var dampingForce = -config.friction * 0.001 * velocity;\n var acceleration = (springForce + dampingForce) / config.mass;\n velocity = velocity + acceleration * step;\n position = position + velocity * step;\n }\n }\n\n node.lastVelocity = velocity;\n\n if (Number.isNaN(position)) {\n console.warn(\"Got NaN while animating:\", _this5);\n finished = true;\n }\n }\n\n if (payload && !payload[i].done) {\n finished = false;\n }\n\n if (finished) {\n node.done = true;\n } else {\n idle = false;\n }\n\n if (node.setValue(position, config.round)) {\n changed = true;\n }\n });\n var node = getAnimated(this);\n var currVal = node.getValue();\n\n if (idle) {\n var finalVal = getFluidValue(anim.to);\n\n if ((currVal !== finalVal || changed) && !config.decay) {\n node.setValue(finalVal);\n\n this._onChange(finalVal);\n } else if (changed && config.decay) {\n this._onChange(currVal);\n }\n\n this._stop();\n } else if (changed) {\n this._onChange(currVal);\n }\n }\n }, {\n key: \"set\",\n value: function set(value) {\n var _this6 = this;\n\n raf.batchedUpdates(function () {\n _this6._stop();\n\n _this6._focus(value);\n\n _this6._set(value);\n });\n return this;\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this._update({\n pause: true\n });\n }\n }, {\n key: \"resume\",\n value: function resume() {\n this._update({\n pause: false\n });\n }\n }, {\n key: \"finish\",\n value: function finish() {\n var _this7 = this;\n\n if (isAnimating(this)) {\n var _this$animation = this.animation,\n _to = _this$animation.to,\n _config = _this$animation.config;\n raf.batchedUpdates(function () {\n _this7._onStart();\n\n if (!_config.decay) {\n _this7._set(_to, false);\n }\n\n _this7._stop();\n });\n }\n\n return this;\n }\n }, {\n key: \"update\",\n value: function update(props) {\n var queue = this.queue || (this.queue = []);\n queue.push(props);\n return this;\n }\n }, {\n key: \"start\",\n value: function start(to, arg2) {\n var _this8 = this;\n\n var queue;\n\n if (!is.und(to)) {\n queue = [is.obj(to) ? to : _extends({}, arg2, {\n to: to\n })];\n } else {\n queue = this.queue || [];\n this.queue = [];\n }\n\n return Promise.all(queue.map(function (props) {\n return _this8._update(props);\n })).then(function (results) {\n return getCombinedResult(_this8, results);\n });\n }\n }, {\n key: \"stop\",\n value: function stop(cancel) {\n var _this9 = this;\n\n var to = this.animation.to;\n\n this._focus(this.get());\n\n stopAsync(this._state, cancel && this._lastCallId);\n raf.batchedUpdates(function () {\n return _this9._stop(to, cancel);\n });\n return this;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._update({\n reset: true\n });\n }\n }, {\n key: \"eventObserved\",\n value: function eventObserved(event) {\n if (event.type == 'change') {\n this._start();\n } else if (event.type == 'priority') {\n this.priority = event.priority + 1;\n }\n }\n }, {\n key: \"_prepareNode\",\n value: function _prepareNode(props) {\n var key = this.key || '';\n var to = props.to,\n from = props.from;\n to = is.obj(to) ? to[key] : to;\n\n if (to == null || isAsyncTo(to)) {\n to = undefined;\n }\n\n from = is.obj(from) ? from[key] : from;\n\n if (from == null) {\n from = undefined;\n }\n\n var range = {\n to: to,\n from: from\n };\n\n if (!hasAnimated(this)) {\n if (props.reverse) {\n var _ref6 = [from, to];\n to = _ref6[0];\n from = _ref6[1];\n }\n\n from = getFluidValue(from);\n\n if (!is.und(from)) {\n this._set(from);\n } else if (!getAnimated(this)) {\n this._set(to);\n }\n }\n\n return range;\n }\n }, {\n key: \"_update\",\n value: function _update(_ref, isLoop) {\n var _this10 = this;\n\n var props = _extends({}, _ref);\n\n var key = this.key,\n defaultProps = this.defaultProps;\n if (props[\"default\"]) Object.assign(defaultProps, getDefaultProps(props, function (value, prop) {\n return /^on/.test(prop) ? resolveProp(value, key) : value;\n }));\n mergeActiveFn(this, props, 'onProps');\n sendEvent(this, 'onProps', props, this);\n\n var range = this._prepareNode(props);\n\n if (Object.isFrozen(this)) {\n throw Error('Cannot animate a `SpringValue` object that is frozen. ' + 'Did you forget to pass your component to `animated(...)` before animating its props?');\n }\n\n var state = this._state;\n return scheduleProps(++this._lastCallId, {\n key: key,\n props: props,\n defaultProps: defaultProps,\n state: state,\n actions: {\n pause: function pause() {\n if (!isPaused(_this10)) {\n setPausedBit(_this10, true);\n flushCalls(state.pauseQueue);\n sendEvent(_this10, 'onPause', getFinishedResult(_this10, checkFinished(_this10, _this10.animation.to)), _this10);\n }\n },\n resume: function resume() {\n if (isPaused(_this10)) {\n setPausedBit(_this10, false);\n\n if (isAnimating(_this10)) {\n _this10._resume();\n }\n\n flushCalls(state.resumeQueue);\n sendEvent(_this10, 'onResume', getFinishedResult(_this10, checkFinished(_this10, _this10.animation.to)), _this10);\n }\n },\n start: this._merge.bind(this, range)\n }\n }).then(function (result) {\n if (props.loop && result.finished && !(isLoop && result.noop)) {\n var nextProps = createLoopUpdate(props);\n\n if (nextProps) {\n return _this10._update(nextProps, true);\n }\n }\n\n return result;\n });\n }\n }, {\n key: \"_merge\",\n value: function _merge(range, props, resolve) {\n var _this11 = this;\n\n if (props.cancel) {\n this.stop(true);\n return resolve(getCancelledResult(this));\n }\n\n var hasToProp = !is.und(range.to);\n var hasFromProp = !is.und(range.from);\n\n if (hasToProp || hasFromProp) {\n if (props.callId > this._lastToId) {\n this._lastToId = props.callId;\n } else {\n return resolve(getCancelledResult(this));\n }\n }\n\n var key = this.key,\n defaultProps = this.defaultProps,\n anim = this.animation;\n var prevTo = anim.to,\n prevFrom = anim.from;\n var _range$to = range.to,\n to = _range$to === void 0 ? prevTo : _range$to,\n _range$from = range.from,\n from = _range$from === void 0 ? prevFrom : _range$from;\n\n if (hasFromProp && !hasToProp && (!props[\"default\"] || is.und(to))) {\n to = from;\n }\n\n if (props.reverse) {\n var _ref7 = [from, to];\n to = _ref7[0];\n from = _ref7[1];\n }\n\n var hasFromChanged = !isEqual(from, prevFrom);\n\n if (hasFromChanged) {\n anim.from = from;\n }\n\n from = getFluidValue(from);\n var hasToChanged = !isEqual(to, prevTo);\n\n if (hasToChanged) {\n this._focus(to);\n }\n\n var hasAsyncTo = isAsyncTo(props.to);\n var config = anim.config;\n var decay = config.decay,\n velocity = config.velocity;\n\n if (hasToProp || hasFromProp) {\n config.velocity = 0;\n }\n\n if (props.config && !hasAsyncTo) {\n mergeConfig(config, callProp(props.config, key), props.config !== defaultProps.config ? callProp(defaultProps.config, key) : void 0);\n }\n\n var node = getAnimated(this);\n\n if (!node || is.und(to)) {\n return resolve(getFinishedResult(this, true));\n }\n\n var reset = is.und(props.reset) ? hasFromProp && !props[\"default\"] : !is.und(from) && matchProp(props.reset, key);\n var value = reset ? from : this.get();\n var goal = computeGoal(to);\n var isAnimatable = is.num(goal) || is.arr(goal) || isAnimatedString(goal);\n var immediate = !hasAsyncTo && (!isAnimatable || matchProp(defaultProps.immediate || props.immediate, key));\n\n if (hasToChanged) {\n var nodeType = getAnimatedType(to);\n\n if (nodeType !== node.constructor) {\n if (immediate) {\n node = this._set(goal);\n } else throw Error(\"Cannot animate between \".concat(node.constructor.name, \" and \").concat(nodeType.name, \", as the \\\"to\\\" prop suggests\"));\n }\n }\n\n var goalType = node.constructor;\n var started = hasFluidValue(to);\n var finished = false;\n\n if (!started) {\n var hasValueChanged = reset || !hasAnimated(this) && hasFromChanged;\n\n if (hasToChanged || hasValueChanged) {\n finished = isEqual(computeGoal(value), goal);\n started = !finished;\n }\n\n if (!isEqual(anim.immediate, immediate) && !immediate || !isEqual(config.decay, decay) || !isEqual(config.velocity, velocity)) {\n started = true;\n }\n }\n\n if (finished && isAnimating(this)) {\n if (anim.changed && !reset) {\n started = true;\n } else if (!started) {\n this._stop(prevTo);\n }\n }\n\n if (!hasAsyncTo) {\n if (started || hasFluidValue(prevTo)) {\n anim.values = node.getPayload();\n anim.toValues = hasFluidValue(to) ? null : goalType == AnimatedString ? [1] : toArray(goal);\n }\n\n if (anim.immediate != immediate) {\n anim.immediate = immediate;\n\n if (!immediate && !reset) {\n this._set(prevTo);\n }\n }\n\n if (started) {\n var onRest = anim.onRest;\n each(ACTIVE_EVENTS, function (type) {\n return mergeActiveFn(_this11, props, type);\n });\n var result = getFinishedResult(this, checkFinished(this, prevTo));\n flushCalls(this._pendingCalls, result);\n\n this._pendingCalls.add(resolve);\n\n if (anim.changed) raf.batchedUpdates(function () {\n anim.changed = !reset;\n onRest == null ? void 0 : onRest(result, _this11);\n\n if (reset) {\n callProp(defaultProps.onRest, result);\n } else {\n anim.onStart == null ? void 0 : anim.onStart(result, _this11);\n }\n });\n }\n }\n\n if (reset) {\n this._set(value);\n }\n\n if (hasAsyncTo) {\n resolve(runAsync(props.to, props, this._state, this));\n } else if (started) {\n this._start();\n } else if (isAnimating(this) && !hasToChanged) {\n this._pendingCalls.add(resolve);\n } else {\n resolve(getNoopResult(value));\n }\n }\n }, {\n key: \"_focus\",\n value: function _focus(value) {\n var anim = this.animation;\n\n if (value !== anim.to) {\n if (getFluidObservers(this)) {\n this._detach();\n }\n\n anim.to = value;\n\n if (getFluidObservers(this)) {\n this._attach();\n }\n }\n }\n }, {\n key: \"_attach\",\n value: function _attach() {\n var priority = 0;\n var to = this.animation.to;\n\n if (hasFluidValue(to)) {\n addFluidObserver(to, this);\n\n if (isFrameValue(to)) {\n priority = to.priority + 1;\n }\n }\n\n this.priority = priority;\n }\n }, {\n key: \"_detach\",\n value: function _detach() {\n var to = this.animation.to;\n\n if (hasFluidValue(to)) {\n removeFluidObserver(to, this);\n }\n }\n }, {\n key: \"_set\",\n value: function _set(arg) {\n var _this12 = this;\n\n var idle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var value = getFluidValue(arg);\n\n if (!is.und(value)) {\n var oldNode = getAnimated(this);\n\n if (!oldNode || !isEqual(value, oldNode.getValue())) {\n var nodeType = getAnimatedType(value);\n\n if (!oldNode || oldNode.constructor != nodeType) {\n setAnimated(this, nodeType.create(value));\n } else {\n oldNode.setValue(value);\n }\n\n if (oldNode) {\n raf.batchedUpdates(function () {\n _this12._onChange(value, idle);\n });\n }\n }\n }\n\n return getAnimated(this);\n }\n }, {\n key: \"_onStart\",\n value: function _onStart() {\n var anim = this.animation;\n\n if (!anim.changed) {\n anim.changed = true;\n sendEvent(this, 'onStart', getFinishedResult(this, checkFinished(this, anim.to)), this);\n }\n }\n }, {\n key: \"_onChange\",\n value: function _onChange(value, idle) {\n if (!idle) {\n this._onStart();\n\n callProp(this.animation.onChange, value, this);\n }\n\n callProp(this.defaultProps.onChange, value, this);\n\n _get(_getPrototypeOf(SpringValue.prototype), \"_onChange\", this).call(this, value, idle);\n }\n }, {\n key: \"_start\",\n value: function _start() {\n var anim = this.animation;\n getAnimated(this).reset(getFluidValue(anim.to));\n\n if (!anim.immediate) {\n anim.fromValues = anim.values.map(function (node) {\n return node.lastPosition;\n });\n }\n\n if (!isAnimating(this)) {\n setActiveBit(this, true);\n\n if (!isPaused(this)) {\n this._resume();\n }\n }\n }\n }, {\n key: \"_resume\",\n value: function _resume() {\n if (Globals.skipAnimation) {\n this.finish();\n } else {\n frameLoop.start(this);\n }\n }\n }, {\n key: \"_stop\",\n value: function _stop(goal, cancel) {\n if (isAnimating(this)) {\n setActiveBit(this, false);\n var anim = this.animation;\n each(anim.values, function (node) {\n node.done = true;\n });\n\n if (anim.toValues) {\n anim.onChange = anim.onPause = anim.onResume = undefined;\n }\n\n callFluidObservers(this, {\n type: 'idle',\n parent: this\n });\n var result = cancel ? getCancelledResult(this.get()) : getFinishedResult(this.get(), checkFinished(this, goal != null ? goal : anim.to));\n flushCalls(this._pendingCalls, result);\n\n if (anim.changed) {\n anim.changed = false;\n sendEvent(this, 'onRest', result, this);\n }\n }\n }\n }]);\n\n return SpringValue;\n}(FrameValue);\n\nfunction checkFinished(target, to) {\n var goal = computeGoal(to);\n var value = computeGoal(target.get());\n return isEqual(value, goal);\n}\n\nfunction createLoopUpdate(props) {\n var loop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.loop;\n var to = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : props.to;\n var loopRet = callProp(loop);\n\n if (loopRet) {\n var overrides = loopRet !== true && inferTo(loopRet);\n var reverse = (overrides || props).reverse;\n var reset = !overrides || overrides.reset;\n return createUpdate(_extends({}, props, {\n loop: loop,\n \"default\": false,\n pause: undefined,\n to: !reverse || isAsyncTo(to) ? to : undefined,\n from: reset ? props.from : undefined,\n reset: reset\n }, overrides));\n }\n}\n\nfunction createUpdate(props) {\n var _props2 = props = inferTo(props),\n to = _props2.to,\n from = _props2.from;\n\n var keys = new Set();\n if (is.obj(to)) findDefined(to, keys);\n if (is.obj(from)) findDefined(from, keys);\n props.keys = keys.size ? Array.from(keys) : null;\n return props;\n}\n\nfunction declareUpdate(props) {\n var update = createUpdate(props);\n\n if (is.und(update[\"default\"])) {\n update[\"default\"] = getDefaultProps(update);\n }\n\n return update;\n}\n\nfunction findDefined(values, keys) {\n eachProp(values, function (value, key) {\n return value != null && keys.add(key);\n });\n}\n\nvar ACTIVE_EVENTS = ['onStart', 'onRest', 'onChange', 'onPause', 'onResume'];\n\nfunction mergeActiveFn(target, props, type) {\n target.animation[type] = props[type] !== getDefaultProp(props, type) ? resolveProp(props[type], target.key) : undefined;\n}\n\nfunction sendEvent(target, type) {\n var _target$animation$typ2, _target$defaultProps$2;\n\n var _target$animation$typ, _target$animation, _target$defaultProps$, _target$defaultProps;\n\n for (var _len5 = arguments.length, args = new Array(_len5 > 2 ? _len5 - 2 : 0), _key5 = 2; _key5 < _len5; _key5++) {\n args[_key5 - 2] = arguments[_key5];\n }\n\n (_target$animation$typ = (_target$animation = target.animation)[type]) == null ? void 0 : (_target$animation$typ2 = _target$animation$typ).call.apply(_target$animation$typ2, [_target$animation].concat(args));\n (_target$defaultProps$ = (_target$defaultProps = target.defaultProps)[type]) == null ? void 0 : (_target$defaultProps$2 = _target$defaultProps$).call.apply(_target$defaultProps$2, [_target$defaultProps].concat(args));\n}\n\nvar BATCHED_EVENTS = ['onStart', 'onChange', 'onRest'];\nvar nextId = 1;\n\nvar Controller = /*#__PURE__*/function () {\n function Controller(props, flush) {\n _classCallCheck(this, Controller);\n\n this.id = nextId++;\n this.springs = {};\n this.queue = [];\n this.ref = void 0;\n this._flush = void 0;\n this._initialProps = void 0;\n this._lastAsyncId = 0;\n this._active = new Set();\n this._changed = new Set();\n this._started = false;\n this._item = void 0;\n this._state = {\n paused: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n this._events = {\n onStart: new Map(),\n onChange: new Map(),\n onRest: new Map()\n };\n this._onFrame = this._onFrame.bind(this);\n\n if (flush) {\n this._flush = flush;\n }\n\n if (props) {\n this.start(_extends({\n \"default\": true\n }, props));\n }\n }\n\n _createClass(Controller, [{\n key: \"idle\",\n get: function get() {\n return !this._state.asyncTo && Object.values(this.springs).every(function (spring) {\n return spring.idle;\n });\n }\n }, {\n key: \"item\",\n get: function get() {\n return this._item;\n },\n set: function set(item) {\n this._item = item;\n }\n }, {\n key: \"get\",\n value: function get() {\n var values = {};\n this.each(function (spring, key) {\n return values[key] = spring.get();\n });\n return values;\n }\n }, {\n key: \"set\",\n value: function set(values) {\n for (var key in values) {\n var value = values[key];\n\n if (!is.und(value)) {\n this.springs[key].set(value);\n }\n }\n }\n }, {\n key: \"update\",\n value: function update(props) {\n if (props) {\n this.queue.push(createUpdate(props));\n }\n\n return this;\n }\n }, {\n key: \"start\",\n value: function start(props) {\n var queue = this.queue;\n\n if (props) {\n queue = toArray(props).map(createUpdate);\n } else {\n this.queue = [];\n }\n\n if (this._flush) {\n return this._flush(this, queue);\n }\n\n prepareKeys(this, queue);\n return flushUpdateQueue(this, queue);\n }\n }, {\n key: \"stop\",\n value: function stop(arg, keys) {\n if (arg !== !!arg) {\n keys = arg;\n }\n\n if (keys) {\n var springs = this.springs;\n each(toArray(keys), function (key) {\n return springs[key].stop(!!arg);\n });\n } else {\n stopAsync(this._state, this._lastAsyncId);\n this.each(function (spring) {\n return spring.stop(!!arg);\n });\n }\n\n return this;\n }\n }, {\n key: \"pause\",\n value: function pause(keys) {\n if (is.und(keys)) {\n this.start({\n pause: true\n });\n } else {\n var springs = this.springs;\n each(toArray(keys), function (key) {\n return springs[key].pause();\n });\n }\n\n return this;\n }\n }, {\n key: \"resume\",\n value: function resume(keys) {\n if (is.und(keys)) {\n this.start({\n pause: false\n });\n } else {\n var springs = this.springs;\n each(toArray(keys), function (key) {\n return springs[key].resume();\n });\n }\n\n return this;\n }\n }, {\n key: \"each\",\n value: function each(iterator) {\n eachProp(this.springs, iterator);\n }\n }, {\n key: \"_onFrame\",\n value: function _onFrame() {\n var _this13 = this;\n\n var _this$_events = this._events,\n onStart = _this$_events.onStart,\n onChange = _this$_events.onChange,\n onRest = _this$_events.onRest;\n var active = this._active.size > 0;\n var changed = this._changed.size > 0;\n\n if (active && !this._started || changed && !this._started) {\n this._started = true;\n flush(onStart, function (_ref8) {\n var _ref9 = _slicedToArray(_ref8, 2),\n onStart = _ref9[0],\n result = _ref9[1];\n\n result.value = _this13.get();\n onStart(result, _this13, _this13._item);\n });\n }\n\n var idle = !active && this._started;\n var values = changed || idle && onRest.size ? this.get() : null;\n\n if (changed && onChange.size) {\n flush(onChange, function (_ref10) {\n var _ref11 = _slicedToArray(_ref10, 2),\n onChange = _ref11[0],\n result = _ref11[1];\n\n result.value = values;\n onChange(result, _this13, _this13._item);\n });\n }\n\n if (idle) {\n this._started = false;\n flush(onRest, function (_ref12) {\n var _ref13 = _slicedToArray(_ref12, 2),\n onRest = _ref13[0],\n result = _ref13[1];\n\n result.value = values;\n onRest(result, _this13, _this13._item);\n });\n }\n }\n }, {\n key: \"eventObserved\",\n value: function eventObserved(event) {\n if (event.type == 'change') {\n this._changed.add(event.parent);\n\n if (!event.idle) {\n this._active.add(event.parent);\n }\n } else if (event.type == 'idle') {\n this._active[\"delete\"](event.parent);\n } else return;\n\n raf.onFrame(this._onFrame);\n }\n }]);\n\n return Controller;\n}();\n\nfunction flushUpdateQueue(ctrl, queue) {\n return Promise.all(queue.map(function (props) {\n return flushUpdate(ctrl, props);\n })).then(function (results) {\n return getCombinedResult(ctrl, results);\n });\n}\n\nfunction flushUpdate(_x2, _x3, _x4) {\n return _flushUpdate.apply(this, arguments);\n}\n\nfunction _flushUpdate() {\n _flushUpdate = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(ctrl, props, isLoop) {\n var keys, to, from, loop, onRest, onResolve, defaults, asyncTo, state, promises, cancel, result, nextProps;\n return regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n keys = props.keys, to = props.to, from = props.from, loop = props.loop, onRest = props.onRest, onResolve = props.onResolve;\n defaults = is.obj(props[\"default\"]) && props[\"default\"];\n\n if (loop) {\n props.loop = false;\n }\n\n if (to === false) props.to = null;\n if (from === false) props.from = null;\n asyncTo = is.arr(to) || is.fun(to) ? to : undefined;\n\n if (asyncTo) {\n props.to = undefined;\n props.onRest = undefined;\n\n if (defaults) {\n defaults.onRest = undefined;\n }\n } else {\n each(BATCHED_EVENTS, function (key) {\n var handler = props[key];\n\n if (is.fun(handler)) {\n var queue = ctrl['_events'][key];\n\n props[key] = function (_ref20) {\n var finished = _ref20.finished,\n cancelled = _ref20.cancelled;\n var result = queue.get(handler);\n\n if (result) {\n if (!finished) result.finished = false;\n if (cancelled) result.cancelled = true;\n } else {\n queue.set(handler, {\n value: null,\n finished: finished || false,\n cancelled: cancelled || false\n });\n }\n };\n\n if (defaults) {\n defaults[key] = props[key];\n }\n }\n });\n }\n\n state = ctrl['_state'];\n\n if (props.pause === !state.paused) {\n state.paused = props.pause;\n flushCalls(props.pause ? state.pauseQueue : state.resumeQueue);\n } else if (state.paused) {\n props.pause = true;\n }\n\n promises = (keys || Object.keys(ctrl.springs)).map(function (key) {\n return ctrl.springs[key].start(props);\n });\n cancel = props.cancel === true || getDefaultProp(props, 'cancel') === true;\n\n if (asyncTo || cancel && state.asyncId) {\n promises.push(scheduleProps(++ctrl['_lastAsyncId'], {\n props: props,\n state: state,\n actions: {\n pause: noop,\n resume: noop,\n start: function start(props, resolve) {\n if (cancel) {\n stopAsync(state, ctrl['_lastAsyncId']);\n resolve(getCancelledResult(ctrl));\n } else {\n props.onRest = onRest;\n resolve(runAsync(asyncTo, props, state, ctrl));\n }\n }\n }\n }));\n }\n\n if (!state.paused) {\n _context4.next = 15;\n break;\n }\n\n _context4.next = 15;\n return new Promise(function (resume) {\n state.resumeQueue.add(resume);\n });\n\n case 15:\n _context4.t0 = getCombinedResult;\n _context4.t1 = ctrl;\n _context4.next = 19;\n return Promise.all(promises);\n\n case 19:\n _context4.t2 = _context4.sent;\n result = (0, _context4.t0)(_context4.t1, _context4.t2);\n\n if (!(loop && result.finished && !(isLoop && result.noop))) {\n _context4.next = 26;\n break;\n }\n\n nextProps = createLoopUpdate(props, loop, to);\n\n if (!nextProps) {\n _context4.next = 26;\n break;\n }\n\n prepareKeys(ctrl, [nextProps]);\n return _context4.abrupt(\"return\", flushUpdate(ctrl, nextProps, true));\n\n case 26:\n if (onResolve) {\n raf.batchedUpdates(function () {\n return onResolve(result, ctrl, ctrl.item);\n });\n }\n\n return _context4.abrupt(\"return\", result);\n\n case 28:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return _flushUpdate.apply(this, arguments);\n}\n\nfunction getSprings(ctrl, props) {\n var springs = _extends({}, ctrl.springs);\n\n if (props) {\n each(toArray(props), function (props) {\n if (is.und(props.keys)) {\n props = createUpdate(props);\n }\n\n if (!is.obj(props.to)) {\n props = _extends({}, props, {\n to: undefined\n });\n }\n\n prepareSprings(springs, props, function (key) {\n return createSpring(key);\n });\n });\n }\n\n setSprings(ctrl, springs);\n return springs;\n}\n\nfunction setSprings(ctrl, springs) {\n eachProp(springs, function (spring, key) {\n if (!ctrl.springs[key]) {\n ctrl.springs[key] = spring;\n addFluidObserver(spring, ctrl);\n }\n });\n}\n\nfunction createSpring(key, observer) {\n var spring = new SpringValue();\n spring.key = key;\n\n if (observer) {\n addFluidObserver(spring, observer);\n }\n\n return spring;\n}\n\nfunction prepareSprings(springs, props, create) {\n if (props.keys) {\n each(props.keys, function (key) {\n var spring = springs[key] || (springs[key] = create(key));\n spring['_prepareNode'](props);\n });\n }\n}\n\nfunction prepareKeys(ctrl, queue) {\n each(queue, function (props) {\n prepareSprings(ctrl.springs, props, function (key) {\n return createSpring(key, ctrl);\n });\n });\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded$3 = [\"children\"];\n\nvar SpringContext = function SpringContext(_ref) {\n var children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n\n var inherited = useContext(ctx);\n var pause = props.pause || !!inherited.pause,\n immediate = props.immediate || !!inherited.immediate;\n props = useMemoOne(function () {\n return {\n pause: pause,\n immediate: immediate\n };\n }, [pause, immediate]);\n var Provider = ctx.Provider;\n return React.createElement(Provider, {\n value: props\n }, children);\n};\n\nvar ctx = makeContext(SpringContext, {});\nSpringContext.Provider = ctx.Provider;\nSpringContext.Consumer = ctx.Consumer;\n\nfunction makeContext(target, init) {\n Object.assign(target, React.createContext(init));\n target.Provider._context = target;\n target.Consumer._context = target;\n return target;\n}\n\nvar SpringRef = function SpringRef() {\n var current = [];\n\n var SpringRef = function SpringRef(props) {\n deprecateDirectCall();\n var results = [];\n each(current, function (ctrl, i) {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n var _update2 = _getProps(props, ctrl, i);\n\n if (_update2) {\n results.push(ctrl.start(_update2));\n }\n }\n });\n return results;\n };\n\n SpringRef.current = current;\n\n SpringRef.add = function (ctrl) {\n if (!current.includes(ctrl)) {\n current.push(ctrl);\n }\n };\n\n SpringRef[\"delete\"] = function (ctrl) {\n var i = current.indexOf(ctrl);\n if (~i) current.splice(i, 1);\n };\n\n SpringRef.pause = function () {\n var _arguments = arguments;\n each(current, function (ctrl) {\n return ctrl.pause.apply(ctrl, _toConsumableArray(_arguments));\n });\n return this;\n };\n\n SpringRef.resume = function () {\n var _arguments2 = arguments;\n each(current, function (ctrl) {\n return ctrl.resume.apply(ctrl, _toConsumableArray(_arguments2));\n });\n return this;\n };\n\n SpringRef.set = function (values) {\n each(current, function (ctrl) {\n return ctrl.set(values);\n });\n };\n\n SpringRef.start = function (props) {\n var _this14 = this;\n\n var results = [];\n each(current, function (ctrl, i) {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n var _update3 = _this14._getProps(props, ctrl, i);\n\n if (_update3) {\n results.push(ctrl.start(_update3));\n }\n }\n });\n return results;\n };\n\n SpringRef.stop = function () {\n var _arguments3 = arguments;\n each(current, function (ctrl) {\n return ctrl.stop.apply(ctrl, _toConsumableArray(_arguments3));\n });\n return this;\n };\n\n SpringRef.update = function (props) {\n var _this15 = this;\n\n each(current, function (ctrl, i) {\n return ctrl.update(_this15._getProps(props, ctrl, i));\n });\n return this;\n };\n\n var _getProps = function _getProps(arg, ctrl, index) {\n return is.fun(arg) ? arg(index, ctrl) : arg;\n };\n\n SpringRef._getProps = _getProps;\n return SpringRef;\n};\n\nfunction useSprings(length, props, deps) {\n var _arguments4 = arguments;\n var propsFn = is.fun(props) && props;\n if (propsFn && !deps) deps = [];\n var ref = useMemo(function () {\n return propsFn || _arguments4.length == 3 ? SpringRef() : void 0;\n }, []);\n var layoutId = useRef(0);\n var forceUpdate = useForceUpdate();\n var state = useMemo(function () {\n return {\n ctrls: [],\n queue: [],\n flush: function flush(ctrl, updates) {\n var springs = getSprings(ctrl, updates);\n var canFlushSync = layoutId.current > 0 && !state.queue.length && !Object.keys(springs).some(function (key) {\n return !ctrl.springs[key];\n });\n return canFlushSync ? flushUpdateQueue(ctrl, updates) : new Promise(function (resolve) {\n setSprings(ctrl, springs);\n state.queue.push(function () {\n resolve(flushUpdateQueue(ctrl, updates));\n });\n forceUpdate();\n });\n }\n };\n }, []);\n var ctrls = useRef(_toConsumableArray(state.ctrls));\n var updates = [];\n var prevLength = usePrev(length) || 0;\n useMemo(function () {\n each(ctrls.current.slice(length, prevLength), function (ctrl) {\n detachRefs(ctrl, ref);\n ctrl.stop(true);\n });\n ctrls.current.length = length;\n declareUpdates(prevLength, length);\n }, [length]);\n useMemo(function () {\n declareUpdates(0, Math.min(prevLength, length));\n }, deps);\n\n function declareUpdates(startIndex, endIndex) {\n for (var i = startIndex; i < endIndex; i++) {\n var ctrl = ctrls.current[i] || (ctrls.current[i] = new Controller(null, state.flush));\n\n var _update4 = propsFn ? propsFn(i, ctrl) : props[i];\n\n if (_update4) {\n updates[i] = declareUpdate(_update4);\n }\n }\n }\n\n var springs = ctrls.current.map(function (ctrl, i) {\n return getSprings(ctrl, updates[i]);\n });\n var context = useContext(SpringContext);\n var prevContext = usePrev(context);\n var hasContext = context !== prevContext && hasProps(context);\n useLayoutEffect(function () {\n layoutId.current++;\n state.ctrls = ctrls.current;\n var queue = state.queue;\n\n if (queue.length) {\n state.queue = [];\n each(queue, function (cb) {\n return cb();\n });\n }\n\n each(ctrls.current, function (ctrl, i) {\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext) {\n ctrl.start({\n \"default\": context\n });\n }\n\n var update = updates[i];\n\n if (update) {\n replaceRef(ctrl, update.ref);\n\n if (ctrl.ref) {\n ctrl.queue.push(update);\n } else {\n ctrl.start(update);\n }\n }\n });\n });\n useOnce(function () {\n return function () {\n each(state.ctrls, function (ctrl) {\n return ctrl.stop(true);\n });\n };\n });\n var values = springs.map(function (x) {\n return _extends({}, x);\n });\n return ref ? [values, ref] : values;\n}\n\nfunction useSpring(props, deps) {\n var isFn = is.fun(props);\n\n var _useSprings = useSprings(1, isFn ? props : [props], isFn ? deps || [] : deps),\n _useSprings2 = _slicedToArray(_useSprings, 2),\n _useSprings2$ = _slicedToArray(_useSprings2[0], 1),\n values = _useSprings2$[0],\n ref = _useSprings2[1];\n\n return isFn || arguments.length == 2 ? [values, ref] : values;\n}\n\nvar initSpringRef = function initSpringRef() {\n return SpringRef();\n};\n\nvar useSpringRef = function useSpringRef() {\n return useState(initSpringRef)[0];\n};\n\nfunction useTrail(length, propsArg, deps) {\n var propsFn = is.fun(propsArg) && propsArg;\n if (propsFn && !deps) deps = [];\n var reverse = true;\n var result = useSprings(length, function (i, ctrl) {\n var props = propsFn ? propsFn(i, ctrl) : propsArg;\n reverse = reverse && props.reverse;\n return props;\n }, deps || [{}]);\n var ref = result[1];\n useLayoutEffect(function () {\n each(ref.current, function (ctrl, i) {\n var parent = ref.current[i + (reverse ? 1 : -1)];\n if (parent) ctrl.start({\n to: parent.springs\n });\n });\n }, deps);\n\n if (propsFn || arguments.length == 3) {\n ref['_getProps'] = function (propsArg, ctrl, i) {\n var props = is.fun(propsArg) ? propsArg(i, ctrl) : propsArg;\n\n if (props) {\n var parent = ref.current[i + (props.reverse ? 1 : -1)];\n if (parent) props.to = parent.springs;\n return props;\n }\n };\n\n return result;\n }\n\n return result[0];\n}\n\nvar TransitionPhase;\n\n(function (TransitionPhase) {\n TransitionPhase[\"MOUNT\"] = \"mount\";\n TransitionPhase[\"ENTER\"] = \"enter\";\n TransitionPhase[\"UPDATE\"] = \"update\";\n TransitionPhase[\"LEAVE\"] = \"leave\";\n})(TransitionPhase || (TransitionPhase = {}));\n\nfunction useTransition(data, props, deps) {\n var _arguments5 = arguments;\n var propsFn = is.fun(props) && props;\n\n var _ref14 = propsFn ? propsFn() : props,\n reset = _ref14.reset,\n sort = _ref14.sort,\n _ref14$trail = _ref14.trail,\n trail = _ref14$trail === void 0 ? 0 : _ref14$trail,\n _ref14$expires = _ref14.expires,\n expires = _ref14$expires === void 0 ? true : _ref14$expires,\n onDestroyed = _ref14.onDestroyed,\n propsRef = _ref14.ref,\n propsConfig = _ref14.config;\n\n var ref = useMemo(function () {\n return propsFn || _arguments5.length == 3 ? SpringRef() : void 0;\n }, []);\n var items = toArray(data);\n var transitions = [];\n var usedTransitions = useRef(null);\n var prevTransitions = reset ? null : usedTransitions.current;\n useLayoutEffect(function () {\n usedTransitions.current = transitions;\n });\n useOnce(function () {\n return function () {\n return each(usedTransitions.current, function (t) {\n if (t.expired) {\n clearTimeout(t.expirationId);\n }\n\n detachRefs(t.ctrl, ref);\n t.ctrl.stop(true);\n });\n };\n });\n var keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions);\n var expired = reset && usedTransitions.current || [];\n useLayoutEffect(function () {\n return each(expired, function (_ref15) {\n var ctrl = _ref15.ctrl,\n item = _ref15.item,\n key = _ref15.key;\n detachRefs(ctrl, ref);\n callProp(onDestroyed, item, key);\n });\n });\n var reused = [];\n if (prevTransitions) each(prevTransitions, function (t, i) {\n if (t.expired) {\n clearTimeout(t.expirationId);\n expired.push(t);\n } else {\n i = reused[i] = keys.indexOf(t.key);\n if (~i) transitions[i] = t;\n }\n });\n each(items, function (item, i) {\n if (!transitions[i]) {\n transitions[i] = {\n key: keys[i],\n item: item,\n phase: TransitionPhase.MOUNT,\n ctrl: new Controller()\n };\n transitions[i].ctrl.item = item;\n }\n });\n\n if (reused.length) {\n var i = -1;\n\n var _ref16 = propsFn ? propsFn() : props,\n leave = _ref16.leave;\n\n each(reused, function (keyIndex, prevIndex) {\n var t = prevTransitions[prevIndex];\n\n if (~keyIndex) {\n i = transitions.indexOf(t);\n transitions[i] = _extends({}, t, {\n item: items[keyIndex]\n });\n } else if (leave) {\n transitions.splice(++i, 0, t);\n }\n });\n }\n\n if (is.fun(sort)) {\n transitions.sort(function (a, b) {\n return sort(a.item, b.item);\n });\n }\n\n var delay = -trail;\n var forceUpdate = useForceUpdate();\n var defaultProps = getDefaultProps(props);\n var changes = new Map();\n each(transitions, function (t, i) {\n var key = t.key;\n var prevPhase = t.phase;\n var p = propsFn ? propsFn() : props;\n var to;\n var phase;\n var propsDelay = callProp(p.delay || 0, key);\n\n if (prevPhase == TransitionPhase.MOUNT) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else {\n var isLeave = keys.indexOf(key) < 0;\n\n if (prevPhase != TransitionPhase.LEAVE) {\n if (isLeave) {\n to = p.leave;\n phase = TransitionPhase.LEAVE;\n } else if (to = p.update) {\n phase = TransitionPhase.UPDATE;\n } else return;\n } else if (!isLeave) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else return;\n }\n\n to = callProp(to, t.item, i);\n to = is.obj(to) ? inferTo(to) : {\n to: to\n };\n\n if (!to.config) {\n var _config2 = propsConfig || defaultProps.config;\n\n to.config = callProp(_config2, t.item, i, phase);\n }\n\n delay += trail;\n\n var payload = _extends({}, defaultProps, {\n delay: propsDelay + delay,\n ref: propsRef,\n immediate: p.immediate,\n reset: false\n }, to);\n\n if (phase == TransitionPhase.ENTER && is.und(payload.from)) {\n var _p = propsFn ? propsFn() : props;\n\n var from = is.und(_p.initial) || prevTransitions ? _p.from : _p.initial;\n payload.from = callProp(from, t.item, i);\n }\n\n var onResolve = payload.onResolve;\n\n payload.onResolve = function (result) {\n callProp(onResolve, result);\n var transitions = usedTransitions.current;\n var t = transitions.find(function (t) {\n return t.key === key;\n });\n if (!t) return;\n\n if (result.cancelled && t.phase != TransitionPhase.UPDATE) {\n return;\n }\n\n if (t.ctrl.idle) {\n var idle = transitions.every(function (t) {\n return t.ctrl.idle;\n });\n\n if (t.phase == TransitionPhase.LEAVE) {\n var expiry = callProp(expires, t.item);\n\n if (expiry !== false) {\n var expiryMs = expiry === true ? 0 : expiry;\n t.expired = true;\n\n if (!idle && expiryMs > 0) {\n if (expiryMs <= 0x7fffffff) t.expirationId = setTimeout(forceUpdate, expiryMs);\n return;\n }\n }\n }\n\n if (idle && transitions.some(function (t) {\n return t.expired;\n })) {\n forceUpdate();\n }\n }\n };\n\n var springs = getSprings(t.ctrl, payload);\n changes.set(t, {\n phase: phase,\n springs: springs,\n payload: payload\n });\n });\n var context = useContext(SpringContext);\n var prevContext = usePrev(context);\n var hasContext = context !== prevContext && hasProps(context);\n useLayoutEffect(function () {\n if (hasContext) each(transitions, function (t) {\n t.ctrl.start({\n \"default\": context\n });\n });\n }, [context]);\n useLayoutEffect(function () {\n each(changes, function (_ref17, t) {\n var phase = _ref17.phase,\n payload = _ref17.payload;\n var ctrl = t.ctrl;\n t.phase = phase;\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext && phase == TransitionPhase.ENTER) {\n ctrl.start({\n \"default\": context\n });\n }\n\n if (payload) {\n replaceRef(ctrl, payload.ref);\n\n if (ctrl.ref) {\n ctrl.update(payload);\n } else {\n ctrl.start(payload);\n }\n }\n });\n }, reset ? void 0 : deps);\n\n var renderTransitions = function renderTransitions(render) {\n return React.createElement(React.Fragment, null, transitions.map(function (t, i) {\n var _ref18 = changes.get(t) || t.ctrl,\n springs = _ref18.springs;\n\n var elem = render(_extends({}, springs), t.item, t, i);\n return elem && elem.type ? React.createElement(elem.type, _extends({}, elem.props, {\n key: is.str(t.key) || is.num(t.key) ? t.key : t.ctrl.id,\n ref: elem.ref\n })) : elem;\n }));\n };\n\n return ref ? [renderTransitions, ref] : renderTransitions;\n}\n\nvar nextKey = 1;\n\nfunction getKeys(items, _ref19, prevTransitions) {\n var key = _ref19.key,\n _ref19$keys = _ref19.keys,\n keys = _ref19$keys === void 0 ? key : _ref19$keys;\n\n if (keys === null) {\n var reused = new Set();\n return items.map(function (item) {\n var t = prevTransitions && prevTransitions.find(function (t) {\n return t.item === item && t.phase !== TransitionPhase.LEAVE && !reused.has(t);\n });\n\n if (t) {\n reused.add(t);\n return t.key;\n }\n\n return nextKey++;\n });\n }\n\n return is.und(keys) ? items : is.fun(keys) ? items.map(keys) : toArray(keys);\n}\n\nvar _excluded$2 = [\"children\"];\n\nfunction Spring(_ref) {\n var children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n return children(useSpring(props));\n}\n\nvar _excluded$1 = [\"items\", \"children\"];\n\nfunction Trail(_ref) {\n var items = _ref.items,\n children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n var trails = useTrail(items.length, props);\n return items.map(function (item, index) {\n var result = children(item, index);\n return is.fun(result) ? result(trails[index]) : result;\n });\n}\n\nvar _excluded = [\"items\", \"children\"];\n\nfunction Transition(_ref) {\n var items = _ref.items,\n children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return useTransition(items, props)(children);\n}\n\nvar Interpolation = /*#__PURE__*/function (_FrameValue2) {\n _inherits(Interpolation, _FrameValue2);\n\n var _super5 = _createSuper(Interpolation);\n\n function Interpolation(source, args) {\n var _this16;\n\n _classCallCheck(this, Interpolation);\n\n _this16 = _super5.call(this);\n _this16.key = void 0;\n _this16.idle = true;\n _this16.calc = void 0;\n _this16._active = new Set();\n _this16.source = source;\n _this16.calc = createInterpolator.apply(void 0, _toConsumableArray(args));\n\n var value = _this16._get();\n\n var nodeType = getAnimatedType(value);\n setAnimated(_assertThisInitialized(_this16), nodeType.create(value));\n return _this16;\n }\n\n _createClass(Interpolation, [{\n key: \"advance\",\n value: function advance(_dt) {\n var value = this._get();\n\n var oldValue = this.get();\n\n if (!isEqual(value, oldValue)) {\n getAnimated(this).setValue(value);\n\n this._onChange(value, this.idle);\n }\n\n if (!this.idle && checkIdle(this._active)) {\n becomeIdle(this);\n }\n }\n }, {\n key: \"_get\",\n value: function _get() {\n var inputs = is.arr(this.source) ? this.source.map(getFluidValue) : toArray(getFluidValue(this.source));\n return this.calc.apply(this, _toConsumableArray(inputs));\n }\n }, {\n key: \"_start\",\n value: function _start() {\n var _this17 = this;\n\n if (this.idle && !checkIdle(this._active)) {\n this.idle = false;\n each(getPayload(this), function (node) {\n node.done = false;\n });\n\n if (Globals.skipAnimation) {\n raf.batchedUpdates(function () {\n return _this17.advance();\n });\n becomeIdle(this);\n } else {\n frameLoop.start(this);\n }\n }\n }\n }, {\n key: \"_attach\",\n value: function _attach() {\n var _this18 = this;\n\n var priority = 1;\n each(toArray(this.source), function (source) {\n if (hasFluidValue(source)) {\n addFluidObserver(source, _this18);\n }\n\n if (isFrameValue(source)) {\n if (!source.idle) {\n _this18._active.add(source);\n }\n\n priority = Math.max(priority, source.priority + 1);\n }\n });\n this.priority = priority;\n\n this._start();\n }\n }, {\n key: \"_detach\",\n value: function _detach() {\n var _this19 = this;\n\n each(toArray(this.source), function (source) {\n if (hasFluidValue(source)) {\n removeFluidObserver(source, _this19);\n }\n });\n\n this._active.clear();\n\n becomeIdle(this);\n }\n }, {\n key: \"eventObserved\",\n value: function eventObserved(event) {\n if (event.type == 'change') {\n if (event.idle) {\n this.advance();\n } else {\n this._active.add(event.parent);\n\n this._start();\n }\n } else if (event.type == 'idle') {\n this._active[\"delete\"](event.parent);\n } else if (event.type == 'priority') {\n this.priority = toArray(this.source).reduce(function (highest, parent) {\n return Math.max(highest, (isFrameValue(parent) ? parent.priority : 0) + 1);\n }, 0);\n }\n }\n }]);\n\n return Interpolation;\n}(FrameValue);\n\nfunction isIdle(source) {\n return source.idle !== false;\n}\n\nfunction checkIdle(active) {\n return !active.size || Array.from(active).every(isIdle);\n}\n\nfunction becomeIdle(self) {\n if (!self.idle) {\n self.idle = true;\n each(getPayload(self), function (node) {\n node.done = true;\n });\n callFluidObservers(self, {\n type: 'idle',\n parent: self\n });\n }\n}\n\nvar to = function to(source) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n\n return new Interpolation(source, args);\n};\n\nvar interpolate = function interpolate(source) {\n for (var _len7 = arguments.length, args = new Array(_len7 > 1 ? _len7 - 1 : 0), _key7 = 1; _key7 < _len7; _key7++) {\n args[_key7 - 1] = arguments[_key7];\n }\n\n return deprecateInterpolate(), new Interpolation(source, args);\n};\n\nGlobals.assign({\n createStringInterpolator: createStringInterpolator,\n to: function to(source, args) {\n return new Interpolation(source, args);\n }\n});\nvar update = frameLoop.advance;\nexport { BailSignal, Controller, FrameValue, Interpolation, Spring, SpringContext, SpringRef, SpringValue, Trail, Transition, config, inferTo, interpolate, to, update, useChain, useSpring, useSpringRef, useSprings, useTrail, useTransition };","var defaultFunctionName = '';\n/**\n * Safely extract function name from itself\n */\n\nexport function getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\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}","import { __extends, __values } from \"tslib\";\nimport { logger, timestampWithMs } from '@sentry/utils';\nimport { SpanRecorder } from './span';\nimport { SpanStatus } from './spanstatus';\nimport { Transaction } from './transaction';\nexport var DEFAULT_IDLE_TIMEOUT = 1000;\n/**\n * @inheritDoc\n */\n\nvar IdleTransactionSpanRecorder =\n/** @class */\nfunction (_super) {\n __extends(IdleTransactionSpanRecorder, _super);\n\n function IdleTransactionSpanRecorder(_pushActivity, _popActivity, transactionSpanId, maxlen) {\n if (transactionSpanId === void 0) {\n transactionSpanId = '';\n }\n\n var _this = _super.call(this, maxlen) || this;\n\n _this._pushActivity = _pushActivity;\n _this._popActivity = _popActivity;\n _this.transactionSpanId = transactionSpanId;\n return _this;\n }\n /**\n * @inheritDoc\n */\n\n\n IdleTransactionSpanRecorder.prototype.add = function (span) {\n var _this = this; // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n\n\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = function (endTimestamp) {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n\n _this._popActivity(span.spanId);\n }; // We should only push new activities if the span does not have an end timestamp.\n\n\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n\n _super.prototype.add.call(this, span);\n };\n\n return IdleTransactionSpanRecorder;\n}(SpanRecorder);\n\nexport { IdleTransactionSpanRecorder };\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\n\nvar IdleTransaction =\n/** @class */\nfunction (_super) {\n __extends(IdleTransaction, _super);\n\n function IdleTransaction(transactionContext, _idleHub, // The time to wait in ms until the idle transaction will be finished. Default: 1000\n _idleTimeout, // If an idle transaction should be put itself on and off the scope automatically.\n _onScope) {\n if (_idleTimeout === void 0) {\n _idleTimeout = DEFAULT_IDLE_TIMEOUT;\n }\n\n if (_onScope === void 0) {\n _onScope = false;\n }\n\n var _this = _super.call(this, transactionContext, _idleHub) || this;\n\n _this._idleHub = _idleHub;\n _this._idleTimeout = _idleTimeout;\n _this._onScope = _onScope; // Activities store a list of active spans\n\n _this.activities = {}; // Stores reference to the timeout that calls _beat().\n\n _this._heartbeatTimer = 0; // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n\n _this._heartbeatCounter = 0; // We should not use heartbeat if we finished a transaction\n\n _this._finished = false;\n _this._beforeFinishCallbacks = [];\n\n if (_idleHub && _onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub); // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n\n logger.log(\"Setting idle transaction on scope. Span ID: \" + _this.spanId);\n\n _idleHub.configureScope(function (scope) {\n return scope.setSpan(_this);\n });\n }\n\n return _this;\n }\n /** {@inheritDoc} */\n\n\n IdleTransaction.prototype.finish = function (endTimestamp) {\n var e_1, _a;\n\n var _this = this;\n\n if (endTimestamp === void 0) {\n endTimestamp = timestampWithMs();\n }\n\n this._finished = true;\n this.activities = {};\n\n if (this.spanRecorder) {\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n\n try {\n for (var _b = __values(this._beforeFinishCallbacks), _c = _b.next(); !_c.done; _c = _b.next()) {\n var callback = _c.value;\n callback(this, endTimestamp);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n this.spanRecorder.spans = this.spanRecorder.spans.filter(function (span) {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === _this.spanId) {\n return true;\n } // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n\n\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus(SpanStatus.Cancelled);\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n var keepSpan = span.startTimestamp < endTimestamp;\n\n if (!keepSpan) {\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', JSON.stringify(span, undefined, 2));\n }\n\n return keepSpan;\n }); // this._onScope is true if the transaction was previously on the scope.\n\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n\n logger.log('[Tracing] flushing IdleTransaction');\n } else {\n logger.log('[Tracing] No active IdleTransaction');\n }\n\n return _super.prototype.finish.call(this, endTimestamp);\n };\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n\n\n IdleTransaction.prototype.registerBeforeFinishCallback = function (callback) {\n this._beforeFinishCallbacks.push(callback);\n };\n /**\n * @inheritDoc\n */\n\n\n IdleTransaction.prototype.initSpanRecorder = function (maxlen) {\n var _this = this;\n\n if (!this.spanRecorder) {\n this._initTimeout = setTimeout(function () {\n if (!_this._finished) {\n _this.finish();\n }\n }, this._idleTimeout);\n\n var pushActivity = function pushActivity(id) {\n if (_this._finished) {\n return;\n }\n\n _this._pushActivity(id);\n };\n\n var popActivity = function popActivity(id) {\n if (_this._finished) {\n return;\n }\n\n _this._popActivity(id);\n };\n\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen); // Start heartbeat so that transactions do not run forever.\n\n logger.log('Starting heartbeat');\n\n this._pingHeartbeat();\n }\n\n this.spanRecorder.add(this);\n };\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n\n\n IdleTransaction.prototype._pushActivity = function (spanId) {\n if (this._initTimeout) {\n clearTimeout(this._initTimeout);\n this._initTimeout = undefined;\n }\n\n logger.log(\"[Tracing] pushActivity: \" + spanId);\n this.activities[spanId] = true;\n logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n };\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n\n\n IdleTransaction.prototype._popActivity = function (spanId) {\n var _this = this;\n\n if (this.activities[spanId]) {\n logger.log(\"[Tracing] popActivity \" + spanId); // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\n delete this.activities[spanId];\n logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n var timeout = this._idleTimeout; // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n\n var end_1 = timestampWithMs() + timeout / 1000;\n setTimeout(function () {\n if (!_this._finished) {\n _this.finish(end_1);\n }\n }, timeout);\n }\n };\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n\n\n IdleTransaction.prototype._beat = function () {\n clearTimeout(this._heartbeatTimer); // We should not be running heartbeat if the idle transaction is finished.\n\n if (this._finished) {\n return;\n }\n\n var keys = Object.keys(this.activities);\n var heartbeatString = keys.length ? keys.reduce(function (prev, current) {\n return prev + current;\n }) : '';\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n logger.log(\"[Tracing] Transaction finished because of no change for 3 heart beats\");\n this.setStatus(SpanStatus.DeadlineExceeded);\n this.setTag('heartbeat', 'failed');\n this.finish();\n } else {\n this._pingHeartbeat();\n }\n };\n /**\n * Pings the heartbeat\n */\n\n\n IdleTransaction.prototype._pingHeartbeat = function () {\n var _this = this;\n\n logger.log(\"pinging Heartbeat -> current counter: \" + this._heartbeatCounter);\n this._heartbeatTimer = setTimeout(function () {\n _this._beat();\n }, 5000);\n };\n\n return IdleTransaction;\n}(Transaction);\n\nexport { IdleTransaction };\n/**\n * Reset active transaction on scope\n */\n\nfunction clearActiveTransaction(hub) {\n if (hub) {\n var scope = hub.getScope();\n\n if (scope) {\n var transaction = scope.getTransaction();\n\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n }\n}","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nexport default function BottomButtonBar(props) {\n return {props.children};\n}\n\nBottomButtonBar.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\n/* Styled Components\n======================================================= */\n\nconst Styled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: BottomButtonBar;\n align-items: center;\n ${[t.p(4)]}\n position: ${props.static ? \"static\" : \"sticky\"};\n z-index: 18;\n bottom: 0;\n left: 0;\n right: 0;\n flex: 0;\n background: ${t.dark ? t.color.gray[900] : t.color.white};\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n display: flex;\n\n button {\n width: auto;\n }\n\n > span {\n ${[t.text.xs, t.mx(4)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n","import { __assign, __read, __spread } from \"tslib\";\nimport { getGlobalObject, isPlainObject, isThenable, SyncPromise, timestampWithMs } from '@sentry/utils';\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope() {\n /** Flag if notifiying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n\n this._breadcrumbs = [];\n /** User */\n\n this._user = {};\n /** Tags */\n\n this._tags = {};\n /** Extra */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n this._extra = {};\n /** Contexts */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n this._contexts = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n\n\n Scope.clone = function (scope) {\n var newScope = new Scope();\n\n if (scope) {\n newScope._breadcrumbs = __spread(scope._breadcrumbs);\n newScope._tags = __assign({}, scope._tags);\n newScope._extra = __assign({}, scope._extra);\n newScope._contexts = __assign({}, scope._contexts);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = __spread(scope._eventProcessors);\n }\n\n return newScope;\n };\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n\n\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setTags = function (tags) {\n this._tags = __assign(__assign({}, this._tags), tags);\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setTag = function (key, value) {\n var _a;\n\n this._tags = __assign(__assign({}, this._tags), (_a = {}, _a[key] = value, _a));\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setExtras = function (extras) {\n this._extra = __assign(__assign({}, this._extra), extras);\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n\n this._extra = __assign(__assign({}, this._extra), (_a = {}, _a[key] = extra, _a));\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setTransactionName = function (name) {\n this._transactionName = name;\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n\n\n Scope.prototype.setTransaction = function (name) {\n return this.setTransactionName(name);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Scope.prototype.setContext = function (key, context) {\n var _a;\n\n this._contexts = __assign(__assign({}, this._contexts), (_a = {}, _a[key] = context, _a));\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.getTransaction = function () {\n var span = this.getSpan();\n\n if (span && span.spanRecorder && span.spanRecorder.spans[0]) {\n return span.spanRecorder.spans[0];\n }\n\n return undefined;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.update = function (captureContext) {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n var updatedScope = captureContext(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = __assign(__assign({}, this._tags), captureContext._tags);\n this._extra = __assign(__assign({}, this._extra), captureContext._extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext._contexts);\n\n if (captureContext._user) {\n this._user = captureContext._user;\n }\n\n if (captureContext._level) {\n this._level = captureContext._level;\n }\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;\n this._tags = __assign(__assign({}, this._tags), captureContext.tags);\n this._extra = __assign(__assign({}, this._extra), captureContext.extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext.contexts);\n\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n }\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.clear = function () {\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\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var mergedBreadcrumb = __assign({\n timestamp: timestampWithMs()\n }, breadcrumb);\n\n this._breadcrumbs = maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0 ? __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxBreadcrumbs) : __spread(this._breadcrumbs, [mergedBreadcrumb]);\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n\n this._notifyScopeListeners();\n\n return this;\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\n\n Scope.prototype.applyToEvent = function (event, hint) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = __assign(__assign({}, this._extra), event.extra);\n }\n\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = __assign(__assign({}, this._tags), event.tags);\n }\n\n if (this._user && Object.keys(this._user).length) {\n event.user = __assign(__assign({}, this._user), event.user);\n }\n\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = __assign(__assign({}, this._contexts), event.contexts);\n }\n\n if (this._level) {\n event.level = this._level;\n }\n\n if (this._transactionName) {\n event.transaction = this._transactionName;\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\n\n if (this._span) {\n event.contexts = __assign({\n trace: this._span.getTraceContext()\n }, event.contexts);\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = __spread(event.breadcrumbs || [], this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n\n\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n\n if (index === void 0) {\n index = 0;\n }\n\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n var result = processor(__assign({}, event), hint);\n\n if (isThenable(result)) {\n result.then(function (_final) {\n return _this._notifyEventProcessors(processors, _final, hint, index + 1).then(resolve);\n }).then(null, reject);\n } else {\n _this._notifyEventProcessors(processors, result, hint, index + 1).then(resolve).then(null, reject);\n }\n }\n });\n };\n /**\n * This will be called on every set call.\n */\n\n\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\n\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n setTimeout(function () {\n _this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\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\n\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? Array.isArray(event.fingerprint) ? event.fingerprint : [event.fingerprint] : []; // If we have something on the scope, then merge it with event\n\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n } // If we have no data at all, remove empty array default\n\n\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n\n return Scope;\n}();\n\nexport { Scope };\n/**\n * Retruns the global event processors.\n */\n\nfunction getGlobalEventProcessors() {\n var global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\n\n\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}","import { useQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiGet, apiPost, apiPut, apiDelete } from \"@shared/queryHooks/api\";\n\nconst getHiringStages = async (jobId) => {\n if (jobId != undefined) {\n return await apiGet({ path: `/jobs/${jobId}/hiring_stages` });\n }\n};\n\nconst createHiringStage = async ({ jobId, ...variables }) => {\n return await apiPost({ path: `/jobs/${jobId}/hiring_stages`, variables });\n};\n\nconst updateHiringStage = async ({ jobId, id, ...variables }) => {\n return await apiPut({ path: `/jobs/${jobId}/hiring_stages/${id}`, variables });\n};\n\nconst deleteHiringStage = async ({ jobId, id, ...variables }) => {\n return await apiDelete({ path: `/jobs/${jobId}/hiring_stages/${id}`, variables });\n};\n\n/* HOOKS\n--===================================================-- */\nfunction useCreateHiringStage() {\n const queryClient = useQueryClient();\n return useMutation(createHiringStage, {\n // After success or failure, refetch the jobCategories query\n onSettled: (data) => {\n queryClient.invalidateQueries([\"hiringStages\", data.jobId]);\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n },\n // throwOnError: true,\n });\n}\n\nfunction useUpdateHiringStage() {\n const queryClient = useQueryClient();\n return useMutation(updateHiringStage, {\n onSettled: (data) => {\n queryClient.invalidateQueries([\"hiringStages\", data.jobId]);\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n },\n // throwOnError: true,\n });\n}\n\nfunction useDeleteHiringStage() {\n const queryClient = useQueryClient();\n return useMutation(deleteHiringStage, {\n onSettled: (data) => {\n queryClient.invalidateQueries([\"hiringStages\", data.jobId]);\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n },\n // throwOnError: true,\n });\n}\n\nfunction useHiringStages({\n jobId,\n refetchOnWindowFocus = false,\n}: {\n jobId?: number;\n refetchOnWindowFocus?: boolean | \"always\";\n}): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n} {\n return useQuery([\"hiringStages\", jobId], () => getHiringStages(jobId), { refetchOnWindowFocus });\n}\n\nexport { useHiringStages, useCreateHiringStage, useUpdateHiringStage, useDeleteHiringStage };\n","'use strict';\n\nrequire('./warnAboutDeprecatedCJSRequire.js')('PathUtils');\n\nmodule.exports = require('./index.js').PathUtils;","module.exports = function (originalModule) {\n if (!originalModule.webpackPolyfill) {\n var module = Object.create(originalModule); // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n Object.defineProperty(module, \"exports\", {\n enumerable: true\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type,\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n this.xhr.setRequestHeader(\"X-CSRF-Token\", getMetaValue(\"csrf-token\"));\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm[\"delete\"](form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { css } from \"@emotion/react\";\nimport { useTransition, animated } from \"react-spring\";\nimport { useColorSchemeContext } from \"@shared/context/ColorSchemeContext\";\n\nconst ModalBackdrop = ({ whenClicked, isVisible, onClose }) => {\n const { isDarkMode } = useColorSchemeContext();\n const transitions = useTransition(isVisible, {\n from: {\n opacity: 0,\n },\n enter: {\n opacity: 0.75,\n },\n leave: {\n opacity: 0,\n },\n config: {\n tension: 480,\n clamp: true,\n },\n onDestroyed: onClose,\n });\n\n return (\n <>\n {transitions((props, item) => {\n // window.logger(\"%c[ModalBackdrop] transitions\", \"color: #FF00F0\", {\n // item,\n // style,\n // index,\n // });\n return (\n item && (\n css`\n background-color: ${isDarkMode ? theme.color.black : `rgba(0,0,0,0.25)`};\n position: fixed;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n `}\n onClick={whenClicked}\n />\n )\n );\n })}\n \n );\n};\n\nModalBackdrop.propTypes = {\n whenClicked: PropTypes.func,\n};\n\nexport default ModalBackdrop;\n","var toString = require('./toString');\n/**\n * Converts `string`, as a whole, to lower case just like\n * [String#toLowerCase](https://mdn.io/toLowerCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.toLower('--Foo-Bar--');\n * // => '--foo-bar--'\n *\n * _.toLower('fooBar');\n * // => 'foobar'\n *\n * _.toLower('__FOO_BAR__');\n * // => '__foo_bar__'\n */\n\n\nfunction toLower(value) {\n return toString(value).toLowerCase();\n}\n\nmodule.exports = toLower;","function 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 _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\n\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n\n\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);\n\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\n\nexport var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 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';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = String(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","// `Math.sign` method implementation\n// https://tc39.github.io/ecma262/#sec-math.sign\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\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};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = 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 (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(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 (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (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\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","/* eslint-disable no-new */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n } catch (e) {\n // IE 8 has a broken defineProperty\n $defineProperty = null;\n }\n}\n\nmodule.exports = function callBind(originalFunction) {\n var func = $reflectApply(bind, $call, arguments);\n\n if ($gOPD && $defineProperty) {\n var desc = $gOPD(func, 'length');\n\n if (desc.configurable) {\n // original length, plus the receiver, minus any additional arguments (after the receiver)\n $defineProperty(func, 'length', {\n value: 1 + $max(0, originalFunction.length - (arguments.length - 1))\n });\n }\n }\n\n return func;\n};\n\nvar applyBind = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n $defineProperty(module.exports, 'apply', {\n value: applyBind\n });\n} else {\n module.exports.apply = applyBind;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n/** Used to match property names within property paths. */\n\n\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\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 */\n\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n\n var type = _typeof(value);\n\n if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n}\n\nmodule.exports = isKey;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar symbolTag = '[object Symbol]';\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 */\n\nfunction isSymbol(value) {\n return _typeof(value) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n}\n\nmodule.exports = isSymbol;","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\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 */\n\n\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `MapCache`.\n\n\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\nmodule.exports = MapCache;","/**\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;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar Map = getNative(root, 'Map');\nmodule.exports = Map;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\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 */\n\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;","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 * 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 */\n\n\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n} // Add methods to `Stack`.\n\n\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\nmodule.exports = Stack;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar root = require('./_root'),\n stubFalse = require('./stubFalse');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Built-in value references. */\n\nvar Buffer = moduleExports ? root.Buffer : undefined;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\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 */\n\nvar isBuffer = nativeIsBuffer || stubFalse;\nmodule.exports = isBuffer;","/**\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;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar freeGlobal = require('./_freeGlobal');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Detect free variable `process` from Node.js. */\n\nvar freeProcess = moduleExports && freeGlobal.process;\n/** Used to access faster Node.js helpers. */\n\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 } // Legacy `process.binding('util')` for Node.js < 10.\n\n\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}();\n\nmodule.exports = nodeUtil;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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 */\n\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n}\n\nmodule.exports = isPrototype;","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\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 */\n\n\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\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 */\n\n\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Built-in value references. */\n\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\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 */\n\nvar getSymbols = !nativeGetSymbols ? stubArray : function (object) {\n if (object == null) {\n return [];\n }\n\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function (symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\nmodule.exports = getSymbols;","var Uint8Array = require('./_Uint8Array');\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 */\n\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;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.propagateErrors = propagateErrors;\nexports.settled = settled;\nexports.collectErrors = collectErrors;\nexports[\"default\"] = runValidations;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _synchronousPromise = require(\"synchronous-promise\");\n\nvar _ValidationError = _interopRequireDefault(require(\"../ValidationError\"));\n\nvar promise = function promise(sync) {\n return sync ? _synchronousPromise.SynchronousPromise : Promise;\n};\n\nvar unwrapError = function unwrapError(errors) {\n if (errors === void 0) {\n errors = [];\n }\n\n return errors.inner && errors.inner.length ? errors.inner : [].concat(errors);\n};\n\nfunction scopeToValue(promises, value, sync) {\n //console.log('scopeToValue', promises, value)\n var p = promise(sync).all(promises); //console.log('scopeToValue B', p)\n\n var b = p[\"catch\"](function (err) {\n if (err.name === 'ValidationError') err.value = value;\n throw err;\n }); //console.log('scopeToValue c', b)\n\n var c = b.then(function () {\n return value;\n }); //console.log('scopeToValue d', c)\n\n return c;\n}\n/**\n * If not failing on the first error, catch the errors\n * and collect them in an array\n */\n\n\nfunction propagateErrors(endEarly, errors) {\n return endEarly ? null : function (err) {\n errors.push(err);\n return err.value;\n };\n}\n\nfunction settled(promises, sync) {\n var Promise = promise(sync);\n return Promise.all(promises.map(function (p) {\n return Promise.resolve(p).then(function (value) {\n return {\n fulfilled: true,\n value: value\n };\n }, function (value) {\n return {\n fulfilled: false,\n value: value\n };\n });\n }));\n}\n\nfunction collectErrors(_ref) {\n var validations = _ref.validations,\n value = _ref.value,\n path = _ref.path,\n sync = _ref.sync,\n errors = _ref.errors,\n sort = _ref.sort;\n errors = unwrapError(errors);\n return settled(validations, sync).then(function (results) {\n var nestedErrors = results.filter(function (r) {\n return !r.fulfilled;\n }).reduce(function (arr, _ref2) {\n var error = _ref2.value; // we are only collecting validation errors\n\n if (!_ValidationError[\"default\"].isError(error)) {\n throw error;\n }\n\n return arr.concat(error);\n }, []);\n if (sort) nestedErrors.sort(sort); //show parent errors after the nested ones: name.first, name\n\n errors = nestedErrors.concat(errors);\n if (errors.length) throw new _ValidationError[\"default\"](errors, value, path);\n return value;\n });\n}\n\nfunction runValidations(_ref3) {\n var endEarly = _ref3.endEarly,\n options = (0, _objectWithoutPropertiesLoose2[\"default\"])(_ref3, [\"endEarly\"]);\n if (endEarly) return scopeToValue(options.validations, options.value, options.sync);\n return collectErrors(options);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = ValidationError;\n\nvar _printValue = _interopRequireDefault(require(\"./util/printValue\"));\n\nvar strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\n\nvar replace = function replace(str) {\n return function (params) {\n return str.replace(strReg, function (_, key) {\n return (0, _printValue[\"default\"])(params[key]);\n });\n };\n};\n\nfunction ValidationError(errors, value, field, type) {\n var _this = this;\n\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n if (errors) [].concat(errors).forEach(function (err) {\n _this.errors = _this.errors.concat(err.errors || err);\n if (err.inner) _this.inner = _this.inner.concat(err.inner.length ? err.inner : err);\n });\n this.message = this.errors.length > 1 ? this.errors.length + \" errors occurred\" : this.errors[0];\n if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n}\n\nValidationError.prototype = Object.create(Error.prototype);\nValidationError.prototype.constructor = ValidationError;\n\nValidationError.isError = function (err) {\n return err && err.name === 'ValidationError';\n};\n\nValidationError.formatError = function (message, params) {\n if (typeof message === 'string') message = replace(message);\n\n var fn = function fn(params) {\n params.path = params.label || params.path || 'this';\n return typeof message === 'function' ? message(params) : message;\n };\n\n return arguments.length === 1 ? fn : fn(params);\n};\n\nmodule.exports = exports[\"default\"];","import colors from \"./colors\";\nimport theme from \"./theme\";\n\nconst poly = {\n color: {\n canvas: colors.white,\n border: colors.gray[200],\n borderHover: colors.gray[400],\n loudText: colors.black,\n primaryText: colors.black,\n secondaryText: colors.gray[600],\n placeholderText: colors.gray[500],\n\n subtleHover: colors.gray[100],\n loudHover: colors.gray[200],\n\n wellCanvas: colors.gray[100],\n\n calloutCanvas: colors.gray[100],\n\n dropdownCanvas: colors.white,\n dropdownBorder: colors.gray[400],\n dropdownDivider: colors.gray[200],\n dropdownHover: colors.gray[200],\n dropdownTextHover: colors.black,\n\n cardCanvas: colors.white,\n cardBorder: colors.gray[200],\n cardDivider: colors.gray[200],\n\n chipBorder: colors.gray[300],\n },\n ...theme,\n};\n\nexport default poly;\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { __assign, __values, __spread, __read, __rest } from './_virtual/_tslib.js';\nimport { DEFAULT_GUARD_TYPE, STATE_DELIMITER } from './constants.js';\nimport { IS_PRODUCTION } from './environment.js';\nimport { mapValues, isArray, flatten, keys, toArray, toStateValue, isString, getEventType, matchesState, path, mapContext, toSCXMLEvent, pathToStateValue, isBuiltInEvent, partition, updateContext, warn, updateHistoryValue, toStatePath, mapFilterValues, toStatePaths, nestedPath, normalizeTarget, toGuard, toTransitionConfigArray, isMachine, isFunction } from './utils.js';\nimport { SpecialTargets } from './types.js';\nimport { getAllStateNodes, getConfiguration, has, getChildren, isInFinalState, getValue, isLeafNode } from './stateUtils.js';\nimport { start as start$1, stop as stop$1, pure, log, send, raise as raise$1, invoke, update, nullEvent, assign } from './actionTypes.js';\nimport { done, start, raise, stop, toActionObjects, toActionObject, resolveLog, resolveSend, resolveRaise, doneInvoke, error, toActivityDefinition, after, send as send$1, cancel, initEvent } from './actions.js';\nimport { State, stateValuesEqual } from './State.js';\nimport { createInvocableActor } from './Actor.js';\nvar NULL_EVENT = '';\nvar STATE_IDENTIFIER = '#';\nvar WILDCARD = '*';\nvar EMPTY_OBJECT = {};\n\nvar isStateId = function isStateId(str) {\n return str[0] === STATE_IDENTIFIER;\n};\n\nvar createDefaultOptions = function createDefaultOptions() {\n return {\n actions: {},\n guards: {},\n services: {},\n activities: {},\n delays: {}\n };\n};\n\nvar validateArrayifiedTransitions = function validateArrayifiedTransitions(stateNode, event, transitions) {\n var hasNonLastUnguardedTarget = transitions.slice(0, -1).some(function (transition) {\n return !('cond' in transition) && !('in' in transition) && (isString(transition.target) || isMachine(transition.target));\n });\n var eventText = event === NULL_EVENT ? 'the transient event' : \"event '\" + event + \"'\";\n warn(!hasNonLastUnguardedTarget, \"One or more transitions for \" + eventText + \" on state '\" + stateNode.id + \"' are unreachable. \" + \"Make sure that the default transition is the last one defined.\");\n};\n\nvar StateNode =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n function StateNode(\n /**\r\n * The raw config used to create the machine.\r\n */\n config, options,\n /**\r\n * The initial extended state\r\n */\n context) {\n var _this = this;\n\n this.config = config;\n this.context = context;\n /**\r\n * The order this state node appears. Corresponds to the implicit SCXML document order.\r\n */\n\n this.order = -1;\n this.__xstatenode = true;\n this.__cache = {\n events: undefined,\n relativeValue: new Map(),\n initialStateValue: undefined,\n initialState: undefined,\n on: undefined,\n transitions: undefined,\n candidates: {},\n delayedTransitions: undefined\n };\n this.idMap = {};\n this.options = Object.assign(createDefaultOptions(), options);\n this.parent = this.options._parent;\n this.key = this.config.key || this.options._key || this.config.id || '(machine)';\n this.machine = this.parent ? this.parent.machine : this;\n this.path = this.parent ? this.parent.path.concat(this.key) : [];\n this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : STATE_DELIMITER);\n this.id = this.config.id || __spread([this.machine.key], this.path).join(this.delimiter);\n this.version = this.parent ? this.parent.version : this.config.version;\n this.type = this.config.type || (this.config.parallel ? 'parallel' : this.config.states && keys(this.config.states).length ? 'compound' : this.config.history ? 'history' : 'atomic');\n\n if (!IS_PRODUCTION) {\n warn(!('parallel' in this.config), \"The \\\"parallel\\\" property is deprecated and will be removed in version 4.1. \" + (this.config.parallel ? \"Replace with `type: 'parallel'`\" : \"Use `type: '\" + this.type + \"'`\") + \" in the config for state node '\" + this.id + \"' instead.\");\n }\n\n this.initial = this.config.initial;\n this.states = this.config.states ? mapValues(this.config.states, function (stateConfig, key) {\n var _a;\n\n var stateNode = new StateNode(stateConfig, {\n _parent: _this,\n _key: key\n });\n Object.assign(_this.idMap, __assign((_a = {}, _a[stateNode.id] = stateNode, _a), stateNode.idMap));\n return stateNode;\n }) : EMPTY_OBJECT; // Document order\n\n var order = 0;\n\n function dfs(stateNode) {\n var e_1, _a;\n\n stateNode.order = order++;\n\n try {\n for (var _b = __values(getChildren(stateNode)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n dfs(child);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n\n dfs(this); // History config\n\n this.history = this.config.history === true ? 'shallow' : this.config.history || false;\n this._transient = !this.config.on ? false : Array.isArray(this.config.on) ? this.config.on.some(function (_a) {\n var event = _a.event;\n return event === NULL_EVENT;\n }) : NULL_EVENT in this.config.on;\n this.strict = !!this.config.strict; // TODO: deprecate (entry)\n\n this.onEntry = toArray(this.config.entry || this.config.onEntry).map(function (action) {\n return toActionObject(action);\n }); // TODO: deprecate (exit)\n\n this.onExit = toArray(this.config.exit || this.config.onExit).map(function (action) {\n return toActionObject(action);\n });\n this.meta = this.config.meta;\n this.data = this.type === 'final' ? this.config.data : undefined;\n this.invoke = toArray(this.config.invoke).map(function (invokeConfig, i) {\n var _a, _b;\n\n if (isMachine(invokeConfig)) {\n _this.machine.options.services = __assign((_a = {}, _a[invokeConfig.id] = invokeConfig, _a), _this.machine.options.services);\n return {\n type: invoke,\n src: invokeConfig.id,\n id: invokeConfig.id\n };\n } else if (typeof invokeConfig.src !== 'string') {\n var invokeSrc = _this.id + \":invocation[\" + i + \"]\"; // TODO: util function\n\n _this.machine.options.services = __assign((_b = {}, _b[invokeSrc] = invokeConfig.src, _b), _this.machine.options.services);\n return __assign(__assign({\n type: invoke,\n id: invokeSrc\n }, invokeConfig), {\n src: invokeSrc\n });\n } else {\n return __assign(__assign({}, invokeConfig), {\n type: invoke,\n id: invokeConfig.id || invokeConfig.src,\n src: invokeConfig.src\n });\n }\n });\n this.activities = toArray(this.config.activities).concat(this.invoke).map(function (activity) {\n return toActivityDefinition(activity);\n });\n this.transition = this.transition.bind(this);\n }\n\n StateNode.prototype._init = function () {\n if (this.__cache.transitions) {\n return;\n }\n\n getAllStateNodes(this).forEach(function (stateNode) {\n return stateNode.on;\n });\n };\n /**\r\n * Clones this state machine with custom options and context.\r\n *\r\n * @param options Options (actions, guards, activities, services) to recursively merge with the existing options.\r\n * @param context Custom context (will override predefined context)\r\n */\n\n\n StateNode.prototype.withConfig = function (options, context) {\n if (context === void 0) {\n context = this.context;\n }\n\n var _a = this.options,\n actions = _a.actions,\n activities = _a.activities,\n guards = _a.guards,\n services = _a.services,\n delays = _a.delays;\n return new StateNode(this.config, {\n actions: __assign(__assign({}, actions), options.actions),\n activities: __assign(__assign({}, activities), options.activities),\n guards: __assign(__assign({}, guards), options.guards),\n services: __assign(__assign({}, services), options.services),\n delays: __assign(__assign({}, delays), options.delays)\n }, context);\n };\n /**\r\n * Clones this state machine with custom context.\r\n *\r\n * @param context Custom context (will override predefined context, not recursive)\r\n */\n\n\n StateNode.prototype.withContext = function (context) {\n return new StateNode(this.config, this.options, context);\n };\n\n Object.defineProperty(StateNode.prototype, \"definition\", {\n /**\r\n * The well-structured state node definition.\r\n */\n get: function get() {\n return {\n id: this.id,\n key: this.key,\n version: this.version,\n type: this.type,\n initial: this.initial,\n history: this.history,\n states: mapValues(this.states, function (state) {\n return state.definition;\n }),\n on: this.on,\n transitions: this.transitions,\n onEntry: this.onEntry,\n onExit: this.onExit,\n activities: this.activities || [],\n meta: this.meta,\n order: this.order || -1,\n data: this.data,\n invoke: this.invoke\n };\n },\n enumerable: true,\n configurable: true\n });\n\n StateNode.prototype.toJSON = function () {\n return this.definition;\n };\n\n Object.defineProperty(StateNode.prototype, \"on\", {\n /**\r\n * The mapping of events to transitions.\r\n */\n get: function get() {\n if (this.__cache.on) {\n return this.__cache.on;\n }\n\n var transitions = this.transitions;\n return this.__cache.on = transitions.reduce(function (map, transition) {\n map[transition.eventType] = map[transition.eventType] || [];\n map[transition.eventType].push(transition);\n return map;\n }, {});\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"after\", {\n get: function get() {\n return this.__cache.delayedTransitions || (this.__cache.delayedTransitions = this.getDelayedTransitions(), this.__cache.delayedTransitions);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"transitions\", {\n /**\r\n * All the transitions that can be taken from this state node.\r\n */\n get: function get() {\n return this.__cache.transitions || (this.__cache.transitions = this.formatTransitions(), this.__cache.transitions);\n },\n enumerable: true,\n configurable: true\n });\n\n StateNode.prototype.getCandidates = function (eventName) {\n if (this.__cache.candidates[eventName]) {\n return this.__cache.candidates[eventName];\n }\n\n var _transient = eventName === NULL_EVENT;\n\n var candidates = this.transitions.filter(function (transition) {\n var sameEventType = transition.eventType === eventName; // null events should only match against eventless transitions\n\n return _transient ? sameEventType : sameEventType || transition.eventType === WILDCARD;\n });\n this.__cache.candidates[eventName] = candidates;\n return candidates;\n };\n /**\r\n * All delayed transitions from the config.\r\n */\n\n\n StateNode.prototype.getDelayedTransitions = function () {\n var _this = this;\n\n var afterConfig = this.config.after;\n\n if (!afterConfig) {\n return [];\n }\n\n var mutateEntryExit = function mutateEntryExit(delay, i) {\n var delayRef = isFunction(delay) ? _this.id + \":delay[\" + i + \"]\" : delay;\n var eventType = after(delayRef, _this.id);\n\n _this.onEntry.push(send$1(eventType, {\n delay: delay\n }));\n\n _this.onExit.push(cancel(eventType));\n\n return eventType;\n };\n\n var delayedTransitions = isArray(afterConfig) ? afterConfig.map(function (transition, i) {\n var eventType = mutateEntryExit(transition.delay, i);\n return __assign(__assign({}, transition), {\n event: eventType\n });\n }) : flatten(keys(afterConfig).map(function (delay, i) {\n var configTransition = afterConfig[delay];\n var resolvedTransition = isString(configTransition) ? {\n target: configTransition\n } : configTransition;\n var resolvedDelay = !isNaN(+delay) ? +delay : delay;\n var eventType = mutateEntryExit(resolvedDelay, i);\n return toArray(resolvedTransition).map(function (transition) {\n return __assign(__assign({}, transition), {\n event: eventType,\n delay: resolvedDelay\n });\n });\n }));\n return delayedTransitions.map(function (delayedTransition) {\n var delay = delayedTransition.delay;\n return __assign(__assign({}, _this.formatTransition(delayedTransition)), {\n delay: delay\n });\n });\n };\n /**\r\n * Returns the state nodes represented by the current state value.\r\n *\r\n * @param state The state value or State instance\r\n */\n\n\n StateNode.prototype.getStateNodes = function (state) {\n var _a;\n\n var _this = this;\n\n if (!state) {\n return [];\n }\n\n var stateValue = state instanceof State ? state.value : toStateValue(state, this.delimiter);\n\n if (isString(stateValue)) {\n var initialStateValue = this.getStateNode(stateValue).initial;\n return initialStateValue !== undefined ? this.getStateNodes((_a = {}, _a[stateValue] = initialStateValue, _a)) : [this.states[stateValue]];\n }\n\n var subStateKeys = keys(stateValue);\n var subStateNodes = subStateKeys.map(function (subStateKey) {\n return _this.getStateNode(subStateKey);\n });\n return subStateNodes.concat(subStateKeys.reduce(function (allSubStateNodes, subStateKey) {\n var subStateNode = _this.getStateNode(subStateKey).getStateNodes(stateValue[subStateKey]);\n\n return allSubStateNodes.concat(subStateNode);\n }, []));\n };\n /**\r\n * Returns `true` if this state node explicitly handles the given event.\r\n *\r\n * @param event The event in question\r\n */\n\n\n StateNode.prototype.handles = function (event) {\n var eventType = getEventType(event);\n return this.events.includes(eventType);\n };\n /**\r\n * Resolves the given `state` to a new `State` instance relative to this machine.\r\n *\r\n * This ensures that `.events` and `.nextEvents` represent the correct values.\r\n *\r\n * @param state The state to resolve\r\n */\n\n\n StateNode.prototype.resolveState = function (state) {\n var configuration = Array.from(getConfiguration([], this.getStateNodes(state.value)));\n return new State(__assign(__assign({}, state), {\n value: this.resolve(state.value),\n configuration: configuration\n }));\n };\n\n StateNode.prototype.transitionLeafNode = function (stateValue, state, _event) {\n var stateNode = this.getStateNode(stateValue);\n var next = stateNode.next(state, _event);\n\n if (!next || !next.transitions.length) {\n return this.next(state, _event);\n }\n\n return next;\n };\n\n StateNode.prototype.transitionCompoundNode = function (stateValue, state, _event) {\n var subStateKeys = keys(stateValue);\n var stateNode = this.getStateNode(subStateKeys[0]);\n\n var next = stateNode._transition(stateValue[subStateKeys[0]], state, _event);\n\n if (!next || !next.transitions.length) {\n return this.next(state, _event);\n }\n\n return next;\n };\n\n StateNode.prototype.transitionParallelNode = function (stateValue, state, _event) {\n var e_2, _a;\n\n var transitionMap = {};\n\n try {\n for (var _b = __values(keys(stateValue)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var subStateKey = _c.value;\n var subStateValue = stateValue[subStateKey];\n\n if (!subStateValue) {\n continue;\n }\n\n var subStateNode = this.getStateNode(subStateKey);\n\n var next = subStateNode._transition(subStateValue, state, _event);\n\n if (next) {\n transitionMap[subStateKey] = next;\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n var stateTransitions = keys(transitionMap).map(function (key) {\n return transitionMap[key];\n });\n var enabledTransitions = flatten(stateTransitions.map(function (st) {\n return st.transitions;\n }));\n var willTransition = stateTransitions.some(function (st) {\n return st.transitions.length > 0;\n });\n\n if (!willTransition) {\n return this.next(state, _event);\n }\n\n var entryNodes = flatten(stateTransitions.map(function (t) {\n return t.entrySet;\n }));\n var configuration = flatten(keys(transitionMap).map(function (key) {\n return transitionMap[key].configuration;\n }));\n return {\n transitions: enabledTransitions,\n entrySet: entryNodes,\n exitSet: flatten(stateTransitions.map(function (t) {\n return t.exitSet;\n })),\n configuration: configuration,\n source: state,\n actions: flatten(keys(transitionMap).map(function (key) {\n return transitionMap[key].actions;\n }))\n };\n };\n\n StateNode.prototype._transition = function (stateValue, state, _event) {\n // leaf node\n if (isString(stateValue)) {\n return this.transitionLeafNode(stateValue, state, _event);\n } // hierarchical node\n\n\n if (keys(stateValue).length === 1) {\n return this.transitionCompoundNode(stateValue, state, _event);\n } // orthogonal node\n\n\n return this.transitionParallelNode(stateValue, state, _event);\n };\n\n StateNode.prototype.next = function (state, _event) {\n var e_3, _a;\n\n var _this = this;\n\n var eventName = _event.name;\n var actions = [];\n var nextStateNodes = [];\n var selectedTransition;\n\n try {\n for (var _b = __values(this.getCandidates(eventName)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var candidate = _c.value;\n var cond = candidate.cond,\n stateIn = candidate[\"in\"];\n var resolvedContext = state.context;\n var isInState = stateIn ? isString(stateIn) && isStateId(stateIn) ? // Check if in state by ID\n state.matches(toStateValue(this.getStateNodeById(stateIn).path, this.delimiter)) : // Check if in state by relative grandparent\n matchesState(toStateValue(stateIn, this.delimiter), path(this.path.slice(0, -2))(state.value)) : true;\n var guardPassed = false;\n\n try {\n guardPassed = !cond || this.evaluateGuard(cond, resolvedContext, _event, state);\n } catch (err) {\n throw new Error(\"Unable to evaluate guard '\" + (cond.name || cond.type) + \"' in transition for event '\" + eventName + \"' in state node '\" + this.id + \"':\\n\" + err.message);\n }\n\n if (guardPassed && isInState) {\n if (candidate.target !== undefined) {\n nextStateNodes = candidate.target;\n }\n\n actions.push.apply(actions, __spread(candidate.actions));\n selectedTransition = candidate;\n break;\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n if (!selectedTransition) {\n return undefined;\n }\n\n if (!nextStateNodes.length) {\n return {\n transitions: [selectedTransition],\n entrySet: [],\n exitSet: [],\n configuration: state.value ? [this] : [],\n source: state,\n actions: actions\n };\n }\n\n var allNextStateNodes = flatten(nextStateNodes.map(function (stateNode) {\n return _this.getRelativeStateNodes(stateNode, state.historyValue);\n }));\n var isInternal = !!selectedTransition.internal;\n var reentryNodes = isInternal ? [] : flatten(allNextStateNodes.map(function (n) {\n return _this.nodesFromChild(n);\n }));\n return {\n transitions: [selectedTransition],\n entrySet: reentryNodes,\n exitSet: isInternal ? [] : [this],\n configuration: allNextStateNodes,\n source: state,\n actions: actions\n };\n };\n\n StateNode.prototype.nodesFromChild = function (childStateNode) {\n if (childStateNode.escapes(this)) {\n return [];\n }\n\n var nodes = [];\n var marker = childStateNode;\n\n while (marker && marker !== this) {\n nodes.push(marker);\n marker = marker.parent;\n }\n\n nodes.push(this); // inclusive\n\n return nodes;\n };\n /**\r\n * Whether the given state node \"escapes\" this state node. If the `stateNode` is equal to or the parent of\r\n * this state node, it does not escape.\r\n */\n\n\n StateNode.prototype.escapes = function (stateNode) {\n if (this === stateNode) {\n return false;\n }\n\n var parent = this.parent;\n\n while (parent) {\n if (parent === stateNode) {\n return false;\n }\n\n parent = parent.parent;\n }\n\n return true;\n };\n\n StateNode.prototype.evaluateGuard = function (guard, context, _event, state) {\n var guards = this.machine.options.guards;\n var guardMeta = {\n state: state,\n cond: guard,\n _event: _event\n }; // TODO: do not hardcode!\n\n if (guard.type === DEFAULT_GUARD_TYPE) {\n return guard.predicate(context, _event.data, guardMeta);\n }\n\n var condFn = guards[guard.type];\n\n if (!condFn) {\n throw new Error(\"Guard '\" + guard.type + \"' is not implemented on machine '\" + this.machine.id + \"'.\");\n }\n\n return condFn(context, _event.data, guardMeta);\n };\n\n StateNode.prototype.getActions = function (transition, currentContext, _event, prevState) {\n var e_4, _a, e_5, _b;\n\n var prevConfig = getConfiguration([], prevState ? this.getStateNodes(prevState.value) : [this]);\n var resolvedConfig = transition.configuration.length ? getConfiguration(prevConfig, transition.configuration) : prevConfig;\n\n try {\n for (var resolvedConfig_1 = __values(resolvedConfig), resolvedConfig_1_1 = resolvedConfig_1.next(); !resolvedConfig_1_1.done; resolvedConfig_1_1 = resolvedConfig_1.next()) {\n var sn = resolvedConfig_1_1.value;\n\n if (!has(prevConfig, sn)) {\n transition.entrySet.push(sn);\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (resolvedConfig_1_1 && !resolvedConfig_1_1.done && (_a = resolvedConfig_1[\"return\"])) _a.call(resolvedConfig_1);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n try {\n for (var prevConfig_1 = __values(prevConfig), prevConfig_1_1 = prevConfig_1.next(); !prevConfig_1_1.done; prevConfig_1_1 = prevConfig_1.next()) {\n var sn = prevConfig_1_1.value;\n\n if (!has(resolvedConfig, sn) || has(transition.exitSet, sn.parent)) {\n transition.exitSet.push(sn);\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (prevConfig_1_1 && !prevConfig_1_1.done && (_b = prevConfig_1[\"return\"])) _b.call(prevConfig_1);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n if (!transition.source) {\n transition.exitSet = []; // Ensure that root StateNode (machine) is entered\n\n transition.entrySet.push(this);\n }\n\n var doneEvents = flatten(transition.entrySet.map(function (sn) {\n var events = [];\n\n if (sn.type !== 'final') {\n return events;\n }\n\n var parent = sn.parent;\n events.push(done(sn.id, sn.data), // TODO: deprecate - final states should not emit done events for their own state.\n done(parent.id, sn.data ? mapContext(sn.data, currentContext, _event) : undefined));\n\n if (parent.parent) {\n var grandparent = parent.parent;\n\n if (grandparent.type === 'parallel') {\n if (getChildren(grandparent).every(function (parentNode) {\n return isInFinalState(transition.configuration, parentNode);\n })) {\n events.push(done(grandparent.id, grandparent.data));\n }\n }\n }\n\n return events;\n }));\n transition.exitSet.sort(function (a, b) {\n return b.order - a.order;\n });\n transition.entrySet.sort(function (a, b) {\n return a.order - b.order;\n });\n var entryStates = new Set(transition.entrySet);\n var exitStates = new Set(transition.exitSet);\n\n var _c = __read([flatten(Array.from(entryStates).map(function (stateNode) {\n return __spread(stateNode.activities.map(function (activity) {\n return start(activity);\n }), stateNode.onEntry);\n })).concat(doneEvents.map(raise)), flatten(Array.from(exitStates).map(function (stateNode) {\n return __spread(stateNode.onExit, stateNode.activities.map(function (activity) {\n return stop(activity);\n }));\n }))], 2),\n entryActions = _c[0],\n exitActions = _c[1];\n\n var actions = toActionObjects(exitActions.concat(transition.actions).concat(entryActions), this.machine.options.actions);\n return actions;\n };\n /**\r\n * Determines the next state given the current `state` and sent `event`.\r\n *\r\n * @param state The current State instance or state value\r\n * @param event The event that was sent at the current state\r\n * @param context The current context (extended state) of the current state\r\n */\n\n\n StateNode.prototype.transition = function (state, event, context) {\n if (state === void 0) {\n state = this.initialState;\n }\n\n var _event = toSCXMLEvent(event);\n\n var currentState;\n\n if (state instanceof State) {\n currentState = context === undefined ? state : this.resolveState(State.from(state, context));\n } else {\n var resolvedStateValue = isString(state) ? this.resolve(pathToStateValue(this.getResolvedPath(state))) : this.resolve(state);\n var resolvedContext = context ? context : this.machine.context;\n currentState = this.resolveState(State.from(resolvedStateValue, resolvedContext));\n }\n\n if (!IS_PRODUCTION && _event.name === WILDCARD) {\n throw new Error(\"An event cannot have the wildcard type ('\" + WILDCARD + \"')\");\n }\n\n if (this.strict) {\n if (!this.events.includes(_event.name) && !isBuiltInEvent(_event.name)) {\n throw new Error(\"Machine '\" + this.id + \"' does not accept event '\" + _event.name + \"'\");\n }\n }\n\n var stateTransition = this._transition(currentState.value, currentState, _event) || {\n transitions: [],\n configuration: [],\n entrySet: [],\n exitSet: [],\n source: currentState,\n actions: []\n };\n var prevConfig = getConfiguration([], this.getStateNodes(currentState.value));\n var resolvedConfig = stateTransition.configuration.length ? getConfiguration(prevConfig, stateTransition.configuration) : prevConfig;\n stateTransition.configuration = __spread(resolvedConfig);\n return this.resolveTransition(stateTransition, currentState, _event);\n };\n\n StateNode.prototype.resolveRaisedTransition = function (state, _event, originalEvent) {\n var _a;\n\n var currentActions = state.actions;\n state = this.transition(state, _event); // Save original event to state\n\n state._event = originalEvent;\n state.event = originalEvent.data;\n\n (_a = state.actions).unshift.apply(_a, __spread(currentActions));\n\n return state;\n };\n\n StateNode.prototype.resolveTransition = function (stateTransition, currentState, _event, context) {\n var e_6, _a;\n\n var _this = this;\n\n if (_event === void 0) {\n _event = initEvent;\n }\n\n if (context === void 0) {\n context = this.machine.context;\n }\n\n var configuration = stateTransition.configuration; // Transition will \"apply\" if:\n // - this is the initial state (there is no current state)\n // - OR there are transitions\n\n var willTransition = !currentState || stateTransition.transitions.length > 0;\n var resolvedStateValue = willTransition ? getValue(this.machine, configuration) : undefined;\n var historyValue = currentState ? currentState.historyValue ? currentState.historyValue : stateTransition.source ? this.machine.historyValue(currentState.value) : undefined : undefined;\n var currentContext = currentState ? currentState.context : context;\n var actions = this.getActions(stateTransition, currentContext, _event, currentState);\n var activities = currentState ? __assign({}, currentState.activities) : {};\n\n try {\n for (var actions_1 = __values(actions), actions_1_1 = actions_1.next(); !actions_1_1.done; actions_1_1 = actions_1.next()) {\n var action = actions_1_1.value;\n\n if (action.type === start$1) {\n activities[action.activity.type] = action;\n } else if (action.type === stop$1) {\n activities[action.activity.type] = false;\n }\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (actions_1_1 && !actions_1_1.done && (_a = actions_1[\"return\"])) _a.call(actions_1);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n var _b = __read(partition(actions, function (action) {\n return action.type === assign;\n }), 2),\n assignActions = _b[0],\n otherActions = _b[1];\n\n var updatedContext = assignActions.length ? updateContext(currentContext, _event, assignActions, currentState) : currentContext;\n var resolvedActions = flatten(otherActions.map(function (actionObject) {\n switch (actionObject.type) {\n case raise$1:\n return resolveRaise(actionObject);\n\n case send:\n var sendAction = resolveSend(actionObject, updatedContext, _event, _this.machine.options.delays); // TODO: fix ActionTypes.Init\n\n if (!IS_PRODUCTION) {\n // warn after resolving as we can create better contextual message here\n warn(!isString(actionObject.delay) || typeof sendAction.delay === 'number', // tslint:disable-next-line:max-line-length\n \"No delay reference for delay expression '\" + actionObject.delay + \"' was found on machine '\" + _this.machine.id + \"'\");\n }\n\n return sendAction;\n\n case log:\n return resolveLog(actionObject, updatedContext, _event);\n\n case pure:\n return actionObject.get(updatedContext, _event.data) || [];\n\n default:\n return toActionObject(actionObject, _this.options.actions);\n }\n }));\n\n var _c = __read(partition(resolvedActions, function (action) {\n return action.type === raise$1 || action.type === send && action.to === SpecialTargets.Internal;\n }), 2),\n raisedEvents = _c[0],\n nonRaisedActions = _c[1];\n\n var invokeActions = resolvedActions.filter(function (action) {\n return action.type === start$1 && action.activity.type === invoke;\n });\n var children = invokeActions.reduce(function (acc, action) {\n acc[action.activity.id] = createInvocableActor(action.activity);\n return acc;\n }, currentState ? __assign({}, currentState.children) : {});\n var resolvedConfiguration = resolvedStateValue ? stateTransition.configuration : currentState ? currentState.configuration : [];\n var meta = resolvedConfiguration.reduce(function (acc, stateNode) {\n if (stateNode.meta !== undefined) {\n acc[stateNode.id] = stateNode.meta;\n }\n\n return acc;\n }, {});\n var isDone = isInFinalState(resolvedConfiguration, this);\n var nextState = new State({\n value: resolvedStateValue || currentState.value,\n context: updatedContext,\n _event: _event,\n // Persist _sessionid between states\n _sessionid: currentState ? currentState._sessionid : null,\n historyValue: resolvedStateValue ? historyValue ? updateHistoryValue(historyValue, resolvedStateValue) : undefined : currentState ? currentState.historyValue : undefined,\n history: !resolvedStateValue || stateTransition.source ? currentState : undefined,\n actions: resolvedStateValue ? nonRaisedActions : [],\n activities: resolvedStateValue ? activities : currentState ? currentState.activities : {},\n meta: resolvedStateValue ? meta : currentState ? currentState.meta : undefined,\n events: [],\n configuration: resolvedConfiguration,\n transitions: stateTransition.transitions,\n children: children,\n done: isDone\n });\n nextState.changed = _event.name === update || !!assignActions.length; // Dispose of penultimate histories to prevent memory leaks\n\n var history = nextState.history;\n\n if (history) {\n delete history.history;\n }\n\n if (!resolvedStateValue) {\n return nextState;\n }\n\n var maybeNextState = nextState;\n\n if (!isDone) {\n var isTransient = this._transient || configuration.some(function (stateNode) {\n return stateNode._transient;\n });\n\n if (isTransient) {\n maybeNextState = this.resolveRaisedTransition(maybeNextState, {\n type: nullEvent\n }, _event);\n }\n\n while (raisedEvents.length) {\n var raisedEvent = raisedEvents.shift();\n maybeNextState = this.resolveRaisedTransition(maybeNextState, raisedEvent._event, _event);\n }\n } // Detect if state changed\n\n\n var changed = maybeNextState.changed || (history ? !!maybeNextState.actions.length || !!assignActions.length || _typeof(history.value) !== _typeof(maybeNextState.value) || !stateValuesEqual(maybeNextState.value, history.value) : undefined);\n maybeNextState.changed = changed; // Preserve original history after raised events\n\n maybeNextState.historyValue = nextState.historyValue;\n maybeNextState.history = history;\n return maybeNextState;\n };\n /**\r\n * Returns the child state node from its relative `stateKey`, or throws.\r\n */\n\n\n StateNode.prototype.getStateNode = function (stateKey) {\n if (isStateId(stateKey)) {\n return this.machine.getStateNodeById(stateKey);\n }\n\n if (!this.states) {\n throw new Error(\"Unable to retrieve child state '\" + stateKey + \"' from '\" + this.id + \"'; no child states exist.\");\n }\n\n var result = this.states[stateKey];\n\n if (!result) {\n throw new Error(\"Child state '\" + stateKey + \"' does not exist on '\" + this.id + \"'\");\n }\n\n return result;\n };\n /**\r\n * Returns the state node with the given `stateId`, or throws.\r\n *\r\n * @param stateId The state ID. The prefix \"#\" is removed.\r\n */\n\n\n StateNode.prototype.getStateNodeById = function (stateId) {\n var resolvedStateId = isStateId(stateId) ? stateId.slice(STATE_IDENTIFIER.length) : stateId;\n\n if (resolvedStateId === this.id) {\n return this;\n }\n\n var stateNode = this.machine.idMap[resolvedStateId];\n\n if (!stateNode) {\n throw new Error(\"Child state node '#\" + resolvedStateId + \"' does not exist on machine '\" + this.id + \"'\");\n }\n\n return stateNode;\n };\n /**\r\n * Returns the relative state node from the given `statePath`, or throws.\r\n *\r\n * @param statePath The string or string array relative path to the state node.\r\n */\n\n\n StateNode.prototype.getStateNodeByPath = function (statePath) {\n if (typeof statePath === 'string' && isStateId(statePath)) {\n try {\n return this.getStateNodeById(statePath.slice(1));\n } catch (e) {// try individual paths\n // throw e;\n }\n }\n\n var arrayStatePath = toStatePath(statePath, this.delimiter).slice();\n var currentStateNode = this;\n\n while (arrayStatePath.length) {\n var key = arrayStatePath.shift();\n\n if (!key.length) {\n break;\n }\n\n currentStateNode = currentStateNode.getStateNode(key);\n }\n\n return currentStateNode;\n };\n /**\r\n * Resolves a partial state value with its full representation in this machine.\r\n *\r\n * @param stateValue The partial state value to resolve.\r\n */\n\n\n StateNode.prototype.resolve = function (stateValue) {\n var _a;\n\n var _this = this;\n\n if (!stateValue) {\n return this.initialStateValue || EMPTY_OBJECT; // TODO: type-specific properties\n }\n\n switch (this.type) {\n case 'parallel':\n return mapValues(this.initialStateValue, function (subStateValue, subStateKey) {\n return subStateValue ? _this.getStateNode(subStateKey).resolve(stateValue[subStateKey] || subStateValue) : EMPTY_OBJECT;\n });\n\n case 'compound':\n if (isString(stateValue)) {\n var subStateNode = this.getStateNode(stateValue);\n\n if (subStateNode.type === 'parallel' || subStateNode.type === 'compound') {\n return _a = {}, _a[stateValue] = subStateNode.initialStateValue, _a;\n }\n\n return stateValue;\n }\n\n if (!keys(stateValue).length) {\n return this.initialStateValue || {};\n }\n\n return mapValues(stateValue, function (subStateValue, subStateKey) {\n return subStateValue ? _this.getStateNode(subStateKey).resolve(subStateValue) : EMPTY_OBJECT;\n });\n\n default:\n return stateValue || EMPTY_OBJECT;\n }\n };\n\n StateNode.prototype.getResolvedPath = function (stateIdentifier) {\n if (isStateId(stateIdentifier)) {\n var stateNode = this.machine.idMap[stateIdentifier.slice(STATE_IDENTIFIER.length)];\n\n if (!stateNode) {\n throw new Error(\"Unable to find state node '\" + stateIdentifier + \"'\");\n }\n\n return stateNode.path;\n }\n\n return toStatePath(stateIdentifier, this.delimiter);\n };\n\n Object.defineProperty(StateNode.prototype, \"initialStateValue\", {\n get: function get() {\n var _a;\n\n if (this.__cache.initialStateValue) {\n return this.__cache.initialStateValue;\n }\n\n var initialStateValue;\n\n if (this.type === 'parallel') {\n initialStateValue = mapFilterValues(this.states, function (state) {\n return state.initialStateValue || EMPTY_OBJECT;\n }, function (stateNode) {\n return !(stateNode.type === 'history');\n });\n } else if (this.initial !== undefined) {\n if (!this.states[this.initial]) {\n throw new Error(\"Initial state '\" + this.initial + \"' not found on '\" + this.key + \"'\");\n }\n\n initialStateValue = isLeafNode(this.states[this.initial]) ? this.initial : (_a = {}, _a[this.initial] = this.states[this.initial].initialStateValue, _a);\n }\n\n this.__cache.initialStateValue = initialStateValue;\n return this.__cache.initialStateValue;\n },\n enumerable: true,\n configurable: true\n });\n\n StateNode.prototype.getInitialState = function (stateValue, context) {\n var configuration = this.getStateNodes(stateValue);\n return this.resolveTransition({\n configuration: configuration,\n entrySet: configuration,\n exitSet: [],\n transitions: [],\n source: undefined,\n actions: []\n }, undefined, undefined, context);\n };\n\n Object.defineProperty(StateNode.prototype, \"initialState\", {\n /**\r\n * The initial State instance, which includes all actions to be executed from\r\n * entering the initial state.\r\n */\n get: function get() {\n this._init();\n\n var initialStateValue = this.initialStateValue;\n\n if (!initialStateValue) {\n throw new Error(\"Cannot retrieve initial state from simple state '\" + this.id + \"'.\");\n }\n\n return this.getInitialState(initialStateValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"target\", {\n /**\r\n * The target state value of the history state node, if it exists. This represents the\r\n * default state value to transition to if no history value exists yet.\r\n */\n get: function get() {\n var target;\n\n if (this.type === 'history') {\n var historyConfig = this.config;\n\n if (isString(historyConfig.target)) {\n target = isStateId(historyConfig.target) ? pathToStateValue(this.machine.getStateNodeById(historyConfig.target).path.slice(this.path.length - 1)) : historyConfig.target;\n } else {\n target = historyConfig.target;\n }\n }\n\n return target;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * Returns the leaf nodes from a state path relative to this state node.\r\n *\r\n * @param relativeStateId The relative state path to retrieve the state nodes\r\n * @param history The previous state to retrieve history\r\n * @param resolve Whether state nodes should resolve to initial child state nodes\r\n */\n\n StateNode.prototype.getRelativeStateNodes = function (relativeStateId, historyValue, resolve) {\n if (resolve === void 0) {\n resolve = true;\n }\n\n return resolve ? relativeStateId.type === 'history' ? relativeStateId.resolveHistory(historyValue) : relativeStateId.initialStateNodes : [relativeStateId];\n };\n\n Object.defineProperty(StateNode.prototype, \"initialStateNodes\", {\n get: function get() {\n var _this = this;\n\n if (isLeafNode(this)) {\n return [this];\n } // Case when state node is compound but no initial state is defined\n\n\n if (this.type === 'compound' && !this.initial) {\n if (!IS_PRODUCTION) {\n warn(false, \"Compound state node '\" + this.id + \"' has no initial state.\");\n }\n\n return [this];\n }\n\n var initialStateNodePaths = toStatePaths(this.initialStateValue);\n return flatten(initialStateNodePaths.map(function (initialPath) {\n return _this.getFromRelativePath(initialPath);\n }));\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * Retrieves state nodes from a relative path to this state node.\r\n *\r\n * @param relativePath The relative path from this state node\r\n * @param historyValue\r\n */\n\n StateNode.prototype.getFromRelativePath = function (relativePath) {\n if (!relativePath.length) {\n return [this];\n }\n\n var _a = __read(relativePath),\n stateKey = _a[0],\n childStatePath = _a.slice(1);\n\n if (!this.states) {\n throw new Error(\"Cannot retrieve subPath '\" + stateKey + \"' from node with no states\");\n }\n\n var childStateNode = this.getStateNode(stateKey);\n\n if (childStateNode.type === 'history') {\n return childStateNode.resolveHistory();\n }\n\n if (!this.states[stateKey]) {\n throw new Error(\"Child state '\" + stateKey + \"' does not exist on '\" + this.id + \"'\");\n }\n\n return this.states[stateKey].getFromRelativePath(childStatePath);\n };\n\n StateNode.prototype.historyValue = function (relativeStateValue) {\n if (!keys(this.states).length) {\n return undefined;\n }\n\n return {\n current: relativeStateValue || this.initialStateValue,\n states: mapFilterValues(this.states, function (stateNode, key) {\n if (!relativeStateValue) {\n return stateNode.historyValue();\n }\n\n var subStateValue = isString(relativeStateValue) ? undefined : relativeStateValue[key];\n return stateNode.historyValue(subStateValue || stateNode.initialStateValue);\n }, function (stateNode) {\n return !stateNode.history;\n })\n };\n };\n /**\r\n * Resolves to the historical value(s) of the parent state node,\r\n * represented by state nodes.\r\n *\r\n * @param historyValue\r\n */\n\n\n StateNode.prototype.resolveHistory = function (historyValue) {\n var _this = this;\n\n if (this.type !== 'history') {\n return [this];\n }\n\n var parent = this.parent;\n\n if (!historyValue) {\n var historyTarget = this.target;\n return historyTarget ? flatten(toStatePaths(historyTarget).map(function (relativeChildPath) {\n return parent.getFromRelativePath(relativeChildPath);\n })) : parent.initialStateNodes;\n }\n\n var subHistoryValue = nestedPath(parent.path, 'states')(historyValue).current;\n\n if (isString(subHistoryValue)) {\n return [parent.getStateNode(subHistoryValue)];\n }\n\n return flatten(toStatePaths(subHistoryValue).map(function (subStatePath) {\n return _this.history === 'deep' ? parent.getFromRelativePath(subStatePath) : [parent.states[subStatePath[0]]];\n }));\n };\n\n Object.defineProperty(StateNode.prototype, \"stateIds\", {\n /**\r\n * All the state node IDs of this state node and its descendant state nodes.\r\n */\n get: function get() {\n var _this = this;\n\n var childStateIds = flatten(keys(this.states).map(function (stateKey) {\n return _this.states[stateKey].stateIds;\n }));\n return [this.id].concat(childStateIds);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"events\", {\n /**\r\n * All the event types accepted by this state node and its descendants.\r\n */\n get: function get() {\n var e_7, _a, e_8, _b;\n\n if (this.__cache.events) {\n return this.__cache.events;\n }\n\n var states = this.states;\n var events = new Set(this.ownEvents);\n\n if (states) {\n try {\n for (var _c = __values(keys(states)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var stateId = _d.value;\n var state = states[stateId];\n\n if (state.states) {\n try {\n for (var _e = (e_8 = void 0, __values(state.events)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var event_1 = _f.value;\n events.add(\"\" + event_1);\n }\n } catch (e_8_1) {\n e_8 = {\n error: e_8_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_b = _e[\"return\"])) _b.call(_e);\n } finally {\n if (e_8) throw e_8.error;\n }\n }\n }\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_a = _c[\"return\"])) _a.call(_c);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n }\n\n return this.__cache.events = Array.from(events);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"ownEvents\", {\n /**\r\n * All the events that have transitions directly from this state node.\r\n *\r\n * Excludes any inert events.\r\n */\n get: function get() {\n var events = new Set(this.transitions.filter(function (transition) {\n return !(!transition.target && !transition.actions.length && transition.internal);\n }).map(function (transition) {\n return transition.eventType;\n }));\n return Array.from(events);\n },\n enumerable: true,\n configurable: true\n });\n\n StateNode.prototype.resolveTarget = function (_target) {\n var _this = this;\n\n if (_target === undefined) {\n // an undefined target signals that the state node should not transition from that state when receiving that event\n return undefined;\n }\n\n return _target.map(function (target) {\n if (!isString(target)) {\n return target;\n }\n\n var isInternalTarget = target[0] === _this.delimiter; // If internal target is defined on machine,\n // do not include machine key on target\n\n if (isInternalTarget && !_this.parent) {\n return _this.getStateNodeByPath(target.slice(1));\n }\n\n var resolvedTarget = isInternalTarget ? _this.key + target : target;\n\n if (_this.parent) {\n try {\n var targetStateNode = _this.parent.getStateNodeByPath(resolvedTarget);\n\n return targetStateNode;\n } catch (err) {\n throw new Error(\"Invalid transition definition for state node '\" + _this.id + \"':\\n\" + err.message);\n }\n } else {\n return _this.getStateNodeByPath(resolvedTarget);\n }\n });\n };\n\n StateNode.prototype.formatTransition = function (transitionConfig) {\n var _this = this;\n\n var normalizedTarget = normalizeTarget(transitionConfig.target);\n var internal = 'internal' in transitionConfig ? transitionConfig.internal : normalizedTarget ? normalizedTarget.some(function (_target) {\n return isString(_target) && _target[0] === _this.delimiter;\n }) : true;\n var guards = this.machine.options.guards;\n var target = this.resolveTarget(normalizedTarget);\n return __assign(__assign({}, transitionConfig), {\n actions: toActionObjects(toArray(transitionConfig.actions)),\n cond: toGuard(transitionConfig.cond, guards),\n target: target,\n source: this,\n internal: internal,\n eventType: transitionConfig.event\n });\n };\n\n StateNode.prototype.formatTransitions = function () {\n var e_9, _a;\n\n var _this = this;\n\n var onConfig;\n\n if (!this.config.on) {\n onConfig = [];\n } else if (Array.isArray(this.config.on)) {\n onConfig = this.config.on;\n } else {\n var _b = this.config.on,\n _c = WILDCARD,\n _d = _b[_c],\n wildcardConfigs = _d === void 0 ? [] : _d,\n strictOnConfigs_1 = __rest(_b, [_typeof(_c) === \"symbol\" ? _c : _c + \"\"]);\n\n onConfig = flatten(keys(strictOnConfigs_1).map(function (key) {\n var arrayified = toTransitionConfigArray(key, strictOnConfigs_1[key]);\n\n if (!IS_PRODUCTION) {\n validateArrayifiedTransitions(_this, key, arrayified);\n }\n\n return arrayified;\n }).concat(toTransitionConfigArray(WILDCARD, wildcardConfigs)));\n }\n\n var doneConfig = this.config.onDone ? toTransitionConfigArray(String(done(this.id)), this.config.onDone) : [];\n var invokeConfig = flatten(this.invoke.map(function (invokeDef) {\n var settleTransitions = [];\n\n if (invokeDef.onDone) {\n settleTransitions.push.apply(settleTransitions, __spread(toTransitionConfigArray(String(doneInvoke(invokeDef.id)), invokeDef.onDone)));\n }\n\n if (invokeDef.onError) {\n settleTransitions.push.apply(settleTransitions, __spread(toTransitionConfigArray(String(error(invokeDef.id)), invokeDef.onError)));\n }\n\n return settleTransitions;\n }));\n var delayedTransitions = this.after;\n var formattedTransitions = flatten(__spread(doneConfig, invokeConfig, onConfig).map(function (transitionConfig) {\n return toArray(transitionConfig).map(function (transition) {\n return _this.formatTransition(transition);\n });\n }));\n\n try {\n for (var delayedTransitions_1 = __values(delayedTransitions), delayedTransitions_1_1 = delayedTransitions_1.next(); !delayedTransitions_1_1.done; delayedTransitions_1_1 = delayedTransitions_1.next()) {\n var delayedTransition = delayedTransitions_1_1.value;\n formattedTransitions.push(delayedTransition);\n }\n } catch (e_9_1) {\n e_9 = {\n error: e_9_1\n };\n } finally {\n try {\n if (delayedTransitions_1_1 && !delayedTransitions_1_1.done && (_a = delayedTransitions_1[\"return\"])) _a.call(delayedTransitions_1);\n } finally {\n if (e_9) throw e_9.error;\n }\n }\n\n return formattedTransitions;\n };\n\n return StateNode;\n}();\n\nexport { StateNode };","import { isString } from './is';\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 */\n\nexport function htmlTreeAsString(elem) {\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 var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0; // eslint-disable-next-line no-plusplus\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem); // 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\n if (nextStr === 'html' || height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN) {\n break;\n }\n\n out.push(nextStr);\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 * 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 */\n\nfunction _htmlElementAsString(el) {\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n if (elem.id) {\n out.push(\"#\" + elem.id);\n } // eslint-disable-next-line prefer-const\n\n\n className = elem.className;\n\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n\n return out.join('');\n}","import { logger } from './logger';\nimport { getGlobalObject } from './misc';\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\n\nexport function supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\n\nexport function supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\n\nexport function supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\n\nexport function supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\n\n\nexport function supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n\n var global = getGlobalObject(); // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n\n if (isNativeFetch(global.fetch)) {\n return true;\n } // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n\n\n var result = false;\n var doc = global.document; // eslint-disable-next-line deprecation/deprecation\n\n if (doc && typeof doc.createElement === \"function\") {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n\n doc.head.removeChild(sandbox);\n } catch (err) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\n\nexport function supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\n\nexport function supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin'\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\n\nexport function supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n var chrome = global.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}","function createNullActor(id) {\n return {\n id: id,\n send: function send() {\n return void 0;\n },\n subscribe: function subscribe() {\n return {\n unsubscribe: function unsubscribe() {\n return void 0;\n }\n };\n },\n toJSON: function toJSON() {\n return {\n id: id\n };\n }\n };\n}\n/**\r\n * Creates a null actor that is able to be invoked given the provided\r\n * invocation information in its `.meta` value.\r\n *\r\n * @param invokeDefinition The meta information needed to invoke the actor.\r\n */\n\n\nfunction createInvocableActor(invokeDefinition) {\n var tempActor = createNullActor(invokeDefinition.id);\n tempActor.meta = invokeDefinition;\n return tempActor;\n}\n\nfunction isActor(item) {\n try {\n return typeof item.send === 'function';\n } catch (e) {\n return false;\n }\n}\n\nexport { createInvocableActor, createNullActor, isActor };","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Text } from './Text';\nimport { findAllByType } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { filterProps } from '../util/types';\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height; // Define vertical offsets and position inverts based on the value being positive or negative\n\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end'; // Define horizontal offsets and position inverts based on the value being positive or negative\n\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nexport function Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n\n if (!viewBox || _isNil(value) && _isNil(children) && ! /*#__PURE__*/isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nLabel.defaultProps = {\n offset: 5\n};\n\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n\n if (labelViewBox) {\n return labelViewBox;\n }\n\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","var children = /*#__PURE__*/new Map();\nvar sessionIdIndex = 0;\nvar registry = {\n bookId: function bookId() {\n return \"x:\" + sessionIdIndex++;\n },\n register: function register(id, actor) {\n children.set(id, actor);\n return id;\n },\n get: function get(id) {\n return children.get(id);\n },\n free: function free(id) {\n children[\"delete\"](id);\n }\n};\nexport { registry };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar freeGlobal = require('./_freeGlobal');\n/** Detect free variable `self`. */\n\n\nvar freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\nmodule.exports = root;","function _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\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 * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define(\"pdfjs-dist/build/pdf\", [], factory);else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') exports[\"pdfjs-dist/build/pdf\"] = factory();else root[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(this, function () {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __w_pdfjs_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __w_pdfjs_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __w_pdfjs_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __w_pdfjs_require__.d = function (exports, name, getter) {\n /******/\n if (!__w_pdfjs_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __w_pdfjs_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __w_pdfjs_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __w_pdfjs_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && _typeof(value) === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __w_pdfjs_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) {\n __w_pdfjs_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n }\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __w_pdfjs_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __w_pdfjs_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __w_pdfjs_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __w_pdfjs_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n /******/\n }(\n /************************************************************************/\n\n /******/\n [\n /* 0 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var pdfjsVersion = '2.4.456';\n var pdfjsBuild = '228a591c';\n\n var pdfjsSharedUtil = __w_pdfjs_require__(1);\n\n var pdfjsDisplayAPI = __w_pdfjs_require__(3);\n\n var pdfjsDisplayTextLayer = __w_pdfjs_require__(16);\n\n var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(17);\n\n var pdfjsDisplayDisplayUtils = __w_pdfjs_require__(4);\n\n var pdfjsDisplaySVG = __w_pdfjs_require__(18);\n\n var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(10);\n\n var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(6);\n\n {\n var _w_pdfjs_require__ = __w_pdfjs_require__(7),\n isNodeJS = _w_pdfjs_require__.isNodeJS;\n\n if (isNodeJS) {\n var PDFNodeStream = __w_pdfjs_require__(19).PDFNodeStream;\n\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {\n return new PDFNodeStream(params);\n });\n } else {\n var PDFNetworkStream = __w_pdfjs_require__(22).PDFNetworkStream;\n\n var PDFFetchStream;\n\n if (pdfjsDisplayDisplayUtils.isFetchSupported()) {\n PDFFetchStream = __w_pdfjs_require__(23).PDFFetchStream;\n }\n\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {\n if (PDFFetchStream && pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n\n return new PDFNetworkStream(params);\n });\n }\n }\n exports.build = pdfjsDisplayAPI.build;\n exports.version = pdfjsDisplayAPI.version;\n exports.getDocument = pdfjsDisplayAPI.getDocument;\n exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;\n exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;\n exports.PDFWorker = pdfjsDisplayAPI.PDFWorker;\n exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;\n exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;\n exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;\n exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;\n exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;\n exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;\n exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;\n exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;\n exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;\n exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;\n exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException;\n exports.OPS = pdfjsSharedUtil.OPS;\n exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;\n exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;\n exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;\n exports.createObjectURL = pdfjsSharedUtil.createObjectURL;\n exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;\n exports.shadow = pdfjsSharedUtil.shadow;\n exports.Util = pdfjsSharedUtil.Util;\n exports.RenderingCancelledException = pdfjsDisplayDisplayUtils.RenderingCancelledException;\n exports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl;\n exports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget;\n exports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes;\n exports.loadScript = pdfjsDisplayDisplayUtils.loadScript;\n exports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString;\n exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;\n exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams;\n /***/\n },\n /* 1 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.arrayByteLength = arrayByteLength;\n exports.arraysToBytes = arraysToBytes;\n exports.assert = assert;\n exports.bytesToString = bytesToString;\n exports.createPromiseCapability = createPromiseCapability;\n exports.getVerbosityLevel = getVerbosityLevel;\n exports.info = info;\n exports.isArrayBuffer = isArrayBuffer;\n exports.isArrayEqual = isArrayEqual;\n exports.isBool = isBool;\n exports.isEmptyObj = isEmptyObj;\n exports.isNum = isNum;\n exports.isString = isString;\n exports.isSameOrigin = isSameOrigin;\n exports.createValidAbsoluteUrl = createValidAbsoluteUrl;\n exports.removeNullCharacters = removeNullCharacters;\n exports.setVerbosityLevel = setVerbosityLevel;\n exports.shadow = shadow;\n exports.string32 = string32;\n exports.stringToBytes = stringToBytes;\n exports.stringToPDFString = stringToPDFString;\n exports.stringToUTF8String = stringToUTF8String;\n exports.utf8StringToString = utf8StringToString;\n exports.warn = warn;\n exports.unreachable = unreachable;\n exports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0;\n\n __w_pdfjs_require__(2);\n\n var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\n exports.IDENTITY_MATRIX = IDENTITY_MATRIX;\n var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\n var NativeImageDecoding = {\n NONE: \"none\",\n DECODE: \"decode\",\n DISPLAY: \"display\"\n };\n exports.NativeImageDecoding = NativeImageDecoding;\n var PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n };\n exports.PermissionFlag = PermissionFlag;\n var TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n };\n exports.TextRenderingMode = TextRenderingMode;\n var ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n };\n exports.ImageKind = ImageKind;\n var AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n };\n exports.AnnotationType = AnnotationType;\n var AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n };\n exports.AnnotationStateModelType = AnnotationStateModelType;\n var AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n };\n exports.AnnotationMarkedState = AnnotationMarkedState;\n var AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n };\n exports.AnnotationReviewState = AnnotationReviewState;\n var AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n };\n exports.AnnotationReplyType = AnnotationReplyType;\n var AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n };\n exports.AnnotationFlag = AnnotationFlag;\n var AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n };\n exports.AnnotationFieldFlag = AnnotationFieldFlag;\n var AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n };\n exports.AnnotationBorderStyleType = AnnotationBorderStyleType;\n var StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\"\n };\n exports.StreamType = StreamType;\n var FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\"\n };\n exports.FontType = FontType;\n var VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n };\n exports.VerbosityLevel = VerbosityLevel;\n var CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n };\n exports.CMapCompressionType = CMapCompressionType;\n var OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n };\n exports.OPS = OPS;\n var UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n font: \"font\"\n };\n exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\n var PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n };\n exports.PasswordResponses = PasswordResponses;\n var verbosity = VerbosityLevel.WARNINGS;\n\n function setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n }\n\n function getVerbosityLevel() {\n return verbosity;\n }\n\n function info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(\"Info: \".concat(msg));\n }\n }\n\n function warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(\"Warning: \".concat(msg));\n }\n }\n\n function unreachable(msg) {\n throw new Error(msg);\n }\n\n function assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n }\n\n function isSameOrigin(baseUrl, otherUrl) {\n var base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n var other = new URL(otherUrl, base);\n return base.origin === other.origin;\n }\n\n function _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n }\n\n function createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n\n try {\n var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n\n return null;\n }\n\n function shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n }\n\n var BaseException = function BaseExceptionClosure() {\n function BaseException(message) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = this.constructor.name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n }();\n\n exports.BaseException = BaseException;\n\n var PasswordException = /*#__PURE__*/function (_BaseException) {\n _inherits(PasswordException, _BaseException);\n\n var _super = _createSuper(PasswordException);\n\n function PasswordException(msg, code) {\n var _this;\n\n _classCallCheck(this, PasswordException);\n\n _this = _super.call(this, msg);\n _this.code = code;\n return _this;\n }\n\n return PasswordException;\n }(BaseException);\n\n exports.PasswordException = PasswordException;\n\n var UnknownErrorException = /*#__PURE__*/function (_BaseException2) {\n _inherits(UnknownErrorException, _BaseException2);\n\n var _super2 = _createSuper(UnknownErrorException);\n\n function UnknownErrorException(msg, details) {\n var _this2;\n\n _classCallCheck(this, UnknownErrorException);\n\n _this2 = _super2.call(this, msg);\n _this2.details = details;\n return _this2;\n }\n\n return UnknownErrorException;\n }(BaseException);\n\n exports.UnknownErrorException = UnknownErrorException;\n\n var InvalidPDFException = /*#__PURE__*/function (_BaseException3) {\n _inherits(InvalidPDFException, _BaseException3);\n\n var _super3 = _createSuper(InvalidPDFException);\n\n function InvalidPDFException() {\n _classCallCheck(this, InvalidPDFException);\n\n return _super3.apply(this, arguments);\n }\n\n return InvalidPDFException;\n }(BaseException);\n\n exports.InvalidPDFException = InvalidPDFException;\n\n var MissingPDFException = /*#__PURE__*/function (_BaseException4) {\n _inherits(MissingPDFException, _BaseException4);\n\n var _super4 = _createSuper(MissingPDFException);\n\n function MissingPDFException() {\n _classCallCheck(this, MissingPDFException);\n\n return _super4.apply(this, arguments);\n }\n\n return MissingPDFException;\n }(BaseException);\n\n exports.MissingPDFException = MissingPDFException;\n\n var UnexpectedResponseException = /*#__PURE__*/function (_BaseException5) {\n _inherits(UnexpectedResponseException, _BaseException5);\n\n var _super5 = _createSuper(UnexpectedResponseException);\n\n function UnexpectedResponseException(msg, status) {\n var _this3;\n\n _classCallCheck(this, UnexpectedResponseException);\n\n _this3 = _super5.call(this, msg);\n _this3.status = status;\n return _this3;\n }\n\n return UnexpectedResponseException;\n }(BaseException);\n\n exports.UnexpectedResponseException = UnexpectedResponseException;\n\n var FormatError = /*#__PURE__*/function (_BaseException6) {\n _inherits(FormatError, _BaseException6);\n\n var _super6 = _createSuper(FormatError);\n\n function FormatError() {\n _classCallCheck(this, FormatError);\n\n return _super6.apply(this, arguments);\n }\n\n return FormatError;\n }(BaseException);\n\n exports.FormatError = FormatError;\n\n var AbortException = /*#__PURE__*/function (_BaseException7) {\n _inherits(AbortException, _BaseException7);\n\n var _super7 = _createSuper(AbortException);\n\n function AbortException() {\n _classCallCheck(this, AbortException);\n\n return _super7.apply(this, arguments);\n }\n\n return AbortException;\n }(BaseException);\n\n exports.AbortException = AbortException;\n var NullCharactersRegExp = /\\x00/g;\n\n function removeNullCharacters(str) {\n if (typeof str !== \"string\") {\n warn(\"The argument for removeNullCharacters must be a string.\");\n return str;\n }\n\n return str.replace(NullCharactersRegExp, \"\");\n }\n\n function bytesToString(bytes) {\n assert(bytes !== null && _typeof(bytes) === \"object\" && bytes.length !== undefined, \"Invalid argument for bytesToString\");\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n var strBuf = [];\n\n for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n var chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n\n return strBuf.join(\"\");\n }\n\n function stringToBytes(str) {\n assert(typeof str === \"string\", \"Invalid argument for stringToBytes\");\n var length = str.length;\n var bytes = new Uint8Array(length);\n\n for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n }\n\n function arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n }\n\n function arraysToBytes(arr) {\n var length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n var resultLength = 0;\n\n for (var i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n var pos = 0;\n var data = new Uint8Array(resultLength);\n\n for (var _i = 0; _i < length; _i++) {\n var item = arr[_i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n var itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n }\n\n function string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n }\n\n function isLittleEndian() {\n var buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n }\n\n var IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n }\n\n };\n exports.IsLittleEndianCached = IsLittleEndianCached;\n\n function isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n }\n\n var IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n }\n\n };\n exports.IsEvalSupportedCached = IsEvalSupportedCached;\n var rgbBuf = [\"rgb(\", 0, \",\", 0, \",\", 0, \")\"];\n\n var Util = /*#__PURE__*/function () {\n function Util() {\n _classCallCheck(this, Util);\n }\n\n _createClass(Util, null, [{\n key: \"makeCssRgb\",\n value: function makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join(\"\");\n }\n }, {\n key: \"transform\",\n value: function transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n }, {\n key: \"applyTransform\",\n value: function applyTransform(p, m) {\n var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n }, {\n key: \"applyInverseTransform\",\n value: function applyInverseTransform(p, m) {\n var d = m[0] * m[3] - m[1] * m[2];\n var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n }, {\n key: \"getAxialAlignedBoundingBox\",\n value: function getAxialAlignedBoundingBox(r, m) {\n var p1 = Util.applyTransform(r, m);\n var p2 = Util.applyTransform(r.slice(2, 4), m);\n var p3 = Util.applyTransform([r[0], r[3]], m);\n var p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n }, {\n key: \"inverseTransform\",\n value: function inverseTransform(m) {\n var d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n }, {\n key: \"apply3dTransform\",\n value: function apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n }\n }, {\n key: \"singularValueDecompose2dScale\",\n value: function singularValueDecompose2dScale(m) {\n var transpose = [m[0], m[2], m[1], m[3]];\n var a = m[0] * transpose[0] + m[1] * transpose[2];\n var b = m[0] * transpose[1] + m[1] * transpose[3];\n var c = m[2] * transpose[0] + m[3] * transpose[2];\n var d = m[2] * transpose[1] + m[3] * transpose[3];\n var first = (a + d) / 2;\n var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n var sx = first + second || 1;\n var sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n }, {\n key: \"normalizeRect\",\n value: function normalizeRect(rect) {\n var r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n }, {\n key: \"intersect\",\n value: function intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n var orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n var result = [];\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\n }\n }]);\n\n return Util;\n }();\n\n exports.Util = Util;\n var PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];\n\n function stringToPDFString(str) {\n var length = str.length,\n strBuf = [];\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n for (var i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n for (var _i2 = 2; _i2 < length; _i2 += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(_i2 + 1) << 8 | str.charCodeAt(_i2)));\n }\n } else {\n for (var _i3 = 0; _i3 < length; ++_i3) {\n var code = PDFStringTranslateTable[str.charCodeAt(_i3)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(_i3));\n }\n }\n\n return strBuf.join(\"\");\n }\n\n function stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n }\n\n function utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n }\n\n function isEmptyObj(obj) {\n for (var key in obj) {\n return false;\n }\n\n return true;\n }\n\n function isBool(v) {\n return typeof v === \"boolean\";\n }\n\n function isNum(v) {\n return typeof v === \"number\";\n }\n\n function isString(v) {\n return typeof v === \"string\";\n }\n\n function isArrayBuffer(v) {\n return _typeof(v) === \"object\" && v !== null && v.byteLength !== undefined;\n }\n\n function isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n return arr1.every(function (element, index) {\n return element === arr2[index];\n });\n }\n\n function createPromiseCapability() {\n var capability = Object.create(null);\n var isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get: function get() {\n return isSettled;\n }\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n }\n\n var createObjectURL = function createObjectURLClosure() {\n var digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n return function createObjectURL(data, contentType) {\n var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!forceDataSchema && URL.createObjectURL) {\n var blob = new Blob([data], {\n type: contentType\n });\n return URL.createObjectURL(blob);\n }\n\n var buffer = \"data:\".concat(contentType, \";base64,\");\n\n for (var i = 0, ii = data.length; i < ii; i += 3) {\n var b1 = data[i] & 0xff;\n var b2 = data[i + 1] & 0xff;\n var b3 = data[i + 2] & 0xff;\n var d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n var d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n var d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n\n return buffer;\n };\n }();\n\n exports.createObjectURL = createObjectURL;\n /***/\n },\n /* 2 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n ;\n /***/\n },\n /* 3 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.getDocument = getDocument;\n exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\n exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var _display_utils = __w_pdfjs_require__(4);\n\n var _font_loader = __w_pdfjs_require__(5);\n\n var _api_compatibility = __w_pdfjs_require__(6);\n\n var _canvas = __w_pdfjs_require__(8);\n\n var _worker_options = __w_pdfjs_require__(10);\n\n var _is_node = __w_pdfjs_require__(7);\n\n var _message_handler = __w_pdfjs_require__(11);\n\n var _metadata = __w_pdfjs_require__(12);\n\n var _transport_stream = __w_pdfjs_require__(14);\n\n var _webgl = __w_pdfjs_require__(15);\n\n var DEFAULT_RANGE_CHUNK_SIZE = 65536;\n var RENDERING_CANCELLED_TIMEOUT = 100;\n var createPDFNetworkStream;\n\n function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n }\n\n function getDocument(src) {\n var task = new PDFDocumentLoadingTask();\n var source;\n\n if (typeof src === \"string\") {\n source = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n source = {\n range: src\n };\n } else {\n if (_typeof(src) !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, \" + \"need either Uint8Array, string or a parameter object\");\n }\n\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n\n source = src;\n }\n\n var params = Object.create(null);\n var rangeTransport = null,\n worker = null;\n\n for (var key in source) {\n if (key === \"url\" && typeof window !== \"undefined\") {\n params[key] = new URL(source[key], window.location).href;\n continue;\n } else if (key === \"range\") {\n rangeTransport = source[key];\n continue;\n } else if (key === \"worker\") {\n worker = source[key];\n continue;\n } else if (key === \"data\" && !(source[key] instanceof Uint8Array)) {\n var pdfBytes = source[key];\n\n if (typeof pdfBytes === \"string\") {\n params[key] = (0, _util.stringToBytes)(pdfBytes);\n } else if (_typeof(pdfBytes) === \"object\" && pdfBytes !== null && !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if ((0, _util.isArrayBuffer)(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error(\"Invalid PDF binary data: either typed array, \" + \"string or array-like object is expected in the \" + \"data property.\");\n }\n\n continue;\n }\n\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.pdfBug = params.pdfBug === true;\n var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);\n\n if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {\n params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE;\n }\n\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n if (typeof params.disableCreateObjectURL !== \"boolean\") {\n params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n var workerParams = {\n verbosity: params.verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n var docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n var networkStream;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n });\n }\n\n var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n var transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n })[\"catch\"](task._capability.reject);\n return task;\n }\n\n function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed\"));\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n }\n\n return worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n docId: docId,\n apiVersion: '2.4.456',\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n disableCreateObjectURL: source.disableCreateObjectURL,\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n nativeImageDecoderSupport: source.nativeImageDecoderSupport,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported\n }).then(function (workerId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n return workerId;\n });\n }\n\n var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {\n var nextDocumentId = 0;\n\n var PDFDocumentLoadingTask = /*#__PURE__*/function () {\n function PDFDocumentLoadingTask() {\n _classCallCheck(this, PDFDocumentLoadingTask);\n\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = \"d\" + nextDocumentId++;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n _createClass(PDFDocumentLoadingTask, [{\n key: \"promise\",\n get: function get() {\n return this._capability.promise;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this4 = this;\n\n this.destroyed = true;\n var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();\n return transportDestroyed.then(function () {\n _this4._transport = null;\n\n if (_this4._worker) {\n _this4._worker.destroy();\n\n _this4._worker = null;\n }\n });\n }\n }, {\n key: \"then\",\n value: function then(onFulfilled, onRejected) {\n throw new Error(\"Removed API method: \" + \"PDFDocumentLoadingTask.then, use the `promise` getter instead.\");\n }\n }]);\n\n return PDFDocumentLoadingTask;\n }();\n\n return PDFDocumentLoadingTask;\n }();\n\n var PDFDataRangeTransport = /*#__PURE__*/function () {\n function PDFDataRangeTransport(length, initialData) {\n var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n _classCallCheck(this, PDFDataRangeTransport);\n\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n _createClass(PDFDataRangeTransport, [{\n key: \"addRangeListener\",\n value: function addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n }, {\n key: \"addProgressListener\",\n value: function addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n }, {\n key: \"addProgressiveReadListener\",\n value: function addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n }, {\n key: \"addProgressiveDoneListener\",\n value: function addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n }, {\n key: \"onDataRange\",\n value: function onDataRange(begin, chunk) {\n var _iterator = _createForOfIteratorHelper(this._rangeListeners),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var listener = _step.value;\n listener(begin, chunk);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"onDataProgress\",\n value: function onDataProgress(loaded, total) {\n var _this5 = this;\n\n this._readyCapability.promise.then(function () {\n var _iterator2 = _createForOfIteratorHelper(_this5._progressListeners),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var listener = _step2.value;\n listener(loaded, total);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n });\n }\n }, {\n key: \"onDataProgressiveRead\",\n value: function onDataProgressiveRead(chunk) {\n var _this6 = this;\n\n this._readyCapability.promise.then(function () {\n var _iterator3 = _createForOfIteratorHelper(_this6._progressiveReadListeners),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var listener = _step3.value;\n listener(chunk);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n });\n }\n }, {\n key: \"onDataProgressiveDone\",\n value: function onDataProgressiveDone() {\n var _this7 = this;\n\n this._readyCapability.promise.then(function () {\n var _iterator4 = _createForOfIteratorHelper(_this7._progressiveDoneListeners),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var listener = _step4.value;\n listener();\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n });\n }\n }, {\n key: \"transportReady\",\n value: function transportReady() {\n this._readyCapability.resolve();\n }\n }, {\n key: \"requestDataRange\",\n value: function requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n }, {\n key: \"abort\",\n value: function abort() {}\n }]);\n\n return PDFDataRangeTransport;\n }();\n\n exports.PDFDataRangeTransport = PDFDataRangeTransport;\n\n var PDFDocumentProxy = /*#__PURE__*/function () {\n function PDFDocumentProxy(pdfInfo, transport) {\n _classCallCheck(this, PDFDocumentProxy);\n\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n _createClass(PDFDocumentProxy, [{\n key: \"numPages\",\n get: function get() {\n return this._pdfInfo.numPages;\n }\n }, {\n key: \"fingerprint\",\n get: function get() {\n return this._pdfInfo.fingerprint;\n }\n }, {\n key: \"getPage\",\n value: function getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n }, {\n key: \"getPageIndex\",\n value: function getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n }, {\n key: \"getDestinations\",\n value: function getDestinations() {\n return this._transport.getDestinations();\n }\n }, {\n key: \"getDestination\",\n value: function getDestination(id) {\n return this._transport.getDestination(id);\n }\n }, {\n key: \"getPageLabels\",\n value: function getPageLabels() {\n return this._transport.getPageLabels();\n }\n }, {\n key: \"getPageLayout\",\n value: function getPageLayout() {\n return this._transport.getPageLayout();\n }\n }, {\n key: \"getPageMode\",\n value: function getPageMode() {\n return this._transport.getPageMode();\n }\n }, {\n key: \"getViewerPreferences\",\n value: function getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n }, {\n key: \"getOpenAction\",\n value: function getOpenAction() {\n return this._transport.getOpenAction();\n }\n }, {\n key: \"getOpenActionDestination\",\n value: function getOpenActionDestination() {\n (0, _display_utils.deprecated)(\"getOpenActionDestination, use getOpenAction instead.\");\n return this.getOpenAction().then(function (openAction) {\n return openAction && openAction.dest ? openAction.dest : null;\n });\n }\n }, {\n key: \"getAttachments\",\n value: function getAttachments() {\n return this._transport.getAttachments();\n }\n }, {\n key: \"getJavaScript\",\n value: function getJavaScript() {\n return this._transport.getJavaScript();\n }\n }, {\n key: \"getOutline\",\n value: function getOutline() {\n return this._transport.getOutline();\n }\n }, {\n key: \"getPermissions\",\n value: function getPermissions() {\n return this._transport.getPermissions();\n }\n }, {\n key: \"getMetadata\",\n value: function getMetadata() {\n return this._transport.getMetadata();\n }\n }, {\n key: \"getData\",\n value: function getData() {\n return this._transport.getData();\n }\n }, {\n key: \"getDownloadInfo\",\n value: function getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n }, {\n key: \"getStats\",\n value: function getStats() {\n return this._transport.getStats();\n }\n }, {\n key: \"cleanup\",\n value: function cleanup() {\n return this._transport.startCleanup();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n return this.loadingTask.destroy();\n }\n }, {\n key: \"loadingParams\",\n get: function get() {\n return this._transport.loadingParams;\n }\n }, {\n key: \"loadingTask\",\n get: function get() {\n return this._transport.loadingTask;\n }\n }]);\n\n return PDFDocumentProxy;\n }();\n\n exports.PDFDocumentProxy = PDFDocumentProxy;\n\n var PDFPageProxy = /*#__PURE__*/function () {\n function PDFPageProxy(pageIndex, pageInfo, transport) {\n var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n _classCallCheck(this, PDFPageProxy);\n\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n\n _createClass(PDFPageProxy, [{\n key: \"pageNumber\",\n get: function get() {\n return this._pageIndex + 1;\n }\n }, {\n key: \"rotate\",\n get: function get() {\n return this._pageInfo.rotate;\n }\n }, {\n key: \"ref\",\n get: function get() {\n return this._pageInfo.ref;\n }\n }, {\n key: \"userUnit\",\n get: function get() {\n return this._pageInfo.userUnit;\n }\n }, {\n key: \"view\",\n get: function get() {\n return this._pageInfo.view;\n }\n }, {\n key: \"getViewport\",\n value: function getViewport() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n scale = _ref.scale,\n _ref$rotation = _ref.rotation,\n rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation,\n _ref$offsetX = _ref.offsetX,\n offsetX = _ref$offsetX === void 0 ? 0 : _ref$offsetX,\n _ref$offsetY = _ref.offsetY,\n offsetY = _ref$offsetY === void 0 ? 0 : _ref$offsetY,\n _ref$dontFlip = _ref.dontFlip,\n dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip;\n\n if (arguments.length > 1 || typeof arguments[0] === \"number\") {\n throw new Error(\"PDFPageProxy.getViewport is called with obsolete arguments.\");\n }\n\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale: scale,\n rotation: rotation,\n offsetX: offsetX,\n offsetY: offsetY,\n dontFlip: dontFlip\n });\n }\n }, {\n key: \"getAnnotations\",\n value: function getAnnotations() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$intent = _ref2.intent,\n intent = _ref2$intent === void 0 ? null : _ref2$intent;\n\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent);\n this.annotationsIntent = intent;\n }\n\n return this.annotationsPromise;\n }\n }, {\n key: \"render\",\n value: function render(_ref3) {\n var _this8 = this;\n\n var canvasContext = _ref3.canvasContext,\n viewport = _ref3.viewport,\n _ref3$intent = _ref3.intent,\n intent = _ref3$intent === void 0 ? \"display\" : _ref3$intent,\n _ref3$enableWebGL = _ref3.enableWebGL,\n enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL,\n _ref3$renderInteracti = _ref3.renderInteractiveForms,\n renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti,\n _ref3$transform = _ref3.transform,\n transform = _ref3$transform === void 0 ? null : _ref3$transform,\n _ref3$imageLayer = _ref3.imageLayer,\n imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer,\n _ref3$canvasFactory = _ref3.canvasFactory,\n canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory,\n _ref3$background = _ref3.background,\n background = _ref3$background === void 0 ? null : _ref3$background;\n\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n var renderingIntent = intent === \"print\" ? \"print\" : \"display\";\n this.pendingCleanup = false;\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n var intentState = this.intentStates[renderingIntent];\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n var canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();\n var webGLContext = new _webgl.WebGLContext({\n enable: enableWebGL\n });\n\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true\n });\n }\n\n var complete = function complete(error) {\n var i = intentState.renderTasks.indexOf(internalRenderTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n if (_this8.cleanupAfterRender || renderingIntent === \"print\") {\n _this8.pendingCleanup = true;\n }\n\n _this8._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n _this8._abortOperatorList({\n intentState: intentState,\n reason: error\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n if (_this8._stats) {\n _this8._stats.timeEnd(\"Rendering\");\n\n _this8._stats.timeEnd(\"Overall\");\n }\n };\n\n var internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext: canvasContext,\n viewport: viewport,\n transform: transform,\n imageLayer: imageLayer,\n background: background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n webGLContext: webGLContext,\n useRequestAnimationFrame: renderingIntent !== \"print\",\n pdfBug: this._pdfBug\n });\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n\n intentState.renderTasks.push(internalRenderTask);\n var renderTask = internalRenderTask.task;\n intentState.displayReadyCapability.promise.then(function (transparency) {\n if (_this8.pendingCleanup) {\n complete();\n return;\n }\n\n if (_this8._stats) {\n _this8._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n })[\"catch\"](complete);\n return renderTask;\n }\n }, {\n key: \"getOperatorList\",\n value: function getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n var i = intentState.renderTasks.indexOf(opListTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n var renderingIntent = \"oplist\";\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n var intentState = this.intentStates[renderingIntent];\n var opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent\n });\n }\n\n return intentState.opListReadCapability.promise;\n }\n }, {\n key: \"streamTextContent\",\n value: function streamTextContent() {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$normalizeWhites = _ref4.normalizeWhitespace,\n normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites,\n _ref4$disableCombineT = _ref4.disableCombineTextItems,\n disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT;\n\n var TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size: function size(textContent) {\n return textContent.items.length;\n }\n });\n }\n }, {\n key: \"getTextContent\",\n value: function getTextContent() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function (_ref5) {\n var _textContent$items;\n\n var value = _ref5.value,\n done = _ref5.done;\n\n if (done) {\n resolve(textContent);\n return;\n }\n\n Object.assign(textContent.styles, value.styles);\n\n (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));\n\n pump();\n }, reject);\n }\n\n var reader = readableStream.getReader();\n var textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n var _this9 = this;\n\n this.destroyed = true;\n this._transport.pageCache[this._pageIndex] = null;\n var waitOn = [];\n Object.keys(this.intentStates).forEach(function (intent) {\n var intentState = _this9.intentStates[intent];\n\n _this9._abortOperatorList({\n intentState: intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intent === \"oplist\") {\n return;\n }\n\n intentState.renderTasks.forEach(function (renderTask) {\n var renderCompleted = renderTask.capability.promise[\"catch\"](function () {});\n waitOn.push(renderCompleted);\n renderTask.cancel();\n });\n });\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n }, {\n key: \"cleanup\",\n value: function cleanup() {\n var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n }, {\n key: \"_tryCleanup\",\n value: function _tryCleanup() {\n var _this10 = this;\n\n var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) {\n var intentState = _this10.intentStates[intent];\n return intentState.renderTasks.length !== 0 || !intentState.operatorList.lastChunk;\n })) {\n return false;\n }\n\n Object.keys(this.intentStates).forEach(function (intent) {\n delete _this10.intentStates[intent];\n });\n this.objs.clear();\n this.annotationsPromise = null;\n\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n\n this.pendingCleanup = false;\n return true;\n }\n }, {\n key: \"_startRenderPage\",\n value: function _startRenderPage(transparency, intent) {\n var intentState = this.intentStates[intent];\n\n if (!intentState) {\n return;\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n }, {\n key: \"_renderPageChunk\",\n value: function _renderPageChunk(operatorListChunk, intentState) {\n for (var i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n for (var _i4 = 0; _i4 < intentState.renderTasks.length; _i4++) {\n intentState.renderTasks[_i4].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n }, {\n key: \"_pumpOperatorList\",\n value: function _pumpOperatorList(args) {\n var _this11 = this;\n\n (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected \"intent\" argument.');\n\n var readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", args);\n\n var reader = readableStream.getReader();\n var intentState = this.intentStates[args.intent];\n intentState.streamReader = reader;\n\n var pump = function pump() {\n reader.read().then(function (_ref6) {\n var value = _ref6.value,\n done = _ref6.done;\n\n if (done) {\n intentState.streamReader = null;\n return;\n }\n\n if (_this11._transport.destroyed) {\n return;\n }\n\n _this11._renderPageChunk(value, intentState);\n\n pump();\n }, function (reason) {\n intentState.streamReader = null;\n\n if (_this11._transport.destroyed) {\n return;\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n for (var i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n _this11._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n\n pump();\n }\n }, {\n key: \"_abortOperatorList\",\n value: function _abortOperatorList(_ref7) {\n var _this12 = this;\n\n var intentState = _ref7.intentState,\n reason = _ref7.reason,\n _ref7$force = _ref7.force,\n force = _ref7$force === void 0 ? false : _ref7$force;\n (0, _util.assert)(reason instanceof Error || _typeof(reason) === \"object\" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected \"reason\" argument.');\n\n if (!intentState.streamReader) {\n return;\n }\n\n if (!force) {\n if (intentState.renderTasks.length !== 0) {\n return;\n }\n\n if (reason instanceof _display_utils.RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(function () {\n _this12._abortOperatorList({\n intentState: intentState,\n reason: reason,\n force: true\n });\n\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n\n intentState.streamReader.cancel(new _util.AbortException(reason && reason.message));\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n Object.keys(this.intentStates).some(function (intent) {\n if (_this12.intentStates[intent] === intentState) {\n delete _this12.intentStates[intent];\n return true;\n }\n\n return false;\n });\n this.cleanup();\n }\n }, {\n key: \"stats\",\n get: function get() {\n return this._stats;\n }\n }]);\n\n return PDFPageProxy;\n }();\n\n exports.PDFPageProxy = PDFPageProxy;\n\n var LoopbackPort = /*#__PURE__*/function () {\n function LoopbackPort() {\n var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n _classCallCheck(this, LoopbackPort);\n\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n _createClass(LoopbackPort, [{\n key: \"postMessage\",\n value: function postMessage(obj, transfers) {\n var _this13 = this;\n\n function cloneValue(value) {\n if (_typeof(value) !== \"object\" || value === null) {\n return value;\n }\n\n if (cloned.has(value)) {\n return cloned.get(value);\n }\n\n var buffer, result;\n\n if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {\n var transferable = transfers && transfers.includes(buffer);\n\n if (transferable) {\n result = new value.constructor(buffer, value.byteOffset, value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n\n cloned.set(value, result);\n return result;\n }\n\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result);\n\n for (var i in value) {\n var desc = void 0,\n p = value;\n\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n\n if (typeof desc.value === \"undefined\") {\n continue;\n }\n\n if (typeof desc.value === \"function\") {\n if (value.hasOwnProperty && value.hasOwnProperty(i)) {\n throw new Error(\"LoopbackPort.postMessage - cannot clone: \".concat(value[i]));\n }\n\n continue;\n }\n\n result[i] = cloneValue(desc.value);\n }\n\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(function (listener) {\n listener.call(_this13, {\n data: obj\n });\n });\n\n return;\n }\n\n var cloned = new WeakMap();\n var e = {\n data: cloneValue(obj)\n };\n\n this._deferred.then(function () {\n _this13._listeners.forEach(function (listener) {\n listener.call(_this13, e);\n });\n });\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(name, listener) {\n var i = this._listeners.indexOf(listener);\n\n this._listeners.splice(i, 1);\n }\n }, {\n key: \"terminate\",\n value: function terminate() {\n this._listeners.length = 0;\n }\n }]);\n\n return LoopbackPort;\n }();\n\n exports.LoopbackPort = LoopbackPort;\n\n var PDFWorker = function PDFWorkerClosure() {\n var pdfWorkerPorts = new WeakMap();\n var isWorkerDisabled = false;\n var fallbackWorkerSrc;\n var nextFakeWorkerId = 0;\n var fakeWorkerCapability;\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n isWorkerDisabled = true;\n fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if ((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === \"object\" && \"currentScript\" in document) {\n var pdfjsFilePath = document.currentScript && document.currentScript.src;\n\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n\n function _getWorkerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (typeof fallbackWorkerSrc !== \"undefined\") {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n return fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n var mainWorkerMessageHandler;\n\n try {\n mainWorkerMessageHandler = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler;\n } catch (ex) {}\n\n return mainWorkerMessageHandler || null;\n }\n\n function setupFakeWorkerGlobal() {\n if (fakeWorkerCapability) {\n return fakeWorkerCapability.promise;\n }\n\n fakeWorkerCapability = (0, _util.createPromiseCapability)();\n\n var loader = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var mainWorkerMessageHandler, worker;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n\n if (!mainWorkerMessageHandler) {\n _context.next = 3;\n break;\n }\n\n return _context.abrupt(\"return\", mainWorkerMessageHandler);\n\n case 3:\n if (!(_is_node.isNodeJS && typeof require === \"function\")) {\n _context.next = 6;\n break;\n }\n\n worker = eval(\"require\")(_getWorkerSrc());\n return _context.abrupt(\"return\", worker.WorkerMessageHandler);\n\n case 6:\n _context.next = 8;\n return (0, _display_utils.loadScript)(_getWorkerSrc());\n\n case 8:\n return _context.abrupt(\"return\", window.pdfjsWorker.WorkerMessageHandler);\n\n case 9:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function loader() {\n return _ref8.apply(this, arguments);\n };\n }();\n\n loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);\n return fakeWorkerCapability.promise;\n }\n\n function createCDNWrapper(url) {\n var wrapper = \"importScripts('\" + url + \"');\";\n return URL.createObjectURL(new Blob([wrapper]));\n }\n\n var PDFWorker = /*#__PURE__*/function () {\n function PDFWorker() {\n var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref9$name = _ref9.name,\n name = _ref9$name === void 0 ? null : _ref9$name,\n _ref9$port = _ref9.port,\n port = _ref9$port === void 0 ? null : _ref9$port,\n _ref9$verbosity = _ref9.verbosity,\n verbosity = _ref9$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref9$verbosity;\n\n _classCallCheck(this, PDFWorker);\n\n if (port && pdfWorkerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.postMessageTransfers = true;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n pdfWorkerPorts.set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\n\n this._initialize();\n }\n\n _createClass(PDFWorker, [{\n key: \"promise\",\n get: function get() {\n return this._readyCapability.promise;\n }\n }, {\n key: \"port\",\n get: function get() {\n return this._port;\n }\n }, {\n key: \"messageHandler\",\n get: function get() {\n return this._messageHandler;\n }\n }, {\n key: \"_initializeFromPort\",\n value: function _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n\n this._messageHandler.on(\"ready\", function () {});\n\n this._readyCapability.resolve();\n }\n }, {\n key: \"_initialize\",\n value: function _initialize() {\n var _this14 = this;\n\n if (typeof Worker !== \"undefined\" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {\n var workerSrc = _getWorkerSrc();\n\n try {\n if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n\n var worker = new Worker(workerSrc);\n var messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n\n var terminateEarly = function terminateEarly() {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (_this14.destroyed) {\n _this14._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n _this14._setupFakeWorker();\n }\n };\n\n var onWorkerError = function onWorkerError() {\n if (!_this14._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", function (data) {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (_this14.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data) {\n _this14._messageHandler = messageHandler;\n _this14._port = worker;\n _this14._webWorker = worker;\n\n if (!data.supportTransfers) {\n _this14.postMessageTransfers = false;\n }\n\n _this14._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: _this14.verbosity\n });\n } else {\n _this14._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", function (data) {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (_this14.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n _this14._setupFakeWorker();\n }\n });\n\n var sendTest = function sendTest() {\n var testObj = new Uint8Array([_this14.postMessageTransfers ? 255 : 0]);\n\n try {\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n } catch (ex) {\n (0, _util.warn)(\"Cannot use postMessage transfers.\");\n testObj[0] = 0;\n messageHandler.send(\"test\", testObj);\n }\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n\n this._setupFakeWorker();\n }\n }, {\n key: \"_setupFakeWorker\",\n value: function _setupFakeWorker() {\n var _this15 = this;\n\n if (!isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n isWorkerDisabled = true;\n }\n\n setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {\n if (_this15.destroyed) {\n _this15._readyCapability.reject(new Error(\"Worker was destroyed\"));\n\n return;\n }\n\n var port = new LoopbackPort();\n _this15._port = port;\n var id = \"fake\" + nextFakeWorkerId++;\n var workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n var messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n _this15._messageHandler = messageHandler;\n\n _this15._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: _this15.verbosity\n });\n })[\"catch\"](function (reason) {\n _this15._readyCapability.reject(new Error(\"Setting up fake worker failed: \\\"\".concat(reason.message, \"\\\".\")));\n });\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n pdfWorkerPorts[\"delete\"](this._port);\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n }], [{\n key: \"fromPort\",\n value: function fromPort(params) {\n if (!params || !params.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n }\n }, {\n key: \"getWorkerSrc\",\n value: function getWorkerSrc() {\n return _getWorkerSrc();\n }\n }]);\n\n return PDFWorker;\n }();\n\n return PDFWorker;\n }();\n\n exports.PDFWorker = PDFWorker;\n\n var WorkerTransport = /*#__PURE__*/function () {\n function WorkerTransport(messageHandler, loadingTask, networkStream, params) {\n _classCallCheck(this, WorkerTransport);\n\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this)\n });\n this._params = params;\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n _createClass(WorkerTransport, [{\n key: \"destroy\",\n value: function destroy() {\n var _this16 = this;\n\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n }\n\n var waitOn = [];\n this.pageCache.forEach(function (page) {\n if (page) {\n waitOn.push(page._destroy());\n }\n });\n this.pageCache.length = 0;\n this.pagePromises.length = 0;\n var terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(function () {\n _this16.fontLoader.clear();\n\n if (_this16._networkStream) {\n _this16._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n if (_this16.messageHandler) {\n _this16.messageHandler.destroy();\n\n _this16.messageHandler = null;\n }\n\n _this16.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n }, {\n key: \"setupMessageHandler\",\n value: function setupMessageHandler() {\n var _this17 = this;\n\n var messageHandler = this.messageHandler,\n loadingTask = this.loadingTask;\n messageHandler.on(\"GetReader\", function (data, sink) {\n (0, _util.assert)(_this17._networkStream);\n _this17._fullReader = _this17._networkStream.getFullReader();\n\n _this17._fullReader.onProgress = function (evt) {\n _this17._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = function () {\n _this17._fullReader.read().then(function (_ref10) {\n var value = _ref10.value,\n done = _ref10.done;\n\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value));\n sink.enqueue(new Uint8Array(value), 1, [value]);\n })[\"catch\"](function (reason) {\n sink.error(reason);\n });\n };\n\n sink.onCancel = function (reason) {\n _this17._fullReader.cancel(reason);\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", function (data) {\n var headersCapability = (0, _util.createPromiseCapability)();\n var fullReader = _this17._fullReader;\n fullReader.headersReady.then(function () {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (_this17._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(_this17._lastProgress);\n }\n\n fullReader.onProgress = function (evt) {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", function (data, sink) {\n (0, _util.assert)(_this17._networkStream);\n\n var rangeReader = _this17._networkStream.getRangeReader(data.begin, data.end);\n\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = function () {\n rangeReader.read().then(function (_ref11) {\n var value = _ref11.value,\n done = _ref11.done;\n\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value));\n sink.enqueue(new Uint8Array(value), 1, [value]);\n })[\"catch\"](function (reason) {\n sink.error(reason);\n });\n };\n\n sink.onCancel = function (reason) {\n rangeReader.cancel(reason);\n };\n });\n messageHandler.on(\"GetDoc\", function (_ref12) {\n var pdfInfo = _ref12.pdfInfo;\n _this17._numPages = pdfInfo.numPages;\n\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, _this17));\n });\n messageHandler.on(\"DocException\", function (ex) {\n var reason;\n\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n }\n\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", function (exception) {\n _this17._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n var updatePassword = function updatePassword(password) {\n _this17._passwordCapability.resolve({\n password: password\n });\n };\n\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n _this17._passwordCapability.reject(ex);\n }\n } else {\n _this17._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n\n return _this17._passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", function (data) {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.length,\n total: data.length\n });\n }\n\n _this17.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", function (data) {\n if (_this17.destroyed) {\n return;\n }\n\n var page = _this17.pageCache[data.pageIndex];\n\n page._startRenderPage(data.transparency, data.intent);\n });\n messageHandler.on(\"commonobj\", function (data) {\n if (_this17.destroyed) {\n return;\n }\n\n var _data = _slicedToArray(data, 3),\n id = _data[0],\n type = _data[1],\n exportedData = _data[2];\n\n if (_this17.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n var params = _this17._params;\n\n if (\"error\" in exportedData) {\n var exportedError = exportedData.error;\n (0, _util.warn)(\"Error during font loading: \".concat(exportedError));\n\n _this17.commonObjs.resolve(id, exportedError);\n\n break;\n }\n\n var fontRegistry = null;\n\n if (params.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled) {\n fontRegistry = {\n registerFont: function registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n }\n };\n }\n\n var font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: _this17._onUnsupportedFeature.bind(_this17),\n fontRegistry: fontRegistry\n });\n\n _this17.fontLoader.bind(font).then(function () {\n _this17.commonObjs.resolve(id, font);\n }, function (reason) {\n messageHandler.sendWithPromise(\"FontFallback\", {\n id: id\n })[\"finally\"](function () {\n _this17.commonObjs.resolve(id, font);\n });\n });\n\n break;\n\n case \"FontPath\":\n case \"FontType3Res\":\n _this17.commonObjs.resolve(id, exportedData);\n\n break;\n\n default:\n throw new Error(\"Got unknown common object type \".concat(type));\n }\n });\n messageHandler.on(\"obj\", function (data) {\n if (_this17.destroyed) {\n return undefined;\n }\n\n var _data2 = _slicedToArray(data, 4),\n id = _data2[0],\n pageIndex = _data2[1],\n type = _data2[2],\n imageData = _data2[3];\n\n var pageProxy = _this17.pageCache[pageIndex];\n\n if (pageProxy.objs.has(id)) {\n return undefined;\n }\n\n switch (type) {\n case \"JpegStream\":\n return new Promise(function (resolve, reject) {\n var img = new Image();\n\n img.onload = function () {\n resolve(img);\n };\n\n img.onerror = function () {\n reject(new Error(\"Error during JPEG image loading\"));\n (0, _display_utils.releaseImageResources)(img);\n };\n\n img.src = imageData;\n }).then(function (img) {\n pageProxy.objs.resolve(id, img);\n });\n\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n var MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if (imageData && \"data\" in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n\n break;\n\n default:\n throw new Error(\"Got unknown object type \".concat(type));\n }\n\n return undefined;\n });\n messageHandler.on(\"DocProgress\", function (data) {\n if (_this17.destroyed) {\n return;\n }\n\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total\n });\n }\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"JpegDecode\", function (data) {\n if (_this17.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed\"));\n }\n\n if (typeof document === \"undefined\") {\n return Promise.reject(new Error('\"document\" is not defined.'));\n }\n\n var _data3 = _slicedToArray(data, 2),\n imageUrl = _data3[0],\n components = _data3[1];\n\n if (components !== 3 && components !== 1) {\n return Promise.reject(new Error(\"Only 3 components or 1 component can be returned\"));\n }\n\n return new Promise(function (resolve, reject) {\n var img = new Image();\n\n img.onload = function () {\n var width = img.width,\n height = img.height;\n var size = width * height;\n var rgbaLength = size * 4;\n var buf = new Uint8ClampedArray(size * components);\n var tmpCanvas = document.createElement(\"canvas\");\n tmpCanvas.width = width;\n tmpCanvas.height = height;\n var tmpCtx = tmpCanvas.getContext(\"2d\");\n tmpCtx.drawImage(img, 0, 0);\n var data = tmpCtx.getImageData(0, 0, width, height).data;\n\n if (components === 3) {\n for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {\n buf[j] = data[i];\n buf[j + 1] = data[i + 1];\n buf[j + 2] = data[i + 2];\n }\n } else if (components === 1) {\n for (var _i5 = 0, _j = 0; _i5 < rgbaLength; _i5 += 4, _j++) {\n buf[_j] = data[_i5];\n }\n }\n\n resolve({\n data: buf,\n width: width,\n height: height\n });\n (0, _display_utils.releaseImageResources)(img);\n tmpCanvas.width = 0;\n tmpCanvas.height = 0;\n tmpCanvas = null;\n tmpCtx = null;\n };\n\n img.onerror = function () {\n reject(new Error(\"JpegDecode failed to load image\"));\n (0, _display_utils.releaseImageResources)(img);\n };\n\n img.src = imageUrl;\n });\n });\n messageHandler.on(\"FetchBuiltInCMap\", function (data, sink) {\n if (_this17.destroyed) {\n sink.error(new Error(\"Worker was destroyed\"));\n return;\n }\n\n var fetched = false;\n\n sink.onPull = function () {\n if (fetched) {\n sink.close();\n return;\n }\n\n fetched = true;\n\n _this17.CMapReaderFactory.fetch(data).then(function (builtInCMap) {\n sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);\n })[\"catch\"](function (reason) {\n sink.error(reason);\n });\n };\n });\n }\n }, {\n key: \"_onUnsupportedFeature\",\n value: function _onUnsupportedFeature(_ref13) {\n var featureId = _ref13.featureId;\n\n if (this.destroyed) {\n return;\n }\n\n if (this.loadingTask.onUnsupportedFeature) {\n this.loadingTask.onUnsupportedFeature(featureId);\n }\n }\n }, {\n key: \"getData\",\n value: function getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n }, {\n key: \"getPage\",\n value: function getPage(pageNumber) {\n var _this18 = this;\n\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request\"));\n }\n\n var pageIndex = pageNumber - 1;\n\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\n }\n\n var promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex: pageIndex\n }).then(function (pageInfo) {\n if (_this18.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n\n var page = new PDFPageProxy(pageIndex, pageInfo, _this18, _this18._params.pdfBug);\n _this18.pageCache[pageIndex] = page;\n return page;\n });\n this.pagePromises[pageIndex] = promise;\n return promise;\n }\n }, {\n key: \"getPageIndex\",\n value: function getPageIndex(ref) {\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n ref: ref\n })[\"catch\"](function (reason) {\n return Promise.reject(new Error(reason));\n });\n }\n }, {\n key: \"getAnnotations\",\n value: function getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex: pageIndex,\n intent: intent\n });\n }\n }, {\n key: \"getDestinations\",\n value: function getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n }, {\n key: \"getDestination\",\n value: function getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id: id\n });\n }\n }, {\n key: \"getPageLabels\",\n value: function getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n }, {\n key: \"getPageLayout\",\n value: function getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n }, {\n key: \"getPageMode\",\n value: function getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n }, {\n key: \"getViewerPreferences\",\n value: function getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n }, {\n key: \"getOpenAction\",\n value: function getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n }, {\n key: \"getAttachments\",\n value: function getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n }, {\n key: \"getJavaScript\",\n value: function getJavaScript() {\n return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n }\n }, {\n key: \"getOutline\",\n value: function getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n }, {\n key: \"getPermissions\",\n value: function getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n }, {\n key: \"getMetadata\",\n value: function getMetadata() {\n var _this19 = this;\n\n return this.messageHandler.sendWithPromise(\"GetMetadata\", null).then(function (results) {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: _this19._fullReader ? _this19._fullReader.filename : null\n };\n });\n }\n }, {\n key: \"getStats\",\n value: function getStats() {\n return this.messageHandler.sendWithPromise(\"GetStats\", null);\n }\n }, {\n key: \"startCleanup\",\n value: function startCleanup() {\n var _this20 = this;\n\n return this.messageHandler.sendWithPromise(\"Cleanup\", null).then(function () {\n for (var i = 0, ii = _this20.pageCache.length; i < ii; i++) {\n var page = _this20.pageCache[i];\n\n if (page) {\n var cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(\"startCleanup: Page \".concat(i + 1, \" is currently rendering.\"));\n }\n }\n }\n\n _this20.commonObjs.clear();\n\n _this20.fontLoader.clear();\n });\n }\n }, {\n key: \"loadingParams\",\n get: function get() {\n var params = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n disableCreateObjectURL: params.disableCreateObjectURL,\n disableFontFace: params.disableFontFace,\n nativeImageDecoderSupport: params.nativeImageDecoderSupport\n });\n }\n }]);\n\n return WorkerTransport;\n }();\n\n var PDFObjects = /*#__PURE__*/function () {\n function PDFObjects() {\n _classCallCheck(this, PDFObjects);\n\n this._objs = Object.create(null);\n }\n\n _createClass(PDFObjects, [{\n key: \"_ensureObj\",\n value: function _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n\n return this._objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null,\n resolved: false\n };\n }\n }, {\n key: \"get\",\n value: function get(objId) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (callback) {\n this._ensureObj(objId).capability.promise.then(callback);\n\n return null;\n }\n\n var obj = this._objs[objId];\n\n if (!obj || !obj.resolved) {\n throw new Error(\"Requesting object that isn't resolved yet \".concat(objId, \".\"));\n }\n\n return obj.data;\n }\n }, {\n key: \"has\",\n value: function has(objId) {\n var obj = this._objs[objId];\n return obj ? obj.resolved : false;\n }\n }, {\n key: \"resolve\",\n value: function resolve(objId, data) {\n var obj = this._ensureObj(objId);\n\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n for (var objId in this._objs) {\n var data = this._objs[objId].data;\n\n if (typeof Image !== \"undefined\" && data instanceof Image) {\n (0, _display_utils.releaseImageResources)(data);\n }\n }\n\n this._objs = Object.create(null);\n }\n }]);\n\n return PDFObjects;\n }();\n\n var RenderTask = /*#__PURE__*/function () {\n function RenderTask(internalRenderTask) {\n _classCallCheck(this, RenderTask);\n\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n\n _createClass(RenderTask, [{\n key: \"promise\",\n get: function get() {\n return this._internalRenderTask.capability.promise;\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n this._internalRenderTask.cancel();\n }\n }, {\n key: \"then\",\n value: function then(onFulfilled, onRejected) {\n throw new Error(\"Removed API method: \" + \"RenderTask.then, use the `promise` getter instead.\");\n }\n }]);\n\n return RenderTask;\n }();\n\n var InternalRenderTask = function InternalRenderTaskClosure() {\n var canvasInRendering = new WeakSet();\n\n var InternalRenderTask = /*#__PURE__*/function () {\n function InternalRenderTask(_ref14) {\n var callback = _ref14.callback,\n params = _ref14.params,\n objs = _ref14.objs,\n commonObjs = _ref14.commonObjs,\n operatorList = _ref14.operatorList,\n pageIndex = _ref14.pageIndex,\n canvasFactory = _ref14.canvasFactory,\n webGLContext = _ref14.webGLContext,\n _ref14$useRequestAnim = _ref14.useRequestAnimationFrame,\n useRequestAnimationFrame = _ref14$useRequestAnim === void 0 ? false : _ref14$useRequestAnim,\n _ref14$pdfBug = _ref14.pdfBug,\n pdfBug = _ref14$pdfBug === void 0 ? false : _ref14$pdfBug;\n\n _classCallCheck(this, InternalRenderTask);\n\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this._pdfBug = pdfBug;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n _createClass(InternalRenderTask, [{\n key: \"initializeGraphics\",\n value: function initializeGraphics() {\n var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (canvasInRendering.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n\n canvasInRendering.add(this._canvas);\n }\n\n if (this._pdfBug && globalThis.StepperManager && globalThis.StepperManager.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n\n var _this$params = this.params,\n canvasContext = _this$params.canvasContext,\n viewport = _this$params.viewport,\n transform = _this$params.transform,\n imageLayer = _this$params.imageLayer,\n background = _this$params.background;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer);\n this.gfx.beginDrawing({\n transform: transform,\n viewport: viewport,\n transparency: transparency,\n background: background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.running = false;\n this.cancelled = true;\n\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n\n if (this._canvas) {\n canvasInRendering[\"delete\"](this._canvas);\n }\n\n this.callback(error || new _display_utils.RenderingCancelledException(\"Rendering cancelled, page \".concat(this._pageIndex + 1), \"canvas\"));\n }\n }, {\n key: \"operatorListChanged\",\n value: function operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n\n this._continue();\n }\n }, {\n key: \"_continue\",\n value: function _continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\n\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n }, {\n key: \"_scheduleNext\",\n value: function _scheduleNext() {\n var _this21 = this;\n\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(function () {\n _this21._nextBound()[\"catch\"](_this21.cancel.bind(_this21));\n });\n } else {\n Promise.resolve().then(this._nextBound)[\"catch\"](this.cancel.bind(this));\n }\n }\n }, {\n key: \"_next\",\n value: function () {\n var _next2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!this.cancelled) {\n _context2.next = 2;\n break;\n }\n\n return _context2.abrupt(\"return\");\n\n case 2:\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n\n if (this._canvas) {\n canvasInRendering[\"delete\"](this._canvas);\n }\n\n this.callback();\n }\n }\n\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function _next() {\n return _next2.apply(this, arguments);\n }\n\n return _next;\n }()\n }]);\n\n return InternalRenderTask;\n }();\n\n return InternalRenderTask;\n }();\n\n var version = '2.4.456';\n exports.version = version;\n var build = '228a591c';\n exports.build = build;\n /***/\n },\n /* 4 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.addLinkAttributes = addLinkAttributes;\n exports.getFilenameFromUrl = getFilenameFromUrl;\n exports.isFetchSupported = isFetchSupported;\n exports.isValidFetchUrl = isValidFetchUrl;\n exports.loadScript = loadScript;\n exports.deprecated = deprecated;\n exports.releaseImageResources = releaseImageResources;\n exports.PDFDateString = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\n exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;\n var SVG_NS = \"http://www.w3.org/2000/svg\";\n\n var DOMCanvasFactory = /*#__PURE__*/function () {\n function DOMCanvasFactory() {\n _classCallCheck(this, DOMCanvasFactory);\n }\n\n _createClass(DOMCanvasFactory, [{\n key: \"create\",\n value: function create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n var canvas = document.createElement(\"canvas\");\n var context = canvas.getContext(\"2d\");\n canvas.width = width;\n canvas.height = height;\n return {\n canvas: canvas,\n context: context\n };\n }\n }, {\n key: \"reset\",\n value: function reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n }, {\n key: \"destroy\",\n value: function destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n }]);\n\n return DOMCanvasFactory;\n }();\n\n exports.DOMCanvasFactory = DOMCanvasFactory;\n\n var DOMCMapReaderFactory = /*#__PURE__*/function () {\n function DOMCMapReaderFactory(_ref15) {\n var _ref15$baseUrl = _ref15.baseUrl,\n baseUrl = _ref15$baseUrl === void 0 ? null : _ref15$baseUrl,\n _ref15$isCompressed = _ref15.isCompressed,\n isCompressed = _ref15$isCompressed === void 0 ? false : _ref15$isCompressed;\n\n _classCallCheck(this, DOMCMapReaderFactory);\n\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n _createClass(DOMCMapReaderFactory, [{\n key: \"fetch\",\n value: function (_fetch) {\n function fetch(_x) {\n return _fetch.apply(this, arguments);\n }\n\n fetch.toString = function () {\n return _fetch.toString();\n };\n\n return fetch;\n }( /*#__PURE__*/function () {\n var _ref17 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(_ref16) {\n var _this22 = this;\n\n var name, url, compressionType;\n return regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n name = _ref16.name;\n\n if (this.baseUrl) {\n _context4.next = 3;\n break;\n }\n\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n\n case 3:\n if (name) {\n _context4.next = 5;\n break;\n }\n\n throw new Error(\"CMap name must be specified.\");\n\n case 5:\n url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n\n if (!(isFetchSupported() && isValidFetchUrl(url, document.baseURI))) {\n _context4.next = 9;\n break;\n }\n\n return _context4.abrupt(\"return\", fetch(url).then( /*#__PURE__*/function () {\n var _ref18 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(response) {\n var cMapData;\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (response.ok) {\n _context3.next = 2;\n break;\n }\n\n throw new Error(response.statusText);\n\n case 2:\n if (!_this22.isCompressed) {\n _context3.next = 10;\n break;\n }\n\n _context3.t0 = Uint8Array;\n _context3.next = 6;\n return response.arrayBuffer();\n\n case 6:\n _context3.t1 = _context3.sent;\n cMapData = new _context3.t0(_context3.t1);\n _context3.next = 15;\n break;\n\n case 10:\n _context3.t2 = (0, _util.stringToBytes);\n _context3.next = 13;\n return response.text();\n\n case 13:\n _context3.t3 = _context3.sent;\n cMapData = (0, _context3.t2)(_context3.t3);\n\n case 15:\n return _context3.abrupt(\"return\", {\n cMapData: cMapData,\n compressionType: compressionType\n });\n\n case 16:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n return function (_x3) {\n return _ref18.apply(this, arguments);\n };\n }())[\"catch\"](function (reason) {\n throw new Error(\"Unable to load \".concat(_this22.isCompressed ? \"binary \" : \"\") + \"CMap at: \".concat(url));\n }));\n\n case 9:\n return _context4.abrupt(\"return\", new Promise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n\n if (_this22.isCompressed) {\n request.responseType = \"arraybuffer\";\n }\n\n request.onreadystatechange = function () {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n var cMapData;\n\n if (_this22.isCompressed && request.response) {\n cMapData = new Uint8Array(request.response);\n } else if (!_this22.isCompressed && request.responseText) {\n cMapData = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (cMapData) {\n resolve({\n cMapData: cMapData,\n compressionType: compressionType\n });\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n })[\"catch\"](function (reason) {\n throw new Error(\"Unable to load \".concat(_this22.isCompressed ? \"binary \" : \"\") + \"CMap at: \".concat(url));\n }));\n\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n return function (_x2) {\n return _ref17.apply(this, arguments);\n };\n }())\n }]);\n\n return DOMCMapReaderFactory;\n }();\n\n exports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\n var DOMSVGFactory = /*#__PURE__*/function () {\n function DOMSVGFactory() {\n _classCallCheck(this, DOMSVGFactory);\n }\n\n _createClass(DOMSVGFactory, [{\n key: \"create\",\n value: function create(width, height) {\n (0, _util.assert)(width > 0 && height > 0, \"Invalid SVG dimensions\");\n var svg = document.createElementNS(SVG_NS, \"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n svg.setAttribute(\"width\", width + \"px\");\n svg.setAttribute(\"height\", height + \"px\");\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\n return svg;\n }\n }, {\n key: \"createElement\",\n value: function createElement(type) {\n (0, _util.assert)(typeof type === \"string\", \"Invalid SVG element type\");\n return document.createElementNS(SVG_NS, type);\n }\n }]);\n\n return DOMSVGFactory;\n }();\n\n exports.DOMSVGFactory = DOMSVGFactory;\n\n var PageViewport = /*#__PURE__*/function () {\n function PageViewport(_ref19) {\n var viewBox = _ref19.viewBox,\n scale = _ref19.scale,\n rotation = _ref19.rotation,\n _ref19$offsetX = _ref19.offsetX,\n offsetX = _ref19$offsetX === void 0 ? 0 : _ref19$offsetX,\n _ref19$offsetY = _ref19.offsetY,\n offsetY = _ref19$offsetY === void 0 ? 0 : _ref19$offsetY,\n _ref19$dontFlip = _ref19.dontFlip,\n dontFlip = _ref19$dontFlip === void 0 ? false : _ref19$dontFlip;\n\n _classCallCheck(this, PageViewport);\n\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n var centerX = (viewBox[2] + viewBox[0]) / 2;\n var centerY = (viewBox[3] + viewBox[1]) / 2;\n var rotateA, rotateB, rotateC, rotateD;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n default:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n var offsetCanvasX, offsetCanvasY;\n var width, height;\n\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n _createClass(PageViewport, [{\n key: \"clone\",\n value: function clone() {\n var _ref20 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref20$scale = _ref20.scale,\n scale = _ref20$scale === void 0 ? this.scale : _ref20$scale,\n _ref20$rotation = _ref20.rotation,\n rotation = _ref20$rotation === void 0 ? this.rotation : _ref20$rotation,\n _ref20$offsetX = _ref20.offsetX,\n offsetX = _ref20$offsetX === void 0 ? this.offsetX : _ref20$offsetX,\n _ref20$offsetY = _ref20.offsetY,\n offsetY = _ref20$offsetY === void 0 ? this.offsetY : _ref20$offsetY,\n _ref20$dontFlip = _ref20.dontFlip,\n dontFlip = _ref20$dontFlip === void 0 ? false : _ref20$dontFlip;\n\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale: scale,\n rotation: rotation,\n offsetX: offsetX,\n offsetY: offsetY,\n dontFlip: dontFlip\n });\n }\n }, {\n key: \"convertToViewportPoint\",\n value: function convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n }, {\n key: \"convertToViewportRectangle\",\n value: function convertToViewportRectangle(rect) {\n var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n }, {\n key: \"convertToPdfPoint\",\n value: function convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n }]);\n\n return PageViewport;\n }();\n\n exports.PageViewport = PageViewport;\n\n var RenderingCancelledException = /*#__PURE__*/function (_util$BaseException) {\n _inherits(RenderingCancelledException, _util$BaseException);\n\n var _super8 = _createSuper(RenderingCancelledException);\n\n function RenderingCancelledException(msg, type) {\n var _this23;\n\n _classCallCheck(this, RenderingCancelledException);\n\n _this23 = _super8.call(this, msg);\n _this23.type = type;\n return _this23;\n }\n\n return RenderingCancelledException;\n }(_util.BaseException);\n\n exports.RenderingCancelledException = RenderingCancelledException;\n var LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n };\n exports.LinkTarget = LinkTarget;\n\n function addLinkAttributes(link) {\n var _ref21 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n url = _ref21.url,\n target = _ref21.target,\n rel = _ref21.rel,\n _ref21$enabled = _ref21.enabled,\n enabled = _ref21$enabled === void 0 ? true : _ref21$enabled;\n\n (0, _util.assert)(url && typeof url === \"string\", 'addLinkAttributes: A valid \"url\" parameter must provided.');\n var urlNullRemoved = (0, _util.removeNullCharacters)(url);\n\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = \"\";\n link.title = \"Disabled: \".concat(urlNullRemoved);\n\n link.onclick = function () {\n return false;\n };\n }\n\n var targetStr = \"\";\n\n switch (target) {\n case LinkTarget.NONE:\n break;\n\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n\n link.target = targetStr;\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n }\n\n function getFilenameFromUrl(url) {\n var anchor = url.indexOf(\"#\");\n var query = url.indexOf(\"?\");\n var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n }\n\n var StatTimer = /*#__PURE__*/function () {\n function StatTimer() {\n _classCallCheck(this, StatTimer);\n\n this.started = Object.create(null);\n this.times = [];\n }\n\n _createClass(StatTimer, [{\n key: \"time\",\n value: function time(name) {\n if (name in this.started) {\n (0, _util.warn)(\"Timer is already running for \".concat(name));\n }\n\n this.started[name] = Date.now();\n }\n }, {\n key: \"timeEnd\",\n value: function timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(\"Timer has not been started for \".concat(name));\n }\n\n this.times.push({\n name: name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var outBuf = [];\n var longest = 0;\n\n var _iterator5 = _createForOfIteratorHelper(this.times),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var time = _step5.value;\n var name = time.name;\n\n if (name.length > longest) {\n longest = name.length;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n var _iterator6 = _createForOfIteratorHelper(this.times),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _time = _step6.value;\n var duration = _time.end - _time.start;\n outBuf.push(\"\".concat(_time.name.padEnd(longest), \" \").concat(duration, \"ms\\n\"));\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return outBuf.join(\"\");\n }\n }]);\n\n return StatTimer;\n }();\n\n exports.StatTimer = StatTimer;\n\n function isFetchSupported() {\n return typeof fetch !== \"undefined\" && typeof Response !== \"undefined\" && \"body\" in Response.prototype && typeof ReadableStream !== \"undefined\";\n }\n\n function isValidFetchUrl(url, baseUrl) {\n try {\n var _ref22 = baseUrl ? new URL(url, baseUrl) : new URL(url),\n protocol = _ref22.protocol;\n\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false;\n }\n }\n\n function loadScript(src) {\n return new Promise(function (resolve, reject) {\n var script = document.createElement(\"script\");\n script.src = src;\n script.onload = resolve;\n\n script.onerror = function () {\n reject(new Error(\"Cannot load script at: \".concat(script.src)));\n };\n\n (document.head || document.documentElement).appendChild(script);\n });\n }\n\n function deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n }\n\n function releaseImageResources(img) {\n (0, _util.assert)(img instanceof Image, \"Invalid `img` parameter.\");\n var url = img.src;\n\n if (typeof url === \"string\" && url.startsWith(\"blob:\") && URL.revokeObjectURL) {\n URL.revokeObjectURL(url);\n }\n\n img.removeAttribute(\"src\");\n }\n\n var pdfDateStringRegex;\n\n var PDFDateString = /*#__PURE__*/function () {\n function PDFDateString() {\n _classCallCheck(this, PDFDateString);\n }\n\n _createClass(PDFDateString, null, [{\n key: \"toDateObject\",\n value: function toDateObject(input) {\n if (!input || !(0, _util.isString)(input)) {\n return null;\n }\n\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n }\n\n var matches = pdfDateStringRegex.exec(input);\n\n if (!matches) {\n return null;\n }\n\n var year = parseInt(matches[1], 10);\n var month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n var day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n var hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n var minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n var second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n var universalTimeRelation = matches[7] || \"Z\";\n var offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n var offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n }]);\n\n return PDFDateString;\n }();\n\n exports.PDFDateString = PDFDateString;\n /***/\n },\n /* 5 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.FontLoader = exports.FontFaceObject = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var BaseFontLoader = /*#__PURE__*/function () {\n function BaseFontLoader(_ref23) {\n var docId = _ref23.docId,\n onUnsupportedFeature = _ref23.onUnsupportedFeature;\n\n _classCallCheck(this, BaseFontLoader);\n\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n _createClass(BaseFontLoader, [{\n key: \"addNativeFontFace\",\n value: function addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n document.fonts.add(nativeFontFace);\n }\n }, {\n key: \"insertRule\",\n value: function insertRule(rule) {\n var styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = document.createElement(\"style\");\n styleElement.id = \"PDFJS_FONT_STYLE_TAG_\".concat(this.docId);\n document.documentElement.getElementsByTagName(\"head\")[0].appendChild(styleElement);\n }\n\n var styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.nativeFontFaces.forEach(function (nativeFontFace) {\n document.fonts[\"delete\"](nativeFontFace);\n });\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n }, {\n key: \"bind\",\n value: function () {\n var _bind = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(font) {\n var _this24 = this;\n\n var nativeFontFace, rule;\n return regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n if (!(font.attached || font.missingFile)) {\n _context5.next = 2;\n break;\n }\n\n return _context5.abrupt(\"return\");\n\n case 2:\n font.attached = true;\n\n if (!this.isFontLoadingAPISupported) {\n _context5.next = 19;\n break;\n }\n\n nativeFontFace = font.createNativeFontFace();\n\n if (!nativeFontFace) {\n _context5.next = 18;\n break;\n }\n\n this.addNativeFontFace(nativeFontFace);\n _context5.prev = 7;\n _context5.next = 10;\n return nativeFontFace.loaded;\n\n case 10:\n _context5.next = 18;\n break;\n\n case 12:\n _context5.prev = 12;\n _context5.t0 = _context5[\"catch\"](7);\n\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.font\n });\n\n (0, _util.warn)(\"Failed to load font '\".concat(nativeFontFace.family, \"': '\").concat(_context5.t0, \"'.\"));\n font.disableFontFace = true;\n throw _context5.t0;\n\n case 18:\n return _context5.abrupt(\"return\");\n\n case 19:\n rule = font.createFontFaceRule();\n\n if (!rule) {\n _context5.next = 26;\n break;\n }\n\n this.insertRule(rule);\n\n if (!this.isSyncFontLoadingSupported) {\n _context5.next = 24;\n break;\n }\n\n return _context5.abrupt(\"return\");\n\n case 24:\n _context5.next = 26;\n return new Promise(function (resolve) {\n var request = _this24._queueLoadingCallback(resolve);\n\n _this24._prepareFontLoadEvent([rule], [font], request);\n });\n\n case 26:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this, [[7, 12]]);\n }));\n\n function bind(_x4) {\n return _bind.apply(this, arguments);\n }\n\n return bind;\n }()\n }, {\n key: \"_queueLoadingCallback\",\n value: function _queueLoadingCallback(callback) {\n (0, _util.unreachable)(\"Abstract method `_queueLoadingCallback`.\");\n }\n }, {\n key: \"isFontLoadingAPISupported\",\n get: function get() {\n var supported = typeof document !== \"undefined\" && !!document.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", supported);\n }\n }, {\n key: \"isSyncFontLoadingSupported\",\n get: function get() {\n (0, _util.unreachable)(\"Abstract method `isSyncFontLoadingSupported`.\");\n }\n }, {\n key: \"_loadTestFont\",\n get: function get() {\n (0, _util.unreachable)(\"Abstract method `_loadTestFont`.\");\n }\n }, {\n key: \"_prepareFontLoadEvent\",\n value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)(\"Abstract method `_prepareFontLoadEvent`.\");\n }\n }]);\n\n return BaseFontLoader;\n }();\n\n var FontLoader;\n exports.FontLoader = FontLoader;\n {\n exports.FontLoader = FontLoader = /*#__PURE__*/function (_BaseFontLoader) {\n _inherits(GenericFontLoader, _BaseFontLoader);\n\n var _super9 = _createSuper(GenericFontLoader);\n\n function GenericFontLoader(docId) {\n var _this25;\n\n _classCallCheck(this, GenericFontLoader);\n\n _this25 = _super9.call(this, docId);\n _this25.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n _this25.loadTestFontId = 0;\n return _this25;\n }\n\n _createClass(GenericFontLoader, [{\n key: \"isSyncFontLoadingSupported\",\n get: function get() {\n var supported = false;\n\n if (typeof navigator === \"undefined\") {\n supported = true;\n } else {\n var m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if (m && m[1] >= 14) {\n supported = true;\n }\n }\n\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n }, {\n key: \"_queueLoadingCallback\",\n value: function _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n\n while (context.requests.length > 0 && context.requests[0].done) {\n var otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n var context = this.loadingContext;\n var request = {\n id: \"pdfjs-font-loading-\".concat(context.nextRequestId++),\n done: false,\n complete: completeRequest,\n callback: callback\n };\n context.requests.push(request);\n return request;\n }\n }, {\n key: \"_loadTestFont\",\n get: function get() {\n var getLoadTestFont = function getLoadTestFont() {\n return atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n };\n\n return (0, _util.shadow)(this, \"_loadTestFont\", getLoadTestFont());\n }\n }, {\n key: \"_prepareFontLoadEvent\",\n value: function _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n\n function spliceString(s, offset, remove, insert) {\n var chunk1 = s.substring(0, offset);\n var chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n\n var i, ii;\n var canvas = document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext(\"2d\");\n var called = 0;\n\n function isFontReady(name, callback) {\n called++;\n\n if (called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n var imageData = ctx.getImageData(0, 0, 1, 1);\n\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n var loadTestFontId = \"lt\".concat(Date.now()).concat(this.loadTestFontId++);\n var data = this._loadTestFont;\n var COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n var CFF_CHECKSUM_OFFSET = 16;\n var XXXX_VALUE = 0x58585858;\n var checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n var url = \"url(data:font/opentype;base64,\".concat(btoa(data), \");\");\n var rule = \"@font-face {font-family:\\\"\".concat(loadTestFontId, \"\\\";src:\").concat(url, \"}\");\n this.insertRule(rule);\n var names = [];\n\n for (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].loadedName);\n }\n\n names.push(loadTestFontId);\n var div = document.createElement(\"div\");\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n\n for (i = 0, ii = names.length; i < ii; ++i) {\n var span = document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n\n document.body.appendChild(div);\n isFontReady(loadTestFontId, function () {\n document.body.removeChild(div);\n request.complete();\n });\n }\n }]);\n\n return GenericFontLoader;\n }(BaseFontLoader);\n }\n\n var FontFaceObject = /*#__PURE__*/function () {\n function FontFaceObject(translatedData, _ref24) {\n var _ref24$isEvalSupporte = _ref24.isEvalSupported,\n isEvalSupported = _ref24$isEvalSupporte === void 0 ? true : _ref24$isEvalSupporte,\n _ref24$disableFontFac = _ref24.disableFontFace,\n disableFontFace = _ref24$disableFontFac === void 0 ? false : _ref24$disableFontFac,\n _ref24$ignoreErrors = _ref24.ignoreErrors,\n ignoreErrors = _ref24$ignoreErrors === void 0 ? false : _ref24$ignoreErrors,\n _ref24$onUnsupportedF = _ref24.onUnsupportedFeature,\n onUnsupportedFeature = _ref24$onUnsupportedF === void 0 ? null : _ref24$onUnsupportedF,\n _ref24$fontRegistry = _ref24.fontRegistry,\n fontRegistry = _ref24$fontRegistry === void 0 ? null : _ref24$fontRegistry;\n\n _classCallCheck(this, FontFaceObject);\n\n this.compiledGlyphs = Object.create(null);\n\n for (var i in translatedData) {\n this[i] = translatedData[i];\n }\n\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n _createClass(FontFaceObject, [{\n key: \"createNativeFontFace\",\n value: function createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n var nativeFontFace = new FontFace(this.loadedName, this.data, {});\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n\n return nativeFontFace;\n }\n }, {\n key: \"createFontFaceRule\",\n value: function createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n var data = (0, _util.bytesToString)(new Uint8Array(this.data));\n var url = \"url(data:\".concat(this.mimetype, \";base64,\").concat(btoa(data), \");\");\n var rule = \"@font-face {font-family:\\\"\".concat(this.loadedName, \"\\\";src:\").concat(url, \"}\");\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n\n return rule;\n }\n }, {\n key: \"getPathGenerator\",\n value: function getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n var cmds, current;\n\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.font\n });\n }\n\n (0, _util.warn)(\"getPathGenerator - ignoring character: \\\"\".concat(ex, \"\\\".\"));\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n if (this.isEvalSupported && _util.IsEvalSupportedCached.value) {\n var args,\n js = \"\";\n\n for (var i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\n if (current.args !== undefined) {\n args = current.args.join(\",\");\n } else {\n args = \"\";\n }\n\n js += \"c.\" + current.cmd + \"(\" + args + \");\\n\";\n }\n\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", js);\n }\n\n return this.compiledGlyphs[character] = function (c, size) {\n for (var _i6 = 0, _ii = cmds.length; _i6 < _ii; _i6++) {\n current = cmds[_i6];\n\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n }]);\n\n return FontFaceObject;\n }();\n\n exports.FontFaceObject = FontFaceObject;\n /***/\n },\n /* 6 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var compatibilityParams = Object.create(null);\n {\n var _w_pdfjs_require__2 = __w_pdfjs_require__(7),\n isNodeJS = _w_pdfjs_require__2.isNodeJS;\n\n var userAgent = typeof navigator !== \"undefined\" && navigator.userAgent || \"\";\n var isIE = /Trident/.test(userAgent);\n var isIOSChrome = /CriOS/.test(userAgent);\n\n (function checkOnBlobSupport() {\n if (isIE || isIOSChrome) {\n compatibilityParams.disableCreateObjectURL = true;\n }\n })();\n\n (function checkFontFaceAndImage() {\n if (isNodeJS) {\n compatibilityParams.disableFontFace = true;\n compatibilityParams.nativeImageDecoderSupport = \"none\";\n }\n })();\n }\n exports.apiCompatibilityParams = Object.freeze(compatibilityParams);\n /***/\n },\n /* 7 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.isNodeJS = void 0;\n var isNodeJS = (typeof process === \"undefined\" ? \"undefined\" : _typeof(process)) === \"object\" && process + \"\" === \"[object process]\" && !process.versions[\"nw\"] && !process.versions[\"electron\"];\n exports.isNodeJS = isNodeJS;\n /***/\n },\n /* 8 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.CanvasGraphics = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var _pattern_helper = __w_pdfjs_require__(9);\n\n var MIN_FONT_SIZE = 16;\n var MAX_FONT_SIZE = 100;\n var MAX_GROUP_SIZE = 4096;\n var MIN_WIDTH_FACTOR = 0.65;\n var COMPILE_TYPE3_GLYPHS = true;\n var MAX_SIZE_TO_COMPILE = 1000;\n var FULL_CHUNK_HEIGHT = 16;\n\n function addContextCurrentTransform(ctx) {\n if (!ctx.mozCurrentTransform) {\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n Object.defineProperty(ctx, \"mozCurrentTransform\", {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n get: function getCurrentTransformInverse() {\n var m = this._transformMatrix;\n var a = m[0],\n b = m[1],\n c = m[2],\n d = m[3],\n e = m[4],\n f = m[5];\n var ad_bc = a * d - b * c;\n var bc_ad = b * c - a * d;\n return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];\n }\n });\n\n ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n\n this._transformStack.push(old);\n\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n var prev = this._transformStack.pop();\n\n if (prev) {\n this._transformMatrix = prev;\n\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n var m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n var m = this._transformMatrix;\n m[0] = m[0] * x;\n m[1] = m[1] * x;\n m[2] = m[2] * y;\n m[3] = m[3] * y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.rotate = function ctxRotate(angle) {\n var cosValue = Math.cos(angle);\n var sinValue = Math.sin(angle);\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];\n\n this._originalRotate(angle);\n };\n }\n }\n\n var CachedCanvases = function CachedCanvasesClosure() {\n function CachedCanvases(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {\n var canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n\n return canvasEntry;\n },\n clear: function clear() {\n for (var id in this.cache) {\n var canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n };\n return CachedCanvases;\n }();\n\n function compileType3Glyph(imgData) {\n var POINT_TO_PROCESS_LIMIT = 1000;\n var width = imgData.width,\n height = imgData.height;\n var i,\n j,\n j0,\n width1 = width + 1;\n var points = new Uint8Array(width1 * (height + 1));\n var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n var lineSize = width + 7 & ~7,\n data0 = imgData.data;\n var data = new Uint8Array(lineSize * height),\n pos = 0,\n ii;\n\n for (i = 0, ii = data0.length; i < ii; i++) {\n var mask = 128,\n elem = data0[i];\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n var count = 0;\n pos = 0;\n\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n\n var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n var coords = [p % width1, i];\n var type = points[p],\n p0 = p,\n pp;\n\n do {\n var step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n\n coords.push(p % width1);\n coords.push(p / width1 | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n\n outlines.push(coords);\n --i;\n }\n\n var drawOutline = function drawOutline(c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n\n for (var i = 0, ii = outlines.length; i < ii; i++) {\n var o = outlines[i];\n c.moveTo(o[0], o[1]);\n\n for (var j = 2, jj = o.length; j < jj; j += 2) {\n c.lineTo(o[j], o[j + 1]);\n }\n }\n\n c.fill();\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n }\n\n var CanvasExtraState = function CanvasExtraStateClosure() {\n function CanvasExtraState() {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.resumeSMaskCtx = null;\n }\n\n CanvasExtraState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n };\n return CanvasExtraState;\n }();\n\n var CanvasGraphics = function CanvasGraphicsClosure() {\n var EXECUTION_TIME = 15;\n var EXECUTION_STEPS = 10;\n\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState();\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n\n this._cachedGetSinglePixelWidth = null;\n }\n\n function putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0,\n destPos;\n var src = imgData.data;\n var dest = chunkImgData.data;\n var i, j, thisChunkHeight, elemsInThisChunk;\n\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n var srcLength = src.byteLength;\n var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n var dest32DataLength = dest32.length;\n var fullSrcDiff = width + 7 >> 3;\n var white = 0xffffffff;\n var black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n var srcDiff = srcLength - srcPos;\n var k = 0;\n var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n var kEndUnrolled = kEnd & ~7;\n var mask = 0;\n var srcByte = 0;\n\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(\"bad image kind: \".concat(imgData.kind));\n }\n }\n\n function putBinaryImageMask(ctx, imgData) {\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0;\n var src = imgData.data;\n var dest = chunkImgData.data;\n\n for (var i = 0; i < totalChunks; i++) {\n var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n var destPos = 3;\n\n for (var j = 0; j < thisChunkHeight; j++) {\n var mask = 0;\n\n for (var k = 0; k < width; k++) {\n if (!mask) {\n var elem = src[srcPos++];\n mask = 128;\n }\n\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n }\n\n function copyCtxState(sourceCtx, destCtx) {\n var properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n }\n\n function resetCtxToDefault(ctx) {\n ctx.strokeStyle = \"#000000\";\n ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n }\n\n function composeSMaskBackdrop(bytes, r0, g0, b0) {\n var length = bytes.length;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = bytes[i];\n\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n var alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n }\n\n function composeSMaskAlpha(maskData, layerData, transferMap) {\n var length = maskData.length;\n var scale = 1 / 255;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n }\n\n function composeSMaskLuminosity(maskData, layerData, transferMap) {\n var length = maskData.length;\n\n for (var i = 3; i < length; i += 4) {\n var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n }\n\n function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {\n var hasBackdrop = !!backdrop;\n var r0 = hasBackdrop ? backdrop[0] : 0;\n var g0 = hasBackdrop ? backdrop[1] : 0;\n var b0 = hasBackdrop ? backdrop[2] : 0;\n var composeFn;\n\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n for (var row = 0; row < height; row += chunkSize) {\n var chunkHeight = Math.min(chunkSize, height - row);\n var maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n var layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n maskCtx.putImageData(layerData, 0, row);\n }\n }\n\n function composeSMask(ctx, smask, layerCtx, webGLContext) {\n var mask = smask.canvas;\n var maskCtx = smask.context;\n ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);\n var backdrop = smask.backdrop || null;\n\n if (!smask.transferMap && webGLContext.isEnabled) {\n var composed = webGLContext.composeSMask({\n layer: layerCtx.canvas,\n mask: mask,\n properties: {\n subtype: smask.subtype,\n backdrop: backdrop\n }\n });\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(composed, smask.offsetX, smask.offsetY);\n return;\n }\n\n genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);\n ctx.drawImage(mask, 0, 0);\n }\n\n var LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n var LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n var NORMAL_CLIP = {};\n var EO_CLIP = {};\n CanvasGraphics.prototype = {\n beginDrawing: function beginDrawing(_ref25) {\n var transform = _ref25.transform,\n viewport = _ref25.viewport,\n _ref25$transparency = _ref25.transparency,\n transparency = _ref25$transparency === void 0 ? false : _ref25$transparency,\n _ref25$background = _ref25.background,\n background = _ref25$background === void 0 ? null : _ref25$background;\n var width = this.ctx.canvas.width;\n var height = this.ctx.canvas.height;\n this.ctx.save();\n this.ctx.fillStyle = background || \"rgb(255, 255, 255)\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n var transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n },\n executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var i = executionStartIdx || 0;\n var argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n var steps = 0;\n var commonObjs = this.commonObjs;\n var objs = this.objs;\n var fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n var _iterator7 = _createForOfIteratorHelper(argsArray[i]),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var depObjId = _step7.value;\n var objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n\n i++;\n\n if (i === argsArrayLen) {\n return i;\n }\n\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n\n steps = 0;\n }\n }\n },\n endDrawing: function CanvasGraphics_endDrawing() {\n if (this.current.activeSMask !== null) {\n this.endSMaskGroup();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n\n this.cachedCanvases.clear();\n this.webGLContext.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n },\n setLineWidth: function CanvasGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n },\n setLineCap: function CanvasGraphics_setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function CanvasGraphics_setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n },\n setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {\n var ctx = this.ctx;\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n },\n setRenderingIntent: function setRenderingIntent(intent) {},\n setFlatness: function setFlatness(flatness) {},\n setGState: function CanvasGraphics_setGState(states) {\n for (var i = 0, ii = states.length; i < ii; i++) {\n var state = states[i];\n var key = state[0];\n var value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n\n case \"SMask\":\n if (this.current.activeSMask) {\n if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n\n this.current.activeSMask = value ? this.tempSMask : null;\n\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n\n this.tempSMask = null;\n break;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n var activeSMask = this.current.activeSMask;\n var drawnWidth = activeSMask.canvas.width;\n var drawnHeight = activeSMask.canvas.height;\n var cacheId = \"smaskGroupAt\" + this.groupLevel;\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var currentCtx = this.ctx;\n var currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);\n groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n this.ctx.save();\n copyCtxState(groupCtx, this.ctx);\n this.current.resumeSMaskCtx = groupCtx;\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n groupCtx.save();\n groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n groupCtx.restore();\n },\n resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.current.resumeSMaskCtx;\n var currentCtx = this.ctx;\n this.ctx = groupCtx;\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n endSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n },\n save: function CanvasGraphics_save() {\n this.ctx.save();\n var old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.current.resumeSMaskCtx = null;\n },\n restore: function CanvasGraphics_restore() {\n if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n\n if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {\n this.endSMaskGroup();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n this.pendingClip = null;\n this._cachedGetSinglePixelWidth = null;\n }\n },\n transform: function CanvasGraphics_transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedGetSinglePixelWidth = null;\n },\n constructPath: function CanvasGraphics_constructPath(ops, args) {\n var ctx = this.ctx;\n var current = this.current;\n var x = current.x,\n y = current.y;\n\n for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n\n if (width === 0) {\n width = this.getSinglePixelWidth();\n }\n\n if (height === 0) {\n height = this.getSinglePixelWidth();\n }\n\n var xw = x + width;\n var yh = y + height;\n this.ctx.moveTo(x, y);\n this.ctx.lineTo(xw, y);\n this.ctx.lineTo(xw, yh);\n this.ctx.lineTo(x, yh);\n this.ctx.lineTo(x, y);\n this.ctx.closePath();\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n j += 4;\n break;\n\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n\n current.setCurrentPoint(x, y);\n },\n closePath: function CanvasGraphics_closePath() {\n this.ctx.closePath();\n },\n stroke: function CanvasGraphics_stroke(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n var ctx = this.ctx;\n var strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (strokeColor && strokeColor.hasOwnProperty(\"type\") && strokeColor.type === \"Pattern\") {\n ctx.save();\n var transform = ctx.mozCurrentTransform;\n\n var scale = _util.Util.singularValueDecompose2dScale(transform)[0];\n\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth * scale);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);\n ctx.stroke();\n }\n\n if (consumePath) {\n this.consumePath();\n }\n\n ctx.globalAlpha = this.current.fillAlpha;\n },\n closeStroke: function CanvasGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n fill: function CanvasGraphics_fill(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n\n if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\n }\n\n ctx.fillStyle = fillColor.getPattern(ctx, this);\n needRestore = true;\n }\n\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n\n if (needRestore) {\n ctx.restore();\n }\n\n if (consumePath) {\n this.consumePath();\n }\n },\n eoFill: function CanvasGraphics_eoFill() {\n this.pendingEOFill = true;\n this.fill();\n },\n fillStroke: function CanvasGraphics_fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n },\n eoFillStroke: function CanvasGraphics_eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n },\n closeFillStroke: function CanvasGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n },\n endPath: function CanvasGraphics_endPath() {\n this.consumePath();\n },\n clip: function CanvasGraphics_clip() {\n this.pendingClip = NORMAL_CLIP;\n },\n eoClip: function CanvasGraphics_eoClip() {\n this.pendingClip = EO_CLIP;\n },\n beginText: function CanvasGraphics_beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n endText: function CanvasGraphics_endText() {\n var paths = this.pendingTextPaths;\n var ctx = this.ctx;\n\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\n for (var i = 0; i < paths.length; i++) {\n var path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n },\n setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n },\n setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n },\n setHScale: function CanvasGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setLeading: function CanvasGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setFont: function CanvasGraphics_setFont(fontRefName, size) {\n var fontObj = this.commonObjs.get(fontRefName);\n var current = this.current;\n\n if (!fontObj) {\n throw new Error(\"Can't find font for \".concat(fontRefName));\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return;\n }\n\n var name = fontObj.loadedName || \"sans-serif\";\n var bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n var italic = fontObj.italic ? \"italic\" : \"normal\";\n var typeface = \"\\\"\".concat(name, \"\\\", \").concat(fontObj.fallbackName);\n var browserFontSize = size;\n\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = \"\".concat(italic, \" \").concat(bold, \" \").concat(browserFontSize, \"px \").concat(typeface);\n },\n setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n },\n setTextRise: function CanvasGraphics_setTextRise(rise) {\n this.current.textRise = rise;\n },\n moveText: function CanvasGraphics_moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n },\n setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.sqrt(a * a + b * b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n nextLine: function CanvasGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n paintChar: function paintChar(character, x, y, patternTransform) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var textRenderingMode = current.textRenderingMode;\n var fontSize = current.fontSize / current.fontSizeScale;\n var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n var patternFill = current.patternFill && font.data;\n var addToPath;\n\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x: x,\n y: y,\n fontSize: fontSize,\n addToPath: addToPath\n });\n }\n },\n\n get isFontSubpixelAAEnabled() {\n var _this$cachedCanvases$ = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10),\n ctx = _this$cachedCanvases$.context;\n\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n var data = ctx.getImageData(0, 0, 10, 10).data;\n var enabled = false;\n\n for (var i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n },\n\n showText: function CanvasGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return undefined;\n }\n\n var ctx = this.ctx;\n var fontSizeScale = current.fontSizeScale;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var glyphsLength = glyphs.length;\n var vertical = font.vertical;\n var spacingDir = vertical ? 1 : -1;\n var defaultVMetrics = font.defaultVMetrics;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n var patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n var pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n var lineWidth = current.lineWidth;\n var scale = current.textMatrixScale;\n\n if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n var x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n var restoreNeeded = false;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var character = glyph.fontChar;\n var accent = glyph.accent;\n var scaledX, scaledY, scaledAccentX, scaledAccentY;\n var width = glyph.width;\n\n if (vertical) {\n var vmetric, vx, vy;\n vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n var characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n\n if (glyph.isInFont || font.missingFile) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n\n if (accent) {\n scaledAccentX = scaledX + accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n\n var charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n ctx.restore();\n },\n showType3Text: function CanvasGraphics_showType3Text(glyphs) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n var fontDirection = current.fontDirection;\n var spacingDir = font.vertical ? 1 : -1;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var textHScale = current.textHScale * fontDirection;\n var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var glyphsLength = glyphs.length;\n var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n var i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n if (!operatorList) {\n (0, _util.warn)(\"Type3 character \\\"\".concat(glyph.operatorListId, \"\\\" is not available.\"));\n continue;\n }\n\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n\n var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n\n ctx.restore();\n this.processingType3 = null;\n },\n setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},\n setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n },\n getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n var _this26 = this;\n\n var pattern;\n\n if (IR[0] === \"TilingPattern\") {\n var color = IR[1];\n var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n var canvasGraphicsFactory = {\n createCanvasGraphics: function createCanvasGraphics(ctx) {\n return new CanvasGraphics(ctx, _this26.commonObjs, _this26.objs, _this26.canvasFactory, _this26.webGLContext);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);\n }\n\n return pattern;\n },\n setStrokeColorN: function CanvasGraphics_setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n },\n setFillColorN: function CanvasGraphics_setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n },\n setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n },\n setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n },\n shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n var ctx = this.ctx;\n this.save();\n var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\n var inv = ctx.mozCurrentTransformInverse;\n\n if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n\n var bl = _util.Util.applyTransform([0, 0], inv);\n\n var br = _util.Util.applyTransform([0, height], inv);\n\n var ul = _util.Util.applyTransform([width, 0], inv);\n\n var ur = _util.Util.applyTransform([width, height], inv);\n\n var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.restore();\n },\n beginInlineImage: function CanvasGraphics_beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n },\n beginImageData: function CanvasGraphics_beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n },\n paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.clip();\n this.endPath();\n }\n },\n paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n beginGroup: function CanvasGraphics_beginGroup(group) {\n this.save();\n var currentCtx = this.ctx;\n\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n\n var currentTransform = currentCtx.mozCurrentTransform;\n\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n\n var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n var scaleX = 1,\n scaleY = 1;\n\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n var cacheId = \"groupAt\" + this.groupLevel;\n\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX: offsetX,\n offsetY: offsetY,\n scaleX: scaleX,\n scaleY: scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n this.current.activeSMask = null;\n },\n endGroup: function CanvasGraphics_endGroup(group) {\n this.groupLevel--;\n var groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n\n this.restore();\n },\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n },\n endAnnotations: function CanvasGraphics_endAnnotations() {\n this.restore();\n },\n beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {\n this.save();\n resetCtxToDefault(this.ctx);\n this.current = new CanvasExtraState();\n\n if (Array.isArray(rect) && rect.length === 4) {\n var width = rect[2] - rect[0];\n var height = rect[3] - rect[1];\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n },\n endAnnotation: function CanvasGraphics_endAnnotation() {\n this.restore();\n },\n paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {\n var domImage = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!domImage) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.save();\n var ctx = this.ctx;\n ctx.scale(1 / w, -1 / h);\n ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h);\n\n if (this.imageLayer) {\n var currentTransform = ctx.mozCurrentTransformInverse;\n var position = this.getCanvasPosition(0, 0);\n this.imageLayer.appendImage({\n objId: objId,\n left: position[0],\n top: position[1],\n width: w / currentTransform[0],\n height: h / currentTransform[3]\n });\n }\n\n this.restore();\n },\n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n var ctx = this.ctx;\n var width = img.width,\n height = img.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var glyph = this.processingType3;\n\n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n glyph.compiled = compileType3Glyph({\n data: img.data,\n width: width,\n height: height\n });\n } else {\n glyph.compiled = null;\n }\n }\n\n if (glyph && glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n this.paintInlineImageXObject(maskCanvas.canvas);\n },\n paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) {\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, imgData);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n var ctx = this.ctx;\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n ctx.save();\n ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n\n for (var i = 0, ii = images.length; i < ii; i++) {\n var image = images[i];\n var width = image.width,\n height = image.height;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, image);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n },\n paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var map = [];\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n\n this.paintInlineImageXObjectGroup(imgData, map);\n },\n paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {\n var width = imgData.width;\n var height = imgData.height;\n var ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n var currentTransform = ctx.mozCurrentTransformInverse;\n var a = currentTransform[0],\n b = currentTransform[1];\n var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n var c = currentTransform[2],\n d = currentTransform[3];\n var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n var imgToPaint, tmpCanvas;\n\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = tmpCanvas.canvas;\n }\n\n var paintWidth = width,\n paintHeight = height;\n var tmpCanvasId = \"prescale1\";\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n var newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n\n ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: width / currentTransform[0],\n height: height / currentTransform[3]\n });\n }\n\n this.restore();\n },\n paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n var ctx = this.ctx;\n var w = imgData.width;\n var h = imgData.height;\n var tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n\n for (var i = 0, ii = map.length; i < ii; i++) {\n var entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n },\n paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {\n this.ctx.fillRect(0, 0, 1, 1);\n },\n paintXObject: function CanvasGraphics_paintXObject() {\n (0, _util.warn)(\"Unsupported 'paintXObject' command.\");\n },\n markPoint: function CanvasGraphics_markPoint(tag) {},\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},\n endMarkedContent: function CanvasGraphics_endMarkedContent() {},\n beginCompat: function CanvasGraphics_beginCompat() {},\n endCompat: function CanvasGraphics_endCompat() {},\n consumePath: function CanvasGraphics_consumePath() {\n var ctx = this.ctx;\n\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n\n this.pendingClip = null;\n }\n\n ctx.beginPath();\n },\n getSinglePixelWidth: function getSinglePixelWidth(scale) {\n if (this._cachedGetSinglePixelWidth === null) {\n var inverse = this.ctx.mozCurrentTransformInverse;\n this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));\n }\n\n return this._cachedGetSinglePixelWidth;\n },\n getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n var transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n }\n };\n\n for (var op in _util.OPS) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n\n return CanvasGraphics;\n }();\n\n exports.CanvasGraphics = CanvasGraphics;\n /***/\n },\n /* 9 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.getShadingPatternFromIR = getShadingPatternFromIR;\n exports.TilingPattern = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var ShadingIRs = {};\n\n function applyBoundingBox(ctx, bbox) {\n if (!bbox || typeof Path2D === \"undefined\") {\n return;\n }\n\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n var region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n }\n\n ShadingIRs.RadialAxial = {\n fromIR: function RadialAxial_fromIR(raw) {\n var type = raw[1];\n var bbox = raw[2];\n var colorStops = raw[3];\n var p0 = raw[4];\n var p1 = raw[5];\n var r0 = raw[6];\n var r1 = raw[7];\n return {\n type: \"Pattern\",\n getPattern: function RadialAxial_getPattern(ctx) {\n applyBoundingBox(ctx, bbox);\n var grad;\n\n if (type === \"axial\") {\n grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);\n } else if (type === \"radial\") {\n grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);\n }\n\n for (var i = 0, ii = colorStops.length; i < ii; ++i) {\n var c = colorStops[i];\n grad.addColorStop(c[0], c[1]);\n }\n\n return grad;\n }\n };\n }\n };\n\n var createMeshCanvas = function createMeshCanvasClosure() {\n function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n var coords = context.coords,\n colors = context.colors;\n var bytes = data.data,\n rowSize = data.width * 4;\n var tmp;\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n if (y1 >= y3) {\n return;\n }\n\n var c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n var c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n var c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n var minY = Math.round(y1),\n maxY = Math.round(y3);\n var xa, car, cag, cab;\n var xb, cbr, cbg, cbb;\n\n for (var y = minY; y <= maxY; y++) {\n if (y < y2) {\n var _k = void 0;\n\n if (y < y1) {\n _k = 0;\n } else if (y1 === y2) {\n _k = 1;\n } else {\n _k = (y1 - y) / (y1 - y2);\n }\n\n xa = x1 - (x1 - x2) * _k;\n car = c1r - (c1r - c2r) * _k;\n cag = c1g - (c1g - c2g) * _k;\n cab = c1b - (c1b - c2b) * _k;\n } else {\n var _k2 = void 0;\n\n if (y > y3) {\n _k2 = 1;\n } else if (y2 === y3) {\n _k2 = 0;\n } else {\n _k2 = (y2 - y) / (y2 - y3);\n }\n\n xa = x2 - (x2 - x3) * _k2;\n car = c2r - (c2r - c3r) * _k2;\n cag = c2g - (c2g - c3g) * _k2;\n cab = c2b - (c2b - c3b) * _k2;\n }\n\n var k = void 0;\n\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n var x1_ = Math.round(Math.min(xa, xb));\n var x2_ = Math.round(Math.max(xa, xb));\n var j = rowSize * y + x1_ * 4;\n\n for (var x = x1_; x <= x2_; x++) {\n var _k3 = (xa - x) / (xa - xb);\n\n if (_k3 < 0) {\n _k3 = 0;\n } else if (_k3 > 1) {\n _k3 = 1;\n }\n\n bytes[j++] = car - (car - cbr) * _k3 | 0;\n bytes[j++] = cag - (cag - cbg) * _k3 | 0;\n bytes[j++] = cab - (cab - cbb) * _k3 | 0;\n bytes[j++] = 255;\n }\n }\n }\n\n function drawFigure(data, figure, context) {\n var ps = figure.coords;\n var cs = figure.colors;\n var i, ii;\n\n switch (figure.type) {\n case \"lattice\":\n var verticesPerRow = figure.verticesPerRow;\n var rows = Math.floor(ps.length / verticesPerRow) - 1;\n var cols = verticesPerRow - 1;\n\n for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n\n for (var j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n\n break;\n\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n\n break;\n\n default:\n throw new Error(\"illegal figure\");\n }\n }\n\n function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {\n var EXPECTED_SCALE = 1.1;\n var MAX_PATTERN_SIZE = 3000;\n var BORDER_SIZE = 2;\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var boundsWidth = Math.ceil(bounds[2]) - offsetX;\n var boundsHeight = Math.ceil(bounds[3]) - offsetY;\n var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var scaleX = boundsWidth / width;\n var scaleY = boundsHeight / height;\n var context = {\n coords: coords,\n colors: colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n var paddedWidth = width + BORDER_SIZE * 2;\n var paddedHeight = height + BORDER_SIZE * 2;\n var canvas, tmpCanvas, i, ii;\n\n if (webGLContext.isEnabled) {\n canvas = webGLContext.drawFigures({\n width: width,\n height: height,\n backgroundColor: backgroundColor,\n figures: figures,\n context: context\n });\n tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n } else {\n tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n var tmpCtx = tmpCanvas.context;\n var data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n var bytes = data.data;\n\n for (i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n\n for (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\n }\n\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n }\n\n return {\n canvas: canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n\n return createMeshCanvas;\n }();\n\n ShadingIRs.Mesh = {\n fromIR: function Mesh_fromIR(raw) {\n var coords = raw[2];\n var colors = raw[3];\n var figures = raw[4];\n var bounds = raw[5];\n var matrix = raw[6];\n var bbox = raw[7];\n var background = raw[8];\n return {\n type: \"Pattern\",\n getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n applyBoundingBox(ctx, bbox);\n var scale;\n\n if (shadingFill) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (matrix) {\n var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);\n\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n\n if (matrix) {\n ctx.transform.apply(ctx, matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n };\n }\n };\n ShadingIRs.Dummy = {\n fromIR: function Dummy_fromIR() {\n return {\n type: \"Pattern\",\n getPattern: function Dummy_fromIR_getPattern() {\n return \"hotpink\";\n }\n };\n }\n };\n\n function getShadingPatternFromIR(raw) {\n var shadingIR = ShadingIRs[raw[0]];\n\n if (!shadingIR) {\n throw new Error(\"Unknown IR type: \".concat(raw[0]));\n }\n\n return shadingIR.fromIR(raw);\n }\n\n var TilingPattern = function TilingPatternClosure() {\n var PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n };\n var MAX_PATTERN_SIZE = 3000;\n\n function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n this.type = \"Pattern\";\n this.ctx = ctx;\n }\n\n TilingPattern.prototype = {\n createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {\n var operatorList = this.operatorList;\n var bbox = this.bbox;\n var xstep = this.xstep;\n var ystep = this.ystep;\n var paintType = this.paintType;\n var tilingType = this.tilingType;\n var color = this.color;\n var canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n var x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n var tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n graphics.transform(1, 0, 0, 1, -x0, -y0);\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n graphics.executeOperatorList(operatorList);\n this.ctx.transform(1, 0, 0, 1, x0, y0);\n this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);\n return tmpCanvas.canvas;\n },\n getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize);\n var size = Math.ceil(step * scale);\n\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n\n return {\n scale: scale,\n size: size\n };\n },\n clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n if (Array.isArray(bbox) && bbox.length === 4) {\n var bboxWidth = x1 - x0;\n var bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n },\n setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n var context = graphics.ctx,\n current = graphics.current;\n\n switch (paintType) {\n case PaintType.COLORED:\n var ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n\n case PaintType.UNCOLORED:\n var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);\n\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n\n default:\n throw new _util.FormatError(\"Unsupported paint type: \".concat(paintType));\n }\n },\n getPattern: function TilingPattern_getPattern(ctx, owner) {\n ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n return ctx.createPattern(temporaryPatternCanvas, \"repeat\");\n }\n };\n return TilingPattern;\n }();\n\n exports.TilingPattern = TilingPattern;\n /***/\n },\n /* 10 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.GlobalWorkerOptions = void 0;\n var GlobalWorkerOptions = Object.create(null);\n exports.GlobalWorkerOptions = GlobalWorkerOptions;\n GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\n GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? \"\" : GlobalWorkerOptions.workerSrc;\n /***/\n },\n /* 11 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.MessageHandler = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n };\n var StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n };\n\n function wrapReason(reason) {\n if (_typeof(reason) !== \"object\" || reason === null) {\n return reason;\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n }\n\n var MessageHandler = /*#__PURE__*/function () {\n function MessageHandler(sourceName, targetName, comObj) {\n var _this27 = this;\n\n _classCallCheck(this, MessageHandler);\n\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.postMessageTransfers = true;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = function (event) {\n var data = event.data;\n\n if (data.targetName !== _this27.sourceName) {\n return;\n }\n\n if (data.stream) {\n _this27._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n var callbackId = data.callbackId;\n var capability = _this27.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(\"Cannot resolve callback \".concat(callbackId));\n }\n\n delete _this27.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n\n return;\n }\n\n var action = _this27.actionHandler[data.action];\n\n if (!action) {\n throw new Error(\"Unknown action from worker: \".concat(data.action));\n }\n\n if (data.callbackId) {\n var _sourceName = _this27.sourceName;\n var _targetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n\n if (data.streamId) {\n _this27._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n _createClass(MessageHandler, [{\n key: \"on\",\n value: function on(actionName, handler) {\n var ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(\"There is already an actionName called \\\"\".concat(actionName, \"\\\"\"));\n }\n\n ah[actionName] = handler;\n }\n }, {\n key: \"send\",\n value: function send(actionName, data, transfers) {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data\n }, transfers);\n }\n }, {\n key: \"sendWithPromise\",\n value: function sendWithPromise(actionName, data, transfers) {\n var callbackId = this.callbackId++;\n var capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId: callbackId,\n data: data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\n }, {\n key: \"sendWithStream\",\n value: function sendWithStream(actionName, data, queueingStrategy, transfers) {\n var _this28 = this;\n\n var streamId = this.streamId++;\n var sourceName = this.sourceName;\n var targetName = this.targetName;\n var comObj = this.comObj;\n return new ReadableStream({\n start: function start(controller) {\n var startCapability = (0, _util.createPromiseCapability)();\n _this28.streamControllers[streamId] = {\n controller: controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n\n _this28._postMessage({\n sourceName: sourceName,\n targetName: targetName,\n action: actionName,\n streamId: streamId,\n data: data,\n desiredSize: controller.desiredSize\n }, transfers);\n\n return startCapability.promise;\n },\n pull: function pull(controller) {\n var pullCapability = (0, _util.createPromiseCapability)();\n _this28.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.PULL,\n streamId: streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: function cancel(reason) {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n var cancelCapability = (0, _util.createPromiseCapability)();\n _this28.streamControllers[streamId].cancelCall = cancelCapability;\n _this28.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.CANCEL,\n streamId: streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n }, {\n key: \"_createStreamSink\",\n value: function _createStreamSink(data) {\n var self = this;\n var action = this.actionHandler[data.action];\n var streamId = data.streamId;\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var comObj = this.comObj;\n var streamSink = {\n enqueue: function enqueue(chunk) {\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var transfers = arguments.length > 2 ? arguments[2] : undefined;\n\n if (this.isCancelled) {\n return;\n }\n\n var lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n self._postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.ENQUEUE,\n streamId: streamId,\n chunk: chunk\n }, transfers);\n },\n close: function close() {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.CLOSE,\n streamId: streamId\n });\n delete self.streamSinks[streamId];\n },\n error: function error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.ERROR,\n streamId: streamId,\n reason: wrapReason(reason)\n });\n },\n sinkCapability: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.START_COMPLETE,\n streamId: streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.START_COMPLETE,\n streamId: streamId,\n reason: wrapReason(reason)\n });\n });\n }\n }, {\n key: \"_processStreamMessage\",\n value: function _processStreamMessage(data) {\n var streamId = data.streamId;\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var comObj = this.comObj;\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].startCall.resolve();\n } else {\n this.streamControllers[streamId].startCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].pullCall.resolve();\n } else {\n this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\n if (!this.streamSinks[streamId]) {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId: streamId,\n success: true\n });\n break;\n }\n\n if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[streamId].sinkCapability.resolve();\n }\n\n this.streamSinks[streamId].desiredSize = data.desiredSize;\n var onPull = this.streamSinks[data.streamId].onPull;\n new Promise(function (resolve) {\n resolve(onPull && onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId: streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId: streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(this.streamControllers[streamId], \"enqueue should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(this.streamControllers[streamId], \"close should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].isClosed = true;\n this.streamControllers[streamId].controller.close();\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(this.streamControllers[streamId], \"error should have stream controller\");\n this.streamControllers[streamId].controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].cancelCall.resolve();\n } else {\n this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!this.streamSinks[streamId]) {\n break;\n }\n\n var onCancel = this.streamSinks[data.streamId].onCancel;\n new Promise(function (resolve) {\n resolve(onCancel && onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId: streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId: streamId,\n reason: wrapReason(reason)\n });\n });\n this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[streamId].isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n }, {\n key: \"_deleteStreamController\",\n value: function () {\n var _deleteStreamController2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(streamId) {\n return regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) {\n return capability && capability.promise;\n }));\n\n case 2:\n delete this.streamControllers[streamId];\n\n case 3:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function _deleteStreamController(_x5) {\n return _deleteStreamController2.apply(this, arguments);\n }\n\n return _deleteStreamController;\n }()\n }, {\n key: \"_postMessage\",\n value: function _postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n }]);\n\n return MessageHandler;\n }();\n\n exports.MessageHandler = MessageHandler;\n /***/\n },\n /* 12 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Metadata = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var _xml_parser = __w_pdfjs_require__(13);\n\n var Metadata = /*#__PURE__*/function () {\n function Metadata(data) {\n _classCallCheck(this, Metadata);\n\n (0, _util.assert)(typeof data === \"string\", \"Metadata: input is not a string\");\n data = this._repair(data);\n var parser = new _xml_parser.SimpleXMLParser();\n var xmlDocument = parser.parseFromString(data);\n this._metadataMap = new Map();\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _createClass(Metadata, [{\n key: \"_repair\",\n value: function _repair(data) {\n return data.replace(/^[^<]+/, \"\").replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n var bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case \"amp\":\n return \"&\";\n\n case \"apos\":\n return \"'\";\n\n case \"gt\":\n return \">\";\n\n case \"lt\":\n return \"<\";\n\n case \"quot\":\n return '\"';\n }\n\n throw new Error(\"_repair: \".concat(name, \" isn't defined.\"));\n });\n var chars = \"\";\n\n for (var i = 0, ii = bytes.length; i < ii; i += 2) {\n var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n\n if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {\n chars += String.fromCharCode(code);\n } else {\n chars += \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\";\n }\n }\n\n return \">\" + chars;\n });\n }\n }, {\n key: \"_parse\",\n value: function _parse(xmlDocument) {\n var rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.firstChild;\n\n while (rdf && rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n var nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n\n if (!rdf || nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n var children = rdf.childNodes;\n\n for (var i = 0, ii = children.length; i < ii; i++) {\n var desc = children[i];\n\n if (desc.nodeName.toLowerCase() !== \"rdf:description\") {\n continue;\n }\n\n for (var j = 0, jj = desc.childNodes.length; j < jj; j++) {\n if (desc.childNodes[j].nodeName.toLowerCase() !== \"#text\") {\n var entry = desc.childNodes[j];\n var name = entry.nodeName.toLowerCase();\n\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n }\n }, {\n key: \"get\",\n value: function get(name) {\n return this._metadataMap.has(name) ? this._metadataMap.get(name) : null;\n }\n }, {\n key: \"getAll\",\n value: function getAll() {\n var obj = Object.create(null);\n\n var _iterator8 = _createForOfIteratorHelper(this._metadataMap),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var _step8$value = _slicedToArray(_step8.value, 2),\n key = _step8$value[0],\n value = _step8$value[1];\n\n obj[key] = value;\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n\n return obj;\n }\n }, {\n key: \"has\",\n value: function has(name) {\n return this._metadataMap.has(name);\n }\n }]);\n\n return Metadata;\n }();\n\n exports.Metadata = Metadata;\n /***/\n },\n /* 13 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.SimpleXMLParser = void 0;\n var XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10\n };\n\n function isWhitespace(s, index) {\n var ch = s[index];\n return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n }\n\n function isWhitespaceString(s) {\n for (var i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n\n return true;\n }\n\n var XMLParserBase = /*#__PURE__*/function () {\n function XMLParserBase() {\n _classCallCheck(this, XMLParserBase);\n }\n\n _createClass(XMLParserBase, [{\n key: \"_resolveEntities\",\n value: function _resolveEntities(s) {\n var _this29 = this;\n\n return s.replace(/&([^;]+);/g, function (all, entity) {\n if (entity.substring(0, 2) === \"#x\") {\n return String.fromCharCode(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCharCode(parseInt(entity.substring(1), 10));\n }\n\n switch (entity) {\n case \"lt\":\n return \"<\";\n\n case \"gt\":\n return \">\";\n\n case \"amp\":\n return \"&\";\n\n case \"quot\":\n return '\"';\n }\n\n return _this29.onResolveEntity(entity);\n });\n }\n }, {\n key: \"_parseContent\",\n value: function _parseContent(s, start) {\n var attributes = [];\n var pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n ++pos;\n }\n\n var name = s.substring(start, pos);\n skipWs();\n\n while (pos < s.length && s[pos] !== \">\" && s[pos] !== \"/\" && s[pos] !== \"?\") {\n skipWs();\n var attrName = \"\",\n attrValue = \"\";\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n attrName += s[pos];\n ++pos;\n }\n\n skipWs();\n\n if (s[pos] !== \"=\") {\n return null;\n }\n\n ++pos;\n skipWs();\n var attrEndChar = s[pos];\n\n if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n return null;\n }\n\n var attrEndIndex = s.indexOf(attrEndChar, ++pos);\n\n if (attrEndIndex < 0) {\n return null;\n }\n\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue)\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n\n return {\n name: name,\n attributes: attributes,\n parsed: pos - start\n };\n }\n }, {\n key: \"_parseProcessingInstruction\",\n value: function _parseProcessingInstruction(s, start) {\n var pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n ++pos;\n }\n\n var name = s.substring(start, pos);\n skipWs();\n var attrStart = pos;\n\n while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n ++pos;\n }\n\n var value = s.substring(attrStart, pos);\n return {\n name: name,\n value: value,\n parsed: pos - start\n };\n }\n }, {\n key: \"parseXml\",\n value: function parseXml(s) {\n var i = 0;\n\n while (i < s.length) {\n var ch = s[i];\n var j = i;\n\n if (ch === \"<\") {\n ++j;\n var ch2 = s[j];\n var q = void 0;\n\n switch (ch2) {\n case \"/\":\n ++j;\n q = s.indexOf(\">\", j);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n\n case \"?\":\n ++j;\n\n var pi = this._parseProcessingInstruction(s, j);\n\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n\n case \"!\":\n if (s.substring(j + 1, j + 3) === \"--\") {\n q = s.indexOf(\"-->\", j + 3);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n q = s.indexOf(\"]]>\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n var q2 = s.indexOf(\"[\", j + 8);\n var complexDoctype = false;\n q = s.indexOf(\">\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n if (q2 > 0 && q > q2) {\n q = s.indexOf(\"]>\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n complexDoctype = true;\n }\n\n var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n break;\n\n default:\n var content = this._parseContent(s, j);\n\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n var isClosed = false;\n\n if (s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\") {\n isClosed = true;\n } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== \">\") {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== \"<\") {\n j++;\n }\n\n var text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n\n i = j;\n }\n }\n }, {\n key: \"onResolveEntity\",\n value: function onResolveEntity(name) {\n return \"&\".concat(name, \";\");\n }\n }, {\n key: \"onPi\",\n value: function onPi(name, value) {}\n }, {\n key: \"onComment\",\n value: function onComment(text) {}\n }, {\n key: \"onCdata\",\n value: function onCdata(text) {}\n }, {\n key: \"onDoctype\",\n value: function onDoctype(doctypeContent) {}\n }, {\n key: \"onText\",\n value: function onText(text) {}\n }, {\n key: \"onBeginElement\",\n value: function onBeginElement(name, attributes, isEmpty) {}\n }, {\n key: \"onEndElement\",\n value: function onEndElement(name) {}\n }, {\n key: \"onError\",\n value: function onError(code) {}\n }]);\n\n return XMLParserBase;\n }();\n\n var SimpleDOMNode = /*#__PURE__*/function () {\n function SimpleDOMNode(nodeName, nodeValue) {\n _classCallCheck(this, SimpleDOMNode);\n\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n Object.defineProperty(this, \"parentNode\", {\n value: null,\n writable: true\n });\n }\n\n _createClass(SimpleDOMNode, [{\n key: \"firstChild\",\n get: function get() {\n return this.childNodes && this.childNodes[0];\n }\n }, {\n key: \"nextSibling\",\n get: function get() {\n var childNodes = this.parentNode.childNodes;\n\n if (!childNodes) {\n return undefined;\n }\n\n var index = childNodes.indexOf(this);\n\n if (index === -1) {\n return undefined;\n }\n\n return childNodes[index + 1];\n }\n }, {\n key: \"textContent\",\n get: function get() {\n if (!this.childNodes) {\n return this.nodeValue || \"\";\n }\n\n return this.childNodes.map(function (child) {\n return child.textContent;\n }).join(\"\");\n }\n }, {\n key: \"hasChildNodes\",\n value: function hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n }]);\n\n return SimpleDOMNode;\n }();\n\n var SimpleXMLParser = /*#__PURE__*/function (_XMLParserBase) {\n _inherits(SimpleXMLParser, _XMLParserBase);\n\n var _super10 = _createSuper(SimpleXMLParser);\n\n function SimpleXMLParser() {\n var _this30;\n\n _classCallCheck(this, SimpleXMLParser);\n\n _this30 = _super10.call(this);\n _this30._currentFragment = null;\n _this30._stack = null;\n _this30._errorCode = XMLParserErrorCode.NoError;\n return _this30;\n }\n\n _createClass(SimpleXMLParser, [{\n key: \"parseFromString\",\n value: function parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1),\n documentElement = _this$_currentFragmen[0];\n\n if (!documentElement) {\n return undefined;\n }\n\n return {\n documentElement: documentElement\n };\n }\n }, {\n key: \"onResolveEntity\",\n value: function onResolveEntity(name) {\n switch (name) {\n case \"apos\":\n return \"'\";\n }\n\n return _get(_getPrototypeOf(SimpleXMLParser.prototype), \"onResolveEntity\", this).call(this, name);\n }\n }, {\n key: \"onText\",\n value: function onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n\n var node = new SimpleDOMNode(\"#text\", text);\n\n this._currentFragment.push(node);\n }\n }, {\n key: \"onCdata\",\n value: function onCdata(text) {\n var node = new SimpleDOMNode(\"#text\", text);\n\n this._currentFragment.push(node);\n }\n }, {\n key: \"onBeginElement\",\n value: function onBeginElement(name, attributes, isEmpty) {\n var node = new SimpleDOMNode(name);\n node.childNodes = [];\n\n this._currentFragment.push(node);\n\n if (isEmpty) {\n return;\n }\n\n this._stack.push(this._currentFragment);\n\n this._currentFragment = node.childNodes;\n }\n }, {\n key: \"onEndElement\",\n value: function onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n var lastElement = this._currentFragment[this._currentFragment.length - 1];\n\n if (!lastElement) {\n return;\n }\n\n for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n }\n }, {\n key: \"onError\",\n value: function onError(code) {\n this._errorCode = code;\n }\n }]);\n\n return SimpleXMLParser;\n }(XMLParserBase);\n\n exports.SimpleXMLParser = SimpleXMLParser;\n /***/\n },\n /* 14 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PDFDataTransportStream = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var PDFDataTransportStream = /*#__PURE__*/function () {\n function PDFDataTransportStream(params, pdfDataRangeTransport) {\n var _this31 = this;\n\n _classCallCheck(this, PDFDataTransportStream);\n\n (0, _util.assert)(pdfDataRangeTransport);\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n var initialData = params.initialData;\n\n if (initialData && initialData.length > 0) {\n var buffer = new Uint8Array(initialData).buffer;\n\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {\n _this31._onReceiveData({\n begin: begin,\n chunk: chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressListener(function (loaded, total) {\n _this31._onProgress({\n loaded: loaded,\n total: total\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {\n _this31._onReceiveData({\n chunk: chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(function () {\n _this31._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _createClass(PDFDataTransportStream, [{\n key: \"_onReceiveData\",\n value: function _onReceiveData(args) {\n var buffer = new Uint8Array(args.chunk).buffer;\n\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n var found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n\n rangeReader._enqueue(buffer);\n\n return true;\n });\n\n (0, _util.assert)(found);\n }\n }\n }, {\n key: \"_progressiveDataLength\",\n get: function get() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n }, {\n key: \"_onProgress\",\n value: function _onProgress(evt) {\n if (evt.total === undefined) {\n var firstReader = this._rangeReaders[0];\n\n if (firstReader && firstReader.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n } else {\n var fullReader = this._fullRequestReader;\n\n if (fullReader && fullReader.onProgress) {\n fullReader.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n }\n }, {\n key: \"_onProgressiveDone\",\n value: function _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n\n this._progressiveDone = true;\n }\n }, {\n key: \"_removeRangeReader\",\n value: function _removeRangeReader(reader) {\n var i = this._rangeReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n }, {\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n var queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone);\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n var reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n this._rangeReaders.push(reader);\n\n return reader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var readers = this._rangeReaders.slice(0);\n\n readers.forEach(function (rangeReader) {\n rangeReader.cancel(reason);\n });\n\n this._pdfDataRangeTransport.abort();\n }\n }]);\n\n return PDFDataTransportStream;\n }();\n\n exports.PDFDataTransportStream = PDFDataTransportStream;\n\n var PDFDataTransportStreamReader = /*#__PURE__*/function () {\n function PDFDataTransportStreamReader(stream, queuedChunks) {\n var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n _classCallCheck(this, PDFDataTransportStreamReader);\n\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n\n var _iterator9 = _createForOfIteratorHelper(this._queuedChunks),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var chunk = _step9.value;\n this._loaded += chunk.byteLength;\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n\n _createClass(PDFDataTransportStreamReader, [{\n key: \"_enqueue\",\n value: function _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n\n this._loaded += chunk.byteLength;\n }\n }, {\n key: \"headersReady\",\n get: function get() {\n return this._headersReady;\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._stream._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._stream._isStreamingSupported;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._stream._contentLength;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() {\n var chunk, requestCapability;\n return regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n if (!(this._queuedChunks.length > 0)) {\n _context7.next = 3;\n break;\n }\n\n chunk = this._queuedChunks.shift();\n return _context7.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 3:\n if (!this._done) {\n _context7.next = 5;\n break;\n }\n\n return _context7.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 5:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context7.abrupt(\"return\", requestCapability.promise);\n\n case 8:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function read() {\n return _read.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n }, {\n key: \"progressiveDone\",\n value: function progressiveDone() {\n if (this._done) {\n return;\n }\n\n this._done = true;\n }\n }]);\n\n return PDFDataTransportStreamReader;\n }();\n\n var PDFDataTransportStreamRangeReader = /*#__PURE__*/function () {\n function PDFDataTransportStreamRangeReader(stream, begin, end) {\n _classCallCheck(this, PDFDataTransportStreamRangeReader);\n\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n\n _createClass(PDFDataTransportStreamRangeReader, [{\n key: \"_enqueue\",\n value: function _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n var requestsCapability = this._requests.shift();\n\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n this._done = true;\n\n this._stream._removeRangeReader(this);\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return false;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() {\n var chunk, requestCapability;\n return regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n if (!this._queuedChunk) {\n _context8.next = 4;\n break;\n }\n\n chunk = this._queuedChunk;\n this._queuedChunk = null;\n return _context8.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 4:\n if (!this._done) {\n _context8.next = 6;\n break;\n }\n\n return _context8.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 6:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context8.abrupt(\"return\", requestCapability.promise);\n\n case 9:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n function read() {\n return _read2.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._stream._removeRangeReader(this);\n }\n }]);\n\n return PDFDataTransportStreamRangeReader;\n }();\n /***/\n\n },\n /* 15 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.WebGLContext = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var WebGLContext = /*#__PURE__*/function () {\n function WebGLContext(_ref26) {\n var _ref26$enable = _ref26.enable,\n enable = _ref26$enable === void 0 ? false : _ref26$enable;\n\n _classCallCheck(this, WebGLContext);\n\n this._enabled = enable === true;\n }\n\n _createClass(WebGLContext, [{\n key: \"isEnabled\",\n get: function get() {\n var enabled = this._enabled;\n\n if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n\n return (0, _util.shadow)(this, \"isEnabled\", enabled);\n }\n }, {\n key: \"composeSMask\",\n value: function composeSMask(_ref27) {\n var layer = _ref27.layer,\n mask = _ref27.mask,\n properties = _ref27.properties;\n return WebGLUtils.composeSMask(layer, mask, properties);\n }\n }, {\n key: \"drawFigures\",\n value: function drawFigures(_ref28) {\n var width = _ref28.width,\n height = _ref28.height,\n backgroundColor = _ref28.backgroundColor,\n figures = _ref28.figures,\n context = _ref28.context;\n return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n WebGLUtils.cleanup();\n }\n }]);\n\n return WebGLContext;\n }();\n\n exports.WebGLContext = WebGLContext;\n\n var WebGLUtils = function WebGLUtilsClosure() {\n function loadShader(gl, code, shaderType) {\n var shader = gl.createShader(shaderType);\n gl.shaderSource(shader, code);\n gl.compileShader(shader);\n var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n\n if (!compiled) {\n var errorMsg = gl.getShaderInfoLog(shader);\n throw new Error(\"Error during shader compilation: \" + errorMsg);\n }\n\n return shader;\n }\n\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n\n function createProgram(gl, shaders) {\n var program = gl.createProgram();\n\n for (var i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n\n gl.linkProgram(program);\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n\n if (!linked) {\n var errorMsg = gl.getProgramInfoLog(program);\n throw new Error(\"Error during program linking: \" + errorMsg);\n }\n\n return program;\n }\n\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n return texture;\n }\n\n var currentGL, currentCanvas;\n\n function generateGL() {\n if (currentGL) {\n return;\n }\n\n currentCanvas = document.createElement(\"canvas\");\n currentGL = currentCanvas.getContext(\"webgl\", {\n premultipliedalpha: false\n });\n }\n\n var smaskVertexShaderCode = \"\\\n attribute vec2 a_position; \\\n attribute vec2 a_texCoord; \\\n \\\n uniform vec2 u_resolution; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_texCoord = a_texCoord; \\\n } \";\n var smaskFragmentShaderCode = \"\\\n precision mediump float; \\\n \\\n uniform vec4 u_backdrop; \\\n uniform int u_subtype; \\\n uniform sampler2D u_image; \\\n uniform sampler2D u_mask; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec4 imageColor = texture2D(u_image, v_texCoord); \\\n vec4 maskColor = texture2D(u_mask, v_texCoord); \\\n if (u_backdrop.a > 0.0) { \\\n maskColor.rgb = maskColor.rgb * maskColor.a + \\\n u_backdrop.rgb * (1.0 - maskColor.a); \\\n } \\\n float lum; \\\n if (u_subtype == 0) { \\\n lum = maskColor.a; \\\n } else { \\\n lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \\\n maskColor.b * 0.11; \\\n } \\\n imageColor.a *= lum; \\\n imageColor.rgb *= imageColor.a; \\\n gl_FragColor = imageColor; \\\n } \";\n var smaskCache = null;\n\n function initSmaskGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n cache.backdropLocation = gl.getUniformLocation(program, \"u_backdrop\");\n cache.subtypeLocation = gl.getUniformLocation(program, \"u_subtype\");\n var texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n var texLayerLocation = gl.getUniformLocation(program, \"u_image\");\n var texMaskLocation = gl.getUniformLocation(program, \"u_mask\");\n var texCoordBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n gl.uniform1i(texLayerLocation, 0);\n gl.uniform1i(texMaskLocation, 1);\n smaskCache = cache;\n }\n\n function composeSMask(layer, mask, properties) {\n var width = layer.width,\n height = layer.height;\n\n if (!smaskCache) {\n initSmaskGL();\n }\n\n var cache = smaskCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n\n if (properties.backdrop) {\n gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);\n } else {\n gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n }\n\n gl.uniform1i(cache.subtypeLocation, properties.subtype === \"Luminosity\" ? 1 : 0);\n var texture = createTexture(gl, layer, gl.TEXTURE0);\n var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n gl.clearColor(0, 0, 0, 0);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.clear(gl.COLOR_BUFFER_BIT);\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n gl.flush();\n gl.deleteTexture(texture);\n gl.deleteTexture(maskTexture);\n gl.deleteBuffer(buffer);\n return canvas;\n }\n\n var figuresVertexShaderCode = \"\\\n attribute vec2 a_position; \\\n attribute vec3 a_color; \\\n \\\n uniform vec2 u_resolution; \\\n uniform vec2 u_scale; \\\n uniform vec2 u_offset; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n vec2 position = (a_position + u_offset) * u_scale; \\\n vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_color = vec4(a_color / 255.0, 1.0); \\\n } \";\n var figuresFragmentShaderCode = \"\\\n precision mediump float; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n gl_FragColor = v_color; \\\n } \";\n var figuresCache = null;\n\n function initFiguresGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n cache.scaleLocation = gl.getUniformLocation(program, \"u_scale\");\n cache.offsetLocation = gl.getUniformLocation(program, \"u_offset\");\n cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n cache.colorLocation = gl.getAttribLocation(program, \"a_color\");\n figuresCache = cache;\n }\n\n function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\n }\n\n var cache = figuresCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n var count = 0;\n var i, ii, rows;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n switch (figures[i].type) {\n case \"lattice\":\n rows = figures[i].coords.length / figures[i].verticesPerRow | 0;\n count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n break;\n\n case \"triangles\":\n count += figures[i].coords.length;\n break;\n }\n }\n\n var coords = new Float32Array(count * 2);\n var colors = new Uint8Array(count * 3);\n var coordsMap = context.coords,\n colorsMap = context.colors;\n var pIndex = 0,\n cIndex = 0;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n\n switch (figure.type) {\n case \"lattice\":\n var cols = figure.verticesPerRow;\n rows = ps.length / cols | 0;\n\n for (var row = 1; row < rows; row++) {\n var offset = row * cols + 1;\n\n for (var col = 1; col < cols; col++, offset++) {\n coords[pIndex] = coordsMap[ps[offset - cols - 1]];\n coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];\n coords[pIndex + 2] = coordsMap[ps[offset - cols]];\n coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];\n coords[pIndex + 4] = coordsMap[ps[offset - 1]];\n coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];\n colors[cIndex] = colorsMap[cs[offset - cols - 1]];\n colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];\n colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];\n colors[cIndex + 3] = colorsMap[cs[offset - cols]];\n colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];\n colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];\n colors[cIndex + 6] = colorsMap[cs[offset - 1]];\n colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];\n colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];\n coords[pIndex + 6] = coords[pIndex + 2];\n coords[pIndex + 7] = coords[pIndex + 3];\n coords[pIndex + 8] = coords[pIndex + 4];\n coords[pIndex + 9] = coords[pIndex + 5];\n coords[pIndex + 10] = coordsMap[ps[offset]];\n coords[pIndex + 11] = coordsMap[ps[offset] + 1];\n colors[cIndex + 9] = colors[cIndex + 3];\n colors[cIndex + 10] = colors[cIndex + 4];\n colors[cIndex + 11] = colors[cIndex + 5];\n colors[cIndex + 12] = colors[cIndex + 6];\n colors[cIndex + 13] = colors[cIndex + 7];\n colors[cIndex + 14] = colors[cIndex + 8];\n colors[cIndex + 15] = colorsMap[cs[offset]];\n colors[cIndex + 16] = colorsMap[cs[offset] + 1];\n colors[cIndex + 17] = colorsMap[cs[offset] + 2];\n pIndex += 12;\n cIndex += 18;\n }\n }\n\n break;\n\n case \"triangles\":\n for (var j = 0, jj = ps.length; j < jj; j++) {\n coords[pIndex] = coordsMap[ps[j]];\n coords[pIndex + 1] = coordsMap[ps[j] + 1];\n colors[cIndex] = colorsMap[cs[j]];\n colors[cIndex + 1] = colorsMap[cs[j] + 1];\n colors[cIndex + 2] = colorsMap[cs[j] + 2];\n pIndex += 2;\n cIndex += 3;\n }\n\n break;\n }\n }\n\n if (backgroundColor) {\n gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n\n gl.clear(gl.COLOR_BUFFER_BIT);\n var coordsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n var colorsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.colorLocation);\n gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);\n gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n gl.drawArrays(gl.TRIANGLES, 0, count);\n gl.flush();\n gl.deleteBuffer(coordsBuffer);\n gl.deleteBuffer(colorsBuffer);\n return canvas;\n }\n\n return {\n tryInitGL: function tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) {}\n\n return false;\n },\n composeSMask: composeSMask,\n drawFigures: drawFigures,\n cleanup: function cleanup() {\n if (smaskCache && smaskCache.canvas) {\n smaskCache.canvas.width = 0;\n smaskCache.canvas.height = 0;\n }\n\n if (figuresCache && figuresCache.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n\n smaskCache = null;\n figuresCache = null;\n }\n };\n }();\n /***/\n\n },\n /* 16 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.renderTextLayer = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var renderTextLayer = function renderTextLayerClosure() {\n var MAX_TEXT_DIVS_TO_RENDER = 100000;\n var NonWhitespaceRegexp = /\\S/;\n\n function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n\n function appendText(task, geom, styles) {\n var textDiv = document.createElement(\"span\");\n var textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n isWhitespace: false,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1\n };\n\n task._textDivs.push(textDiv);\n\n if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n return;\n }\n\n var tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);\n var fontAscent = fontHeight;\n\n if (style.ascent) {\n fontAscent = style.ascent * fontAscent;\n } else if (style.descent) {\n fontAscent = (1 + style.descent) * fontAscent;\n }\n\n var left, top;\n\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n\n textDiv.style.left = \"\".concat(left, \"px\");\n textDiv.style.top = \"\".concat(top, \"px\");\n textDiv.style.fontSize = \"\".concat(fontHeight, \"px\");\n textDiv.style.fontFamily = style.fontFamily;\n textDiv.textContent = geom.str;\n\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n\n if (geom.str.length > 1) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection) {\n var angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n var divHeight = fontHeight;\n var m, b;\n\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m: m\n });\n }\n }\n\n function render(task) {\n if (task._canceled) {\n return;\n }\n\n var textDivs = task._textDivs;\n var capability = task._capability;\n var textDivsLength = textDivs.length;\n\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (var i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n }\n\n function expand(task) {\n var bounds = task._bounds;\n var viewport = task._viewport;\n var expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n\n var divProperties = task._textDivProperties.get(div);\n\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n\n task._textDivProperties.set(div, divProperties);\n\n continue;\n }\n\n var e = expanded[i],\n b = bounds[i];\n var m = b.m,\n c = m[0],\n s = m[1];\n var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n var ts = new Float64Array(64);\n points.forEach(function (p, i) {\n var t = _util.Util.applyTransform(p, m);\n\n ts[i + 0] = c && (e.left - t[0]) / c;\n ts[i + 4] = s && (e.top - t[1]) / s;\n ts[i + 8] = c && (e.right - t[0]) / c;\n ts[i + 12] = s && (e.bottom - t[1]) / s;\n ts[i + 16] = s && (e.left - t[0]) / -s;\n ts[i + 20] = c && (e.top - t[1]) / c;\n ts[i + 24] = s && (e.right - t[0]) / -s;\n ts[i + 28] = c && (e.bottom - t[1]) / c;\n ts[i + 32] = c && (e.left - t[0]) / -c;\n ts[i + 36] = s && (e.top - t[1]) / -s;\n ts[i + 40] = c && (e.right - t[0]) / -c;\n ts[i + 44] = s && (e.bottom - t[1]) / -s;\n ts[i + 48] = s && (e.left - t[0]) / s;\n ts[i + 52] = c && (e.top - t[1]) / -c;\n ts[i + 56] = s && (e.right - t[0]) / s;\n ts[i + 60] = c && (e.bottom - t[1]) / -c;\n });\n\n var findPositiveMin = function findPositiveMin(ts, offset, count) {\n var result = 0;\n\n for (var i = 0; i < count; i++) {\n var t = ts[offset++];\n\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n\n return result;\n };\n\n var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n\n task._textDivProperties.set(div, divProperties);\n }\n }\n\n function expandBounds(width, height, boxes) {\n var bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined\n };\n });\n expandBoundsLTR(width, bounds);\n var expanded = new Array(boxes.length);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n });\n boxes.map(function (box, i) {\n var e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n });\n return expanded;\n }\n\n function expandBoundsLTR(width, bounds) {\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n var fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n var horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n bounds.forEach(function (boundary) {\n var i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n var j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n var horizonPart, affectedBoundary;\n var q,\n k,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var xNew;\n\n if (affectedBoundary.x2 > boundary.x1) {\n xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = affectedBoundary.x2New;\n }\n\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n boundary.x1New = maxXNew;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n if (affectedBoundary.x2 > boundary.x1) {\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n var changedHorizon = [],\n lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\n changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary\n });\n lastBoundary = useBoundary;\n }\n }\n\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n var used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n });\n horizon.forEach(function (horizonPart) {\n var affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\n\n function TextLayerRenderTask(_ref29) {\n var _this32 = this;\n\n var textContent = _ref29.textContent,\n textContentStream = _ref29.textContentStream,\n container = _ref29.container,\n viewport = _ref29.viewport,\n textDivs = _ref29.textDivs,\n textContentItemsStr = _ref29.textContentItemsStr,\n enhanceTextSelection = _ref29.enhanceTextSelection;\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!(globalThis.FontInspector && globalThis.FontInspector.enabled);\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n\n this._capability.promise[\"finally\"](function () {\n if (_this32._layoutTextCtx) {\n _this32._layoutTextCtx.canvas.width = 0;\n _this32._layoutTextCtx.canvas.height = 0;\n _this32._layoutTextCtx = null;\n }\n })[\"catch\"](function () {});\n }\n\n TextLayerRenderTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n\n cancel: function TextLayer_cancel() {\n this._canceled = true;\n\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\"));\n\n this._reader = null;\n }\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n\n this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n },\n _processItems: function _processItems(items, styleCache) {\n for (var i = 0, len = items.length; i < len; i++) {\n this._textContentItemsStr.push(items[i].str);\n\n appendText(this, items[i], styleCache);\n }\n },\n _layoutText: function _layoutText(textDiv) {\n var textDivProperties = this._textDivProperties.get(textDiv);\n\n if (textDivProperties.isWhitespace) {\n return;\n }\n\n var transform = \"\";\n\n if (textDivProperties.canvasWidth !== 0) {\n var _textDiv$style = textDiv.style,\n fontSize = _textDiv$style.fontSize,\n fontFamily = _textDiv$style.fontFamily;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = \"\".concat(fontSize, \" \").concat(fontFamily);\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n var _this$_layoutTextCtx$ = this._layoutTextCtx.measureText(textDiv.textContent),\n width = _this$_layoutTextCtx$.width;\n\n if (width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = \"scaleX(\".concat(textDivProperties.scale, \")\");\n }\n }\n\n if (textDivProperties.angle !== 0) {\n transform = \"rotate(\".concat(textDivProperties.angle, \"deg) \").concat(transform);\n }\n\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n\n textDiv.style.transform = transform;\n }\n\n this._textDivProperties.set(textDiv, textDivProperties);\n\n this._container.appendChild(textDiv);\n },\n _render: function TextLayer_render(timeout) {\n var _this33 = this;\n\n var capability = (0, _util.createPromiseCapability)();\n var styleCache = Object.create(null);\n var canvas = document.createElement(\"canvas\");\n canvas.mozOpaque = true;\n this._layoutTextCtx = canvas.getContext(\"2d\", {\n alpha: false\n });\n\n if (this._textContent) {\n var textItems = this._textContent.items;\n var textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n var pump = function pump() {\n _this33._reader.read().then(function (_ref30) {\n var value = _ref30.value,\n done = _ref30.done;\n\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n _this33._processItems(value.items, styleCache);\n\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\"' + \" parameters specified.\");\n }\n\n capability.promise.then(function () {\n styleCache = null;\n\n if (!timeout) {\n render(_this33);\n } else {\n _this33._renderTimer = setTimeout(function () {\n render(_this33);\n _this33._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n },\n expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n var transformBuf = [],\n paddingBuf = [];\n\n for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n var div = this._textDivs[i];\n\n var divProps = this._textDivProperties.get(div);\n\n if (divProps.isWhitespace) {\n continue;\n }\n\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\n\n if (divProps.paddingTop > 0) {\n paddingBuf.push(\"\".concat(divProps.paddingTop, \"px\"));\n transformBuf.push(\"translateY(\".concat(-divProps.paddingTop, \"px)\"));\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingRight > 0) {\n paddingBuf.push(\"\".concat(divProps.paddingRight / divProps.scale, \"px\"));\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(\"\".concat(divProps.paddingBottom, \"px\"));\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(\"\".concat(divProps.paddingLeft / divProps.scale, \"px\"));\n transformBuf.push(\"translateX(\".concat(-divProps.paddingLeft / divProps.scale, \"px)\"));\n } else {\n paddingBuf.push(0);\n }\n\n div.style.padding = paddingBuf.join(\" \");\n\n if (transformBuf.length) {\n div.style.transform = transformBuf.join(\" \");\n }\n } else {\n div.style.padding = null;\n div.style.transform = divProps.originalTransform;\n }\n }\n }\n };\n\n function renderTextLayer(renderParameters) {\n var task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection\n });\n\n task._render(renderParameters.timeout);\n\n return task;\n }\n\n return renderTextLayer;\n }();\n\n exports.renderTextLayer = renderTextLayer;\n /***/\n },\n /* 17 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.AnnotationLayer = void 0;\n\n var _display_utils = __w_pdfjs_require__(4);\n\n var _util = __w_pdfjs_require__(1);\n\n var AnnotationElementFactory = /*#__PURE__*/function () {\n function AnnotationElementFactory() {\n _classCallCheck(this, AnnotationElementFactory);\n }\n\n _createClass(AnnotationElementFactory, null, [{\n key: \"create\",\n value: function create(parameters) {\n var subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case _util.AnnotationType.WIDGET:\n var fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n\n return new PushButtonWidgetAnnotationElement(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n\n return new WidgetAnnotationElement(parameters);\n\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n }]);\n\n return AnnotationElementFactory;\n }();\n\n var AnnotationElement = /*#__PURE__*/function () {\n function AnnotationElement(parameters) {\n var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n _classCallCheck(this, AnnotationElement);\n\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderInteractiveForms = parameters.renderInteractiveForms;\n this.svgFactory = parameters.svgFactory;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n }\n\n _createClass(AnnotationElement, [{\n key: \"_createContainer\",\n value: function _createContainer() {\n var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var data = this.data,\n page = this.page,\n viewport = this.viewport;\n var container = document.createElement(\"section\");\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n container.setAttribute(\"data-annotation-id\", data.id);\n\n var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n container.style.transform = \"matrix(\".concat(viewport.transform.join(\",\"), \")\");\n container.style.transformOrigin = \"-\".concat(rect[0], \"px -\").concat(rect[1], \"px\");\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = \"\".concat(data.borderStyle.width, \"px\");\n\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\n width = width - 2 * data.borderStyle.width;\n height = height - 2 * data.borderStyle.width;\n }\n\n var horizontalRadius = data.borderStyle.horizontalCornerRadius;\n var verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n var radius = \"\".concat(horizontalRadius, \"px / \").concat(verticalRadius, \"px\");\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n\n default:\n break;\n }\n\n if (data.color) {\n container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = \"\".concat(rect[0], \"px\");\n container.style.top = \"\".concat(rect[1], \"px\");\n container.style.width = \"\".concat(width, \"px\");\n container.style.height = \"\".concat(height, \"px\");\n return container;\n }\n }, {\n key: \"_createPopup\",\n value: function _createPopup(container, trigger, data) {\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n\n var popupElement = new PopupElement({\n container: container,\n trigger: trigger,\n color: data.color,\n title: data.title,\n modificationDate: data.modificationDate,\n contents: data.contents,\n hideWrapper: true\n });\n var popup = popupElement.render();\n popup.style.left = container.style.width;\n container.appendChild(popup);\n }\n }, {\n key: \"render\",\n value: function render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n }]);\n\n return AnnotationElement;\n }();\n\n var LinkAnnotationElement = /*#__PURE__*/function (_AnnotationElement) {\n _inherits(LinkAnnotationElement, _AnnotationElement);\n\n var _super11 = _createSuper(LinkAnnotationElement);\n\n function LinkAnnotationElement(parameters) {\n _classCallCheck(this, LinkAnnotationElement);\n\n var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);\n return _super11.call(this, parameters, isRenderable);\n }\n\n _createClass(LinkAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"linkAnnotation\";\n var data = this.data,\n linkService = this.linkService;\n var link = document.createElement(\"a\");\n\n if (data.url) {\n (0, _display_utils.addLinkAttributes)(link, {\n url: data.url,\n target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget,\n rel: linkService.externalLinkRel,\n enabled: linkService.externalLinkEnabled\n });\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else {\n this._bindLink(link, data.dest);\n }\n\n this.container.appendChild(link);\n return this.container;\n }\n }, {\n key: \"_bindLink\",\n value: function _bindLink(link, destination) {\n var _this34 = this;\n\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = function () {\n if (destination) {\n _this34.linkService.navigateTo(destination);\n }\n\n return false;\n };\n\n if (destination) {\n link.className = \"internalLink\";\n }\n }\n }, {\n key: \"_bindNamedAction\",\n value: function _bindNamedAction(link, action) {\n var _this35 = this;\n\n link.href = this.linkService.getAnchorUrl(\"\");\n\n link.onclick = function () {\n _this35.linkService.executeNamedAction(action);\n\n return false;\n };\n\n link.className = \"internalLink\";\n }\n }]);\n\n return LinkAnnotationElement;\n }(AnnotationElement);\n\n var TextAnnotationElement = /*#__PURE__*/function (_AnnotationElement2) {\n _inherits(TextAnnotationElement, _AnnotationElement2);\n\n var _super12 = _createSuper(TextAnnotationElement);\n\n function TextAnnotationElement(parameters) {\n _classCallCheck(this, TextAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _super12.call(this, parameters, isRenderable);\n }\n\n _createClass(TextAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"textAnnotation\";\n var image = document.createElement(\"img\");\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n }]);\n\n return TextAnnotationElement;\n }(AnnotationElement);\n\n var WidgetAnnotationElement = /*#__PURE__*/function (_AnnotationElement3) {\n _inherits(WidgetAnnotationElement, _AnnotationElement3);\n\n var _super13 = _createSuper(WidgetAnnotationElement);\n\n function WidgetAnnotationElement() {\n _classCallCheck(this, WidgetAnnotationElement);\n\n return _super13.apply(this, arguments);\n }\n\n _createClass(WidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n return this.container;\n }\n }]);\n\n return WidgetAnnotationElement;\n }(AnnotationElement);\n\n var TextWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem) {\n _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem);\n\n var _super14 = _createSuper(TextWidgetAnnotationElement);\n\n function TextWidgetAnnotationElement(parameters) {\n _classCallCheck(this, TextWidgetAnnotationElement);\n\n var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n return _super14.call(this, parameters, isRenderable);\n }\n\n _createClass(TextWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n this.container.className = \"textWidgetAnnotation\";\n var element = null;\n\n if (this.renderInteractiveForms) {\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = this.data.fieldValue;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", this.data.fieldValue);\n }\n\n element.disabled = this.data.readOnly;\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n var fieldWidth = this.data.rect[2] - this.data.rect[0];\n var combWidth = fieldWidth / this.data.maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = \"calc(\".concat(combWidth, \"px - 1ch)\");\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n var font = null;\n\n if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {\n font = this.page.commonObjs.get(this.data.fontRefName);\n }\n\n this._setTextStyle(element, font);\n }\n\n if (this.data.textAlignment !== null) {\n element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n }, {\n key: \"_setTextStyle\",\n value: function _setTextStyle(element, font) {\n var style = element.style;\n style.fontSize = \"\".concat(this.data.fontSize, \"px\");\n style.direction = this.data.fontDirection < 0 ? \"rtl\" : \"ltr\";\n\n if (!font) {\n return;\n }\n\n var bold = \"normal\";\n\n if (font.black) {\n bold = \"900\";\n } else if (font.bold) {\n bold = \"bold\";\n }\n\n style.fontWeight = bold;\n style.fontStyle = font.italic ? \"italic\" : \"normal\";\n var fontFamily = font.loadedName ? \"\\\"\".concat(font.loadedName, \"\\\", \") : \"\";\n var fallbackName = font.fallbackName || \"Helvetica, sans-serif\";\n style.fontFamily = fontFamily + fallbackName;\n }\n }]);\n\n return TextWidgetAnnotationElement;\n }(WidgetAnnotationElement);\n\n var CheckboxWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem2) {\n _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2);\n\n var _super15 = _createSuper(CheckboxWidgetAnnotationElement);\n\n function CheckboxWidgetAnnotationElement(parameters) {\n _classCallCheck(this, CheckboxWidgetAnnotationElement);\n\n return _super15.call(this, parameters, parameters.renderInteractiveForms);\n }\n\n _createClass(CheckboxWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n var element = document.createElement(\"input\");\n element.disabled = this.data.readOnly;\n element.type = \"checkbox\";\n\n if (this.data.fieldValue && this.data.fieldValue !== \"Off\") {\n element.setAttribute(\"checked\", true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n }]);\n\n return CheckboxWidgetAnnotationElement;\n }(WidgetAnnotationElement);\n\n var RadioButtonWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem3) {\n _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3);\n\n var _super16 = _createSuper(RadioButtonWidgetAnnotationElement);\n\n function RadioButtonWidgetAnnotationElement(parameters) {\n _classCallCheck(this, RadioButtonWidgetAnnotationElement);\n\n return _super16.call(this, parameters, parameters.renderInteractiveForms);\n }\n\n _createClass(RadioButtonWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n var element = document.createElement(\"input\");\n element.disabled = this.data.readOnly;\n element.type = \"radio\";\n element.name = this.data.fieldName;\n\n if (this.data.fieldValue === this.data.buttonValue) {\n element.setAttribute(\"checked\", true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n }]);\n\n return RadioButtonWidgetAnnotationElement;\n }(WidgetAnnotationElement);\n\n var PushButtonWidgetAnnotationElement = /*#__PURE__*/function (_LinkAnnotationElemen) {\n _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen);\n\n var _super17 = _createSuper(PushButtonWidgetAnnotationElement);\n\n function PushButtonWidgetAnnotationElement() {\n _classCallCheck(this, PushButtonWidgetAnnotationElement);\n\n return _super17.apply(this, arguments);\n }\n\n _createClass(PushButtonWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), \"render\", this).call(this);\n\n container.className = \"buttonWidgetAnnotation pushButton\";\n return container;\n }\n }]);\n\n return PushButtonWidgetAnnotationElement;\n }(LinkAnnotationElement);\n\n var ChoiceWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem4) {\n _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4);\n\n var _super18 = _createSuper(ChoiceWidgetAnnotationElement);\n\n function ChoiceWidgetAnnotationElement(parameters) {\n _classCallCheck(this, ChoiceWidgetAnnotationElement);\n\n return _super18.call(this, parameters, parameters.renderInteractiveForms);\n }\n\n _createClass(ChoiceWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"choiceWidgetAnnotation\";\n var selectElement = document.createElement(\"select\");\n selectElement.disabled = this.data.readOnly;\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n var _iterator10 = _createForOfIteratorHelper(this.data.options),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var option = _step10.value;\n var optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (this.data.fieldValue.includes(option.displayValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n\n selectElement.appendChild(optionElement);\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n\n this.container.appendChild(selectElement);\n return this.container;\n }\n }]);\n\n return ChoiceWidgetAnnotationElement;\n }(WidgetAnnotationElement);\n\n var PopupAnnotationElement = /*#__PURE__*/function (_AnnotationElement4) {\n _inherits(PopupAnnotationElement, _AnnotationElement4);\n\n var _super19 = _createSuper(PopupAnnotationElement);\n\n function PopupAnnotationElement(parameters) {\n _classCallCheck(this, PopupAnnotationElement);\n\n var isRenderable = !!(parameters.data.title || parameters.data.contents);\n return _super19.call(this, parameters, isRenderable);\n }\n\n _createClass(PopupAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var IGNORE_TYPES = [\"Line\", \"Square\", \"Circle\", \"PolyLine\", \"Polygon\", \"Ink\"];\n this.container.className = \"popupAnnotation\";\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n var selector = \"[data-annotation-id=\\\"\".concat(this.data.parentId, \"\\\"]\");\n var parentElement = this.layer.querySelector(selector);\n\n if (!parentElement) {\n return this.container;\n }\n\n var popup = new PopupElement({\n container: this.container,\n trigger: parentElement,\n color: this.data.color,\n title: this.data.title,\n modificationDate: this.data.modificationDate,\n contents: this.data.contents\n });\n var parentLeft = parseFloat(parentElement.style.left);\n var parentWidth = parseFloat(parentElement.style.width);\n this.container.style.transformOrigin = \"-\".concat(parentLeft + parentWidth, \"px -\").concat(parentElement.style.top);\n this.container.style.left = \"\".concat(parentLeft + parentWidth, \"px\");\n this.container.appendChild(popup.render());\n return this.container;\n }\n }]);\n\n return PopupAnnotationElement;\n }(AnnotationElement);\n\n var PopupElement = /*#__PURE__*/function () {\n function PopupElement(parameters) {\n _classCallCheck(this, PopupElement);\n\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.title = parameters.title;\n this.modificationDate = parameters.modificationDate;\n this.contents = parameters.contents;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n\n _createClass(PopupElement, [{\n key: \"render\",\n value: function render() {\n var BACKGROUND_ENLIGHT = 0.7;\n var wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.setAttribute(\"hidden\", true);\n var popup = document.createElement(\"div\");\n popup.className = \"popup\";\n var color = this.color;\n\n if (color) {\n var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);\n }\n\n var title = document.createElement(\"h1\");\n title.textContent = this.title;\n popup.appendChild(title);\n\n var dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n if (dateObject) {\n var modificationDate = document.createElement(\"span\");\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n popup.appendChild(modificationDate);\n }\n\n var contents = this._formatContents(this.contents);\n\n popup.appendChild(contents);\n this.trigger.addEventListener(\"click\", this._toggle.bind(this));\n this.trigger.addEventListener(\"mouseover\", this._show.bind(this, false));\n this.trigger.addEventListener(\"mouseout\", this._hide.bind(this, false));\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n wrapper.appendChild(popup);\n return wrapper;\n }\n }, {\n key: \"_formatContents\",\n value: function _formatContents(contents) {\n var p = document.createElement(\"p\");\n var lines = contents.split(/(?:\\r\\n?|\\n)/);\n\n for (var i = 0, ii = lines.length; i < ii; ++i) {\n var line = lines[i];\n p.appendChild(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.appendChild(document.createElement(\"br\"));\n }\n }\n\n return p;\n }\n }, {\n key: \"_toggle\",\n value: function _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n }, {\n key: \"_show\",\n value: function _show() {\n var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hasAttribute(\"hidden\")) {\n this.hideElement.removeAttribute(\"hidden\");\n this.container.style.zIndex += 1;\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide() {\n var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (unpin) {\n this.pinned = false;\n }\n\n if (!this.hideElement.hasAttribute(\"hidden\") && !this.pinned) {\n this.hideElement.setAttribute(\"hidden\", true);\n this.container.style.zIndex -= 1;\n }\n }\n }]);\n\n return PopupElement;\n }();\n\n var FreeTextAnnotationElement = /*#__PURE__*/function (_AnnotationElement5) {\n _inherits(FreeTextAnnotationElement, _AnnotationElement5);\n\n var _super20 = _createSuper(FreeTextAnnotationElement);\n\n function FreeTextAnnotationElement(parameters) {\n _classCallCheck(this, FreeTextAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _super20.call(this, parameters, isRenderable, true);\n }\n\n _createClass(FreeTextAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return FreeTextAnnotationElement;\n }(AnnotationElement);\n\n var LineAnnotationElement = /*#__PURE__*/function (_AnnotationElement6) {\n _inherits(LineAnnotationElement, _AnnotationElement6);\n\n var _super21 = _createSuper(LineAnnotationElement);\n\n function LineAnnotationElement(parameters) {\n _classCallCheck(this, LineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _super21.call(this, parameters, isRenderable, true);\n }\n\n _createClass(LineAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"lineAnnotation\";\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n svg.appendChild(line);\n this.container.append(svg);\n\n this._createPopup(this.container, line, data);\n\n return this.container;\n }\n }]);\n\n return LineAnnotationElement;\n }(AnnotationElement);\n\n var SquareAnnotationElement = /*#__PURE__*/function (_AnnotationElement7) {\n _inherits(SquareAnnotationElement, _AnnotationElement7);\n\n var _super22 = _createSuper(SquareAnnotationElement);\n\n function SquareAnnotationElement(parameters) {\n _classCallCheck(this, SquareAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _super22.call(this, parameters, isRenderable, true);\n }\n\n _createClass(SquareAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"squareAnnotation\";\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var borderWidth = data.borderStyle.width;\n var square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"none\");\n svg.appendChild(square);\n this.container.append(svg);\n\n this._createPopup(this.container, square, data);\n\n return this.container;\n }\n }]);\n\n return SquareAnnotationElement;\n }(AnnotationElement);\n\n var CircleAnnotationElement = /*#__PURE__*/function (_AnnotationElement8) {\n _inherits(CircleAnnotationElement, _AnnotationElement8);\n\n var _super23 = _createSuper(CircleAnnotationElement);\n\n function CircleAnnotationElement(parameters) {\n _classCallCheck(this, CircleAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _super23.call(this, parameters, isRenderable, true);\n }\n\n _createClass(CircleAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"circleAnnotation\";\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var borderWidth = data.borderStyle.width;\n var circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"none\");\n svg.appendChild(circle);\n this.container.append(svg);\n\n this._createPopup(this.container, circle, data);\n\n return this.container;\n }\n }]);\n\n return CircleAnnotationElement;\n }(AnnotationElement);\n\n var PolylineAnnotationElement = /*#__PURE__*/function (_AnnotationElement9) {\n _inherits(PolylineAnnotationElement, _AnnotationElement9);\n\n var _super24 = _createSuper(PolylineAnnotationElement);\n\n function PolylineAnnotationElement(parameters) {\n var _this36;\n\n _classCallCheck(this, PolylineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n _this36 = _super24.call(this, parameters, isRenderable, true);\n _this36.containerClassName = \"polylineAnnotation\";\n _this36.svgElementName = \"svg:polyline\";\n return _this36;\n }\n\n _createClass(PolylineAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = this.containerClassName;\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var points = [];\n\n var _iterator11 = _createForOfIteratorHelper(data.vertices),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var coordinate = _step11.value;\n var x = coordinate.x - data.rect[0];\n var y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n points = points.join(\" \");\n var polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n svg.appendChild(polyline);\n this.container.append(svg);\n\n this._createPopup(this.container, polyline, data);\n\n return this.container;\n }\n }]);\n\n return PolylineAnnotationElement;\n }(AnnotationElement);\n\n var PolygonAnnotationElement = /*#__PURE__*/function (_PolylineAnnotationEl) {\n _inherits(PolygonAnnotationElement, _PolylineAnnotationEl);\n\n var _super25 = _createSuper(PolygonAnnotationElement);\n\n function PolygonAnnotationElement(parameters) {\n var _this37;\n\n _classCallCheck(this, PolygonAnnotationElement);\n\n _this37 = _super25.call(this, parameters);\n _this37.containerClassName = \"polygonAnnotation\";\n _this37.svgElementName = \"svg:polygon\";\n return _this37;\n }\n\n return PolygonAnnotationElement;\n }(PolylineAnnotationElement);\n\n var CaretAnnotationElement = /*#__PURE__*/function (_AnnotationElement10) {\n _inherits(CaretAnnotationElement, _AnnotationElement10);\n\n var _super26 = _createSuper(CaretAnnotationElement);\n\n function CaretAnnotationElement(parameters) {\n _classCallCheck(this, CaretAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _super26.call(this, parameters, isRenderable, true);\n }\n\n _createClass(CaretAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return CaretAnnotationElement;\n }(AnnotationElement);\n\n var InkAnnotationElement = /*#__PURE__*/function (_AnnotationElement11) {\n _inherits(InkAnnotationElement, _AnnotationElement11);\n\n var _super27 = _createSuper(InkAnnotationElement);\n\n function InkAnnotationElement(parameters) {\n var _this38;\n\n _classCallCheck(this, InkAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n _this38 = _super27.call(this, parameters, isRenderable, true);\n _this38.containerClassName = \"inkAnnotation\";\n _this38.svgElementName = \"svg:polyline\";\n return _this38;\n }\n\n _createClass(InkAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = this.containerClassName;\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n\n var _iterator12 = _createForOfIteratorHelper(data.inkLists),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var inkList = _step12.value;\n var points = [];\n\n var _iterator13 = _createForOfIteratorHelper(inkList),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var coordinate = _step13.value;\n var x = coordinate.x - data.rect[0];\n var y = data.rect[3] - coordinate.y;\n points.push(\"\".concat(x, \",\").concat(y));\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n points = points.join(\" \");\n var polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n\n this._createPopup(this.container, polyline, data);\n\n svg.appendChild(polyline);\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n\n this.container.append(svg);\n return this.container;\n }\n }]);\n\n return InkAnnotationElement;\n }(AnnotationElement);\n\n var HighlightAnnotationElement = /*#__PURE__*/function (_AnnotationElement12) {\n _inherits(HighlightAnnotationElement, _AnnotationElement12);\n\n var _super28 = _createSuper(HighlightAnnotationElement);\n\n function HighlightAnnotationElement(parameters) {\n _classCallCheck(this, HighlightAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _super28.call(this, parameters, isRenderable, true);\n }\n\n _createClass(HighlightAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"highlightAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return HighlightAnnotationElement;\n }(AnnotationElement);\n\n var UnderlineAnnotationElement = /*#__PURE__*/function (_AnnotationElement13) {\n _inherits(UnderlineAnnotationElement, _AnnotationElement13);\n\n var _super29 = _createSuper(UnderlineAnnotationElement);\n\n function UnderlineAnnotationElement(parameters) {\n _classCallCheck(this, UnderlineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _super29.call(this, parameters, isRenderable, true);\n }\n\n _createClass(UnderlineAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"underlineAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return UnderlineAnnotationElement;\n }(AnnotationElement);\n\n var SquigglyAnnotationElement = /*#__PURE__*/function (_AnnotationElement14) {\n _inherits(SquigglyAnnotationElement, _AnnotationElement14);\n\n var _super30 = _createSuper(SquigglyAnnotationElement);\n\n function SquigglyAnnotationElement(parameters) {\n _classCallCheck(this, SquigglyAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _super30.call(this, parameters, isRenderable, true);\n }\n\n _createClass(SquigglyAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"squigglyAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return SquigglyAnnotationElement;\n }(AnnotationElement);\n\n var StrikeOutAnnotationElement = /*#__PURE__*/function (_AnnotationElement15) {\n _inherits(StrikeOutAnnotationElement, _AnnotationElement15);\n\n var _super31 = _createSuper(StrikeOutAnnotationElement);\n\n function StrikeOutAnnotationElement(parameters) {\n _classCallCheck(this, StrikeOutAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _super31.call(this, parameters, isRenderable, true);\n }\n\n _createClass(StrikeOutAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"strikeoutAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return StrikeOutAnnotationElement;\n }(AnnotationElement);\n\n var StampAnnotationElement = /*#__PURE__*/function (_AnnotationElement16) {\n _inherits(StampAnnotationElement, _AnnotationElement16);\n\n var _super32 = _createSuper(StampAnnotationElement);\n\n function StampAnnotationElement(parameters) {\n _classCallCheck(this, StampAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _super32.call(this, parameters, isRenderable, true);\n }\n\n _createClass(StampAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return StampAnnotationElement;\n }(AnnotationElement);\n\n var FileAttachmentAnnotationElement = /*#__PURE__*/function (_AnnotationElement17) {\n _inherits(FileAttachmentAnnotationElement, _AnnotationElement17);\n\n var _super33 = _createSuper(FileAttachmentAnnotationElement);\n\n function FileAttachmentAnnotationElement(parameters) {\n var _this39;\n\n _classCallCheck(this, FileAttachmentAnnotationElement);\n\n _this39 = _super33.call(this, parameters, true);\n var _this39$data$file = _this39.data.file,\n filename = _this39$data$file.filename,\n content = _this39$data$file.content;\n _this39.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n _this39.content = content;\n\n if (_this39.linkService.eventBus) {\n _this39.linkService.eventBus.dispatch(\"fileattachmentannotation\", {\n source: _assertThisInitialized(_this39),\n id: (0, _util.stringToPDFString)(filename),\n filename: filename,\n content: content\n });\n }\n\n return _this39;\n }\n\n _createClass(FileAttachmentAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"fileAttachmentAnnotation\";\n var trigger = document.createElement(\"div\");\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (!this.data.hasPopup && (this.data.title || this.data.contents)) {\n this._createPopup(this.container, trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n }, {\n key: \"_download\",\n value: function _download() {\n if (!this.downloadManager) {\n (0, _util.warn)(\"Download cannot be started due to unavailable download manager\");\n return;\n }\n\n this.downloadManager.downloadData(this.content, this.filename, \"\");\n }\n }]);\n\n return FileAttachmentAnnotationElement;\n }(AnnotationElement);\n\n var AnnotationLayer = /*#__PURE__*/function () {\n function AnnotationLayer() {\n _classCallCheck(this, AnnotationLayer);\n }\n\n _createClass(AnnotationLayer, null, [{\n key: \"render\",\n value: function render(parameters) {\n var sortedAnnotations = [],\n popupAnnotations = [];\n\n var _iterator14 = _createForOfIteratorHelper(parameters.annotations),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var _data4 = _step14.value;\n\n if (!_data4) {\n continue;\n }\n\n if (_data4.annotationType === _util.AnnotationType.POPUP) {\n popupAnnotations.push(_data4);\n continue;\n }\n\n sortedAnnotations.push(_data4);\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n\n if (popupAnnotations.length) {\n sortedAnnotations.push.apply(sortedAnnotations, popupAnnotations);\n }\n\n for (var _i7 = 0, _sortedAnnotations = sortedAnnotations; _i7 < _sortedAnnotations.length; _i7++) {\n var data = _sortedAnnotations[_i7];\n var element = AnnotationElementFactory.create({\n data: data,\n layer: parameters.div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderInteractiveForms: parameters.renderInteractiveForms || false,\n svgFactory: new _display_utils.DOMSVGFactory()\n });\n\n if (element.isRenderable) {\n parameters.div.appendChild(element.render());\n }\n }\n }\n }, {\n key: \"update\",\n value: function update(parameters) {\n var _iterator15 = _createForOfIteratorHelper(parameters.annotations),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var data = _step15.value;\n var element = parameters.div.querySelector(\"[data-annotation-id=\\\"\".concat(data.id, \"\\\"]\"));\n\n if (element) {\n element.style.transform = \"matrix(\".concat(parameters.viewport.transform.join(\",\"), \")\");\n }\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n\n parameters.div.removeAttribute(\"hidden\");\n }\n }]);\n\n return AnnotationLayer;\n }();\n\n exports.AnnotationLayer = AnnotationLayer;\n /***/\n },\n /* 18 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.SVGGraphics = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var _display_utils = __w_pdfjs_require__(4);\n\n var _is_node = __w_pdfjs_require__(7);\n\n var SVGGraphics = function SVGGraphics() {\n throw new Error(\"Not implemented: SVGGraphics\");\n };\n\n exports.SVGGraphics = SVGGraphics;\n {\n var opListToTree = function opListToTree(opList) {\n var opTree = [];\n var tmp = [];\n\n var _iterator16 = _createForOfIteratorHelper(opList),\n _step16;\n\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var opListElement = _step16.value;\n\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n\n return opTree;\n };\n\n var pf = function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n var s = value.toFixed(10);\n var i = s.length - 1;\n\n if (s[i] !== \"0\") {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === \"0\");\n\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n };\n\n var pm = function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n\n return \"scale(\".concat(pf(m[0]), \" \").concat(pf(m[3]), \")\");\n }\n\n if (m[0] === m[3] && m[1] === -m[2]) {\n var a = Math.acos(m[0]) * 180 / Math.PI;\n return \"rotate(\".concat(pf(a), \")\");\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return \"translate(\".concat(pf(m[4]), \" \").concat(pf(m[5]), \")\");\n }\n }\n\n return \"matrix(\".concat(pf(m[0]), \" \").concat(pf(m[1]), \" \").concat(pf(m[2]), \" \").concat(pf(m[3]), \" \").concat(pf(m[4]), \" \") + \"\".concat(pf(m[5]), \")\");\n };\n\n var SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n };\n var XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n var XLINK_NS = \"http://www.w3.org/1999/xlink\";\n var LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n var LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n var convertImgDataToPng = function () {\n var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n var CHUNK_WRAPPER_SIZE = 12;\n var crcTable = new Int32Array(256);\n\n for (var i = 0; i < 256; i++) {\n var c = i;\n\n for (var h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n var crc = -1;\n\n for (var _i8 = start; _i8 < end; _i8++) {\n var a = (crc ^ data[_i8]) & 0xff;\n var b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n var p = offset;\n var len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n var crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n var a = 1;\n var b = 0;\n\n for (var _i9 = start; _i9 < end; ++_i9) {\n a = (a + (data[_i9] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!_is_node.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n var input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = Buffer.from(literals);\n }\n\n var output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n var len = literals.length;\n var maxBlockLength = 0xffff;\n var deflateBlocks = Math.ceil(len / maxBlockLength);\n var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n var pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n var pos = 0;\n\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n var adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n var width = imgData.width;\n var height = imgData.height;\n var bitDepth, colorType, lineSize;\n var bytes = imgData.data;\n\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error(\"invalid format\");\n }\n\n var literals = new Uint8Array((1 + lineSize) * height);\n var offsetLiterals = 0,\n offsetBytes = 0;\n\n for (var y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (var _y = 0; _y < height; _y++) {\n offsetLiterals++;\n\n for (var _i10 = 0; _i10 < lineSize; _i10++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n var idat = deflateSync(literals);\n var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n var data = new Uint8Array(pngLength);\n var offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return (0, _util.createObjectURL)(data, \"image/png\", forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n\n var SVGExtraState = /*#__PURE__*/function () {\n function SVGExtraState() {\n _classCallCheck(this, SVGExtraState);\n\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n\n _createClass(SVGExtraState, [{\n key: \"clone\",\n value: function clone() {\n return Object.create(this);\n }\n }, {\n key: \"setCurrentPoint\",\n value: function setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n }]);\n\n return SVGExtraState;\n }();\n\n var clipCount = 0;\n var maskCount = 0;\n var shadingCount = 0;\n\n exports.SVGGraphics = SVGGraphics = /*#__PURE__*/function () {\n function SVGGraphics(commonObjs, objs, forceDataSchema) {\n _classCallCheck(this, SVGGraphics);\n\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n\n for (var op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n\n _createClass(SVGGraphics, [{\n key: \"save\",\n value: function save() {\n this.transformStack.push(this.transformMatrix);\n var old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n }, {\n key: \"restore\",\n value: function restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n }, {\n key: \"group\",\n value: function group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n }, {\n key: \"loadDependencies\",\n value: function loadDependencies(operatorList) {\n var _this40 = this;\n\n var fnArray = operatorList.fnArray;\n var argsArray = operatorList.argsArray;\n\n for (var i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n\n var _iterator17 = _createForOfIteratorHelper(argsArray[i]),\n _step17;\n\n try {\n var _loop = function _loop() {\n var obj = _step17.value;\n var objsPool = obj.startsWith(\"g_\") ? _this40.commonObjs : _this40.objs;\n var promise = new Promise(function (resolve) {\n objsPool.get(obj, resolve);\n });\n\n _this40.current.dependencies.push(promise);\n };\n\n for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator17.e(err);\n } finally {\n _iterator17.f();\n }\n }\n\n return Promise.all(this.current.dependencies);\n }\n }, {\n key: \"transform\",\n value: function transform(a, b, c, d, e, f) {\n var transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n }, {\n key: \"getSVG\",\n value: function getSVG(operatorList, viewport) {\n var _this41 = this;\n\n this.viewport = viewport;\n\n var svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(function () {\n _this41.transformMatrix = _util.IDENTITY_MATRIX;\n\n _this41.executeOpTree(_this41.convertOpList(operatorList));\n\n return svgElement;\n });\n }\n }, {\n key: \"convertOpList\",\n value: function convertOpList(operatorList) {\n var operatorIdMapping = this._operatorIdMapping;\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var opList = [];\n\n for (var i = 0, ii = fnArray.length; i < ii; i++) {\n var fnId = fnArray[i];\n opList.push({\n fnId: fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n\n return opListToTree(opList);\n }\n }, {\n key: \"executeOpTree\",\n value: function executeOpTree(opTree) {\n var _iterator18 = _createForOfIteratorHelper(opTree),\n _step18;\n\n try {\n for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n var opTreeElement = _step18.value;\n var fn = opTreeElement.fn;\n var fnId = opTreeElement.fnId;\n var args = opTreeElement.args;\n\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintJpegXObject:\n this.paintJpegXObject(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTreeElement.items);\n break;\n\n default:\n (0, _util.warn)(\"Unimplemented operator \".concat(fn));\n break;\n }\n }\n } catch (err) {\n _iterator18.e(err);\n } finally {\n _iterator18.f();\n }\n }\n }, {\n key: \"setWordSpacing\",\n value: function setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n }, {\n key: \"setCharSpacing\",\n value: function setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n }, {\n key: \"nextLine\",\n value: function nextLine() {\n this.moveText(0, this.current.leading);\n }\n }, {\n key: \"setTextMatrix\",\n value: function setTextMatrix(a, b, c, d, e, f) {\n var current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.sqrt(a * a + b * b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", \"\".concat(pf(current.fontSize), \"px\"));\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.appendChild(current.tspan);\n }\n }, {\n key: \"beginText\",\n value: function beginText() {\n var current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n }\n }, {\n key: \"moveText\",\n value: function moveText(x, y) {\n var current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", \"\".concat(pf(current.fontSize), \"px\"));\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n }, {\n key: \"showText\",\n value: function showText(glyphs) {\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var vertical = font.vertical;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var x = 0;\n\n var _iterator19 = _createForOfIteratorHelper(glyphs),\n _step19;\n\n try {\n for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n var glyph = _step19.value;\n\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if ((0, _util.isNum)(glyph)) {\n x += -glyph * fontSize * 0.001;\n continue;\n }\n\n var width = glyph.width;\n var character = glyph.fontChar;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n\n if (!glyph.isInFont && !font.missingFile) {\n x += charWidth;\n continue;\n }\n\n current.xcoords.push(current.x + x);\n current.tspan.textContent += character;\n x += charWidth;\n }\n } catch (err) {\n _iterator19.e(err);\n } finally {\n _iterator19.f();\n }\n\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", \"\".concat(pf(current.fontSize), \"px\"));\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n var lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n var textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, \"transform\", \"\".concat(pm(textMatrix), \" scale(\").concat(pf(textHScale), \", -1)\"));\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n\n this._ensureTransformGroup().appendChild(current.txtElement);\n }\n }, {\n key: \"setLeadingMoveText\",\n value: function setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n }, {\n key: \"addFontStyle\",\n value: function addFontStyle(fontObj) {\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.appendChild(this.cssStyle);\n }\n\n var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += \"@font-face { font-family: \\\"\".concat(fontObj.loadedName, \"\\\";\") + \" src: url(\".concat(url, \"); }\\n\");\n }\n }, {\n key: \"setFont\",\n value: function setFont(details) {\n var current = this.current;\n var fontObj = this.commonObjs.get(details[0]);\n var size = details[1];\n current.font = fontObj;\n\n if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n var bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n var italic = fontObj.italic ? \"italic\" : \"normal\";\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n }\n }, {\n key: \"endText\",\n value: function endText() {\n var current = this.current;\n\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n }, {\n key: \"setLineWidth\",\n value: function setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n }, {\n key: \"setLineCap\",\n value: function setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n }, {\n key: \"setLineJoin\",\n value: function setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n }, {\n key: \"setMiterLimit\",\n value: function setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n }, {\n key: \"setStrokeAlpha\",\n value: function setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n }, {\n key: \"setStrokeRGBColor\",\n value: function setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeCssRgb(r, g, b);\n }\n }, {\n key: \"setFillAlpha\",\n value: function setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n }, {\n key: \"setFillRGBColor\",\n value: function setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeCssRgb(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n }\n }, {\n key: \"setStrokeColorN\",\n value: function setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n }, {\n key: \"setFillColorN\",\n value: function setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n }, {\n key: \"shadingFill\",\n value: function shadingFill(args) {\n var width = this.viewport.width;\n var height = this.viewport.height;\n\n var inv = _util.Util.inverseTransform(this.transformMatrix);\n\n var bl = _util.Util.applyTransform([0, 0], inv);\n\n var br = _util.Util.applyTransform([0, height], inv);\n\n var ul = _util.Util.applyTransform([width, 0], inv);\n\n var ur = _util.Util.applyTransform([width, height], inv);\n\n var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n var rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n\n this._ensureTransformGroup().appendChild(rect);\n }\n }, {\n key: \"_makeColorN_Pattern\",\n value: function _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n\n return this._makeShadingPattern(args);\n }\n }, {\n key: \"_makeTilingPattern\",\n value: function _makeTilingPattern(args) {\n var color = args[1];\n var operatorList = args[2];\n var matrix = args[3] || _util.IDENTITY_MATRIX;\n\n var _args$ = _slicedToArray(args[4], 4),\n x0 = _args$[0],\n y0 = _args$[1],\n x1 = _args$[2],\n y1 = _args$[3];\n\n var xstep = args[5];\n var ystep = args[6];\n var paintType = args[7];\n var tilingId = \"shading\".concat(shadingCount++);\n\n var _util$Util$applyTrans = _util.Util.applyTransform([x0, y0], matrix),\n _util$Util$applyTrans2 = _slicedToArray(_util$Util$applyTrans, 2),\n tx0 = _util$Util$applyTrans2[0],\n ty0 = _util$Util$applyTrans2[1];\n\n var _util$Util$applyTrans3 = _util.Util.applyTransform([x1, y1], matrix),\n _util$Util$applyTrans4 = _slicedToArray(_util$Util$applyTrans3, 2),\n tx1 = _util$Util$applyTrans4[0],\n ty1 = _util$Util$applyTrans4[1];\n\n var _util$Util$singularVa = _util.Util.singularValueDecompose2dScale(matrix),\n _util$Util$singularVa2 = _slicedToArray(_util$Util$singularVa, 2),\n xscale = _util$Util$singularVa2[0],\n yscale = _util$Util$singularVa2[1];\n\n var txstep = xstep * xscale;\n var tystep = ystep * yscale;\n var tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", \"\".concat(tx0));\n tiling.setAttributeNS(null, \"y\", \"\".concat(ty0));\n var svg = this.svg;\n var transformMatrix = this.transformMatrix;\n var fillColor = this.current.fillColor;\n var strokeColor = this.current.strokeColor;\n var bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n\n if (paintType === 2) {\n var _util$Util;\n\n var cssColor = (_util$Util = _util.Util).makeCssRgb.apply(_util$Util, _toConsumableArray(color));\n\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return \"url(#\".concat(tilingId, \")\");\n }\n }, {\n key: \"_makeShadingPattern\",\n value: function _makeShadingPattern(args) {\n switch (args[0]) {\n case \"RadialAxial\":\n var shadingId = \"shading\".concat(shadingCount++);\n var colorStops = args[3];\n var gradient;\n\n switch (args[1]) {\n case \"axial\":\n var point0 = args[4];\n var point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n\n case \"radial\":\n var focalPoint = args[4];\n var circlePoint = args[5];\n var focalRadius = args[6];\n var circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n\n default:\n throw new Error(\"Unknown RadialAxial type: \".concat(args[1]));\n }\n\n var _iterator20 = _createForOfIteratorHelper(colorStops),\n _step20;\n\n try {\n for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n var colorStop = _step20.value;\n var stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.appendChild(stop);\n }\n } catch (err) {\n _iterator20.e(err);\n } finally {\n _iterator20.f();\n }\n\n this.defs.appendChild(gradient);\n return \"url(#\".concat(shadingId, \")\");\n\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n\n case \"Dummy\":\n return \"hotpink\";\n\n default:\n throw new Error(\"Unknown IR type: \".concat(args[0]));\n }\n }\n }, {\n key: \"setDash\",\n value: function setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n }, {\n key: \"constructPath\",\n value: function constructPath(ops, args) {\n var current = this.current;\n var x = current.x,\n y = current.y;\n var d = [];\n var j = 0;\n\n var _iterator21 = _createForOfIteratorHelper(ops),\n _step21;\n\n try {\n for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n var op = _step21.value;\n\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n var xw = x + width;\n var yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n } catch (err) {\n _iterator21.e(err);\n } finally {\n _iterator21.f();\n }\n\n d = d.join(\" \");\n\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n }, {\n key: \"endPath\",\n value: function endPath() {\n var current = this.current;\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n var clipId = \"clippath\".concat(clipCount++);\n var clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n var clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n this.extraStack.forEach(function (prev) {\n prev.clipGroup = null;\n });\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n\n current.activeClipUrl = \"url(#\".concat(clipId, \")\");\n this.tgrp = null;\n }\n }, {\n key: \"clip\",\n value: function clip(type) {\n this.pendingClip = type;\n }\n }, {\n key: \"closePath\",\n value: function closePath() {\n var current = this.current;\n\n if (current.path) {\n var d = \"\".concat(current.path.getAttributeNS(null, \"d\"), \"Z\");\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n }, {\n key: \"setLeading\",\n value: function setLeading(leading) {\n this.current.leading = -leading;\n }\n }, {\n key: \"setTextRise\",\n value: function setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n }, {\n key: \"setTextRenderingMode\",\n value: function setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n }, {\n key: \"setHScale\",\n value: function setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n }, {\n key: \"setRenderingIntent\",\n value: function setRenderingIntent(intent) {}\n }, {\n key: \"setFlatness\",\n value: function setFlatness(flatness) {}\n }, {\n key: \"setGState\",\n value: function setGState(states) {\n var _iterator22 = _createForOfIteratorHelper(states),\n _step22;\n\n try {\n for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {\n var _step22$value = _slicedToArray(_step22.value, 2),\n key = _step22$value[0],\n value = _step22$value[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value);\n break;\n\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n\n case \"ca\":\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)(\"Unimplemented graphic state operator \".concat(key));\n break;\n }\n }\n } catch (err) {\n _iterator22.e(err);\n } finally {\n _iterator22.f();\n }\n }\n }, {\n key: \"fill\",\n value: function fill() {\n var current = this.current;\n\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n }, {\n key: \"stroke\",\n value: function stroke() {\n var current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n }, {\n key: \"_setStrokeAttributes\",\n value: function _setStrokeAttributes(element) {\n var lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var current = this.current;\n var dashArray = current.dashArray;\n\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n }, {\n key: \"eoFill\",\n value: function eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fill();\n }\n }, {\n key: \"fillStroke\",\n value: function fillStroke() {\n this.stroke();\n this.fill();\n }\n }, {\n key: \"eoFillStroke\",\n value: function eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fillStroke();\n }\n }, {\n key: \"closeStroke\",\n value: function closeStroke() {\n this.closePath();\n this.stroke();\n }\n }, {\n key: \"closeFillStroke\",\n value: function closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n }, {\n key: \"closeEOFillStroke\",\n value: function closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n }, {\n key: \"paintSolidColorImageMask\",\n value: function paintSolidColorImageMask() {\n var rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n }\n }, {\n key: \"paintJpegXObject\",\n value: function paintJpegXObject(objId, w, h) {\n var imgObj = this.objs.get(objId);\n var imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgObj.src);\n imgEl.setAttributeNS(null, \"width\", pf(w));\n imgEl.setAttributeNS(null, \"height\", pf(h));\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-h));\n imgEl.setAttributeNS(null, \"transform\", \"scale(\".concat(pf(1 / w), \" \").concat(pf(-1 / h), \")\"));\n\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }, {\n key: \"paintImageXObject\",\n value: function paintImageXObject(objId) {\n var imgData = this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image with object ID \".concat(objId, \" is not ready yet\"));\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n }, {\n key: \"paintInlineImageXObject\",\n value: function paintInlineImageXObject(imgData, mask) {\n var width = imgData.width;\n var height = imgData.height;\n var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n var cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n var imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", \"scale(\".concat(pf(1 / width), \" \").concat(pf(-1 / height), \")\"));\n\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }\n }, {\n key: \"paintImageMaskXObject\",\n value: function paintImageMaskXObject(imgData) {\n var current = this.current;\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = current.fillColor;\n current.maskId = \"mask\".concat(maskCount++);\n var mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n var rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", \"url(#\".concat(current.maskId, \")\"));\n this.defs.appendChild(mask);\n\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n }, {\n key: \"paintFormXObjectBegin\",\n value: function paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n var cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n }, {\n key: \"paintFormXObjectEnd\",\n value: function paintFormXObjectEnd() {}\n }, {\n key: \"_initialize\",\n value: function _initialize(viewport) {\n var svg = this.svgFactory.create(viewport.width, viewport.height);\n var definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.appendChild(definitions);\n this.defs = definitions;\n var rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.appendChild(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n }, {\n key: \"_ensureClipGroup\",\n value: function _ensureClipGroup() {\n if (!this.current.clipGroup) {\n var clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n\n return this.current.clipGroup;\n }\n }, {\n key: \"_ensureTransformGroup\",\n value: function _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n }]);\n\n return SVGGraphics;\n }();\n }\n /***/\n },\n /* 19 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PDFNodeStream = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var _network_utils = __w_pdfjs_require__(20);\n\n var fs = require(\"fs\");\n\n var http = require(\"http\");\n\n var https = require(\"https\");\n\n var url = require(\"url\");\n\n var fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\n function parseUrl(sourceUrl) {\n var parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(\"file:///\".concat(sourceUrl));\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n\n return parsedUrl;\n }\n\n var PDFNodeStream = /*#__PURE__*/function () {\n function PDFNodeStream(source) {\n _classCallCheck(this, PDFNodeStream);\n\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFNodeStream, [{\n key: \"_progressiveDataLength\",\n get: function get() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n }, {\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n this._rangeRequestReaders.push(rangeReader);\n\n return rangeReader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n }]);\n\n return PDFNodeStream;\n }();\n\n exports.PDFNodeStream = PDFNodeStream;\n\n var BaseFullReader = /*#__PURE__*/function () {\n function BaseFullReader(stream) {\n _classCallCheck(this, BaseFullReader);\n\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n var source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n _createClass(BaseFullReader, [{\n key: \"headersReady\",\n get: function get() {\n return this._headersCapability.promise;\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9() {\n var chunk, buffer;\n return regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return this._readCapability.promise;\n\n case 2:\n if (!this._done) {\n _context9.next = 4;\n break;\n }\n\n return _context9.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 4:\n if (!this._storedError) {\n _context9.next = 6;\n break;\n }\n\n throw this._storedError;\n\n case 6:\n chunk = this._readableStream.read();\n\n if (!(chunk === null)) {\n _context9.next = 10;\n break;\n }\n\n this._readCapability = (0, _util.createPromiseCapability)();\n return _context9.abrupt(\"return\", this.read());\n\n case 10:\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n buffer = new Uint8Array(chunk).buffer;\n return _context9.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 14:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function read() {\n return _read3.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n }, {\n key: \"_error\",\n value: function _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n }, {\n key: \"_setReadableStream\",\n value: function _setReadableStream(readableStream) {\n var _this42 = this;\n\n this._readableStream = readableStream;\n readableStream.on(\"readable\", function () {\n _this42._readCapability.resolve();\n });\n readableStream.on(\"end\", function () {\n readableStream.destroy();\n _this42._done = true;\n\n _this42._readCapability.resolve();\n });\n readableStream.on(\"error\", function (reason) {\n _this42._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n }]);\n\n return BaseFullReader;\n }();\n\n var BaseRangeReader = /*#__PURE__*/function () {\n function BaseRangeReader(stream) {\n _classCallCheck(this, BaseRangeReader);\n\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n var source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n _createClass(BaseRangeReader, [{\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10() {\n var chunk, buffer;\n return regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return this._readCapability.promise;\n\n case 2:\n if (!this._done) {\n _context10.next = 4;\n break;\n }\n\n return _context10.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 4:\n if (!this._storedError) {\n _context10.next = 6;\n break;\n }\n\n throw this._storedError;\n\n case 6:\n chunk = this._readableStream.read();\n\n if (!(chunk === null)) {\n _context10.next = 10;\n break;\n }\n\n this._readCapability = (0, _util.createPromiseCapability)();\n return _context10.abrupt(\"return\", this.read());\n\n case 10:\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n buffer = new Uint8Array(chunk).buffer;\n return _context10.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 14:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function read() {\n return _read4.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n }, {\n key: \"_error\",\n value: function _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n }, {\n key: \"_setReadableStream\",\n value: function _setReadableStream(readableStream) {\n var _this43 = this;\n\n this._readableStream = readableStream;\n readableStream.on(\"readable\", function () {\n _this43._readCapability.resolve();\n });\n readableStream.on(\"end\", function () {\n readableStream.destroy();\n _this43._done = true;\n\n _this43._readCapability.resolve();\n });\n readableStream.on(\"error\", function (reason) {\n _this43._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n }]);\n\n return BaseRangeReader;\n }();\n\n function createRequestOptions(url, headers) {\n return {\n protocol: url.protocol,\n auth: url.auth,\n host: url.hostname,\n port: url.port,\n path: url.path,\n method: \"GET\",\n headers: headers\n };\n }\n\n var PDFNodeStreamFullReader = /*#__PURE__*/function (_BaseFullReader) {\n _inherits(PDFNodeStreamFullReader, _BaseFullReader);\n\n var _super34 = _createSuper(PDFNodeStreamFullReader);\n\n function PDFNodeStreamFullReader(stream) {\n var _this44;\n\n _classCallCheck(this, PDFNodeStreamFullReader);\n\n _this44 = _super34.call(this, stream);\n\n var handleResponse = function handleResponse(response) {\n if (response.statusCode === 404) {\n var error = new _util.MissingPDFException(\"Missing PDF \\\"\".concat(_this44._url, \"\\\".\"));\n _this44._storedError = error;\n\n _this44._headersCapability.reject(error);\n\n return;\n }\n\n _this44._headersCapability.resolve();\n\n _this44._setReadableStream(response);\n\n var getResponseHeader = function getResponseHeader(name) {\n return _this44._readableStream.headers[name.toLowerCase()];\n };\n\n var _ref31 = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: _this44._rangeChunkSize,\n disableRange: _this44._disableRange\n }),\n allowRangeRequests = _ref31.allowRangeRequests,\n suggestedLength = _ref31.suggestedLength;\n\n _this44._isRangeSupported = allowRangeRequests;\n _this44._contentLength = suggestedLength || _this44._contentLength;\n _this44._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n _this44._request = null;\n\n if (_this44._url.protocol === \"http:\") {\n _this44._request = http.request(createRequestOptions(_this44._url, stream.httpHeaders), handleResponse);\n } else {\n _this44._request = https.request(createRequestOptions(_this44._url, stream.httpHeaders), handleResponse);\n }\n\n _this44._request.on(\"error\", function (reason) {\n _this44._storedError = reason;\n\n _this44._headersCapability.reject(reason);\n });\n\n _this44._request.end();\n\n return _this44;\n }\n\n return PDFNodeStreamFullReader;\n }(BaseFullReader);\n\n var PDFNodeStreamRangeReader = /*#__PURE__*/function (_BaseRangeReader) {\n _inherits(PDFNodeStreamRangeReader, _BaseRangeReader);\n\n var _super35 = _createSuper(PDFNodeStreamRangeReader);\n\n function PDFNodeStreamRangeReader(stream, start, end) {\n var _this45;\n\n _classCallCheck(this, PDFNodeStreamRangeReader);\n\n _this45 = _super35.call(this, stream);\n _this45._httpHeaders = {};\n\n for (var property in stream.httpHeaders) {\n var value = stream.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n _this45._httpHeaders[property] = value;\n }\n\n _this45._httpHeaders[\"Range\"] = \"bytes=\".concat(start, \"-\").concat(end - 1);\n\n var handleResponse = function handleResponse(response) {\n if (response.statusCode === 404) {\n var error = new _util.MissingPDFException(\"Missing PDF \\\"\".concat(_this45._url, \"\\\".\"));\n _this45._storedError = error;\n return;\n }\n\n _this45._setReadableStream(response);\n };\n\n _this45._request = null;\n\n if (_this45._url.protocol === \"http:\") {\n _this45._request = http.request(createRequestOptions(_this45._url, _this45._httpHeaders), handleResponse);\n } else {\n _this45._request = https.request(createRequestOptions(_this45._url, _this45._httpHeaders), handleResponse);\n }\n\n _this45._request.on(\"error\", function (reason) {\n _this45._storedError = reason;\n });\n\n _this45._request.end();\n\n return _this45;\n }\n\n return PDFNodeStreamRangeReader;\n }(BaseRangeReader);\n\n var PDFNodeStreamFsFullReader = /*#__PURE__*/function (_BaseFullReader2) {\n _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2);\n\n var _super36 = _createSuper(PDFNodeStreamFsFullReader);\n\n function PDFNodeStreamFsFullReader(stream) {\n var _this46;\n\n _classCallCheck(this, PDFNodeStreamFsFullReader);\n\n _this46 = _super36.call(this, stream);\n var path = decodeURIComponent(_this46._url.path);\n\n if (fileUriRegex.test(_this46._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n fs.lstat(path, function (error, stat) {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(\"Missing PDF \\\"\".concat(path, \"\\\".\"));\n }\n\n _this46._storedError = error;\n\n _this46._headersCapability.reject(error);\n\n return;\n }\n\n _this46._contentLength = stat.size;\n\n _this46._setReadableStream(fs.createReadStream(path));\n\n _this46._headersCapability.resolve();\n });\n return _this46;\n }\n\n return PDFNodeStreamFsFullReader;\n }(BaseFullReader);\n\n var PDFNodeStreamFsRangeReader = /*#__PURE__*/function (_BaseRangeReader2) {\n _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2);\n\n var _super37 = _createSuper(PDFNodeStreamFsRangeReader);\n\n function PDFNodeStreamFsRangeReader(stream, start, end) {\n var _this47;\n\n _classCallCheck(this, PDFNodeStreamFsRangeReader);\n\n _this47 = _super37.call(this, stream);\n var path = decodeURIComponent(_this47._url.path);\n\n if (fileUriRegex.test(_this47._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n _this47._setReadableStream(fs.createReadStream(path, {\n start: start,\n end: end - 1\n }));\n\n return _this47;\n }\n\n return PDFNodeStreamFsRangeReader;\n }(BaseRangeReader);\n /***/\n\n },\n /* 20 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.createResponseStatusError = createResponseStatusError;\n exports.extractFilenameFromHeader = extractFilenameFromHeader;\n exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\n exports.validateResponseStatus = validateResponseStatus;\n\n var _util = __w_pdfjs_require__(1);\n\n var _content_disposition = __w_pdfjs_require__(21);\n\n function validateRangeRequestCapabilities(_ref32) {\n var getResponseHeader = _ref32.getResponseHeader,\n isHttp = _ref32.isHttp,\n rangeChunkSize = _ref32.rangeChunkSize,\n disableRange = _ref32.disableRange;\n (0, _util.assert)(rangeChunkSize > 0, \"Range chunk size must be larger than zero\");\n var returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n var length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n var contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n }\n\n function extractFilenameFromHeader(getResponseHeader) {\n var contentDisposition = getResponseHeader(\"Content-Disposition\");\n\n if (contentDisposition) {\n var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n\n return null;\n }\n\n function createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException(\"Unexpected server response (\" + status + ') while retrieving PDF \"' + url + '\".', status);\n }\n\n function validateResponseStatus(status) {\n return status === 200 || status === 206;\n }\n /***/\n\n },\n /* 21 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n\n function getFilenameFromContentDispositionHeader(contentDisposition) {\n var needsEncodingFixup = true;\n var tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n var filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n tmp = rfc2231getparam(contentDisposition);\n\n if (tmp) {\n var _filename = rfc2047decode(tmp);\n\n return fixupEncoding(_filename);\n }\n\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n\n var _filename2 = rfc2616unquote(tmp);\n\n _filename2 = rfc2047decode(_filename2);\n return fixupEncoding(_filename2);\n }\n\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n\n try {\n var decoder = new TextDecoder(encoding, {\n fatal: true\n });\n var bytes = Array.from(value, function (ch) {\n return ch.charCodeAt(0) & 0xff;\n });\n value = decoder.decode(new Uint8Array(bytes));\n needsEncodingFixup = false;\n } catch (e) {\n if (/^utf-?8$/i.test(encoding)) {\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\n }\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDisposition) {\n var matches = [];\n var match;\n var iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n\n while ((match = iter.exec(contentDisposition)) !== null) {\n var _match = match,\n _match2 = _slicedToArray(_match, 4),\n n = _match2[1],\n quot = _match2[2],\n part = _match2[3];\n\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n var parts = [];\n\n for (var _n2 = 0; _n2 < matches.length; ++_n2) {\n if (!(_n2 in matches)) {\n break;\n }\n\n var _matches$_n = _slicedToArray(matches[_n2], 2),\n _quot = _matches$_n[0],\n _part = _matches$_n[1];\n\n _part = rfc2616unquote(_part);\n\n if (_quot) {\n _part = unescape(_part);\n\n if (_n2 === 0) {\n _part = rfc5987decode(_part);\n }\n }\n\n parts.push(_part);\n }\n\n return parts.join(\"\");\n }\n\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n var parts = value.slice(1).split('\\\\\"');\n\n for (var i = 0; i < parts.length; ++i) {\n var quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n var encodingend = extvalue.indexOf(\"'\");\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n var encoding = extvalue.slice(0, encodingend);\n var langvalue = extvalue.slice(encodingend + 1);\n var value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (_, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return \"\";\n }\n /***/\n\n },\n /* 22 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PDFNetworkStream = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var _network_utils = __w_pdfjs_require__(20);\n\n ;\n var OK_RESPONSE = 200;\n var PARTIAL_CONTENT_RESPONSE = 206;\n\n function getArrayBuffer(xhr) {\n var data = xhr.response;\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n var array = (0, _util.stringToBytes)(data);\n return array.buffer;\n }\n\n var NetworkManager = /*#__PURE__*/function () {\n function NetworkManager(url, args) {\n _classCallCheck(this, NetworkManager);\n\n this.url = url;\n args = args || {};\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || {};\n this.withCredentials = args.withCredentials || false;\n\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n _createClass(NetworkManager, [{\n key: \"requestRange\",\n value: function requestRange(begin, end, listeners) {\n var args = {\n begin: begin,\n end: end\n };\n\n for (var prop in listeners) {\n args[prop] = listeners[prop];\n }\n\n return this.request(args);\n }\n }, {\n key: \"requestFull\",\n value: function requestFull(listeners) {\n return this.request(listeners);\n }\n }, {\n key: \"request\",\n value: function request(args) {\n var xhr = this.getXhr();\n var xhrId = this.currXhrId++;\n var pendingRequest = this.pendingRequests[xhrId] = {\n xhr: xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (var property in this.httpHeaders) {\n var value = this.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\n\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", \"bytes=\".concat(args.begin, \"-\").concat(args.end - 1));\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n }, {\n key: \"onProgress\",\n value: function onProgress(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n if (pendingRequest.onProgress) {\n pendingRequest.onProgress(evt);\n }\n }\n }, {\n key: \"onStateChange\",\n value: function onStateChange(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n var xhr = pendingRequest.xhr;\n\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n var xhrStatus = xhr.status || OK_RESPONSE;\n var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n var chunk = getArrayBuffer(xhr);\n\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n var rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n var matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk: chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk: chunk\n });\n } else if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n }\n }, {\n key: \"hasPendingRequests\",\n value: function hasPendingRequests() {\n for (var xhrId in this.pendingRequests) {\n return true;\n }\n\n return false;\n }\n }, {\n key: \"getRequestXhr\",\n value: function getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n }, {\n key: \"isPendingRequest\",\n value: function isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n }, {\n key: \"abortAllRequests\",\n value: function abortAllRequests() {\n for (var xhrId in this.pendingRequests) {\n this.abortRequest(xhrId | 0);\n }\n }\n }, {\n key: \"abortRequest\",\n value: function abortRequest(xhrId) {\n var xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n }]);\n\n return NetworkManager;\n }();\n\n var PDFNetworkStream = /*#__PURE__*/function () {\n function PDFNetworkStream(source) {\n _classCallCheck(this, PDFNetworkStream);\n\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFNetworkStream, [{\n key: \"_onRangeRequestReaderClosed\",\n value: function _onRangeRequestReaderClosed(reader) {\n var i = this._rangeRequestReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n }, {\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(begin, end) {\n var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n }]);\n\n return PDFNetworkStream;\n }();\n\n exports.PDFNetworkStream = PDFNetworkStream;\n\n var PDFNetworkStreamFullRequestReader = /*#__PURE__*/function () {\n function PDFNetworkStreamFullRequestReader(manager, source) {\n _classCallCheck(this, PDFNetworkStreamFullRequestReader);\n\n this._manager = manager;\n var args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n _createClass(PDFNetworkStreamFullRequestReader, [{\n key: \"_onHeadersReceived\",\n value: function _onHeadersReceived() {\n var fullRequestXhrId = this._fullRequestId;\n\n var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n var getResponseHeader = function getResponseHeader(name) {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n var _ref33 = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n }),\n allowRangeRequests = _ref33.allowRangeRequests,\n suggestedLength = _ref33.suggestedLength;\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n }, {\n key: \"_onDone\",\n value: function _onDone(args) {\n if (args) {\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: args.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(args.chunk);\n }\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n }, {\n key: \"_onError\",\n value: function _onError(status) {\n var url = this._url;\n var exception = (0, _network_utils.createResponseStatusError)(status, url);\n this._storedError = exception;\n\n this._headersReceivedCapability.reject(exception);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.reject(exception);\n });\n\n this._requests = [];\n this._cachedChunks = [];\n }\n }, {\n key: \"_onProgress\",\n value: function _onProgress(data) {\n if (this.onProgress) {\n this.onProgress({\n loaded: data.loaded,\n total: data.lengthComputable ? data.total : this._contentLength\n });\n }\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: \"headersReady\",\n get: function get() {\n return this._headersReceivedCapability.promise;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11() {\n var chunk, requestCapability;\n return regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n if (!this._storedError) {\n _context11.next = 2;\n break;\n }\n\n throw this._storedError;\n\n case 2:\n if (!(this._cachedChunks.length > 0)) {\n _context11.next = 5;\n break;\n }\n\n chunk = this._cachedChunks.shift();\n return _context11.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 5:\n if (!this._done) {\n _context11.next = 7;\n break;\n }\n\n return _context11.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 7:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context11.abrupt(\"return\", requestCapability.promise);\n\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function read() {\n return _read5.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n }]);\n\n return PDFNetworkStreamFullRequestReader;\n }();\n\n var PDFNetworkStreamRangeRequestReader = /*#__PURE__*/function () {\n function PDFNetworkStreamRangeRequestReader(manager, begin, end) {\n _classCallCheck(this, PDFNetworkStreamRangeRequestReader);\n\n this._manager = manager;\n var args = {\n onDone: this._onDone.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _createClass(PDFNetworkStreamRangeRequestReader, [{\n key: \"_close\",\n value: function _close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\n }\n }, {\n key: \"_onDone\",\n value: function _onDone(data) {\n var chunk = data.chunk;\n\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._close();\n }\n }, {\n key: \"_onProgress\",\n value: function _onProgress(evt) {\n if (!this.isStreamingSupported && this.onProgress) {\n this.onProgress({\n loaded: evt.loaded\n });\n }\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return false;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12() {\n var chunk, requestCapability;\n return regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n if (!(this._queuedChunk !== null)) {\n _context12.next = 4;\n break;\n }\n\n chunk = this._queuedChunk;\n this._queuedChunk = null;\n return _context12.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 4:\n if (!this._done) {\n _context12.next = 6;\n break;\n }\n\n return _context12.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 6:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context12.abrupt(\"return\", requestCapability.promise);\n\n case 9:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n\n function read() {\n return _read6.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n }]);\n\n return PDFNetworkStreamRangeRequestReader;\n }();\n /***/\n\n },\n /* 23 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PDFFetchStream = void 0;\n\n var _util = __w_pdfjs_require__(1);\n\n var _network_utils = __w_pdfjs_require__(20);\n\n function createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers: headers,\n signal: abortController && abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n }\n\n function createHeaders(httpHeaders) {\n var headers = new Headers();\n\n for (var property in httpHeaders) {\n var value = httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n headers.append(property, value);\n }\n\n return headers;\n }\n\n var PDFFetchStream = /*#__PURE__*/function () {\n function PDFFetchStream(source) {\n _classCallCheck(this, PDFFetchStream);\n\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFFetchStream, [{\n key: \"_progressiveDataLength\",\n get: function get() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n }, {\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n var reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n }]);\n\n return PDFFetchStream;\n }();\n\n exports.PDFFetchStream = PDFFetchStream;\n\n var PDFFetchStreamReader = /*#__PURE__*/function () {\n function PDFFetchStreamReader(stream) {\n var _this48 = this;\n\n _classCallCheck(this, PDFFetchStreamReader);\n\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n var source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n var url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n _this48._reader = response.body.getReader();\n\n _this48._headersCapability.resolve();\n\n var getResponseHeader = function getResponseHeader(name) {\n return response.headers.get(name);\n };\n\n var _ref34 = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: _this48._stream.isHttp,\n rangeChunkSize: _this48._rangeChunkSize,\n disableRange: _this48._disableRange\n }),\n allowRangeRequests = _ref34.allowRangeRequests,\n suggestedLength = _ref34.suggestedLength;\n\n _this48._isRangeSupported = allowRangeRequests;\n _this48._contentLength = suggestedLength || _this48._contentLength;\n _this48._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!_this48._isStreamingSupported && _this48._isRangeSupported) {\n _this48.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n })[\"catch\"](this._headersCapability.reject);\n this.onProgress = null;\n }\n\n _createClass(PDFFetchStreamReader, [{\n key: \"headersReady\",\n get: function get() {\n return this._headersCapability.promise;\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read7 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13() {\n var _yield$this$_reader$r, value, done, buffer;\n\n return regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n _context13.next = 2;\n return this._headersCapability.promise;\n\n case 2:\n _context13.next = 4;\n return this._reader.read();\n\n case 4:\n _yield$this$_reader$r = _context13.sent;\n value = _yield$this$_reader$r.value;\n done = _yield$this$_reader$r.done;\n\n if (!done) {\n _context13.next = 9;\n break;\n }\n\n return _context13.abrupt(\"return\", {\n value: value,\n done: done\n });\n\n case 9:\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n buffer = new Uint8Array(value).buffer;\n return _context13.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 13:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n function read() {\n return _read7.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n }]);\n\n return PDFFetchStreamReader;\n }();\n\n var PDFFetchStreamRangeReader = /*#__PURE__*/function () {\n function PDFFetchStreamRangeReader(stream, begin, end) {\n var _this49 = this;\n\n _classCallCheck(this, PDFFetchStreamRangeReader);\n\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n var source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._headers = createHeaders(this._stream.httpHeaders);\n\n this._headers.append(\"Range\", \"bytes=\".concat(begin, \"-\").concat(end - 1));\n\n var url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n _this49._readCapability.resolve();\n\n _this49._reader = response.body.getReader();\n });\n this.onProgress = null;\n }\n\n _createClass(PDFFetchStreamRangeReader, [{\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee14() {\n var _yield$this$_reader$r2, value, done, buffer;\n\n return regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n _context14.next = 2;\n return this._readCapability.promise;\n\n case 2:\n _context14.next = 4;\n return this._reader.read();\n\n case 4:\n _yield$this$_reader$r2 = _context14.sent;\n value = _yield$this$_reader$r2.value;\n done = _yield$this$_reader$r2.done;\n\n if (!done) {\n _context14.next = 9;\n break;\n }\n\n return _context14.abrupt(\"return\", {\n value: value,\n done: done\n });\n\n case 9:\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n buffer = new Uint8Array(value).buffer;\n return _context14.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 13:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n\n function read() {\n return _read8.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n }]);\n\n return PDFFetchStreamRangeReader;\n }();\n /***/\n\n }\n /******/\n ])\n );\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = makeCancellablePromise;\n\nfunction makeCancellablePromise(promise) {\n var isCancelled = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function () {\n return !isCancelled && resolve.apply(void 0, arguments);\n })[\"catch\"](function (error) {\n return !isCancelled && reject(error);\n });\n });\n return {\n promise: wrappedPromise,\n cancel: function cancel() {\n isCancelled = true;\n }\n };\n}","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\n\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.focusEvents = exports.keyboardEvents = exports.touchEvents = exports.mouseEvents = void 0; // As defined on the list of supported mouse events: https://reactjs.org/docs/events.html#mouse-events\n\nvar mouseEvents = ['onClick', 'onContextMenu', 'onDoubleClick', 'onDrag', 'onDragEnd', 'onDragEnter', 'onDragExit', 'onDragLeave', 'onDragOver', 'onDragStart', 'onDrop', 'onMouseDown', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp']; // As defined on the list of supported touch events: https://reactjs.org/docs/events.html#touch-events\n\nexports.mouseEvents = mouseEvents;\nvar touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart']; // As defined on the list of supported keyboard events: https://reactjs.org/docs/events.html#keyboard-events\n\nexports.touchEvents = touchEvents;\nvar keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp']; // As defined on the list of supported keyboard events: https://reactjs.org/docs/events.html#focus-events\n\nexports.keyboardEvents = keyboardEvents;\nvar focusEvents = ['onFocus', 'onBlur'];\n/**\n * Returns an object with on-event callback props curried with provided args.\n * @param {Object} props Props passed to a component.\n * @param {Function=} getArgs A function that returns argument(s) on-event callbacks\n * shall be curried with.\n */\n\nexports.focusEvents = focusEvents;\n\nvar makeEventProps = function makeEventProps(props, getArgs) {\n var eventProps = {};\n [].concat(mouseEvents, touchEvents, keyboardEvents, focusEvents).forEach(function (eventName) {\n if (props[eventName]) {\n eventProps[eventName] = function (event) {\n return getArgs ? props[eventName](event, getArgs(eventName)) : props[eventName](event);\n };\n }\n });\n return eventProps;\n};\n\nvar _default = makeEventProps;\nexports[\"default\"] = _default;","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction 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 _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, 'Bar');\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\n\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = void 0;\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n\n if (value === undefined) {\n return undefined;\n }\n\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n\n return this.scale(value) + _offset;\n }\n\n default:\n {\n return this.scale(value);\n }\n }\n }\n\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n\n return this.scale(value) + _offset2;\n }\n\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n\n return _mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return _every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};","module.exports = require(\"core-js/library/fn/object/keys\");","window.logger =\n window.IS_DEVELOPMENT || window.CONSOLE_LOG_ENABLED\n ? // window.CONSOLE_LOG_ENABLED\n console.log.bind(window.console)\n : function () {};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { __values, __assign, __spread } from './_virtual/_tslib.js';\nimport { IS_PRODUCTION } from './environment.js';\nimport { warn, mapContext, isFunction, keys, toSCXMLEvent, isPromiseLike, isObservable, isMachine, reportUnhandledExceptionOnInvocation, symbolObservable, isArray, toEventObject, isString, uniqueId } from './utils.js';\nimport { ActionTypes, SpecialTargets } from './types.js';\nimport { isInFinalState } from './stateUtils.js';\nimport { errorPlatform, log, stop, start, cancel, send, update, error as error$1 } from './actionTypes.js';\nimport { doneInvoke, initEvent, getActionFunction, error } from './actions.js';\nimport { isState, State, bindActionToState } from './State.js';\nimport { isActor } from './Actor.js';\nimport { Scheduler } from './scheduler.js';\nimport { registry } from './registry.js';\nimport { registerService } from './devTools.js';\nvar DEFAULT_SPAWN_OPTIONS = {\n sync: false,\n autoForward: false\n};\n/**\r\n * Maintains a stack of the current service in scope.\r\n * This is used to provide the correct service to spawn().\r\n *\r\n * @private\r\n */\n\nvar withServiceScope = /*#__PURE__*/function () {\n var serviceStack = [];\n return function (service, fn) {\n service && serviceStack.push(service);\n var result = fn(service || serviceStack[serviceStack.length - 1]);\n service && serviceStack.pop();\n return result;\n };\n}();\n\nvar InterpreterStatus;\n\n(function (InterpreterStatus) {\n InterpreterStatus[InterpreterStatus[\"NotStarted\"] = 0] = \"NotStarted\";\n InterpreterStatus[InterpreterStatus[\"Running\"] = 1] = \"Running\";\n InterpreterStatus[InterpreterStatus[\"Stopped\"] = 2] = \"Stopped\";\n})(InterpreterStatus || (InterpreterStatus = {}));\n\nvar Interpreter =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new Interpreter instance (i.e., service) for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to be interpreted\r\n * @param options Interpreter options\r\n */\n function Interpreter(machine, options) {\n var _this = this;\n\n if (options === void 0) {\n options = Interpreter.defaultOptions;\n }\n\n this.machine = machine;\n this.scheduler = new Scheduler();\n this.delayedEventsMap = {};\n this.listeners = new Set();\n this.contextListeners = new Set();\n this.stopListeners = new Set();\n this.doneListeners = new Set();\n this.eventListeners = new Set();\n this.sendListeners = new Set();\n /**\r\n * Whether the service is started.\r\n */\n\n this.initialized = false;\n this._status = InterpreterStatus.NotStarted;\n this.children = new Map();\n this.forwardTo = new Set();\n /**\r\n * Alias for Interpreter.prototype.start\r\n */\n\n this.init = this.start;\n /**\r\n * Sends an event to the running interpreter to trigger a transition.\r\n *\r\n * An array of events (batched) can be sent as well, which will send all\r\n * batched events to the running interpreter. The listeners will be\r\n * notified only **once** when all events are processed.\r\n *\r\n * @param event The event(s) to send\r\n */\n\n this.send = function (event, payload) {\n if (isArray(event)) {\n _this.batch(event);\n\n return _this.state;\n }\n\n var _event = toSCXMLEvent(toEventObject(event, payload));\n\n if (_this._status === InterpreterStatus.Stopped) {\n // do nothing\n if (!IS_PRODUCTION) {\n warn(false, \"Event \\\"\" + _event.name + \"\\\" was sent to stopped service \\\"\" + _this.machine.id + \"\\\". This service has already reached its final state, and will not transition.\\nEvent: \" + JSON.stringify(_event.data));\n }\n\n return _this.state;\n }\n\n if (_this._status === InterpreterStatus.NotStarted && _this.options.deferEvents) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, \"Event \\\"\" + _event.name + \"\\\" was sent to uninitialized service \\\"\" + _this.machine.id + \"\\\" and is deferred. Make sure .start() is called for this service.\\nEvent: \" + JSON.stringify(_event.data));\n }\n } else if (_this._status !== InterpreterStatus.Running) {\n throw new Error(\"Event \\\"\" + _event.name + \"\\\" was sent to uninitialized service \\\"\" + _this.machine.id + \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\\nEvent: \" + JSON.stringify(_event.data));\n }\n\n _this.scheduler.schedule(function () {\n // Forward copy of event to child actors\n _this.forward(_event);\n\n var nextState = _this.nextState(_event);\n\n _this.update(nextState, _event);\n });\n\n return _this._state; // TODO: deprecate (should return void)\n // tslint:disable-next-line:semicolon\n };\n\n this.sendTo = function (event, to) {\n var isParent = _this.parent && (to === SpecialTargets.Parent || _this.parent.id === to);\n var target = isParent ? _this.parent : isActor(to) ? to : _this.children.get(to) || registry.get(to);\n\n if (!target) {\n if (!isParent) {\n throw new Error(\"Unable to send event to child '\" + to + \"' from service '\" + _this.id + \"'.\");\n } // tslint:disable-next-line:no-console\n\n\n if (!IS_PRODUCTION) {\n warn(false, \"Service '\" + _this.id + \"' has no parent: unable to send event \" + event.type);\n }\n\n return;\n }\n\n if ('machine' in target) {\n // Send SCXML events to machines\n target.send(__assign(__assign({}, event), {\n name: event.name === error$1 ? \"\" + error(_this.id) : event.name,\n origin: _this.sessionId\n }));\n } else {\n // Send normal events to other targets\n target.send(event.data);\n }\n };\n\n var resolvedOptions = __assign(__assign({}, Interpreter.defaultOptions), options);\n\n var clock = resolvedOptions.clock,\n logger = resolvedOptions.logger,\n parent = resolvedOptions.parent,\n id = resolvedOptions.id;\n var resolvedId = id !== undefined ? id : machine.id;\n this.id = resolvedId;\n this.logger = logger;\n this.clock = clock;\n this.parent = parent;\n this.options = resolvedOptions;\n this.scheduler = new Scheduler({\n deferEvents: this.options.deferEvents\n });\n this.sessionId = registry.bookId();\n }\n\n Object.defineProperty(Interpreter.prototype, \"initialState\", {\n get: function get() {\n var _this = this;\n\n if (this._initialState) {\n return this._initialState;\n }\n\n return withServiceScope(this, function () {\n _this._initialState = _this.machine.initialState;\n return _this._initialState;\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Interpreter.prototype, \"state\", {\n get: function get() {\n if (!IS_PRODUCTION) {\n warn(this._status !== InterpreterStatus.NotStarted, \"Attempted to read state from uninitialized service '\" + this.id + \"'. Make sure the service is started first.\");\n }\n\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * Executes the actions of the given state, with that state's `context` and `event`.\r\n *\r\n * @param state The state whose actions will be executed\r\n * @param actionsConfig The action implementations to use\r\n */\n\n Interpreter.prototype.execute = function (state, actionsConfig) {\n var e_1, _a;\n\n try {\n for (var _b = __values(state.actions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var action = _c.value;\n this.exec(action, state, actionsConfig);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n\n Interpreter.prototype.update = function (state, _event) {\n var e_2, _a, e_3, _b, e_4, _c, e_5, _d;\n\n var _this = this; // Attach session ID to state\n\n\n state._sessionid = this.sessionId; // Update state\n\n this._state = state; // Execute actions\n\n if (this.options.execute) {\n this.execute(this.state);\n } // Dev tools\n\n\n if (this.devTools) {\n this.devTools.send(_event.data, state);\n } // Execute listeners\n\n\n if (state.event) {\n try {\n for (var _e = __values(this.eventListeners), _f = _e.next(); !_f.done; _f = _e.next()) {\n var listener = _f.value;\n listener(state.event);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_a = _e[\"return\"])) _a.call(_e);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n }\n\n try {\n for (var _g = __values(this.listeners), _h = _g.next(); !_h.done; _h = _g.next()) {\n var listener = _h.value;\n listener(state, state.event);\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_h && !_h.done && (_b = _g[\"return\"])) _b.call(_g);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n try {\n for (var _j = __values(this.contextListeners), _k = _j.next(); !_k.done; _k = _j.next()) {\n var contextListener = _k.value;\n contextListener(this.state.context, this.state.history ? this.state.history.context : undefined);\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (_k && !_k.done && (_c = _j[\"return\"])) _c.call(_j);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n var isDone = isInFinalState(state.configuration || [], this.machine);\n\n if (this.state.configuration && isDone) {\n // get final child state node\n var finalChildStateNode = state.configuration.find(function (sn) {\n return sn.type === 'final' && sn.parent === _this.machine;\n });\n var doneData = finalChildStateNode && finalChildStateNode.data ? mapContext(finalChildStateNode.data, state.context, _event) : undefined;\n\n try {\n for (var _l = __values(this.doneListeners), _m = _l.next(); !_m.done; _m = _l.next()) {\n var listener = _m.value;\n listener(doneInvoke(this.id, doneData));\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_m && !_m.done && (_d = _l[\"return\"])) _d.call(_l);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n this.stop();\n }\n };\n /*\r\n * Adds a listener that is notified whenever a state transition happens. The listener is called with\r\n * the next state and the event object that caused the state transition.\r\n *\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onTransition = function (listener) {\n this.listeners.add(listener); // Send current state to listener\n\n if (this._status === InterpreterStatus.Running) {\n listener(this.state, this.state.event);\n }\n\n return this;\n };\n\n Interpreter.prototype.subscribe = function (nextListenerOrObserver, // @ts-ignore\n errorListener, completeListener) {\n var _this = this;\n\n if (!nextListenerOrObserver) {\n return {\n unsubscribe: function unsubscribe() {\n return void 0;\n }\n };\n }\n\n var listener;\n var resolvedCompleteListener = completeListener;\n\n if (typeof nextListenerOrObserver === 'function') {\n listener = nextListenerOrObserver;\n } else {\n listener = nextListenerOrObserver.next.bind(nextListenerOrObserver);\n resolvedCompleteListener = nextListenerOrObserver.complete.bind(nextListenerOrObserver);\n }\n\n this.listeners.add(listener); // Send current state to listener\n\n if (this._status === InterpreterStatus.Running) {\n listener(this.state);\n }\n\n if (resolvedCompleteListener) {\n this.onDone(resolvedCompleteListener);\n }\n\n return {\n unsubscribe: function unsubscribe() {\n listener && _this.listeners[\"delete\"](listener);\n resolvedCompleteListener && _this.doneListeners[\"delete\"](resolvedCompleteListener);\n }\n };\n };\n /**\r\n * Adds an event listener that is notified whenever an event is sent to the running interpreter.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onEvent = function (listener) {\n this.eventListeners.add(listener);\n return this;\n };\n /**\r\n * Adds an event listener that is notified whenever a `send` event occurs.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onSend = function (listener) {\n this.sendListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a context listener that is notified whenever the state context changes.\r\n * @param listener The context listener\r\n */\n\n\n Interpreter.prototype.onChange = function (listener) {\n this.contextListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a listener that is notified when the machine is stopped.\r\n * @param listener The listener\r\n */\n\n\n Interpreter.prototype.onStop = function (listener) {\n this.stopListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a state listener that is notified when the statechart has reached its final state.\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onDone = function (listener) {\n this.doneListeners.add(listener);\n return this;\n };\n /**\r\n * Removes a listener.\r\n * @param listener The listener to remove\r\n */\n\n\n Interpreter.prototype.off = function (listener) {\n this.listeners[\"delete\"](listener);\n this.eventListeners[\"delete\"](listener);\n this.sendListeners[\"delete\"](listener);\n this.stopListeners[\"delete\"](listener);\n this.doneListeners[\"delete\"](listener);\n this.contextListeners[\"delete\"](listener);\n return this;\n };\n /**\r\n * Starts the interpreter from the given state, or the initial state.\r\n * @param initialState The state to start the statechart from\r\n */\n\n\n Interpreter.prototype.start = function (initialState) {\n var _this = this;\n\n if (this._status === InterpreterStatus.Running) {\n // Do not restart the service if it is already started\n return this;\n }\n\n registry.register(this.sessionId, this);\n this.initialized = true;\n this._status = InterpreterStatus.Running;\n var resolvedState = initialState === undefined ? this.initialState : withServiceScope(this, function () {\n return isState(initialState) ? _this.machine.resolveState(initialState) : _this.machine.resolveState(State.from(initialState, _this.machine.context));\n });\n\n if (this.options.devTools) {\n this.attachDev();\n }\n\n this.scheduler.initialize(function () {\n _this.update(resolvedState, initEvent);\n });\n return this;\n };\n /**\r\n * Stops the interpreter and unsubscribe all listeners.\r\n *\r\n * This will also notify the `onStop` listeners.\r\n */\n\n\n Interpreter.prototype.stop = function () {\n var e_6, _a, e_7, _b, e_8, _c, e_9, _d, e_10, _e;\n\n try {\n for (var _f = __values(this.listeners), _g = _f.next(); !_g.done; _g = _f.next()) {\n var listener = _g.value;\n this.listeners[\"delete\"](listener);\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (_g && !_g.done && (_a = _f[\"return\"])) _a.call(_f);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n try {\n for (var _h = __values(this.stopListeners), _j = _h.next(); !_j.done; _j = _h.next()) {\n var listener = _j.value; // call listener, then remove\n\n listener();\n this.stopListeners[\"delete\"](listener);\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_j && !_j.done && (_b = _h[\"return\"])) _b.call(_h);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n\n try {\n for (var _k = __values(this.contextListeners), _l = _k.next(); !_l.done; _l = _k.next()) {\n var listener = _l.value;\n this.contextListeners[\"delete\"](listener);\n }\n } catch (e_8_1) {\n e_8 = {\n error: e_8_1\n };\n } finally {\n try {\n if (_l && !_l.done && (_c = _k[\"return\"])) _c.call(_k);\n } finally {\n if (e_8) throw e_8.error;\n }\n }\n\n try {\n for (var _m = __values(this.doneListeners), _o = _m.next(); !_o.done; _o = _m.next()) {\n var listener = _o.value;\n this.doneListeners[\"delete\"](listener);\n }\n } catch (e_9_1) {\n e_9 = {\n error: e_9_1\n };\n } finally {\n try {\n if (_o && !_o.done && (_d = _m[\"return\"])) _d.call(_m);\n } finally {\n if (e_9) throw e_9.error;\n }\n } // Stop all children\n\n\n this.children.forEach(function (child) {\n if (isFunction(child.stop)) {\n child.stop();\n }\n });\n\n try {\n // Cancel all delayed events\n for (var _p = __values(keys(this.delayedEventsMap)), _q = _p.next(); !_q.done; _q = _p.next()) {\n var key = _q.value;\n this.clock.clearTimeout(this.delayedEventsMap[key]);\n }\n } catch (e_10_1) {\n e_10 = {\n error: e_10_1\n };\n } finally {\n try {\n if (_q && !_q.done && (_e = _p[\"return\"])) _e.call(_p);\n } finally {\n if (e_10) throw e_10.error;\n }\n }\n\n this.scheduler.clear();\n this.initialized = false;\n this._status = InterpreterStatus.Stopped;\n registry.free(this.sessionId);\n return this;\n };\n\n Interpreter.prototype.batch = function (events) {\n var _this = this;\n\n if (this._status === InterpreterStatus.NotStarted && this.options.deferEvents) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, events.length + \" event(s) were sent to uninitialized service \\\"\" + this.machine.id + \"\\\" and are deferred. Make sure .start() is called for this service.\\nEvent: \" + JSON.stringify(event));\n }\n } else if (this._status !== InterpreterStatus.Running) {\n throw new Error( // tslint:disable-next-line:max-line-length\n events.length + \" event(s) were sent to uninitialized service \\\"\" + this.machine.id + \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\");\n }\n\n this.scheduler.schedule(function () {\n var e_11, _a;\n\n var nextState = _this.state;\n var batchChanged = false;\n var batchedActions = [];\n\n var _loop_1 = function _loop_1(event_1) {\n var _event = toSCXMLEvent(event_1);\n\n _this.forward(_event);\n\n nextState = withServiceScope(_this, function () {\n return _this.machine.transition(nextState, _event);\n });\n batchedActions.push.apply(batchedActions, __spread(nextState.actions.map(function (a) {\n return bindActionToState(a, nextState);\n })));\n batchChanged = batchChanged || !!nextState.changed;\n };\n\n try {\n for (var events_1 = __values(events), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {\n var event_1 = events_1_1.value;\n\n _loop_1(event_1);\n }\n } catch (e_11_1) {\n e_11 = {\n error: e_11_1\n };\n } finally {\n try {\n if (events_1_1 && !events_1_1.done && (_a = events_1[\"return\"])) _a.call(events_1);\n } finally {\n if (e_11) throw e_11.error;\n }\n }\n\n nextState.changed = batchChanged;\n nextState.actions = batchedActions;\n\n _this.update(nextState, toSCXMLEvent(events[events.length - 1]));\n });\n };\n /**\r\n * Returns a send function bound to this interpreter instance.\r\n *\r\n * @param event The event to be sent by the sender.\r\n */\n\n\n Interpreter.prototype.sender = function (event) {\n return this.send.bind(this, event);\n };\n /**\r\n * Returns the next state given the interpreter's current state and the event.\r\n *\r\n * This is a pure method that does _not_ update the interpreter's state.\r\n *\r\n * @param event The event to determine the next state\r\n */\n\n\n Interpreter.prototype.nextState = function (event) {\n var _this = this;\n\n var _event = toSCXMLEvent(event);\n\n if (_event.name.indexOf(errorPlatform) === 0 && !this.state.nextEvents.some(function (nextEvent) {\n return nextEvent.indexOf(errorPlatform) === 0;\n })) {\n throw _event.data.data;\n }\n\n var nextState = withServiceScope(this, function () {\n return _this.machine.transition(_this.state, _event);\n });\n return nextState;\n };\n\n Interpreter.prototype.forward = function (event) {\n var e_12, _a;\n\n try {\n for (var _b = __values(this.forwardTo), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n var child = this.children.get(id);\n\n if (!child) {\n throw new Error(\"Unable to forward event '\" + event + \"' from interpreter '\" + this.id + \"' to nonexistant child '\" + id + \"'.\");\n }\n\n child.send(event);\n }\n } catch (e_12_1) {\n e_12 = {\n error: e_12_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_12) throw e_12.error;\n }\n }\n };\n\n Interpreter.prototype.defer = function (sendAction) {\n var _this = this;\n\n this.delayedEventsMap[sendAction.id] = this.clock.setTimeout(function () {\n if (sendAction.to) {\n _this.sendTo(sendAction._event, sendAction.to);\n } else {\n _this.send(sendAction._event);\n }\n }, sendAction.delay);\n };\n\n Interpreter.prototype.cancel = function (sendId) {\n this.clock.clearTimeout(this.delayedEventsMap[sendId]);\n delete this.delayedEventsMap[sendId];\n };\n\n Interpreter.prototype.exec = function (action, state, actionFunctionMap) {\n var context = state.context,\n _event = state._event;\n var actionOrExec = getActionFunction(action.type, actionFunctionMap) || action.exec;\n var exec = isFunction(actionOrExec) ? actionOrExec : actionOrExec ? actionOrExec.exec : action.exec;\n\n if (exec) {\n try {\n return exec(context, _event.data, {\n action: action,\n state: this.state,\n _event: _event\n });\n } catch (err) {\n if (this.parent) {\n this.parent.send({\n type: 'xstate.error',\n data: err\n });\n }\n\n throw err;\n }\n }\n\n switch (action.type) {\n case send:\n var sendAction = action;\n\n if (typeof sendAction.delay === 'number') {\n this.defer(sendAction);\n return;\n } else {\n if (sendAction.to) {\n this.sendTo(sendAction._event, sendAction.to);\n } else {\n this.send(sendAction._event);\n }\n }\n\n break;\n\n case cancel:\n this.cancel(action.sendId);\n break;\n\n case start:\n {\n var activity = action.activity; // If the activity will be stopped right after it's started\n // (such as in transient states)\n // don't bother starting the activity.\n\n if (!this.state.activities[activity.type]) {\n break;\n } // Invoked services\n\n\n if (activity.type === ActionTypes.Invoke) {\n var serviceCreator = this.machine.options.services ? this.machine.options.services[activity.src] : undefined;\n var id = activity.id,\n data = activity.data;\n\n if (!IS_PRODUCTION) {\n warn(!('forward' in activity), // tslint:disable-next-line:max-line-length\n \"`forward` property is deprecated (found in invocation of '\" + activity.src + \"' in in machine '\" + this.machine.id + \"'). \" + \"Please use `autoForward` instead.\");\n }\n\n var autoForward = 'autoForward' in activity ? activity.autoForward : !!activity.forward;\n\n if (!serviceCreator) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, \"No service found for invocation '\" + activity.src + \"' in machine '\" + this.machine.id + \"'.\");\n }\n\n return;\n }\n\n var source = isFunction(serviceCreator) ? serviceCreator(context, _event.data) : serviceCreator;\n\n if (isPromiseLike(source)) {\n this.state.children[id] = this.spawnPromise(Promise.resolve(source), id);\n } else if (isFunction(source)) {\n this.state.children[id] = this.spawnCallback(source, id);\n } else if (isObservable(source)) {\n this.state.children[id] = this.spawnObservable(source, id);\n } else if (isMachine(source)) {\n // TODO: try/catch here\n this.state.children[id] = this.spawnMachine(data ? source.withContext(mapContext(data, context, _event)) : source, {\n id: id,\n autoForward: autoForward\n });\n }\n } else {\n this.spawnActivity(activity);\n }\n\n break;\n }\n\n case stop:\n {\n this.stopChild(action.activity.id);\n break;\n }\n\n case log:\n var label = action.label,\n value = action.value;\n\n if (label) {\n this.logger(label, value);\n } else {\n this.logger(value);\n }\n\n break;\n\n default:\n if (!IS_PRODUCTION) {\n warn(false, \"No implementation found for action type '\" + action.type + \"'\");\n }\n\n break;\n }\n\n return undefined;\n };\n\n Interpreter.prototype.stopChild = function (childId) {\n var child = this.children.get(childId);\n\n if (!child) {\n return;\n }\n\n this.children[\"delete\"](childId);\n this.forwardTo[\"delete\"](childId);\n delete this.state.children[childId];\n\n if (isFunction(child.stop)) {\n child.stop();\n }\n };\n\n Interpreter.prototype.spawn = function (entity, name, options) {\n if (isPromiseLike(entity)) {\n return this.spawnPromise(Promise.resolve(entity), name);\n } else if (isFunction(entity)) {\n return this.spawnCallback(entity, name);\n } else if (isActor(entity)) {\n return this.spawnActor(entity);\n } else if (isObservable(entity)) {\n return this.spawnObservable(entity, name);\n } else if (isMachine(entity)) {\n return this.spawnMachine(entity, __assign(__assign({}, options), {\n id: name\n }));\n } else {\n throw new Error(\"Unable to spawn entity \\\"\" + name + \"\\\" of type \\\"\" + _typeof(entity) + \"\\\".\");\n }\n };\n\n Interpreter.prototype.spawnMachine = function (machine, options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var childService = new Interpreter(machine, __assign(__assign({}, this.options), {\n parent: this,\n id: options.id || machine.id\n }));\n\n var resolvedOptions = __assign(__assign({}, DEFAULT_SPAWN_OPTIONS), options);\n\n if (resolvedOptions.sync) {\n childService.onTransition(function (state) {\n _this.send(update, {\n state: state,\n id: childService.id\n });\n });\n }\n\n childService.onDone(function (doneEvent) {\n _this.send(toSCXMLEvent(doneEvent, {\n origin: childService.id\n }));\n }).start();\n var actor = childService;\n this.children.set(childService.id, actor);\n\n if (resolvedOptions.autoForward) {\n this.forwardTo.add(childService.id);\n }\n\n return actor;\n };\n\n Interpreter.prototype.spawnPromise = function (promise, id) {\n var _this = this;\n\n var canceled = false;\n promise.then(function (response) {\n if (!canceled) {\n _this.send(toSCXMLEvent(doneInvoke(id, response), {\n origin: id\n }));\n }\n }, function (errorData) {\n if (!canceled) {\n var errorEvent = error(id, errorData);\n\n try {\n // Send \"error.platform.id\" to this (parent).\n _this.send(toSCXMLEvent(errorEvent, {\n origin: id\n }));\n } catch (error) {\n reportUnhandledExceptionOnInvocation(errorData, error, id);\n\n if (_this.devTools) {\n _this.devTools.send(errorEvent, _this.state);\n }\n\n if (_this.machine.strict) {\n // it would be better to always stop the state machine if unhandled\n // exception/promise rejection happens but because we don't want to\n // break existing code so enforce it on strict mode only especially so\n // because documentation says that onError is optional\n _this.stop();\n }\n }\n }\n });\n var actor = {\n id: id,\n send: function send() {\n return void 0;\n },\n subscribe: function subscribe(next, handleError, complete) {\n var unsubscribed = false;\n promise.then(function (response) {\n if (unsubscribed) {\n return;\n }\n\n next && next(response);\n\n if (unsubscribed) {\n return;\n }\n\n complete && complete();\n }, function (err) {\n if (unsubscribed) {\n return;\n }\n\n handleError(err);\n });\n return {\n unsubscribe: function unsubscribe() {\n return unsubscribed = true;\n }\n };\n },\n stop: function stop() {\n canceled = true;\n },\n toJSON: function toJSON() {\n return {\n id: id\n };\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnCallback = function (callback, id) {\n var _this = this;\n\n var canceled = false;\n var receivers = new Set();\n var listeners = new Set();\n\n var receive = function receive(e) {\n listeners.forEach(function (listener) {\n return listener(e);\n });\n\n if (canceled) {\n return;\n }\n\n _this.send(e);\n };\n\n var callbackStop;\n\n try {\n callbackStop = callback(receive, function (newListener) {\n receivers.add(newListener);\n });\n } catch (err) {\n this.send(error(id, err));\n }\n\n if (isPromiseLike(callbackStop)) {\n // it turned out to be an async function, can't reliably check this before calling `callback`\n // because transpiled async functions are not recognizable\n return this.spawnPromise(callbackStop, id);\n }\n\n var actor = {\n id: id,\n send: function send(event) {\n return receivers.forEach(function (receiver) {\n return receiver(event);\n });\n },\n subscribe: function subscribe(next) {\n listeners.add(next);\n return {\n unsubscribe: function unsubscribe() {\n listeners[\"delete\"](next);\n }\n };\n },\n stop: function stop() {\n canceled = true;\n\n if (isFunction(callbackStop)) {\n callbackStop();\n }\n },\n toJSON: function toJSON() {\n return {\n id: id\n };\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnObservable = function (source, id) {\n var _this = this;\n\n var subscription = source.subscribe(function (value) {\n _this.send(toSCXMLEvent(value, {\n origin: id\n }));\n }, function (err) {\n _this.send(toSCXMLEvent(error(id, err), {\n origin: id\n }));\n }, function () {\n _this.send(toSCXMLEvent(doneInvoke(id), {\n origin: id\n }));\n });\n var actor = {\n id: id,\n send: function send() {\n return void 0;\n },\n subscribe: function subscribe(next, handleError, complete) {\n return source.subscribe(next, handleError, complete);\n },\n stop: function stop() {\n return subscription.unsubscribe();\n },\n toJSON: function toJSON() {\n return {\n id: id\n };\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActor = function (actor) {\n this.children.set(actor.id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActivity = function (activity) {\n var implementation = this.machine.options && this.machine.options.activities ? this.machine.options.activities[activity.type] : undefined;\n\n if (!implementation) {\n if (!IS_PRODUCTION) {\n warn(false, \"No implementation found for activity '\" + activity.type + \"'\");\n } // tslint:disable-next-line:no-console\n\n\n return;\n } // Start implementation\n\n\n var dispose = implementation(this.state.context, activity);\n this.spawnEffect(activity.id, dispose);\n };\n\n Interpreter.prototype.spawnEffect = function (id, dispose) {\n this.children.set(id, {\n id: id,\n send: function send() {\n return void 0;\n },\n subscribe: function subscribe() {\n return {\n unsubscribe: function unsubscribe() {\n return void 0;\n }\n };\n },\n stop: dispose || undefined,\n toJSON: function toJSON() {\n return {\n id: id\n };\n }\n });\n };\n\n Interpreter.prototype.attachDev = function () {\n if (this.options.devTools && typeof window !== 'undefined') {\n if (window.__REDUX_DEVTOOLS_EXTENSION__) {\n var devToolsOptions = _typeof(this.options.devTools) === 'object' ? this.options.devTools : undefined;\n this.devTools = window.__REDUX_DEVTOOLS_EXTENSION__.connect(__assign(__assign({\n name: this.id,\n autoPause: true,\n stateSanitizer: function stateSanitizer(state) {\n return {\n value: state.value,\n context: state.context,\n actions: state.actions\n };\n }\n }, devToolsOptions), {\n features: __assign({\n jump: false,\n skip: false\n }, devToolsOptions ? devToolsOptions.features : undefined)\n }), this.machine);\n this.devTools.init(this.state);\n } // add XState-specific dev tooling hook\n\n\n registerService(this);\n }\n };\n\n Interpreter.prototype.toJSON = function () {\n return {\n id: this.id\n };\n };\n\n Interpreter.prototype[symbolObservable] = function () {\n return this;\n };\n /**\r\n * The default interpreter options:\r\n *\r\n * - `clock` uses the global `setTimeout` and `clearTimeout` functions\r\n * - `logger` uses the global `console.log()` method\r\n */\n\n\n Interpreter.defaultOptions = /*#__PURE__*/function (global) {\n return {\n execute: true,\n deferEvents: true,\n clock: {\n setTimeout: function setTimeout(fn, ms) {\n return global.setTimeout.call(null, fn, ms);\n },\n clearTimeout: function clearTimeout(id) {\n return global.clearTimeout.call(null, id);\n }\n },\n logger: global.console.log.bind(console),\n devTools: false\n };\n }(typeof window === 'undefined' ? global : window);\n\n Interpreter.interpret = interpret;\n return Interpreter;\n}();\n\nvar createNullActor = function createNullActor(name) {\n if (name === void 0) {\n name = 'null';\n }\n\n return {\n id: name,\n send: function send() {\n return void 0;\n },\n subscribe: function subscribe() {\n // tslint:disable-next-line:no-empty\n return {\n unsubscribe: function unsubscribe() {}\n };\n },\n toJSON: function toJSON() {\n return {\n id: name\n };\n }\n };\n};\n\nvar resolveSpawnOptions = function resolveSpawnOptions(nameOrOptions) {\n if (isString(nameOrOptions)) {\n return __assign(__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: nameOrOptions\n });\n }\n\n return __assign(__assign(__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: uniqueId()\n }), nameOrOptions);\n};\n\nfunction spawn(entity, nameOrOptions) {\n var resolvedOptions = resolveSpawnOptions(nameOrOptions);\n return withServiceScope(undefined, function (service) {\n if (!IS_PRODUCTION) {\n warn(!!service, \"Attempted to spawn an Actor (ID: \\\"\" + (isMachine(entity) ? entity.id : 'undefined') + \"\\\") outside of a service. This will have no effect.\");\n }\n\n if (service) {\n return service.spawn(entity, resolvedOptions.name, resolvedOptions);\n } else {\n return createNullActor(resolvedOptions.name);\n }\n });\n}\n/**\r\n * Creates a new Interpreter instance for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to interpret\r\n * @param options Interpreter options\r\n */\n\n\nfunction interpret(machine, options) {\n var interpreter = new Interpreter(machine, options);\n return interpreter;\n}\n\nexport { Interpreter, interpret, spawn };","import { StateNode } from './StateNode.js';\n\nfunction Machine(config, options, initialContext) {\n if (initialContext === void 0) {\n initialContext = config.context;\n }\n\n var resolvedInitialContext = typeof initialContext === 'function' ? initialContext() : initialContext;\n return new StateNode(config, options, resolvedInitialContext);\n}\n\nfunction createMachine(config, options) {\n var resolvedInitialContext = typeof config.context === 'function' ? config.context() : config.context;\n return new StateNode(config, options, resolvedInitialContext);\n}\n\nexport { Machine, createMachine };","import React, { ReactFragment } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\ntype Props = {\n title: string;\n subcopy?: string | ReactFragment;\n onConfirm: ({ }) => void;\n onCancel: ({ }) => void;\n confirmText: string\n};\n\nfunction AlertModal(props: Props) {\n const { title, subcopy, onConfirm, onCancel, confirmText } = props;\n\n // const { modal, dismissModal, callback, setCallback, isVisible } = useModalContext();\n const { modal, dismissModalWithAnimation } = useModalContext();\n\n const handleOnCancel = (event) => {\n if (modal) {\n dismissModalWithAnimation(() => onCancel);\n } else {\n onCancel(event);\n }\n };\n\n const handleOnConfirm = (event) => {\n if (modal) {\n dismissModalWithAnimation(() => onConfirm);\n } else {\n onConfirm(event);\n }\n };\n\n return (\n \n {subcopy && {subcopy}}\n \n \n \n \n );\n}\n\nexport default AlertModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: AlertModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AlertModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","export default function (x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\n} // Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\n\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && 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 ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\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 nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(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 || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\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 (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\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","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\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 = 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","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line unicorn/no-unsafe-regex\nmodule.exports = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(String(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseFloat = global.parseFloat;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(String(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `Number.isInteger` method implementation\n// https://tc39.github.io/ecma262/#sec-number.isinteger\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","var log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.github.io/ecma262/#sec-math.log1p\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\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 promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, 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\nmodule.exports = queueMicrotask || 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","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/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","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\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 var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else 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 = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else 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 var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\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(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\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 defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\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.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\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 var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\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 var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.appent` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n\nvar slice = Array.prototype.slice;\n\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) {\n return origKeys(o);\n} : require('./implementation');\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n if (Object.keys) {\n var keysWorksWithArguments = function () {\n // Safari 5.0 bug\n var args = Object.keys(arguments);\n return args && args.length === arguments.length;\n }(1, 2);\n\n if (!keysWorksWithArguments) {\n Object.keys = function keys(object) {\n // eslint-disable-line func-name-matching\n if (isArgs(object)) {\n return originalKeys(slice.call(object));\n }\n\n return originalKeys(object);\n };\n }\n } else {\n Object.keys = keysShim;\n }\n\n return Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n var str = toStr.call(value);\n var isArgs = str === '[object Arguments]';\n\n if (!isArgs) {\n isArgs = str !== '[object Array]' && value !== null && _typeof(value) === 'object' && typeof value.length === 'number' && value.length >= 0 && toStr.call(value.callee) === '[object Function]';\n }\n\n return isArgs;\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n var intrinsic = GetIntrinsic(name, !!allowMissing);\n\n if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n return callBind(intrinsic);\n }\n\n return intrinsic;\n};","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar undefined;\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError; // eslint-disable-next-line consistent-return\n\nvar getEvalledConstructor = function getEvalledConstructor(expressionSyntax) {\n try {\n return $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n } catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nif ($gOPD) {\n try {\n $gOPD({}, '');\n } catch (e) {\n $gOPD = null; // this is IE 8, which has a broken gOPD\n }\n}\n\nvar throwTypeError = function throwTypeError() {\n throw new $TypeError();\n};\n\nvar ThrowTypeError = $gOPD ? function () {\n try {\n // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n arguments.callee; // IE 8 does not throw here\n\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n return $gOPD(arguments, 'callee').get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n}() : throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) {\n return x.__proto__;\n}; // eslint-disable-line no-proto\n\n\nvar needsEval = {};\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\nvar INTRINSICS = {\n '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n '%Array%': Array,\n '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n '%AsyncFromSyncIteratorPrototype%': undefined,\n '%AsyncFunction%': needsEval,\n '%AsyncGenerator%': needsEval,\n '%AsyncGeneratorFunction%': needsEval,\n '%AsyncIteratorPrototype%': needsEval,\n '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n '%Boolean%': Boolean,\n '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n '%Date%': Date,\n '%decodeURI%': decodeURI,\n '%decodeURIComponent%': decodeURIComponent,\n '%encodeURI%': encodeURI,\n '%encodeURIComponent%': encodeURIComponent,\n '%Error%': Error,\n '%eval%': eval,\n // eslint-disable-line no-eval\n '%EvalError%': EvalError,\n '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n '%Function%': $Function,\n '%GeneratorFunction%': needsEval,\n '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n '%isFinite%': isFinite,\n '%isNaN%': isNaN,\n '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n '%JSON%': (typeof JSON === \"undefined\" ? \"undefined\" : _typeof(JSON)) === 'object' ? JSON : undefined,\n '%Map%': typeof Map === 'undefined' ? undefined : Map,\n '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n '%Math%': Math,\n '%Number%': Number,\n '%Object%': Object,\n '%parseFloat%': parseFloat,\n '%parseInt%': parseInt,\n '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n '%RangeError%': RangeError,\n '%ReferenceError%': ReferenceError,\n '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n '%RegExp%': RegExp,\n '%Set%': typeof Set === 'undefined' ? undefined : Set,\n '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n '%String%': String,\n '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n '%Symbol%': hasSymbols ? Symbol : undefined,\n '%SyntaxError%': $SyntaxError,\n '%ThrowTypeError%': ThrowTypeError,\n '%TypedArray%': TypedArray,\n '%TypeError%': $TypeError,\n '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n '%URIError%': URIError,\n '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n var value;\n\n if (name === '%AsyncFunction%') {\n value = getEvalledConstructor('async function () {}');\n } else if (name === '%GeneratorFunction%') {\n value = getEvalledConstructor('function* () {}');\n } else if (name === '%AsyncGeneratorFunction%') {\n value = getEvalledConstructor('async function* () {}');\n } else if (name === '%AsyncGenerator%') {\n var fn = doEval('%AsyncGeneratorFunction%');\n\n if (fn) {\n value = fn.prototype;\n }\n } else if (name === '%AsyncIteratorPrototype%') {\n var gen = doEval('%AsyncGenerator%');\n\n if (gen) {\n value = getProto(gen.prototype);\n }\n }\n\n INTRINSICS[name] = value;\n return value;\n};\n\nvar LEGACY_ALIASES = {\n '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n '%ArrayPrototype%': ['Array', 'prototype'],\n '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n '%ArrayProto_values%': ['Array', 'prototype', 'values'],\n '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n '%BooleanPrototype%': ['Boolean', 'prototype'],\n '%DataViewPrototype%': ['DataView', 'prototype'],\n '%DatePrototype%': ['Date', 'prototype'],\n '%ErrorPrototype%': ['Error', 'prototype'],\n '%EvalErrorPrototype%': ['EvalError', 'prototype'],\n '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n '%FunctionPrototype%': ['Function', 'prototype'],\n '%Generator%': ['GeneratorFunction', 'prototype'],\n '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n '%JSONParse%': ['JSON', 'parse'],\n '%JSONStringify%': ['JSON', 'stringify'],\n '%MapPrototype%': ['Map', 'prototype'],\n '%NumberPrototype%': ['Number', 'prototype'],\n '%ObjectPrototype%': ['Object', 'prototype'],\n '%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n '%PromisePrototype%': ['Promise', 'prototype'],\n '%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n '%Promise_all%': ['Promise', 'all'],\n '%Promise_reject%': ['Promise', 'reject'],\n '%Promise_resolve%': ['Promise', 'resolve'],\n '%RangeErrorPrototype%': ['RangeError', 'prototype'],\n '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n '%RegExpPrototype%': ['RegExp', 'prototype'],\n '%SetPrototype%': ['Set', 'prototype'],\n '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n '%StringPrototype%': ['String', 'prototype'],\n '%SymbolPrototype%': ['Symbol', 'prototype'],\n '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n '%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n '%TypeErrorPrototype%': ['TypeError', 'prototype'],\n '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n '%URIErrorPrototype%': ['URIError', 'prototype'],\n '%WeakMapPrototype%': ['WeakMap', 'prototype'],\n '%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\n\nvar hasOwn = require('has');\n\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);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\n\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\n/** Used to match backslashes in property paths. */\n\nvar stringToPath = function stringToPath(string) {\n var first = $strSlice(string, 0, 1);\n var last = $strSlice(string, -1);\n\n if (first === '%' && last !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n } else if (last === '%' && first !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n }\n\n var result = [];\n $replace(string, rePropName, function (match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n });\n return result;\n};\n/* end adaptation */\n\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n var intrinsicName = name;\n var alias;\n\n if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n alias = LEGACY_ALIASES[intrinsicName];\n intrinsicName = '%' + alias[0] + '%';\n }\n\n if (hasOwn(INTRINSICS, intrinsicName)) {\n var value = INTRINSICS[intrinsicName];\n\n if (value === needsEval) {\n value = doEval(intrinsicName);\n }\n\n if (typeof value === 'undefined' && !allowMissing) {\n throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n }\n\n return {\n alias: alias,\n name: intrinsicName,\n value: value\n };\n }\n\n throw new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n if (typeof name !== 'string' || name.length === 0) {\n throw new $TypeError('intrinsic name must be a non-empty string');\n }\n\n if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n throw new $TypeError('\"allowMissing\" argument must be a boolean');\n }\n\n var parts = stringToPath(name);\n var intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n var intrinsicRealName = intrinsic.name;\n var value = intrinsic.value;\n var skipFurtherCaching = false;\n var alias = intrinsic.alias;\n\n if (alias) {\n intrinsicBaseName = alias[0];\n $spliceApply(parts, $concat([0, 1], alias));\n }\n\n for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n var part = parts[i];\n var first = $strSlice(part, 0, 1);\n var last = $strSlice(part, -1);\n\n if ((first === '\"' || first === \"'\" || first === '`' || last === '\"' || last === \"'\" || last === '`') && first !== last) {\n throw new $SyntaxError('property names with quotes must have matching quotes');\n }\n\n if (part === 'constructor' || !isOwn) {\n skipFurtherCaching = true;\n }\n\n intrinsicBaseName += '.' + part;\n intrinsicRealName = '%' + intrinsicBaseName + '%';\n\n if (hasOwn(INTRINSICS, intrinsicRealName)) {\n value = INTRINSICS[intrinsicRealName];\n } else if (value != null) {\n if (!(part in value)) {\n if (!allowMissing) {\n throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n }\n\n return void undefined;\n }\n\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, part);\n isOwn = !!desc; // By convention, when a data property is converted to an accessor\n // property to emulate a data property that does not suffer from\n // the override mistake, that accessor's getter is marked with\n // an `originalValue` property. Here, when we detect this, we\n // uphold the illusion by pretending to see that original data\n // property, i.e., returning the value rather than the getter\n // itself.\n\n if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n value = desc.get;\n } else {\n value = value[part];\n }\n } else {\n isOwn = hasOwn(value, part);\n value = value[part];\n }\n\n if (isOwn && !skipFurtherCaching) {\n INTRINSICS[intrinsicRealName] = value;\n }\n }\n }\n\n return value;\n};","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\n\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== 'function') {\n return false;\n }\n\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n if (_typeof(origSymbol('foo')) !== 'symbol') {\n return false;\n }\n\n if (_typeof(Symbol('bar')) !== 'symbol') {\n return false;\n }\n\n return hasSymbolSham();\n};","'use strict';\n\nvar numberIsNaN = function numberIsNaN(value) {\n return value !== value;\n};\n\nmodule.exports = function is(a, b) {\n if (a === 0 && b === 0) {\n return 1 / a === 1 / b;\n }\n\n if (a === b) {\n return true;\n }\n\n if (numberIsNaN(a) && numberIsNaN(b)) {\n return true;\n }\n\n return false;\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n return typeof Object.is === 'function' ? Object.is : implementation;\n};","'use strict';\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n if (this != null && this !== $Object(this)) {\n throw new $TypeError('RegExp.prototype.flags getter called on non-object');\n }\n\n var result = '';\n\n if (this.global) {\n result += 'g';\n }\n\n if (this.ignoreCase) {\n result += 'i';\n }\n\n if (this.multiline) {\n result += 'm';\n }\n\n if (this.dotAll) {\n result += 's';\n }\n\n if (this.unicode) {\n result += 'u';\n }\n\n if (this.sticky) {\n result += 'y';\n }\n\n return result;\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n if (!supportsDescriptors) {\n throw new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n }\n\n if (/a/mig.flags === 'gim') {\n var descriptor = $gOPD(RegExp.prototype, 'flags');\n\n if (descriptor && typeof descriptor.get === 'function' && typeof /a/.dotAll === 'boolean') {\n return descriptor.get;\n }\n }\n\n return implementation;\n};","exports.__esModule = true;\nvar ATTRIBUTE_NAMES = exports.ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = exports.TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = exports.VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = exports.TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\"\n};\nvar REACT_TAG_MAP = exports.REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n \"class\": \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = exports.HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = exports.HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = exports.SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = exports.HELMET_ATTRIBUTE = \"data-react-helmet\";","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Globals } from '@react-spring/core';\nexport * from '@react-spring/core';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { eachProp, is, toArray, FluidValue, each, getFluidValue, hasFluidValue, addFluidObserver, removeFluidObserver, callFluidObservers, createStringInterpolator, colors } from '@react-spring/shared';\nimport { AnimatedObject, createHost } from '@react-spring/animated';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded$2 = [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"];\nvar isCustomPropRE = /^--/;\n\nfunction dangerousStyleValue(name, value) {\n if (value == null || typeof value === 'boolean' || value === '') return '';\n if (typeof value === 'number' && value !== 0 && !isCustomPropRE.test(name) && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px';\n return ('' + value).trim();\n}\n\nvar attributeCache = {};\n\nfunction applyAnimatedValues(instance, props) {\n if (!instance.nodeType || !instance.setAttribute) {\n return false;\n }\n\n var isFilterElement = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';\n\n var _ref = props,\n style = _ref.style,\n children = _ref.children,\n scrollTop = _ref.scrollTop,\n scrollLeft = _ref.scrollLeft,\n attributes = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n var values = Object.values(attributes);\n var names = Object.keys(attributes).map(function (name) {\n return isFilterElement || instance.hasAttribute(name) ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, function (n) {\n return '-' + n.toLowerCase();\n }));\n });\n\n if (children !== void 0) {\n instance.textContent = children;\n }\n\n for (var name in style) {\n if (style.hasOwnProperty(name)) {\n var value = dangerousStyleValue(name, style[name]);\n\n if (isCustomPropRE.test(name)) {\n instance.style.setProperty(name, value);\n } else {\n instance.style[name] = value;\n }\n }\n }\n\n names.forEach(function (name, i) {\n instance.setAttribute(name, values[i]);\n });\n\n if (scrollTop !== void 0) {\n instance.scrollTop = scrollTop;\n }\n\n if (scrollLeft !== void 0) {\n instance.scrollLeft = scrollLeft;\n }\n}\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nvar prefixKey = function prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nvar prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce(function (acc, prop) {\n prefixes.forEach(function (prefix) {\n return acc[prefixKey(prefix, prop)] = acc[prop];\n });\n return acc;\n}, isUnitlessNumber);\nvar _excluded$1 = [\"x\", \"y\", \"z\"];\nvar domTransforms = /^(matrix|translate|scale|rotate|skew)/;\nvar pxTransforms = /^(translate)/;\nvar degTransforms = /^(rotate|skew)/;\n\nvar addUnit = function addUnit(value, unit) {\n return is.num(value) && value !== 0 ? value + unit : value;\n};\n\nvar isValueIdentity = function isValueIdentity(value, id) {\n return is.arr(value) ? value.every(function (v) {\n return isValueIdentity(v, id);\n }) : is.num(value) ? value === id : parseFloat(value) === id;\n};\n\nvar AnimatedStyle = /*#__PURE__*/function (_AnimatedObject) {\n _inherits(AnimatedStyle, _AnimatedObject);\n\n var _super = _createSuper(AnimatedStyle);\n\n function AnimatedStyle(_ref) {\n _classCallCheck(this, AnimatedStyle);\n\n var x = _ref.x,\n y = _ref.y,\n z = _ref.z,\n style = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n var inputs = [];\n var transforms = [];\n\n if (x || y || z) {\n inputs.push([x || 0, y || 0, z || 0]);\n transforms.push(function (xyz) {\n return [\"translate3d(\".concat(xyz.map(function (v) {\n return addUnit(v, 'px');\n }).join(','), \")\"), isValueIdentity(xyz, 0)];\n });\n }\n\n eachProp(style, function (value, key) {\n if (key === 'transform') {\n inputs.push([value || '']);\n transforms.push(function (transform) {\n return [transform, transform === ''];\n });\n } else if (domTransforms.test(key)) {\n delete style[key];\n if (is.und(value)) return;\n var unit = pxTransforms.test(key) ? 'px' : degTransforms.test(key) ? 'deg' : '';\n inputs.push(toArray(value));\n transforms.push(key === 'rotate3d' ? function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 4),\n x = _ref3[0],\n y = _ref3[1],\n z = _ref3[2],\n deg = _ref3[3];\n\n return [\"rotate3d(\".concat(x, \",\").concat(y, \",\").concat(z, \",\").concat(addUnit(deg, unit), \")\"), isValueIdentity(deg, 0)];\n } : function (input) {\n return [\"\".concat(key, \"(\").concat(input.map(function (v) {\n return addUnit(v, unit);\n }).join(','), \")\"), isValueIdentity(input, key.startsWith('scale') ? 1 : 0)];\n });\n }\n });\n\n if (inputs.length) {\n style.transform = new FluidTransform(inputs, transforms);\n }\n\n return _super.call(this, style);\n }\n\n return AnimatedStyle;\n}(AnimatedObject);\n\nvar FluidTransform = /*#__PURE__*/function (_FluidValue) {\n _inherits(FluidTransform, _FluidValue);\n\n var _super2 = _createSuper(FluidTransform);\n\n function FluidTransform(inputs, transforms) {\n var _this;\n\n _classCallCheck(this, FluidTransform);\n\n _this = _super2.call(this);\n _this._value = null;\n _this.inputs = inputs;\n _this.transforms = transforms;\n return _this;\n }\n\n _createClass(FluidTransform, [{\n key: \"get\",\n value: function get() {\n return this._value || (this._value = this._get());\n }\n }, {\n key: \"_get\",\n value: function _get() {\n var _this2 = this;\n\n var transform = '';\n var identity = true;\n each(this.inputs, function (input, i) {\n var arg1 = getFluidValue(input[0]);\n\n var _this2$transforms$i = _this2.transforms[i](is.arr(arg1) ? arg1 : input.map(getFluidValue)),\n _this2$transforms$i2 = _slicedToArray(_this2$transforms$i, 2),\n t = _this2$transforms$i2[0],\n id = _this2$transforms$i2[1];\n\n transform += ' ' + t;\n identity = identity && id;\n });\n return identity ? 'none' : transform;\n }\n }, {\n key: \"observerAdded\",\n value: function observerAdded(count) {\n var _this3 = this;\n\n if (count == 1) each(this.inputs, function (input) {\n return each(input, function (value) {\n return hasFluidValue(value) && addFluidObserver(value, _this3);\n });\n });\n }\n }, {\n key: \"observerRemoved\",\n value: function observerRemoved(count) {\n var _this4 = this;\n\n if (count == 0) each(this.inputs, function (input) {\n return each(input, function (value) {\n return hasFluidValue(value) && removeFluidObserver(value, _this4);\n });\n });\n }\n }, {\n key: \"eventObserved\",\n value: function eventObserved(event) {\n if (event.type == 'change') {\n this._value = null;\n }\n\n callFluidObservers(this, event);\n }\n }]);\n\n return FluidTransform;\n}(FluidValue);\n\nvar primitives = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', 'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\nvar _excluded = [\"scrollTop\", \"scrollLeft\"];\nGlobals.assign({\n batchedUpdates: unstable_batchedUpdates,\n createStringInterpolator: createStringInterpolator,\n colors: colors\n});\nvar host = createHost(primitives, {\n applyAnimatedValues: applyAnimatedValues,\n createAnimatedStyle: function createAnimatedStyle(style) {\n return new AnimatedStyle(style);\n },\n getComponentProps: function getComponentProps(_ref) {\n var props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return props;\n }\n});\nvar animated = host.animated;\nexport { animated as a, animated };","/**\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'use strict';\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 warning() {};\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\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n/**\n * 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 */\n\n\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n\n object = object[key];\n }\n\n if (result || ++index != length) {\n return result;\n }\n\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\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 */\n\n\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object' && global && global.Object === Object && global;\nmodule.exports = freeGlobal;","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n/** `Object#toString` result references. */\n\n\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\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 */\n\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\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\n\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n/** Used to resolve the decompiled source of functions. */\n\nvar funcToString = funcProto.toString;\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 */\n\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\n}\n\nmodule.exports = toSource;","/**\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\n return result;\n}\n\nmodule.exports = arrayMap;","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Built-in value references. */\n\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\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 */\n\nvar isArguments = baseIsArguments(function () {\n return arguments;\n}()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\nmodule.exports = isArguments;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/** Used to detect unsigned integer values. */\n\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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 */\n\nfunction isIndex(value, length) {\n var type = _typeof(value);\n\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\n\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;","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/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\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)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\n}\n\nmodule.exports = arrayLikeKeys;","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n/* Node.js helper references. */\n\n\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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 */\n\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\nmodule.exports = isTypedArray;","/**\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 * 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 array || (array = Array(length));\n\n while (++index < length) {\n array[index] = source[index];\n }\n\n return array;\n}\n\nmodule.exports = copyArray;","/**\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;","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\n\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\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 */\n\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function (object) {\n var result = [];\n\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n\n return result;\n};\nmodule.exports = getSymbolsIn;","/**\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\n return array;\n}\n\nmodule.exports = arrayPush;","var overArg = require('./_overArg');\n/** Built-in value references. */\n\n\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\nmodule.exports = getPrototype;","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\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 */\n\n\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\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 */\n\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;","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar Uint8Array = root.Uint8Array;\nmodule.exports = Uint8Array;","/**\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 map.forEach(function (value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;","/**\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 set.forEach(function (value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\n\nfunction stringToArray(string) {\n return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;","/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\";\n/** Used to compose unicode capture groups. */\n\nvar rsZWJ = \"\\\\u200d\";\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;","/* jshint node: true */\n\"use strict\";\n\nfunction makeArrayFrom(obj) {\n return Array.prototype.slice.apply(obj);\n}\n\nvar PENDING = \"pending\",\n RESOLVED = \"resolved\",\n REJECTED = \"rejected\";\n\nfunction SynchronousPromise(handler) {\n this.status = PENDING;\n this._continuations = [];\n this._parent = null;\n this._paused = false;\n\n if (handler) {\n handler.call(this, this._continueWith.bind(this), this._failWith.bind(this));\n }\n}\n\nfunction looksLikeAPromise(obj) {\n return obj && typeof obj.then === \"function\";\n}\n\nfunction passThrough(value) {\n return value;\n}\n\nSynchronousPromise.prototype = {\n then: function then(nextFn, catchFn) {\n var next = SynchronousPromise.unresolved()._setParent(this);\n\n if (this._isRejected()) {\n if (this._paused) {\n this._continuations.push({\n promise: next,\n nextFn: nextFn,\n catchFn: catchFn\n });\n\n return next;\n }\n\n if (catchFn) {\n try {\n var catchResult = catchFn(this._error);\n\n if (looksLikeAPromise(catchResult)) {\n this._chainPromiseData(catchResult, next);\n\n return next;\n } else {\n return SynchronousPromise.resolve(catchResult)._setParent(this);\n }\n } catch (e) {\n return SynchronousPromise.reject(e)._setParent(this);\n }\n }\n\n return SynchronousPromise.reject(this._error)._setParent(this);\n }\n\n this._continuations.push({\n promise: next,\n nextFn: nextFn,\n catchFn: catchFn\n });\n\n this._runResolutions();\n\n return next;\n },\n \"catch\": function _catch(handler) {\n if (this._isResolved()) {\n return SynchronousPromise.resolve(this._data)._setParent(this);\n }\n\n var next = SynchronousPromise.unresolved()._setParent(this);\n\n this._continuations.push({\n promise: next,\n catchFn: handler\n });\n\n this._runRejections();\n\n return next;\n },\n \"finally\": function _finally(callback) {\n var ran = false;\n\n function runFinally(result, err) {\n if (!ran) {\n ran = true;\n\n if (!callback) {\n callback = passThrough;\n }\n\n var callbackResult = callback(result);\n\n if (looksLikeAPromise(callbackResult)) {\n return callbackResult.then(function () {\n if (err) {\n throw err;\n }\n\n return result;\n });\n } else {\n return result;\n }\n }\n }\n\n return this.then(function (result) {\n return runFinally(result);\n })[\"catch\"](function (err) {\n return runFinally(null, err);\n });\n },\n pause: function pause() {\n this._paused = true;\n return this;\n },\n resume: function resume() {\n var firstPaused = this._findFirstPaused();\n\n if (firstPaused) {\n firstPaused._paused = false;\n\n firstPaused._runResolutions();\n\n firstPaused._runRejections();\n }\n\n return this;\n },\n _findAncestry: function _findAncestry() {\n return this._continuations.reduce(function (acc, cur) {\n if (cur.promise) {\n var node = {\n promise: cur.promise,\n children: cur.promise._findAncestry()\n };\n acc.push(node);\n }\n\n return acc;\n }, []);\n },\n _setParent: function _setParent(parent) {\n if (this._parent) {\n throw new Error(\"parent already set\");\n }\n\n this._parent = parent;\n return this;\n },\n _continueWith: function _continueWith(data) {\n var firstPending = this._findFirstPending();\n\n if (firstPending) {\n firstPending._data = data;\n\n firstPending._setResolved();\n }\n },\n _findFirstPending: function _findFirstPending() {\n return this._findFirstAncestor(function (test) {\n return test._isPending && test._isPending();\n });\n },\n _findFirstPaused: function _findFirstPaused() {\n return this._findFirstAncestor(function (test) {\n return test._paused;\n });\n },\n _findFirstAncestor: function _findFirstAncestor(matching) {\n var test = this;\n var result;\n\n while (test) {\n if (matching(test)) {\n result = test;\n }\n\n test = test._parent;\n }\n\n return result;\n },\n _failWith: function _failWith(error) {\n var firstRejected = this._findFirstPending();\n\n if (firstRejected) {\n firstRejected._error = error;\n\n firstRejected._setRejected();\n }\n },\n _takeContinuations: function _takeContinuations() {\n return this._continuations.splice(0, this._continuations.length);\n },\n _runRejections: function _runRejections() {\n if (this._paused || !this._isRejected()) {\n return;\n }\n\n var error = this._error,\n continuations = this._takeContinuations(),\n self = this;\n\n continuations.forEach(function (cont) {\n if (cont.catchFn) {\n try {\n var catchResult = cont.catchFn(error);\n\n self._handleUserFunctionResult(catchResult, cont.promise);\n } catch (e) {\n cont.promise.reject(e);\n }\n } else {\n cont.promise.reject(error);\n }\n });\n },\n _runResolutions: function _runResolutions() {\n if (this._paused || !this._isResolved() || this._isPending()) {\n return;\n }\n\n var continuations = this._takeContinuations();\n\n if (looksLikeAPromise(this._data)) {\n return this._handleWhenResolvedDataIsPromise(this._data);\n }\n\n var data = this._data;\n var self = this;\n continuations.forEach(function (cont) {\n if (cont.nextFn) {\n try {\n var result = cont.nextFn(data);\n\n self._handleUserFunctionResult(result, cont.promise);\n } catch (e) {\n self._handleResolutionError(e, cont);\n }\n } else if (cont.promise) {\n cont.promise.resolve(data);\n }\n });\n },\n _handleResolutionError: function _handleResolutionError(e, continuation) {\n this._setRejected();\n\n if (continuation.catchFn) {\n try {\n continuation.catchFn(e);\n return;\n } catch (e2) {\n e = e2;\n }\n }\n\n if (continuation.promise) {\n continuation.promise.reject(e);\n }\n },\n _handleWhenResolvedDataIsPromise: function _handleWhenResolvedDataIsPromise(data) {\n var self = this;\n return data.then(function (result) {\n self._data = result;\n\n self._runResolutions();\n })[\"catch\"](function (error) {\n self._error = error;\n\n self._setRejected();\n\n self._runRejections();\n });\n },\n _handleUserFunctionResult: function _handleUserFunctionResult(data, nextSynchronousPromise) {\n if (looksLikeAPromise(data)) {\n this._chainPromiseData(data, nextSynchronousPromise);\n } else {\n nextSynchronousPromise.resolve(data);\n }\n },\n _chainPromiseData: function _chainPromiseData(promiseData, nextSynchronousPromise) {\n promiseData.then(function (newData) {\n nextSynchronousPromise.resolve(newData);\n })[\"catch\"](function (newError) {\n nextSynchronousPromise.reject(newError);\n });\n },\n _setResolved: function _setResolved() {\n this.status = RESOLVED;\n\n if (!this._paused) {\n this._runResolutions();\n }\n },\n _setRejected: function _setRejected() {\n this.status = REJECTED;\n\n if (!this._paused) {\n this._runRejections();\n }\n },\n _isPending: function _isPending() {\n return this.status === PENDING;\n },\n _isResolved: function _isResolved() {\n return this.status === RESOLVED;\n },\n _isRejected: function _isRejected() {\n return this.status === REJECTED;\n }\n};\n\nSynchronousPromise.resolve = function (result) {\n return new SynchronousPromise(function (resolve, reject) {\n if (looksLikeAPromise(result)) {\n result.then(function (newResult) {\n resolve(newResult);\n })[\"catch\"](function (error) {\n reject(error);\n });\n } else {\n resolve(result);\n }\n });\n};\n\nSynchronousPromise.reject = function (result) {\n return new SynchronousPromise(function (resolve, reject) {\n reject(result);\n });\n};\n\nSynchronousPromise.unresolved = function () {\n return new SynchronousPromise(function (resolve, reject) {\n this.resolve = resolve;\n this.reject = reject;\n });\n};\n\nSynchronousPromise.all = function () {\n var args = makeArrayFrom(arguments);\n\n if (Array.isArray(args[0])) {\n args = args[0];\n }\n\n if (!args.length) {\n return SynchronousPromise.resolve([]);\n }\n\n return new SynchronousPromise(function (resolve, reject) {\n var allData = [],\n numResolved = 0,\n doResolve = function doResolve() {\n if (numResolved === args.length) {\n resolve(allData);\n }\n },\n rejected = false,\n doReject = function doReject(err) {\n if (rejected) {\n return;\n }\n\n rejected = true;\n reject(err);\n };\n\n args.forEach(function (arg, idx) {\n SynchronousPromise.resolve(arg).then(function (thisResult) {\n allData[idx] = thisResult;\n numResolved += 1;\n doResolve();\n })[\"catch\"](function (err) {\n doReject(err);\n });\n });\n });\n};\n\nfunction createAggregateErrorFrom(errors) {\n /* jshint ignore:start */\n if (typeof window !== \"undefined\" && \"AggregateError\" in window) {\n return new window.AggregateError(errors);\n }\n /* jshint ignore:end */\n\n\n return {\n errors: errors\n };\n}\n\nSynchronousPromise.any = function () {\n var args = makeArrayFrom(arguments);\n\n if (Array.isArray(args[0])) {\n args = args[0];\n }\n\n if (!args.length) {\n return SynchronousPromise.reject(createAggregateErrorFrom([]));\n }\n\n return new SynchronousPromise(function (resolve, reject) {\n var allErrors = [],\n numRejected = 0,\n doReject = function doReject() {\n if (numRejected === args.length) {\n reject(createAggregateErrorFrom(allErrors));\n }\n },\n resolved = false,\n doResolve = function doResolve(result) {\n if (resolved) {\n return;\n }\n\n resolved = true;\n resolve(result);\n };\n\n args.forEach(function (arg, idx) {\n SynchronousPromise.resolve(arg).then(function (thisResult) {\n doResolve(thisResult);\n })[\"catch\"](function (err) {\n allErrors[idx] = err;\n numRejected += 1;\n doReject();\n });\n });\n });\n};\n\nSynchronousPromise.allSettled = function () {\n var args = makeArrayFrom(arguments);\n\n if (Array.isArray(args[0])) {\n args = args[0];\n }\n\n if (!args.length) {\n return SynchronousPromise.resolve([]);\n }\n\n return new SynchronousPromise(function (resolve) {\n var allData = [],\n numSettled = 0,\n doSettled = function doSettled() {\n numSettled += 1;\n\n if (numSettled === args.length) {\n resolve(allData);\n }\n };\n\n args.forEach(function (arg, idx) {\n SynchronousPromise.resolve(arg).then(function (thisResult) {\n allData[idx] = {\n status: \"fulfilled\",\n value: thisResult\n };\n doSettled();\n })[\"catch\"](function (err) {\n allData[idx] = {\n status: \"rejected\",\n reason: err\n };\n doSettled();\n });\n });\n });\n};\n/* jshint ignore:start */\n\n\nif (Promise === SynchronousPromise) {\n throw new Error(\"Please use SynchronousPromise.installGlobally() to install globally\");\n}\n\nvar RealPromise = Promise;\n\nSynchronousPromise.installGlobally = function (__awaiter) {\n if (Promise === SynchronousPromise) {\n return __awaiter;\n }\n\n var result = patchAwaiterIfRequired(__awaiter);\n Promise = SynchronousPromise;\n return result;\n};\n\nSynchronousPromise.uninstallGlobally = function () {\n if (Promise === SynchronousPromise) {\n Promise = RealPromise;\n }\n};\n\nfunction patchAwaiterIfRequired(__awaiter) {\n if (typeof __awaiter === \"undefined\" || __awaiter.__patched) {\n return __awaiter;\n }\n\n var originalAwaiter = __awaiter;\n\n __awaiter = function __awaiter() {\n var Promise = RealPromise;\n originalAwaiter.apply(this, makeArrayFrom(arguments));\n };\n\n __awaiter.__patched = true;\n return __awaiter;\n}\n/* jshint ignore:end */\n\n\nmodule.exports = {\n SynchronousPromise: SynchronousPromise\n};","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.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 the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n\n\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n baseForOwn(object, function (value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;","var baseFor = require('./_baseFor'),\n keys = require('./keys');\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 */\n\n\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\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 */\n\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\n if (value == null) {\n return identity;\n }\n\n if (_typeof(value) == 'object') {\n return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n\n return property(value);\n}\n\nmodule.exports = baseIteratee;","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\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 */\n\n\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n/** Used to compose bitmasks for value comparisons. */\n\n\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 */\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 } // Check that cyclic values are equal.\n\n\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n\n var index = -1,\n result = true,\n seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;\n stack.set(array, other);\n stack.set(other, array); // Ignore non-index properties.\n\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n\n result = false;\n break;\n } // Recursively compare arrays (susceptible to call stack limits).\n\n\n if (seen) {\n if (!arraySome(other, function (othValue, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;","var isObject = require('./isObject');\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 */\n\n\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;","/**\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\n return object[key] === srcValue && (srcValue !== undefined || key in Object(object));\n };\n}\n\nmodule.exports = matchesStrictComparable;","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\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 */\n\n\nfunction baseGet(object, path) {\n path = castPath(path, object);\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n\n return index && index == length ? object : undefined;\n}\n\nmodule.exports = baseGet;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.getIn = getIn;\nexports[\"default\"] = void 0;\n\nvar _propertyExpr = require(\"property-expr\");\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar trim = function trim(part) {\n return part.substr(0, part.length - 1).substr(1);\n};\n\nfunction getIn(schema, path, value, context) {\n var parent, lastPart, lastPartDebug; // if only one \"value\" arg then use it for both\n\n context = context || value;\n if (!path) return {\n parent: parent,\n parentPath: path,\n schema: schema\n };\n (0, _propertyExpr.forEach)(path, function (_part, isBracket, isArray) {\n var part = isBracket ? trim(_part) : _part;\n\n if (isArray || (0, _has[\"default\"])(schema, '_subType')) {\n // we skipped an array: foo[].bar\n var idx = isArray ? parseInt(part, 10) : 0;\n schema = schema.resolve({\n context: context,\n parent: parent,\n value: value\n })._subType;\n\n if (value) {\n if (isArray && idx >= value.length) {\n throw new Error(\"Yup.reach cannot resolve an array item at index: \" + _part + \", in the path: \" + path + \". \" + \"because there is no value at that index. \");\n }\n\n value = value[idx];\n }\n }\n\n if (!isArray) {\n schema = schema.resolve({\n context: context,\n parent: parent,\n value: value\n });\n if (!(0, _has[\"default\"])(schema, 'fields') || !(0, _has[\"default\"])(schema.fields, part)) throw new Error(\"The schema does not contain the path: \" + path + \". \" + (\"(failed at: \" + lastPartDebug + \" which is a type: \\\"\" + schema._type + \"\\\") \"));\n schema = schema.fields[part];\n parent = value;\n value = value && value[part];\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n }\n });\n return {\n schema: schema,\n parent: parent,\n parentPath: lastPart\n };\n}\n\nvar reach = function reach(obj, path, value, context) {\n return getIn(obj, path, value, context).schema;\n};\n\nvar _default = reach;\nexports[\"default\"] = _default;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n strings.raw = raw;\n return strings;\n}\n\nmodule.exports = _taggedTemplateLiteralLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n/** Used to compose unicode capture groups. */\n\n\nvar rsApos = \"['\\u2019]\";\n/** Used to match apostrophes. */\n\nvar reApos = RegExp(rsApos, 'g');\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n\nfunction createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = makePath;\n\nfunction makePath(strings) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n var path = strings.reduce(function (str, next) {\n var value = values.shift();\n return str + (value == null ? '' : value) + next;\n });\n return path.replace(/^\\./, '');\n}\n\nmodule.exports = exports[\"default\"];","var _Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n/** `Object#toString` result references. */\n\n\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\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 */\n\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * 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;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\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 */\n\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\n if (value == null) {\n return identity;\n }\n\n if (_typeof(value) == 'object') {\n return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n\n return property(value);\n}\n\nmodule.exports = baseIteratee;","if (process.env.NODE_ENV === 'production') {\n module.exports = {\n ReactQueryDevtools: function ReactQueryDevtools() {\n return null;\n },\n ReactQueryDevtoolsPanel: function ReactQueryDevtoolsPanel() {\n return null;\n }\n };\n} else {\n module.exports = require('./development');\n}","import { useRef as e, useState as n, useEffect as t, useCallback as o } from \"react\";\nimport r from \"@use-it/event-listener\";\n\nvar l = {},\n a = function a(e, n, t) {\n return l[e] || (l[e] = {\n callbacks: [],\n value: t\n }), l[e].callbacks.push(n), {\n deregister: function deregister() {\n var t = l[e].callbacks,\n o = t.indexOf(n);\n o > -1 && t.splice(o, 1);\n },\n emit: function emit(t) {\n l[e].value !== t && (l[e].value = t, l[e].callbacks.forEach(function (e) {\n n !== e && e(t);\n }));\n }\n };\n};\n\nexport default function (l, u) {\n if (void 0 === u && (u = \"undefined\" != typeof global && global.localStorage ? global.localStorage : \"undefined\" != typeof globalThis && globalThis.localStorage ? globalThis.localStorage : \"undefined\" != typeof window && window.localStorage ? window.localStorage : \"undefined\" != typeof localStorage ? localStorage : null), u) {\n var i = function (e) {\n return {\n get: function get(n, t) {\n var o = e.getItem(n);\n return null == o ? \"function\" == typeof t ? t() : t : JSON.parse(o);\n },\n set: function set(n, t) {\n e.setItem(n, JSON.stringify(t));\n }\n };\n }(u);\n\n return function (u) {\n return function (l, u, i) {\n var c = i.get,\n f = i.set,\n g = e(null),\n s = n(function () {\n return c(u, l);\n }),\n d = s[0],\n p = s[1];\n r(\"storage\", function (e) {\n if (e.key === u) {\n var n = JSON.parse(e.newValue);\n d !== n && p(n);\n }\n }), t(function () {\n return g.current = a(u, p, l), function () {\n g.current.deregister();\n };\n }, [l, u]);\n var v = o(function (e) {\n var n = \"function\" == typeof e ? e(d) : e;\n f(u, n), p(n), g.current.emit(e);\n }, [d, f, u]);\n return [d, v];\n }(u, l, i);\n };\n }\n\n return n;\n}","import { useRef as e, useEffect as n } from \"react\";\nexport default function (t, r, i, o) {\n void 0 === i && (i = global), void 0 === o && (o = {});\n var c = e(),\n u = o.capture,\n a = o.passive,\n v = o.once;\n n(function () {\n c.current = r;\n }, [r]), n(function () {\n if (i && i.addEventListener) {\n var e = function e(_e) {\n return c.current(_e);\n },\n n = {\n capture: u,\n passive: a,\n once: v\n };\n\n return i.addEventListener(t, e, n), function () {\n i.removeEventListener(t, e, n);\n };\n }\n }, [t, i, u, a, v]);\n}","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\n// Fallback\n/***********************************/\n\nexport default function ErrorBoundaryFallback() {\n return (\n \n

    Something didn't work.

    \n

    \n An error has occurred, please try refreshing or visiting your Polymer home.\n

    \n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Component = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ErrorBoundaryFallback;\n ${t.py(24)};\n height: 100%;\n width: 100%;\n text-align: center;\n\n h1 {\n ${[t.mb(2), t.text.h2]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n }\n\n p {\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[300] : t.color.black} !important;\n &:hover {\n text-decoration: underline;\n }\n }\n `;\n});","import colors from \"./colors\";\nimport theme from \"./theme\";\n\nconst poly = {\n color: {\n canvas: colors.gray[900],\n border: colors.gray[800],\n borderHover: colors.gray[600],\n loudText: colors.gray[200],\n primaryText: colors.gray[300],\n secondaryText: colors.gray[400],\n placeholderText: colors.gray[500],\n\n subtleHover: colors.gray[800],\n loudHover: colors.gray[700],\n\n wellCanvas: colors.gray[900],\n\n calloutCanvas: \"rgba(255, 255, 255, 0.07)\",\n\n dropdownCanvas: colors.gray[700],\n dropdownBorder: colors.gray[600],\n dropdownDivider: colors.gray[600],\n dropdownHover: colors.gray[500],\n dropdownTextHover: colors.white,\n\n cardCanvas: colors.gray[800],\n cardBorder: colors.gray[800],\n cardDivider: colors.gray[700],\n\n chipBorder: colors.gray[700],\n },\n ...theme,\n};\n\nexport default poly;\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\n/**\n * Memo class used for decycle json objects. Uses WeakSet if available otherwise array.\n */\nvar Memo =\n/** @class */\nfunction () {\n function Memo() {\n this._hasWeakSet = typeof WeakSet === 'function';\n this._inner = this._hasWeakSet ? new WeakSet() : [];\n }\n /**\n * Sets obj to remember.\n * @param obj Object to remember\n */\n\n\n Memo.prototype.memoize = function (obj) {\n if (this._hasWeakSet) {\n if (this._inner.has(obj)) {\n return true;\n }\n\n this._inner.add(obj);\n\n return false;\n } // eslint-disable-next-line @typescript-eslint/prefer-for-of\n\n\n for (var i = 0; i < this._inner.length; i++) {\n var value = this._inner[i];\n\n if (value === obj) {\n return true;\n }\n }\n\n this._inner.push(obj);\n\n return false;\n };\n /**\n * Removes object from internal storage.\n * @param obj Object to forget\n */\n\n\n Memo.prototype.unmemoize = function (obj) {\n if (this._hasWeakSet) {\n this._inner[\"delete\"](obj);\n } else {\n for (var i = 0; i < this._inner.length; i++) {\n if (this._inner[i] === obj) {\n this._inner.splice(i, 1);\n\n break;\n }\n }\n }\n };\n\n return Memo;\n}();\n\nexport { Memo };","import { addInstrumentationHandler, logger } from '@sentry/utils';\nimport { SpanStatus } from './spanstatus';\nimport { getActiveTransaction } from './utils';\n/**\n * Configures global error listeners\n */\n\nexport function registerErrorInstrumentation() {\n addInstrumentationHandler({\n callback: errorCallback,\n type: 'error'\n });\n addInstrumentationHandler({\n callback: errorCallback,\n type: 'unhandledrejection'\n });\n}\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\n\nfunction errorCallback() {\n var activeTransaction = getActiveTransaction();\n\n if (activeTransaction) {\n logger.log(\"[Tracing] Transaction: \" + SpanStatus.InternalError + \" -> Global error occured\");\n activeTransaction.setStatus(SpanStatus.InternalError);\n }\n}","import React from \"react\";\n\nexport function useCookieValue(cookieKey): string | undefined {\n const [cookieValue, setCookieValue] = React.useState();\n\n React.useEffect(() => {\n const cookies = document.cookie.split(\"; \");\n const cookie = cookies.find((cookie) => cookie.startsWith(`${cookieKey}=`));\n if (!cookie) return;\n setCookieValue(cookie.split(\"=\")[1]);\n });\n\n return cookieValue;\n}\n","import React from \"react\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport { useGlobalChannelContext } from \"@ats/src/context/GlobalChannelContext\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nfunction MaintenanceCompleteModal(props) {\n const { disableMaintenanceComplete } = useGlobalChannelContext();\n\n const buttons = (\n \n window.location.reload()}\n >\n Refresh now\n \n \n \n );\n\n return (\n { }}\n hasUnsavedChanges={false}\n >\n \n

    \n We have just completed a major app update and a refresh is required. You will not be able to save any changes you have made until you refresh the page.\n

    \n

    \n If you have any unsaved content, we suggest dismissing this modal, copying your content, and then manually refreshing the app.\n

    \n
    \n\n {buttons}\n \n );\n}\n\nexport default MaintenanceCompleteModal;\n\n/* Styled Components\n======================================================= */\nconst Styled: any = {};\n\nStyled.Instructions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: MaintenanceCompleteModal_Instructions;\n ${[t.mb(5)]}\n p {\n ${[t.mb(2)]}\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: MaintenanceCompleteModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActionCable = {});\n})(this, function (exports) {\n \"use strict\";\n\n var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n };\n var logger = {\n log: function log() {\n if (this.enabled) {\n var _adapters$logger;\n\n for (var _len = arguments.length, messages = Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n\n messages.push(Date.now());\n\n (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [\"[ActionCable]\"].concat(messages));\n }\n }\n };\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var now = function now() {\n return new Date().getTime();\n };\n\n var secondsSince = function secondsSince(time) {\n return (now() - time) / 1e3;\n };\n\n var clamp = function clamp(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n\n var ConnectionMonitor = function () {\n function ConnectionMonitor(connection) {\n classCallCheck(this, ConnectionMonitor);\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n\n ConnectionMonitor.prototype.start = function start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor started. pollInterval = \" + this.getPollInterval() + \" ms\");\n }\n };\n\n ConnectionMonitor.prototype.stop = function stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n };\n\n ConnectionMonitor.prototype.isRunning = function isRunning() {\n return this.startedAt && !this.stoppedAt;\n };\n\n ConnectionMonitor.prototype.recordPing = function recordPing() {\n this.pingedAt = now();\n };\n\n ConnectionMonitor.prototype.recordConnect = function recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n };\n\n ConnectionMonitor.prototype.recordDisconnect = function recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n };\n\n ConnectionMonitor.prototype.startPolling = function startPolling() {\n this.stopPolling();\n this.poll();\n };\n\n ConnectionMonitor.prototype.stopPolling = function stopPolling() {\n clearTimeout(this.pollTimeout);\n };\n\n ConnectionMonitor.prototype.poll = function poll() {\n var _this = this;\n\n this.pollTimeout = setTimeout(function () {\n _this.reconnectIfStale();\n\n _this.poll();\n }, this.getPollInterval());\n };\n\n ConnectionMonitor.prototype.getPollInterval = function getPollInterval() {\n var _constructor$pollInte = this.constructor.pollInterval,\n min = _constructor$pollInte.min,\n max = _constructor$pollInte.max,\n multiplier = _constructor$pollInte.multiplier;\n var interval = multiplier * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1e3);\n };\n\n ConnectionMonitor.prototype.reconnectIfStale = function reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + this.getPollInterval() + \" ms, time disconnected = \" + secondsSince(this.disconnectedAt) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n\n if (this.disconnectedRecently()) {\n logger.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n };\n\n ConnectionMonitor.prototype.connectionIsStale = function connectionIsStale() {\n return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.disconnectedRecently = function disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.visibilityDidChange = function visibilityDidChange() {\n var _this2 = this;\n\n if (document.visibilityState === \"visible\") {\n setTimeout(function () {\n if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visbilityState = \" + document.visibilityState);\n\n _this2.connection.reopen();\n }\n }, 200);\n }\n };\n\n return ConnectionMonitor;\n }();\n\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30,\n multiplier: 5\n };\n ConnectionMonitor.staleThreshold = 6;\n var INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [\"actioncable-v1-json\", \"actioncable-unsupported\"]\n };\n var message_types = INTERNAL.message_types,\n protocols = INTERNAL.protocols;\n var supportedProtocols = protocols.slice(0, protocols.length - 1);\n var indexOf = [].indexOf;\n\n var Connection = function () {\n function Connection(consumer) {\n classCallCheck(this, Connection);\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n\n Connection.prototype.send = function send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n\n Connection.prototype.open = function open() {\n if (this.isActive()) {\n logger.log(\"Attempted to open WebSocket, but existing socket is \" + this.getState());\n return false;\n } else {\n logger.log(\"Opening WebSocket, current state is \" + this.getState() + \", subprotocols: \" + protocols);\n\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n\n Connection.prototype.close = function close() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n },\n allowReconnect = _ref.allowReconnect;\n\n if (!allowReconnect) {\n this.monitor.stop();\n }\n\n if (this.isActive()) {\n return this.webSocket.close();\n }\n };\n\n Connection.prototype.reopen = function reopen() {\n logger.log(\"Reopening WebSocket, current state is \" + this.getState());\n\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n\n Connection.prototype.getProtocol = function getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n };\n\n Connection.prototype.isOpen = function isOpen() {\n return this.isState(\"open\");\n };\n\n Connection.prototype.isActive = function isActive() {\n return this.isState(\"open\", \"connecting\");\n };\n\n Connection.prototype.isProtocolSupported = function isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n };\n\n Connection.prototype.isState = function isState() {\n for (var _len = arguments.length, states = Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return indexOf.call(states, this.getState()) >= 0;\n };\n\n Connection.prototype.getState = function getState() {\n if (this.webSocket) {\n for (var state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n\n return null;\n };\n\n Connection.prototype.installEventHandlers = function installEventHandlers() {\n for (var eventName in this.events) {\n var handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n\n Connection.prototype.uninstallEventHandlers = function uninstallEventHandlers() {\n for (var eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function () {};\n }\n };\n\n return Connection;\n }();\n\n Connection.reopenDelay = 500;\n Connection.prototype.events = {\n message: function message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n\n var _JSON$parse = JSON.parse(event.data),\n identifier = _JSON$parse.identifier,\n message = _JSON$parse.message,\n reason = _JSON$parse.reason,\n reconnect = _JSON$parse.reconnect,\n type = _JSON$parse.type;\n\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(\"Disconnecting. Reason: \" + reason);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function open() {\n logger.log(\"WebSocket onopen event, using '\" + this.getProtocol() + \"' subprotocol\");\n this.disconnected = false;\n\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function close(event) {\n logger.log(\"WebSocket onclose event\");\n\n if (this.disconnected) {\n return;\n }\n\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function error() {\n logger.log(\"WebSocket onerror event\");\n }\n };\n\n var extend = function extend(object, properties) {\n if (properties != null) {\n for (var key in properties) {\n var value = properties[key];\n object[key] = value;\n }\n }\n\n return object;\n };\n\n var Subscription = function () {\n function Subscription(consumer) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var mixin = arguments[2];\n classCallCheck(this, Subscription);\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n\n Subscription.prototype.perform = function perform(action) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n data.action = action;\n return this.send(data);\n };\n\n Subscription.prototype.send = function send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n\n Subscription.prototype.unsubscribe = function unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n };\n\n return Subscription;\n }();\n\n var Subscriptions = function () {\n function Subscriptions(consumer) {\n classCallCheck(this, Subscriptions);\n this.consumer = consumer;\n this.subscriptions = [];\n }\n\n Subscriptions.prototype.create = function create(channelName, mixin) {\n var channel = channelName;\n var params = (typeof channel === \"undefined\" ? \"undefined\" : _typeof(channel)) === \"object\" ? channel : {\n channel: channel\n };\n var subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n\n Subscriptions.prototype.add = function add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.sendCommand(subscription, \"subscribe\");\n return subscription;\n };\n\n Subscriptions.prototype.remove = function remove(subscription) {\n this.forget(subscription);\n\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n\n return subscription;\n };\n\n Subscriptions.prototype.reject = function reject(identifier) {\n var _this = this;\n\n return this.findAll(identifier).map(function (subscription) {\n _this.forget(subscription);\n\n _this.notify(subscription, \"rejected\");\n\n return subscription;\n });\n };\n\n Subscriptions.prototype.forget = function forget(subscription) {\n this.subscriptions = this.subscriptions.filter(function (s) {\n return s !== subscription;\n });\n return subscription;\n };\n\n Subscriptions.prototype.findAll = function findAll(identifier) {\n return this.subscriptions.filter(function (s) {\n return s.identifier === identifier;\n });\n };\n\n Subscriptions.prototype.reload = function reload() {\n var _this2 = this;\n\n return this.subscriptions.map(function (subscription) {\n return _this2.sendCommand(subscription, \"subscribe\");\n });\n };\n\n Subscriptions.prototype.notifyAll = function notifyAll(callbackName) {\n var _this3 = this;\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 return this.subscriptions.map(function (subscription) {\n return _this3.notify.apply(_this3, [subscription, callbackName].concat(args));\n });\n };\n\n Subscriptions.prototype.notify = function notify(subscription, callbackName) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n var subscriptions = void 0;\n\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [subscription];\n }\n\n return subscriptions.map(function (subscription) {\n return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n });\n };\n\n Subscriptions.prototype.sendCommand = function sendCommand(subscription, command) {\n var identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n\n return Subscriptions;\n }();\n\n var Consumer = function () {\n function Consumer(url) {\n classCallCheck(this, Consumer);\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n\n Consumer.prototype.send = function send(data) {\n return this.connection.send(data);\n };\n\n Consumer.prototype.connect = function connect() {\n return this.connection.open();\n };\n\n Consumer.prototype.disconnect = function disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n\n Consumer.prototype.ensureActiveConnection = function ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n\n createClass(Consumer, [{\n key: \"url\",\n get: function get$$1() {\n return createWebSocketURL(this._url);\n }\n }]);\n return Consumer;\n }();\n\n function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n\n if (url && !/^wss?:/i.test(url)) {\n var a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n }\n\n function createConsumer() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n return new Consumer(url);\n }\n\n function getConfig(name) {\n var element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n exports.Connection = Connection;\n exports.ConnectionMonitor = ConnectionMonitor;\n exports.Consumer = Consumer;\n exports.INTERNAL = INTERNAL;\n exports.Subscription = Subscription;\n exports.Subscriptions = Subscriptions;\n exports.adapters = adapters;\n exports.createWebSocketURL = createWebSocketURL;\n exports.logger = logger;\n exports.createConsumer = createConsumer;\n exports.getConfig = getConfig;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar stringTag = '[object String]';\n/**\n * Checks if `value` is classified as a `String` primitive or object.\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 a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n\nfunction isString(value) {\n return typeof value == 'string' || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\n}\n\nmodule.exports = isString;","import { getGlobalObject, logger } from '@sentry/utils';\nimport { SpanStatus } from '../spanstatus';\nimport { getActiveTransaction } from '../utils';\nvar global = getGlobalObject();\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\n\nexport function registerBackgroundTabDetection() {\n if (global && global.document) {\n global.document.addEventListener('visibilitychange', function () {\n var activeTransaction = getActiveTransaction();\n\n if (global.document.hidden && activeTransaction) {\n logger.log(\"[Tracing] Transaction: \" + SpanStatus.Cancelled + \" -> since tab moved to the background, op: \" + activeTransaction.op); // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n\n if (!activeTransaction.status) {\n activeTransaction.setStatus(SpanStatus.Cancelled);\n }\n\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.finish();\n }\n });\n } else {\n logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}","import { __assign, __rest } from \"tslib\";\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { msToSec } from '../utils';\nvar global = getGlobalObject();\n/** Class tracking metrics */\n\nvar MetricsInstrumentation =\n/** @class */\nfunction () {\n function MetricsInstrumentation() {\n this._lcp = {};\n this._performanceCursor = 0;\n\n this._forceLCP = function () {\n /* No-op, replaced later if LCP API is available. */\n return;\n };\n\n if (global && global.performance) {\n if (global.performance.mark) {\n global.performance.mark('sentry-tracing-init');\n }\n\n this._trackLCP();\n }\n }\n /** Add performance related spans to a transaction */\n\n\n MetricsInstrumentation.prototype.addPerformanceEntries = function (transaction) {\n if (!global || !global.performance || !global.performance.getEntries) {\n // Gatekeeper if performance API not available\n return;\n }\n\n logger.log('[Tracing] Adding & adjusting spans using Performance API'); // TODO(fixme): depending on the 'op' directly is brittle.\n\n if (transaction.op === 'pageload') {\n // Force any pending records to be dispatched.\n this._forceLCP();\n\n if (this._lcp) {\n // Set the last observed LCP score.\n transaction.setData('_sentry_web_vitals', {\n LCP: this._lcp\n });\n }\n }\n\n var timeOrigin = msToSec(performance.timeOrigin);\n var entryScriptSrc;\n\n if (global.document) {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < document.scripts.length; i++) {\n // We go through all scripts on the page and look for 'data-entry'\n // We remember the name and measure the time between this script finished loading and\n // our mark 'sentry-tracing-init'\n if (document.scripts[i].dataset.entry === 'true') {\n entryScriptSrc = document.scripts[i].src;\n break;\n }\n }\n }\n\n var entryScriptStartTimestamp;\n var tracingInitMarkStartTime;\n global.performance.getEntries().slice(this._performanceCursor).forEach(function (entry) {\n var startTime = msToSec(entry.startTime);\n var duration = msToSec(entry.duration);\n\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation':\n addNavigationSpans(transaction, entry, timeOrigin);\n break;\n\n case 'mark':\n case 'paint':\n case 'measure':\n {\n var startTimestamp = addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n\n if (tracingInitMarkStartTime === undefined && entry.name === 'sentry-tracing-init') {\n tracingInitMarkStartTime = startTimestamp;\n }\n\n break;\n }\n\n case 'resource':\n {\n var resourceName = entry.name.replace(window.location.origin, '');\n var endTimestamp = addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin); // We remember the entry script end time to calculate the difference to the first init mark\n\n if (entryScriptStartTimestamp === undefined && (entryScriptSrc || '').indexOf(resourceName) > -1) {\n entryScriptStartTimestamp = endTimestamp;\n }\n\n break;\n }\n\n default: // Ignore other entry types.\n\n }\n });\n\n if (entryScriptStartTimestamp !== undefined && tracingInitMarkStartTime !== undefined) {\n _startChild(transaction, {\n description: 'evaluation',\n endTimestamp: tracingInitMarkStartTime,\n op: 'script',\n startTimestamp: entryScriptStartTimestamp\n });\n }\n\n this._performanceCursor = Math.max(performance.getEntries().length - 1, 0);\n };\n /** Starts tracking the Largest Contentful Paint on the current page. */\n\n\n MetricsInstrumentation.prototype._trackLCP = function () {\n var _this = this; // Based on reference implementation from https://web.dev/lcp/#measure-lcp-in-javascript.\n // Use a try/catch instead of feature detecting `largest-contentful-paint`\n // support, since some browsers throw when using the new `type` option.\n // https://bugs.webkit.org/show_bug.cgi?id=209216\n\n\n try {\n // Keep track of whether (and when) the page was first hidden, see:\n // https://github.com/w3c/page-visibility/issues/29\n // NOTE: ideally this check would be performed in the document \n // to avoid cases where the visibility state changes before this code runs.\n var firstHiddenTime_1 = document.visibilityState === 'hidden' ? 0 : Infinity;\n document.addEventListener('visibilitychange', function (event) {\n firstHiddenTime_1 = Math.min(firstHiddenTime_1, event.timeStamp);\n }, {\n once: true\n });\n\n var updateLCP_1 = function updateLCP_1(entry) {\n // Only include an LCP entry if the page wasn't hidden prior to\n // the entry being dispatched. This typically happens when a page is\n // loaded in a background tab.\n if (entry.startTime < firstHiddenTime_1) {\n // NOTE: the `startTime` value is a getter that returns the entry's\n // `renderTime` value, if available, or its `loadTime` value otherwise.\n // The `renderTime` value may not be available if the element is an image\n // that's loaded cross-origin without the `Timing-Allow-Origin` header.\n _this._lcp = __assign(__assign(__assign({}, entry.id && {\n elementId: entry.id\n }), entry.size && {\n elementSize: entry.size\n }), {\n value: entry.startTime\n });\n }\n }; // Create a PerformanceObserver that calls `updateLCP` for each entry.\n\n\n var po_1 = new PerformanceObserver(function (entryList) {\n entryList.getEntries().forEach(updateLCP_1);\n }); // Observe entries of type `largest-contentful-paint`, including buffered entries,\n // i.e. entries that occurred before calling `observe()` below.\n\n po_1.observe({\n buffered: true,\n // @ts-ignore type does not exist on obj\n type: 'largest-contentful-paint'\n });\n\n this._forceLCP = function () {\n if (po_1.takeRecords) {\n po_1.takeRecords().forEach(updateLCP_1);\n }\n };\n } catch (e) {// Do nothing if the browser doesn't support this API.\n }\n };\n\n return MetricsInstrumentation;\n}();\n\nexport { MetricsInstrumentation };\n/** Instrument navigation entries */\n\nfunction addNavigationSpans(transaction, entry, timeOrigin) {\n addPerformanceNavigationTiming(transaction, entry, 'unloadEvent', timeOrigin);\n addPerformanceNavigationTiming(transaction, entry, 'domContentLoadedEvent', timeOrigin);\n addPerformanceNavigationTiming(transaction, entry, 'loadEvent', timeOrigin);\n addPerformanceNavigationTiming(transaction, entry, 'connect', timeOrigin);\n addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin);\n addRequest(transaction, entry, timeOrigin);\n}\n/** Create measure related spans */\n\n\nfunction addMeasureSpans(transaction, entry, startTime, duration, timeOrigin) {\n var measureStartTimestamp = timeOrigin + startTime;\n var measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType,\n startTimestamp: measureStartTimestamp\n });\n\n return measureStartTimestamp;\n}\n/** Create resource related spans */\n\n\nexport function addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin) {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return undefined;\n }\n\n var data = {};\n\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n\n var startTimestamp = timeOrigin + startTime;\n var endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceName,\n endTimestamp: endTimestamp,\n op: entry.initiatorType ? \"resource.\" + entry.initiatorType : 'resource',\n startTimestamp: startTimestamp,\n data: data\n });\n\n return endTimestamp;\n}\n/** Create performance navigation related spans */\n\nfunction addPerformanceNavigationTiming(transaction, entry, event, timeOrigin) {\n var end = entry[event + \"End\"];\n var start = entry[event + \"Start\"];\n\n if (!start || !end) {\n return;\n }\n\n _startChild(transaction, {\n description: event,\n endTimestamp: timeOrigin + msToSec(end),\n op: 'browser',\n startTimestamp: timeOrigin + msToSec(start)\n });\n}\n/** Create request and response related spans */\n\n\nfunction addRequest(transaction, entry, timeOrigin) {\n _startChild(transaction, {\n description: 'request',\n endTimestamp: timeOrigin + msToSec(entry.responseEnd),\n op: 'browser',\n startTimestamp: timeOrigin + msToSec(entry.requestStart)\n });\n\n _startChild(transaction, {\n description: 'response',\n endTimestamp: timeOrigin + msToSec(entry.responseEnd),\n op: 'browser',\n startTimestamp: timeOrigin + msToSec(entry.responseStart)\n });\n}\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\n\n\nexport function _startChild(transaction, _a) {\n var startTimestamp = _a.startTimestamp,\n ctx = __rest(_a, [\"startTimestamp\"]);\n\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n transaction.startTimestamp = startTimestamp;\n }\n\n return transaction.startChild(__assign({\n startTimestamp: startTimestamp\n }, ctx));\n}","import { __assign, __read, __spread } from \"tslib\";\nimport { addInstrumentationHandler, isInstanceOf, isMatchingPattern } from '@sentry/utils';\nimport { getActiveTransaction } from '../utils';\nexport var DEFAULT_TRACING_ORIGINS = ['localhost', /^\\//];\nexport var defaultRequestInstrumentionOptions = {\n traceFetch: true,\n traceXHR: true,\n tracingOrigins: DEFAULT_TRACING_ORIGINS\n};\n/** Registers span creators for xhr and fetch requests */\n\nexport function registerRequestInstrumentation(_options) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = __assign(__assign({}, defaultRequestInstrumentionOptions), _options),\n traceFetch = _a.traceFetch,\n traceXHR = _a.traceXHR,\n tracingOrigins = _a.tracingOrigins,\n shouldCreateSpanForRequest = _a.shouldCreateSpanForRequest; // We should cache url -> decision so that we don't have to compute\n // regexp everytime we create a request.\n\n\n var urlMap = {};\n\n var defaultShouldCreateSpan = function defaultShouldCreateSpan(url) {\n if (urlMap[url]) {\n return urlMap[url];\n }\n\n var origins = tracingOrigins;\n urlMap[url] = origins.some(function (origin) {\n return isMatchingPattern(url, origin);\n }) && !isMatchingPattern(url, 'sentry_key');\n return urlMap[url];\n }; // We want that our users don't have to re-implement shouldCreateSpanForRequest themselves\n // That's why we filter out already unwanted Spans from tracingOrigins\n\n\n var shouldCreateSpan = defaultShouldCreateSpan;\n\n if (typeof shouldCreateSpanForRequest === 'function') {\n shouldCreateSpan = function shouldCreateSpan(url) {\n return defaultShouldCreateSpan(url) && shouldCreateSpanForRequest(url);\n };\n }\n\n var spans = {};\n\n if (traceFetch) {\n addInstrumentationHandler({\n callback: function callback(handlerData) {\n _fetchCallback(handlerData, shouldCreateSpan, spans);\n },\n type: 'fetch'\n });\n }\n\n if (traceXHR) {\n addInstrumentationHandler({\n callback: function callback(handlerData) {\n xhrCallback(handlerData, shouldCreateSpan, spans);\n },\n type: 'xhr'\n });\n }\n}\n/**\n * Create and track fetch request spans\n */\n\nexport function _fetchCallback(handlerData, shouldCreateSpan, spans) {\n if (!handlerData.fetchData || !shouldCreateSpan(handlerData.fetchData.url)) {\n return;\n }\n\n if (handlerData.endTimestamp && handlerData.fetchData.__span) {\n var span = spans[handlerData.fetchData.__span];\n\n if (span) {\n var response = handlerData.response;\n\n if (response) {\n span.setHttpStatus(response.status);\n }\n\n span.finish(); // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\n delete spans[handlerData.fetchData.__span];\n }\n\n return;\n }\n\n var activeTransaction = getActiveTransaction();\n\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: __assign(__assign({}, handlerData.fetchData), {\n type: 'fetch'\n }),\n description: handlerData.fetchData.method + \" \" + handlerData.fetchData.url,\n op: 'http'\n });\n handlerData.fetchData.__span = span.spanId;\n spans[span.spanId] = span;\n var request = handlerData.args[0] = handlerData.args[0]; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n var options = handlerData.args[1] = handlerData.args[1] || {};\n var headers = options.headers;\n\n if (isInstanceOf(request, Request)) {\n headers = request.headers;\n }\n\n if (headers) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (typeof headers.append === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n headers.append('sentry-trace', span.toTraceparent());\n } else if (Array.isArray(headers)) {\n headers = __spread(headers, [['sentry-trace', span.toTraceparent()]]);\n } else {\n headers = __assign(__assign({}, headers), {\n 'sentry-trace': span.toTraceparent()\n });\n }\n } else {\n headers = {\n 'sentry-trace': span.toTraceparent()\n };\n }\n\n options.headers = headers;\n }\n}\n/**\n * Create and track xhr request spans\n */\n\nfunction xhrCallback(handlerData, shouldCreateSpan, spans) {\n if (!handlerData || !handlerData.xhr || !handlerData.xhr.__sentry_xhr__) {\n return;\n }\n\n var xhr = handlerData.xhr.__sentry_xhr__;\n\n if (!shouldCreateSpan(xhr.url)) {\n return;\n } // We only capture complete, non-sentry requests\n\n\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n if (handlerData.endTimestamp && handlerData.xhr.__sentry_xhr_span_id__) {\n var span = spans[handlerData.xhr.__sentry_xhr_span_id__];\n\n if (span) {\n span.setData('url', xhr.url);\n span.setData('method', xhr.method);\n span.setHttpStatus(xhr.status_code);\n span.finish(); // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\n delete spans[handlerData.xhr.__sentry_xhr_span_id__];\n }\n\n return;\n }\n\n var activeTransaction = getActiveTransaction();\n\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: __assign(__assign({}, xhr.data), {\n type: 'xhr'\n }),\n description: xhr.method + \" \" + xhr.url,\n op: 'http'\n });\n handlerData.xhr.__sentry_xhr_span_id__ = span.spanId;\n spans[handlerData.xhr.__sentry_xhr_span_id__] = span;\n\n if (handlerData.xhr.setRequestHeader) {\n try {\n handlerData.xhr.setRequestHeader('sentry-trace', span.toTraceparent());\n } catch (_) {// Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n }\n }\n}","import { addInstrumentationHandler, getGlobalObject, logger } from '@sentry/utils';\nvar global = getGlobalObject();\n/**\n * Default function implementing pageload and navigation transactions\n */\n\nexport function defaultRoutingInstrumentation(startTransaction, startTransactionOnPageLoad, startTransactionOnLocationChange) {\n if (startTransactionOnPageLoad === void 0) {\n startTransactionOnPageLoad = true;\n }\n\n if (startTransactionOnLocationChange === void 0) {\n startTransactionOnLocationChange = true;\n }\n\n if (!global || !global.location) {\n logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n\n var startingUrl = global.location.href;\n var activeTransaction;\n\n if (startTransactionOnPageLoad) {\n activeTransaction = startTransaction({\n name: global.location.pathname,\n op: 'pageload'\n });\n }\n\n if (startTransactionOnLocationChange) {\n addInstrumentationHandler({\n callback: function callback(_a) {\n var to = _a.to,\n from = _a.from;\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n\n if (activeTransaction) {\n logger.log(\"[Tracing] Finishing current transaction with op: \" + activeTransaction.op); // If there's an open transaction on the scope, we need to finish it before creating an new one.\n\n activeTransaction.finish();\n }\n\n activeTransaction = startTransaction({\n name: global.location.pathname,\n op: 'navigation'\n });\n }\n },\n type: 'history'\n });\n }\n}\n/** default implementation of Browser Tracing before navigate */\n\nexport function defaultBeforeNavigate(context) {\n return context;\n}","import { __assign } from \"tslib\";\nimport { logger } from '@sentry/utils';\nimport { startIdleTransaction } from '../hubextensions';\nimport { DEFAULT_IDLE_TIMEOUT } from '../idletransaction';\nimport { SpanStatus } from '../spanstatus';\nimport { extractTraceparentData, secToMs } from '../utils';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { MetricsInstrumentation } from './metrics';\nimport { defaultRequestInstrumentionOptions, registerRequestInstrumentation } from './request';\nimport { defaultBeforeNavigate, defaultRoutingInstrumentation } from './router';\nexport var DEFAULT_MAX_TRANSACTION_DURATION_SECONDS = 600;\n\nvar DEFAULT_BROWSER_TRACING_OPTIONS = __assign({\n beforeNavigate: defaultBeforeNavigate,\n idleTimeout: DEFAULT_IDLE_TIMEOUT,\n markBackgroundTransactions: true,\n maxTransactionDuration: DEFAULT_MAX_TRANSACTION_DURATION_SECONDS,\n routingInstrumentation: defaultRoutingInstrumentation,\n startTransactionOnLocationChange: true,\n startTransactionOnPageLoad: true\n}, defaultRequestInstrumentionOptions);\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n */\n\n\nvar BrowserTracing =\n/** @class */\nfunction () {\n function BrowserTracing(_options) {\n /**\n * @inheritDoc\n */\n this.name = BrowserTracing.id;\n this._metrics = new MetricsInstrumentation();\n this._emitOptionsWarning = false;\n var tracingOrigins = defaultRequestInstrumentionOptions.tracingOrigins; // NOTE: Logger doesn't work in constructors, as it's initialized after integrations instances\n\n if (_options && _options.tracingOrigins && Array.isArray(_options.tracingOrigins) && _options.tracingOrigins.length !== 0) {\n tracingOrigins = _options.tracingOrigins;\n } else {\n this._emitOptionsWarning = true;\n }\n\n this.options = __assign(__assign(__assign({}, DEFAULT_BROWSER_TRACING_OPTIONS), _options), {\n tracingOrigins: tracingOrigins\n });\n }\n /**\n * @inheritDoc\n */\n\n\n BrowserTracing.prototype.setupOnce = function (_, getCurrentHub) {\n var _this = this;\n\n this._getCurrentHub = getCurrentHub;\n\n if (this._emitOptionsWarning) {\n logger.warn('[Tracing] You need to define `tracingOrigins` in the options. Set an array of urls or patterns to trace.');\n logger.warn(\"[Tracing] We added a reasonable default for you: \" + defaultRequestInstrumentionOptions.tracingOrigins);\n } // eslint-disable-next-line @typescript-eslint/unbound-method\n\n\n var _a = this.options,\n routingInstrumentation = _a.routingInstrumentation,\n startTransactionOnLocationChange = _a.startTransactionOnLocationChange,\n startTransactionOnPageLoad = _a.startTransactionOnPageLoad,\n markBackgroundTransactions = _a.markBackgroundTransactions,\n traceFetch = _a.traceFetch,\n traceXHR = _a.traceXHR,\n tracingOrigins = _a.tracingOrigins,\n shouldCreateSpanForRequest = _a.shouldCreateSpanForRequest;\n routingInstrumentation(function (context) {\n return _this._createRouteTransaction(context);\n }, startTransactionOnPageLoad, startTransactionOnLocationChange);\n\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n\n registerRequestInstrumentation({\n traceFetch: traceFetch,\n traceXHR: traceXHR,\n tracingOrigins: tracingOrigins,\n shouldCreateSpanForRequest: shouldCreateSpanForRequest\n });\n };\n /** Create routing idle transaction. */\n\n\n BrowserTracing.prototype._createRouteTransaction = function (context) {\n var _this = this;\n\n if (!this._getCurrentHub) {\n logger.warn(\"[Tracing] Did not create \" + context.op + \" transaction because _getCurrentHub is invalid.\");\n return undefined;\n } // eslint-disable-next-line @typescript-eslint/unbound-method\n\n\n var _a = this.options,\n beforeNavigate = _a.beforeNavigate,\n idleTimeout = _a.idleTimeout,\n maxTransactionDuration = _a.maxTransactionDuration; // if beforeNavigate returns undefined, we should not start a transaction.\n\n var ctx = beforeNavigate(__assign(__assign(__assign({}, context), getHeaderContext()), {\n trimEnd: true\n }));\n\n if (ctx === undefined) {\n logger.log(\"[Tracing] Did not create \" + context.op + \" idleTransaction due to beforeNavigate\");\n return undefined;\n }\n\n var hub = this._getCurrentHub();\n\n logger.log(\"[Tracing] starting \" + ctx.op + \" idleTransaction on scope\");\n var idleTransaction = startIdleTransaction(hub, ctx, idleTimeout, true);\n idleTransaction.registerBeforeFinishCallback(function (transaction, endTimestamp) {\n _this._metrics.addPerformanceEntries(transaction);\n\n adjustTransactionDuration(secToMs(maxTransactionDuration), transaction, endTimestamp);\n });\n return idleTransaction;\n };\n /**\n * @inheritDoc\n */\n\n\n BrowserTracing.id = 'BrowserTracing';\n return BrowserTracing;\n}();\n\nexport { BrowserTracing };\n/**\n * Gets transaction context from a sentry-trace meta.\n *\n * @returns Transaction context data from the header or undefined if there's no header or the header is malformed\n */\n\nfunction getHeaderContext() {\n var header = getMetaContent('sentry-trace');\n\n if (header) {\n return extractTraceparentData(header);\n }\n\n return undefined;\n}\n/** Returns the value of a meta tag */\n\n\nexport function getMetaContent(metaName) {\n var el = document.querySelector(\"meta[name=\" + metaName + \"]\");\n return el ? el.getAttribute('content') : null;\n}\n/** Adjusts transaction value based on max transaction duration */\n\nfunction adjustTransactionDuration(maxDuration, transaction, endTimestamp) {\n var diff = endTimestamp - transaction.startTimestamp;\n var isOutdatedTransaction = endTimestamp && (diff > maxDuration || diff < 0);\n\n if (isOutdatedTransaction) {\n transaction.setStatus(SpanStatus.DeadlineExceeded);\n transaction.setTag('maxTransactionDurationExceeded', 'true');\n }\n}","import { logger } from '@sentry/utils';\n/**\n * Express integration\n *\n * Provides an request and error handler for Express framework\n * as well as tracing capabilities\n */\n\nvar Express =\n/** @class */\nfunction () {\n /**\n * @inheritDoc\n */\n function Express(options) {\n if (options === void 0) {\n options = {};\n }\n /**\n * @inheritDoc\n */\n\n\n this.name = Express.id;\n this._app = options.app;\n }\n /**\n * @inheritDoc\n */\n\n\n Express.prototype.setupOnce = function () {\n if (!this._app) {\n logger.error('ExpressIntegration is missing an Express instance');\n return;\n }\n\n instrumentMiddlewares(this._app);\n };\n /**\n * @inheritDoc\n */\n\n\n Express.id = 'Express';\n return Express;\n}();\n\nexport { Express };\n/**\n * Wraps original middleware function in a tracing call, which stores the info about the call as a span,\n * and finishes it once the middleware is done invoking.\n *\n * Express middlewares have 3 various forms, thus we have to take care of all of them:\n * // sync\n * app.use(function (req, res) { ... })\n * // async\n * app.use(function (req, res, next) { ... })\n * // error handler\n * app.use(function (err, req, res, next) { ... })\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\nfunction wrap(fn) {\n var arity = fn.length;\n\n switch (arity) {\n case 2:\n {\n return function (_req, res) {\n var transaction = res.__sentry_transaction;\n\n if (transaction) {\n var span_1 = transaction.startChild({\n description: fn.name,\n op: 'middleware'\n });\n res.once('finish', function () {\n span_1.finish();\n });\n } // eslint-disable-next-line prefer-rest-params\n\n\n return fn.apply(this, arguments);\n };\n }\n\n case 3:\n {\n return function (req, res, next) {\n var transaction = res.__sentry_transaction;\n var span = transaction && transaction.startChild({\n description: fn.name,\n op: 'middleware'\n });\n fn.call(this, req, res, function () {\n if (span) {\n span.finish();\n } // eslint-disable-next-line prefer-rest-params\n\n\n return next.apply(this, arguments);\n });\n };\n }\n\n case 4:\n {\n return function (err, req, res, next) {\n var transaction = res.__sentry_transaction;\n var span = transaction && transaction.startChild({\n description: fn.name,\n op: 'middleware'\n });\n fn.call(this, err, req, res, function () {\n if (span) {\n span.finish();\n } // eslint-disable-next-line prefer-rest-params\n\n\n return next.apply(this, arguments);\n });\n };\n }\n\n default:\n {\n throw new Error(\"Express middleware takes 2-4 arguments. Got: \" + arity);\n }\n }\n}\n/**\n * Takes all the function arguments passed to the original `app.use` call\n * and wraps every function, as well as array of functions with a call to our `wrap` method.\n * We have to take care of the arrays as well as iterate over all of the arguments,\n * as `app.use` can accept middlewares in few various forms.\n *\n * app.use([], )\n * app.use([], , ...)\n * app.use([], ...[])\n */\n\n\nfunction wrapUseArgs(args) {\n return Array.from(args).map(function (arg) {\n if (typeof arg === 'function') {\n return wrap(arg);\n }\n\n if (Array.isArray(arg)) {\n return arg.map(function (a) {\n if (typeof a === 'function') {\n return wrap(a);\n }\n\n return a;\n });\n }\n\n return arg;\n });\n}\n/**\n * Patches original app.use to utilize our tracing functionality\n */\n\n\nfunction instrumentMiddlewares(app) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var originalAppUse = app.use;\n\n app.use = function () {\n // eslint-disable-next-line prefer-rest-params\n return originalAppUse.apply(this, wrapUseArgs(arguments));\n };\n\n return app;\n}","import { __assign } from \"tslib\";\nimport { BrowserTracing } from './browser';\nimport { addExtensionMethods } from './hubextensions';\nimport * as ApmIntegrations from './integrations';\n\nvar Integrations = __assign(__assign({}, ApmIntegrations), {\n BrowserTracing: BrowserTracing\n});\n\nexport { Integrations };\nexport { Span } from './span';\nexport { Transaction } from './transaction';\nexport { SpanStatus } from './spanstatus'; // We are patching the global object with our hub extension methods\n\naddExtensionMethods();\nexport { addExtensionMethods };\nexport { extractTraceparentData, getActiveTransaction, hasTracingEnabled, stripUrlQueryAndFragment } from './utils';","import { useMutation, useQueryClient } from \"react-query\";\nimport { apiPost } from \"@shared/queryHooks/api\";\n\nconst createSupportMessage = async ({\n subject,\n body,\n kind,\n replyToEmail,\n}: {\n subject: string;\n body: string;\n kind?: string;\n replyToEmail?: string;\n}) => {\n return await apiPost({\n path: `/support_messages`,\n variables: { subject, body, kind, replyToEmail }\n });\n};\n\n\n/* HOOKS\n--===================================================-- */\nexport function useCreateSupportMessage() {\n const queryClient = useQueryClient();\n return useMutation(createSupportMessage, {\n onSuccess: (\n data,\n mutationVariables: {\n subject: string;\n body: string;\n kind?: string;\n replyToEmail?: string;\n },\n ) => {\n window.logger(\"[useSupportMessage] useCreateSupportMessage\", {\n data,\n mutationVariables,\n queryClient,\n });\n queryClient.invalidateQueries(\"supportMessages\");\n },\n // throwOnError: true,\n });\n}\n\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport FormTextArea from \"@ats/src/components/forms/FormTextarea\";\n\nimport { validateSupportMessage } from \"@shared/lib/validateWithYup\";\n\nimport { useCreateSupportMessage } from \"@shared/queryHooks/useSupportMessage\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\n\nfunction SupportMessageModal(props) {\n const { onCancel } = props;\n\n const addToast = useToastContext();\n\n\n const [errors, setErrors] = React.useState(null);\n const [isDirty, setIsDirty] = React.useState(false);\n const [supportMessage, setSupportMessage] = React.useState({\n // \"replyToEmail\": \"\",\n \"subject\": \"\",\n \"body\": \"\",\n })\n\n const { subject, body } = supportMessage\n\n const {\n mutate: createSupportMessage,\n isLoading: isLoadingCreate,\n } = useCreateSupportMessage();\n\n window.logger(\"%c[SupportMessageModal] render\", \"color: #1976D2\", {\n props,\n errors,\n });\n\n const handleFormInputChange = (name, value) => {\n setErrors({});\n setIsDirty(true);\n setSupportMessage({...supportMessage, [name]: value})\n }\n\n const handleSubmit = async (e) => {\n e.preventDefault()\n const [isValid, validationErrors] = await validateSupportMessage({\n subject: subject,\n body: body,\n });\n\n if (isValid) {\n handleSendSupportMessage();\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleSendSupportMessage = async () => {\n setIsDirty(false);\n createSupportMessage(\n {\n // replyToEmail: replyToEmail,\n subject: subject,\n body: body,\n },\n {\n onSuccess: () => {\n addToast({\n title: \"Message sent\",\n kind: \"success\",\n });\n },\n onSettled: () => {\n // SupportMessage was successfully created\n onCancel(); // this closes the modal\n },\n },\n );\n };\n\nconst submitButton = (\n \n \n Send message\n \n \n \n);\n\nreturn (\n \n \n {\n \"Get help with an issue, give your feedback, or share your ideas.\"\n }\n \n \n {/* */}\n {/* */}\n \n \n \n \n \n \n);\n}\n\n\nexport default SupportMessageModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: SupportMessageModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.TemplateInput = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: SupportMessageModal_TemplateInput;\n > div {\n ${[t.mb(0)]}\n }\n textarea {\n min-height: 12rem;\n }\n `;\n});\n\nStyled.VariableButtons = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: SupportMessageModal_VariableButtons;\n transition: box-shadow 0.2s ease;\n button {\n ${[t.h(6), t.px(2), t.text.xs, t.mr(1), t.mt(1)]}\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: SupportMessageModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React from \"react\";\nimport { useState, useRef } from \"react\";\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport UserAvatar from \"@ats/src/components/shared/UserAvatar\";\nimport useOnClickOutside from \"use-onclickoutside\";\nimport styled from \"@emotion/styled\";\nimport { useSpring, animated } from \"react-spring\";\nimport { useGetMe } from \"@shared/queryHooks/useMe\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport SupportMessageModal from \"@ats/src/components/modals/SupportMessageModal\";\nimport Text from \"@shared/components/Text\";\nimport Box from \"@shared/components/Box\";\nimport breakpoint from \"@shared/styles/breakpoints\";\n\nconst polymerLogo = () => (\n \n \n \n \n \n \n Polymer\n \n \n);\n\nconst orgToggle = (currentOrganization) => (\n \n {currentOrganization.hasLogo ? (\n \n \n \n ) : (\n \n \n {currentOrganization.name.charAt(0)}\n \n \n )}\n {currentOrganization.name}\n \n);\n\nconst userToggle = (currentUser) => (\n \n \n {currentUser.fullName}\n \n);\n\nconst DropdownMenu = ({ label, hpos = \"right\", ...props }) => {\n const [dropdownIsVisible, setDropdownIsVisible] = useState(false);\n const ref = useRef(null);\n\n useOnClickOutside(ref, () => {\n handleClickOutside();\n });\n\n const handleClickOutside = () => {\n if (dropdownIsVisible) {\n setDropdownIsVisible(false);\n }\n };\n\n const toggleDropdownVisibility = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDropdownIsVisible(!dropdownIsVisible);\n };\n\n // closes the dropdown via a click on an intem in the dropdown\n const closeDropdown = (e) => {\n e.stopPropagation();\n handleClickOutside();\n };\n\n const spring = useSpring({\n from: {\n opacity: 0,\n transform: \"scale(0.95)\",\n pointerEvents: \"none\",\n },\n to: {\n opacity: dropdownIsVisible ? 1 : 0,\n transform: dropdownIsVisible ? \"scale(1)\" : \"scale(0.95)\",\n pointerEvents: dropdownIsVisible ? \"all\" : \"none\",\n },\n config: {\n tension: 480,\n clamp: true,\n },\n });\n\n return (\n \n \n {label}\n \n\n \n {props.children}\n \n \n );\n};\n\nexport default function PolymerBar() {\n const { data: currentUser } = useGetMe({});\n const { openModal, removeModal } = useModalContext();\n\n const handleChangelogClick = () => {\n window.open(\"https://polymer.co/changelog\", \"_blank\");\n };\n\n const handleHelpClick = () => {\n window.open(\"https://help.polymer.co\", \"_blank\");\n };\n\n const handleSendSupportMessageClick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n const modal = ;\n\n openModal(modal);\n };\n\n return (\n \n {polymerLogo()}\n {/* */}\n \n \n );\n}\n\n/* Styled Components\n======================================================= */\n\nconst Container = styled(Box)`\n padding: 0 4px;\n min-height: 40px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid ${(props: any) => props.theme.poly.color.border};\n\n ul {\n display: flex;\n align-items: center;\n }\n\n ${breakpoint.sm} {\n min-height: 32px;\n }\n`;\n\nconst Logo = styled(Box)`\n display: flex;\n align-items: center;\n color: ${(props: any) => props.theme.poly.color.primaryText};\n\n svg {\n margin-left: 14px;\n margin-right: 10px;\n height: 21px;\n width: auto;\n }\n`;\n\nconst DropdownContainer = styled(Box)`\n ${breakpoint.sm} {\n position: relative;\n }\n`;\n\nconst Dropdown = styled(animated(Box))(\n (props: any) => `\n top: 39px;\n transform-origin: top;\n background-color: ${props.theme.poly.color.dropdownCanvas};\n border: 1px solid ${props.theme.poly.color.dropdownBorder};\n border-radius: ${props.theme.poly.radii.sm};\n padding: 4px;\n z-index: 21;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n white-space: nowrap;\n overflow: hidden;\n user-select: none;\n ${\n props.hpos === \"right\"\n ? `\n left: 8px;\n transform-origin: top left;\n `\n : `\n right: 8px;\n transform-origin: top right;\n `\n };\n\n ${breakpoint.sm} {\n top: 31px;\n ${\n props.hpos === \"right\"\n ? `\n left: 0;\n `\n : `\n right: 0;\n `\n };\n }\n`,\n);\n\nconst DropdownToggle = styled(Box)`\n padding: 0 12px;\n border-radius: ${(props: any) => props.theme.poly.radii.xs};\n height: 39px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${(props: any) => props.theme.poly.color.secondaryText};\n\n ${breakpoint.sm} {\n height: 31px;\n\n &:hover {\n color: ${(props: any) => props.theme.poly.color.primaryText};\n background-color: ${(props: any) => props.theme.poly.color.subtleHover};\n cursor: pointer;\n }\n }\n`;\n\nconst UserToggle = styled(Box)`\n display: flex;\n align-items: center;\n\n ${Text} {\n display: none;\n }\n\n svg {\n margin-left: 4px;\n margin-right: -2px;\n }\n\n ${breakpoint.sm} {\n ${Text} {\n display: inline;\n margin-left: 8px;\n color: ${(props: any) => props.theme.poly.color.primaryText};\n }\n }\n`;\n\nconst OrgImageAvatar = styled(Box)`\n height: 24px;\n width: 24px;\n border-radius: ${(props: any) => props.theme.poly.radii.sm};\n overflow: hidden;\n flex-shrink: 0;\n transition: opacity 0.2s ease;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n`;\n\nconst OrgAvatar = styled(Box)`\n height: 24px;\n width: 24px;\n border-radius: ${(props: any) => props.theme.poly.radii.sm};\n padding-top: 1px;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #525252;\n text-transform: uppercase;\n flex-shrink: 0;\n transition: opacity 0.2s ease;\n\n ${Text} {\n margin-left: 0;\n color: #ffffff;\n }\n`;\n\nconst DropdownContent = styled(Box)`\n display: flex;\n flex-direction: column;\n\n > span,\n a,\n button,\n a:link,\n a:visited {\n border-radius: ${(props: any) => props.theme.poly.radii.xs};\n padding-left: 12px;\n padding-right: 24px;\n height: 40px;\n display: flex;\n align-items: center;\n background: transparent;\n border: none;\n cursor: pointer;\n color: ${(props: any) => props.theme.poly.color.primaryText};\n font-weight: 400;\n transition: background-color 0.2s ease;\n &:focus {\n color: ${(props: any) => props.theme.poly.color.dropdownTextHover};\n background-color: ${(props: any) => props.theme.poly.color.dropdownHover};\n outline: none;\n box-shadow: none;\n text-decoration: none;\n }\n\n ${breakpoint.sm} {\n height: 28px;\n padding-left: 10px;\n &:hover {\n color: ${(props: any) => props.theme.poly.color.dropdownTextHover};\n background-color: ${(props: any) => props.theme.poly.color.dropdownHover};\n outline: none;\n box-shadow: none;\n text-decoration: none;\n }\n }\n }\n\n svg {\n flex-shrink: 0;\n margin-left: 6px;\n height: 1.125em;\n width: 1.125em;\n color: ${(props: any) => props.theme.poly.color.secondaryText};\n }\n`;\n\nconst Divider = styled(Box)`\n height: 1px;\n margin: 4px -4px;\n background-color: ${(props: any) => props.theme.poly.color.dropdownDivider};\n`;\n","import { css } from \"@emotion/react\";\nimport theme from \"@ats/styles/theme\";\n\nconst scrollbarStyles = (dark: boolean) => css`\n scrollbar-color: ${dark\n ? `${theme.color.gray[500]} ${theme.color.gray[800]}`\n : `${theme.color.gray[400]} ${theme.color.gray[50]}`};\n scrollbar-width: auto;\n\n &::-webkit-scrollbar {\n width: 1rem;\n height: 1rem;\n }\n\n &::-webkit-scrollbar-track {\n background-color: ${dark ? theme.color.gray[800] : theme.color.gray[50]};\n }\n &::-webkit-scrollbar-thumb {\n background-color: ${dark ? theme.color.gray[500] : theme.color.gray[400]};\n border-radius: 8px;\n border: 4px solid ${dark ? theme.color.gray[800] : theme.color.gray[50]};\n }\n &::-webkit-scrollbar-thumb:hover {\n background-color: ${dark ? theme.color.gray[400] : theme.color.gray[500]};\n }\n`;\n\nexport default scrollbarStyles;\n","import React from \"react\";\nimport { Global, css } from \"@emotion/react\";\nimport scrollbarStyles from \"@shared/styles/scrollbar\";\nimport { useColorSchemeContext } from \"@shared/context/ColorSchemeContext\";\n\nconst GlobalScrollbarStyles: React.FC = () => {\n const { isDarkMode } = useColorSchemeContext();\n\n return (\n \n );\n};\n\nexport default GlobalScrollbarStyles;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar stringTag = '[object String]';\n/**\n * Checks if `value` is classified as a `String` primitive or object.\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 a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n\nfunction isString(value) {\n return typeof value == 'string' || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\n}\n\nmodule.exports = isString;","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}","import raf from 'raf';\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n raf(shouldUpdate);\n }\n };\n\n raf(shouldUpdate);\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toArray(arr) {\n return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n\n var handleChange = function handleChange() {\n return null;\n };\n\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\n };\n\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function 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 _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/* eslint no-console: 0 */\n\n\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n/*\n * @description: convert camel case to dash case\n * string => string\n */\n\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\n\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n/*\n * @description: log the value of a varible\n * string => any => any\n */\n\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\n\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\n\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n/*\n * @description: add compatible prefix to style\n * object => object\n */\n\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), generatePrefixStyle(key, res[key]));\n }, style);\n};\nexport var compose = function compose() {\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) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\n\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\n\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n}; // calculate cubic-bezier using Newton's method\n\n\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n default:\n {\n var easing = args[0].split('(');\n\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + 'oneOf \\'linear\\', \\'ease\\', \\'ease-in\\', \\'ease-out\\', ' + '\\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', instead received %s', args);\n }\n }\n }\n }\n\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n\n return [newX, newV];\n };\n\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var easing = args[0];\n\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n\n case 'spring':\n return configSpring();\n\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n\n warn(false, '[configEasing]: first argument should be one of \\'ease\\', \\'ease-in\\', ' + '\\'ease-out\\', \\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', \\'linear\\' and \\'spring\\', instead received %s', args);\n }\n }\n\n if (typeof easing === 'function') {\n return easing;\n }\n\n warn(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n return null;\n};","function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport raf, { cancel as caf } from 'raf';\nimport { getIntersectionKeys, mapObject } from './util';\n\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\n\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\n\n\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n}; // configure update function\n\n\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n }; // stepper timing function like spring\n\n\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = raf(update);\n }\n }; // t => val timing function like cubic-bezier\n\n\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n\n if (t < 1) {\n cafId = raf(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method\n\n return function () {\n raf(update); // return stop animation method\n\n return function () {\n caf(cafId);\n };\n };\n});","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\n\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n\n var _super = _createSuper(Animate);\n\n function Animate(props, context) {\n var _this;\n\n _classCallCheck(this, Animate);\n\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n\n if (!isActive) {\n _this.state = {\n style: {}\n }; // if children is a function and animation is not active, set style to 'to'\n\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n\n return _this;\n }\n\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n\n if (!isActive || !canBegin) {\n return;\n }\n\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate;\n\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, this.props.to) : this.props.to\n };\n\n if (this.state && this.state.style) {\n if (attributeName && this.state.style[attributeName] !== this.props.to || !attributeName && this.state.style !== this.props.to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n return;\n }\n\n if (deepEqual(prevProps.to, this.props.to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? this.props.from : prevProps.to;\n\n if (this.state && this.state.style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n\n if (attributeName && this.state.style[attributeName] !== from || !attributeName && this.state.style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n\n var transition = getTransitionVal(properties, duration, easing);\n\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"]);\n\n var count = Children.count(children);\n var stateStyle = translateStyle(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\n\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n\n return Animate;\n}(PureComponent);\n\nAnimate.displayName = 'Animate';\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nexport default Animate;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction 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 _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\n\nif (Number.isFinite === undefined) {\n Number.isFinite = function (value) {\n return typeof value === 'number' && isFinite(value);\n };\n}\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if (Number.isFinite(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild = /*#__PURE__*/function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n var _super = _createSuper(AnimateGroupChild);\n\n function AnimateGroupChild() {\n var _this;\n\n _classCallCheck(this, AnimateGroupChild);\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 isActive: false\n };\n\n _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n };\n\n _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n };\n\n return _this;\n }\n\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread(_objectSpread({}, style), {}, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return /*#__PURE__*/React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n\n return AnimateGroupChild;\n}(Component);\n\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\n\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return /*#__PURE__*/React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index) // eslint-disable-line\n\n }, child);\n }));\n}\n\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport { translateStyle } from './util';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup, translateStyle };\nexport default Animate;","import { __assign, __values } from \"tslib\";\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { getGlobalObject } from './misc';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nvar global = getGlobalObject();\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nvar handlers = {};\nvar instrumented = {};\n/** Instruments given API */\n\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n\n case 'dom':\n instrumentDOM();\n break;\n\n case 'xhr':\n instrumentXHR();\n break;\n\n case 'fetch':\n instrumentFetch();\n break;\n\n case 'history':\n instrumentHistory();\n break;\n\n case 'error':\n instrumentError();\n break;\n\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n\n default:\n logger.warn('unknown instrumentation type:', type);\n }\n}\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\n\n\nexport function addInstrumentationHandler(handler) {\n if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') {\n return;\n }\n\n handlers[handler.type] = handlers[handler.type] || [];\n handlers[handler.type].push(handler.callback);\n instrument(handler.type);\n}\n/** JSDoc */\n\nfunction triggerHandlers(type, data) {\n var e_1, _a;\n\n if (!type || !handlers[type]) {\n return;\n }\n\n try {\n for (var _b = __values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n\n try {\n handler(data);\n } catch (e) {\n logger.error(\"Error while triggering instrumentation handler.\\nType: \" + type + \"\\nName: \" + getFunctionName(handler) + \"\\nError: \" + e);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n}\n/** JSDoc */\n\n\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleLevel) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n triggerHandlers('console', {\n args: args,\n level: level\n }); // this fails for some browsers. :(\n\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\n\n\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var commonHandlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args)\n },\n startTimestamp: Date.now()\n };\n triggerHandlers('fetch', __assign({}, commonHandlerData)); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n return originalFetch.apply(global, args).then(function (response) {\n triggerHandlers('fetch', __assign(__assign({}, commonHandlerData), {\n endTimestamp: Date.now(),\n response: response\n }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', __assign(__assign({}, commonHandlerData), {\n endTimestamp: Date.now(),\n error: error\n })); // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n\n throw error;\n });\n };\n });\n}\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** Extract `method` from fetch call arguments */\n\n\nfunction getFetchMethod(fetchArgs) {\n if (fetchArgs === void 0) {\n fetchArgs = [];\n }\n\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n\n return 'GET';\n}\n/** Extract `url` from fetch call arguments */\n\n\nfunction getFetchUrl(fetchArgs) {\n if (fetchArgs === void 0) {\n fetchArgs = [];\n }\n\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\n\n\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n } // Poor man implementation of ES6 `Map` by tracking and keeping in sync key and value separately.\n\n\n var requestKeys = [];\n var requestValues = [];\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // eslint-disable-next-line @typescript-eslint/no-this-alias\n\n\n var xhr = this;\n var url = args[1];\n xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1]\n }; // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n if (isString(url) && xhr.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n var onreadystatechangeHandler = function onreadystatechangeHandler() {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n if (xhr.__sentry_xhr__) {\n xhr.__sentry_xhr__.status_code = xhr.status;\n }\n } catch (e) {\n /* do nothing */\n }\n\n try {\n var requestPos = requestKeys.indexOf(xhr);\n\n if (requestPos !== -1) {\n // Make sure to pop both, key and value to keep it in sync.\n requestKeys.splice(requestPos);\n var args_1 = requestValues.splice(requestPos)[0];\n\n if (xhr.__sentry_xhr__ && args_1[0] !== undefined) {\n xhr.__sentry_xhr__.body = args_1[0];\n }\n }\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args: args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr: xhr\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n var readyStateArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n readyStateArgs[_i] = arguments[_i];\n }\n\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n fill(xhrproto, 'send', function (originalSend) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n requestKeys.push(this);\n requestValues.push(args);\n triggerHandlers('xhr', {\n args: args,\n startTimestamp: Date.now(),\n xhr: this\n });\n return originalSend.apply(this, args);\n };\n });\n}\n\nvar lastHref;\n/** JSDoc */\n\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n var oldOnPopState = global.onpopstate;\n\n global.onpopstate = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var to = global.location.href; // keep track of the current URL state, as we always receive only the updated state\n\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to\n });\n\n if (oldOnPopState) {\n return oldOnPopState.apply(this, args);\n }\n };\n /** @hidden */\n\n\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var url = args.length > 2 ? args[2] : undefined;\n\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url); // keep track of the current URL state, as we always receive only the updated state\n\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to\n });\n }\n\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n/** JSDoc */\n\n\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n } // Capture breadcrumbs from any click that is unhandled / bubbled up all the way\n // to the document. Do this before we instrument addEventListener.\n\n\n global.document.addEventListener('click', domEventHandler('click', triggerHandlers.bind(null, 'dom')), false);\n global.document.addEventListener('keypress', keypressEventHandler(triggerHandlers.bind(null, 'dom')), false); // After hooking into document bubbled up click and keypresses events, we also hook into user handled click & keypresses.\n\n ['EventTarget', 'Node'].forEach(function (target) {\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n var proto = global[target] && global[target].prototype; // eslint-disable-next-line no-prototype-builtins\n\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n if (fn && fn.handleEvent) {\n if (eventName === 'click') {\n fill(fn, 'handleEvent', function (innerOriginal) {\n return function (event) {\n domEventHandler('click', triggerHandlers.bind(null, 'dom'))(event);\n return innerOriginal.call(this, event);\n };\n });\n }\n\n if (eventName === 'keypress') {\n fill(fn, 'handleEvent', function (innerOriginal) {\n return function (event) {\n keypressEventHandler(triggerHandlers.bind(null, 'dom'))(event);\n return innerOriginal.call(this, event);\n };\n });\n }\n } else {\n if (eventName === 'click') {\n domEventHandler('click', triggerHandlers.bind(null, 'dom'), true)(this);\n }\n\n if (eventName === 'keypress') {\n keypressEventHandler(triggerHandlers.bind(null, 'dom'))(this);\n }\n }\n\n return original.call(this, eventName, fn, options);\n };\n });\n fill(proto, 'removeEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n original.call(this, eventName, fn.__sentry_wrapped__, options);\n } catch (e) {// ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n\n return original.call(this, eventName, fn, options);\n };\n });\n });\n}\n\nvar debounceDuration = 1000;\nvar debounceTimer = 0;\nvar keypressTimeout;\nvar lastCapturedEvent;\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param name the event name (e.g. \"click\")\n * @param handler function that will be triggered\n * @param debounce decides whether it should wait till another event loop\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\n\nfunction domEventHandler(name, handler, debounce) {\n if (debounce === void 0) {\n debounce = false;\n }\n\n return function (event) {\n // reset keypress timeout; e.g. triggering a 'click' after\n // a 'keypress' will reset the keypress debounce so that a new\n // set of keypresses can be recorded\n keypressTimeout = undefined; // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors). Ignore if we've\n // already captured the event.\n\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n lastCapturedEvent = event;\n\n if (debounceTimer) {\n clearTimeout(debounceTimer);\n }\n\n if (debounce) {\n debounceTimer = setTimeout(function () {\n handler({\n event: event,\n name: name\n });\n });\n } else {\n handler({\n event: event,\n name: name\n });\n }\n };\n}\n/**\n * Wraps addEventListener to capture keypress UI events\n * @param handler function that will be triggered\n * @returns wrapped keypress events handler\n * @hidden\n */\n\n\nfunction keypressEventHandler(handler) {\n // TODO: if somehow user switches keypress target before\n // debounce timeout is triggered, we will only capture\n // a single breadcrumb from the FIRST target (acceptable?)\n return function (event) {\n var target;\n\n try {\n target = event.target;\n } catch (e) {\n // just accessing event properties can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/raven-js/issues/838\n return;\n }\n\n var tagName = target && target.tagName; // only consider keypress events on actual input elements\n // this will disregard keypresses targeting body (e.g. tabbing\n // through elements, hotkeys, etc)\n\n if (!tagName || tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable) {\n return;\n } // record first keypress in a series, but ignore subsequent\n // keypresses until debounce clears\n\n\n if (!keypressTimeout) {\n domEventHandler('input', handler)(event);\n }\n\n clearTimeout(keypressTimeout);\n keypressTimeout = setTimeout(function () {\n keypressTimeout = undefined;\n }, debounceDuration);\n };\n}\n\nvar _oldOnErrorHandler = null;\n/** JSDoc */\n\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column: column,\n error: error,\n line: line,\n msg: msg,\n url: url\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nvar _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\n\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\n\nmodule.exports = function (str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (x) {\n return \"%\".concat(x.charCodeAt(0).toString(16).toUpperCase());\n });\n};","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n try {\n // Try to decode the entire string first\n return decodeURIComponent(components.join(''));\n } catch (err) {// Do nothing\n }\n\n if (components.length === 1) {\n return components;\n }\n\n split = split || 1; // Split the array in 2 parts\n\n var left = components.slice(0, split);\n var right = components.slice(split);\n return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n try {\n return decodeURIComponent(input);\n } catch (err) {\n var tokens = input.match(singleMatcher);\n\n for (var i = 1; i < tokens.length; i++) {\n input = decodeComponents(tokens, i).join('');\n tokens = input.match(singleMatcher);\n }\n\n return input;\n }\n}\n\nfunction customDecodeURIComponent(input) {\n // Keep track of all the replacements and prefill the map with the `BOM`\n var replaceMap = {\n '%FE%FF': \"\\uFFFD\\uFFFD\",\n '%FF%FE': \"\\uFFFD\\uFFFD\"\n };\n var match = multiMatcher.exec(input);\n\n while (match) {\n try {\n // Decode as big chunks as possible\n replaceMap[match[0]] = decodeURIComponent(match[0]);\n } catch (err) {\n var result = decode(match[0]);\n\n if (result !== match[0]) {\n replaceMap[match[0]] = result;\n }\n }\n\n match = multiMatcher.exec(input);\n } // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\n\n replaceMap['%C2'] = \"\\uFFFD\";\n var entries = Object.keys(replaceMap);\n\n for (var i = 0; i < entries.length; i++) {\n // Replace all decoded components\n var key = entries[i];\n input = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n }\n\n return input;\n}\n\nmodule.exports = function (encodedURI) {\n if (typeof encodedURI !== 'string') {\n throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + _typeof(encodedURI) + '`');\n }\n\n try {\n encodedURI = encodedURI.replace(/\\+/g, ' '); // Try the built in decoder first\n\n return decodeURIComponent(encodedURI);\n } catch (err) {\n // Fallback to a more advanced decoder\n return customDecodeURIComponent(encodedURI);\n }\n};","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\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 */\n\n\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;","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\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\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 module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { __assign } from './_virtual/_tslib.js';\nvar defaultOptions = {\n deferEvents: false\n};\n\nvar Scheduler =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n function Scheduler(options) {\n this.processingEvent = false;\n this.queue = [];\n this.initialized = false;\n this.options = __assign(__assign({}, defaultOptions), options);\n }\n\n Scheduler.prototype.initialize = function (callback) {\n this.initialized = true;\n\n if (callback) {\n if (!this.options.deferEvents) {\n this.schedule(callback);\n return;\n }\n\n this.process(callback);\n }\n\n this.flushEvents();\n };\n\n Scheduler.prototype.schedule = function (task) {\n if (!this.initialized || this.processingEvent) {\n this.queue.push(task);\n return;\n }\n\n if (this.queue.length !== 0) {\n throw new Error('Event queue should be empty when it is not processing events');\n }\n\n this.process(task);\n this.flushEvents();\n };\n\n Scheduler.prototype.clear = function () {\n this.queue = [];\n };\n\n Scheduler.prototype.flushEvents = function () {\n var nextCallback = this.queue.shift();\n\n while (nextCallback) {\n this.process(nextCallback);\n nextCallback = this.queue.shift();\n }\n };\n\n Scheduler.prototype.process = function (callback) {\n this.processingEvent = true;\n\n try {\n callback();\n } catch (e) {\n // there is no use to keep the future events\n // as the situation is not anymore the same\n this.clear();\n throw e;\n } finally {\n this.processingEvent = false;\n }\n };\n\n return Scheduler;\n}();\n\nexport { Scheduler };","var baseToString = require('./_baseToString'),\n castSlice = require('./_castSlice'),\n charsEndIndex = require('./_charsEndIndex'),\n charsStartIndex = require('./_charsStartIndex'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n/** Used to match leading and trailing whitespace. */\n\n\nvar reTrim = /^\\s+|\\s+$/g;\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\n\nfunction trim(string, chars, guard) {\n string = toString(string);\n\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrim, '');\n }\n\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n return castSlice(strSymbols, start, end).join('');\n}\n\nmodule.exports = trim;","var createCaseFirst = require('./_createCaseFirst');\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\n\n\nvar upperFirst = createCaseFirst('toUpperCase');\nmodule.exports = upperFirst;","export default function number(x) {\n return +x;\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport _isNil from \"lodash/isNil\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport React, { Component } from 'react';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/types';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = [];\n\n if (!_isNil(props.children)) {\n if (props.breakAll) {\n words = props.children.toString().split('');\n } else {\n words = props.children.toString().split(BREAKING_SPACES);\n }\n }\n\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, props.style).width\n };\n });\n var spaceWidth = props.breakAll ? 0 : getStringSize(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar calculateWordsByLines = function calculateWordsByLines(props, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var shouldLimitLines = isNumber(props.maxLines);\n var text = props.children;\n\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n\n return result;\n }, []);\n };\n\n var originalResult = calculate(initialWordsWithComputedWith);\n\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n\n if (!shouldLimitLines) {\n return originalResult;\n }\n\n var suffix = '…';\n\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths(_objectSpread(_objectSpread({}, props), {}, {\n children: tempText + suffix\n })).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > props.maxLines || findLongestLine(result).width > lineWidth;\n return [doesOverflow, result];\n };\n\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n\n iterations++;\n } // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n\n\n return trimmedResult || originalResult;\n};\n\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !_isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\n\nvar getWordsByLines = function getWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(props.children);\n }\n\n return calculateWordsByLines(props, wordsWithComputedWidth, spaceWidth, props.width, props.scaleToFit);\n }\n }\n\n return getWordsWithoutCalculate(props.children);\n};\n\nexport var Text = /*#__PURE__*/function (_Component) {\n _inherits(Text, _Component);\n\n var _super = _createSuper(Text);\n\n function Text() {\n var _this;\n\n _classCallCheck(this, Text);\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 return _this;\n }\n\n _createClass(Text, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n breakAll = _this$props.breakAll,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\", \"breakAll\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = this.props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor\n }), wordsByLines.map(function (line, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(breakAll ? '' : ' '))\n );\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.width !== prevState.prevWidth || nextProps.scaleToFit !== prevState.prevScaleToFit || nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll) {\n var needCalculate = nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll;\n return {\n prevWidth: nextProps.width,\n prevScaleToFit: nextProps.scaleToFit,\n prevChildren: nextProps.children,\n prevStyle: nextProps.style,\n wordsByLines: getWordsByLines(nextProps, needCalculate)\n };\n }\n\n return null;\n }\n }]);\n\n return Text;\n}(Component);\nText.defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end' // Maintain compat with existing charts / default SVG behavior\n\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Rectangle\n */\n\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/types';\n\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n\n return path;\n};\n\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n\n return false;\n};\nexport var Rectangle = /*#__PURE__*/function (_PureComponent) {\n _inherits(Rectangle, _PureComponent);\n\n var _super = _createSuper(Rectangle);\n\n function Rectangle() {\n var _this;\n\n _classCallCheck(this, Rectangle);\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 totalLength: -1\n };\n _this.node = void 0;\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n value:\n /* eslint-disable react/no-did-mount-set-state */\n function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(_this2.props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(PureComponent);\nRectangle.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nimport $$observable from 'symbol-observable';\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\nvar ActionTypes = {\n INIT: '@@redux/INIT' + Math.random().toString(36).substring(7).split('').join('.'),\n REPLACE: '@@redux/REPLACE' + Math.random().toString(36).substring(7).split('').join('.')\n};\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n};\n\nvar _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 * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\n\n\nfunction isPlainObject(obj) {\n if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if ((typeof observer === 'undefined' ? 'undefined' : _typeof(observer)) !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\n\n\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && 'action \"' + String(actionType) + '\"' || 'an action';\n return 'Given ' + actionDescription + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state. ' + 'If you want this reducer to hold no value, you can return null instead of undefined.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined. If you don\\'t want to set a value for this reducer, ' + 'you can use null instead of undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n\n if (typeof reducer(undefined, {\n type: type\n }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined, but can be null.');\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers);\n var unexpectedKeyCache = void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError = void 0;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if ((typeof actionCreators === 'undefined' ? 'undefined' : _typeof(actionCreators)) !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators === 'undefined' ? 'undefined' : _typeof(actionCreators)) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(undefined, arguments));\n };\n });\n}\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var store = createStore.apply(undefined, args);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(undefined, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(undefined, chain)(store.dispatch);\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning(\"You are currently using minified code outside of NODE_ENV === 'production'. \" + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { createStore, combineReducers, bindActionCreators, applyMiddleware, compose, ActionTypes as __DO_NOT_USE__ActionTypes };","// 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","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar symbolTag = '[object Symbol]';\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 */\n\nfunction isSymbol(value) {\n return _typeof(value) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n}\n\nmodule.exports = isSymbol;","/**\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;","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n\n\nvar sortBy = baseRest(function (collection, iteratees) {\n if (collection == null) {\n return [];\n }\n\n var length = iteratees.length;\n\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\nmodule.exports = sortBy;","export default function (a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport var slice = Array.prototype.slice;\nexport default function (x) {\n return _typeof(x) === \"object\" && \"length\" in x ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}","/* global window */\nimport ponyfill from './ponyfill.js';\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;","var isNumber = require('./isNumber');\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\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 `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n\n\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;","var createRange = require('./_createRange');\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\n\n\nvar range = createRange();\nmodule.exports = range;","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n\n\nfunction uniqBy(array, iteratee) {\n return array && array.length ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport _get from \"lodash/get\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Cartesian Axis\n */\n\n\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { Global } from '../util/Global';\nimport { isNumber, mathSign } from '../util/DataUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n\n var _super = _createSuper(CartesianAxis);\n\n function CartesianAxis() {\n _classCallCheck(this, CartesianAxis);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]); // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n\n\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, [\"viewBox\"]);\n\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld);\n }\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props)), filterProps(axisLine)), {}, {\n fill: 'none'\n });\n\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: classNames('recharts-cartesian-axis-line', _get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks) {\n var _this = this;\n\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = CartesianAxis.getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }));\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this$getTickLineCoor = _this.getTickLineCoord(entry),\n lineCoord = _this$getTickLineCoor.line,\n tickCoord = _this$getTickLineCoor.tick;\n\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: classNames('recharts-cartesian-axis-tick-line', _get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className)\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: // todo Array\n function getTicks(props) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit;\n\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (isNumber(interval) || Global.isSsr) {\n return CartesianAxis.getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function getTicksStart(_ref2, preserveEnd) {\n var ticks = _ref2.ticks,\n tickFormatter = _ref2.tickFormatter,\n viewBox = _ref2.viewBox,\n orientation = _ref2.orientation,\n minTickGap = _ref2.minTickGap,\n unit = _ref2.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value, len - 1) : tail.value;\n var tailSize = getStringSize(tailContent)[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n\n var count = preserveEnd ? len - 1 : len;\n\n for (var i = 0; i < count; i++) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref3) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (var i = len - 1; i >= 0; i--) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, len - i - 1) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(Component);\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n};","require('../es');\nrequire('../web');\nvar path = require('../internals/path');\n\nmodule.exports = path;\n","require('../modules/es.symbol');\nrequire('../modules/es.symbol.async-iterator');\nrequire('../modules/es.symbol.description');\nrequire('../modules/es.symbol.has-instance');\nrequire('../modules/es.symbol.is-concat-spreadable');\nrequire('../modules/es.symbol.iterator');\nrequire('../modules/es.symbol.match');\nrequire('../modules/es.symbol.match-all');\nrequire('../modules/es.symbol.replace');\nrequire('../modules/es.symbol.search');\nrequire('../modules/es.symbol.species');\nrequire('../modules/es.symbol.split');\nrequire('../modules/es.symbol.to-primitive');\nrequire('../modules/es.symbol.to-string-tag');\nrequire('../modules/es.symbol.unscopables');\nrequire('../modules/es.object.assign');\nrequire('../modules/es.object.create');\nrequire('../modules/es.object.define-property');\nrequire('../modules/es.object.define-properties');\nrequire('../modules/es.object.entries');\nrequire('../modules/es.object.freeze');\nrequire('../modules/es.object.from-entries');\nrequire('../modules/es.object.get-own-property-descriptor');\nrequire('../modules/es.object.get-own-property-descriptors');\nrequire('../modules/es.object.get-own-property-names');\nrequire('../modules/es.object.get-prototype-of');\nrequire('../modules/es.object.is');\nrequire('../modules/es.object.is-extensible');\nrequire('../modules/es.object.is-frozen');\nrequire('../modules/es.object.is-sealed');\nrequire('../modules/es.object.keys');\nrequire('../modules/es.object.prevent-extensions');\nrequire('../modules/es.object.seal');\nrequire('../modules/es.object.set-prototype-of');\nrequire('../modules/es.object.values');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.object.define-getter');\nrequire('../modules/es.object.define-setter');\nrequire('../modules/es.object.lookup-getter');\nrequire('../modules/es.object.lookup-setter');\nrequire('../modules/es.function.bind');\nrequire('../modules/es.function.name');\nrequire('../modules/es.function.has-instance');\nrequire('../modules/es.global-this');\nrequire('../modules/es.array.from');\nrequire('../modules/es.array.is-array');\nrequire('../modules/es.array.of');\nrequire('../modules/es.array.concat');\nrequire('../modules/es.array.copy-within');\nrequire('../modules/es.array.every');\nrequire('../modules/es.array.fill');\nrequire('../modules/es.array.filter');\nrequire('../modules/es.array.find');\nrequire('../modules/es.array.find-index');\nrequire('../modules/es.array.flat');\nrequire('../modules/es.array.flat-map');\nrequire('../modules/es.array.for-each');\nrequire('../modules/es.array.includes');\nrequire('../modules/es.array.index-of');\nrequire('../modules/es.array.join');\nrequire('../modules/es.array.last-index-of');\nrequire('../modules/es.array.map');\nrequire('../modules/es.array.reduce');\nrequire('../modules/es.array.reduce-right');\nrequire('../modules/es.array.reverse');\nrequire('../modules/es.array.slice');\nrequire('../modules/es.array.some');\nrequire('../modules/es.array.sort');\nrequire('../modules/es.array.splice');\nrequire('../modules/es.array.species');\nrequire('../modules/es.array.unscopables.flat');\nrequire('../modules/es.array.unscopables.flat-map');\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.string.from-code-point');\nrequire('../modules/es.string.raw');\nrequire('../modules/es.string.code-point-at');\nrequire('../modules/es.string.ends-with');\nrequire('../modules/es.string.includes');\nrequire('../modules/es.string.match');\nrequire('../modules/es.string.match-all');\nrequire('../modules/es.string.pad-end');\nrequire('../modules/es.string.pad-start');\nrequire('../modules/es.string.repeat');\nrequire('../modules/es.string.replace');\nrequire('../modules/es.string.search');\nrequire('../modules/es.string.split');\nrequire('../modules/es.string.starts-with');\nrequire('../modules/es.string.trim');\nrequire('../modules/es.string.trim-start');\nrequire('../modules/es.string.trim-end');\nrequire('../modules/es.string.iterator');\nrequire('../modules/es.string.anchor');\nrequire('../modules/es.string.big');\nrequire('../modules/es.string.blink');\nrequire('../modules/es.string.bold');\nrequire('../modules/es.string.fixed');\nrequire('../modules/es.string.fontcolor');\nrequire('../modules/es.string.fontsize');\nrequire('../modules/es.string.italics');\nrequire('../modules/es.string.link');\nrequire('../modules/es.string.small');\nrequire('../modules/es.string.strike');\nrequire('../modules/es.string.sub');\nrequire('../modules/es.string.sup');\nrequire('../modules/es.regexp.constructor');\nrequire('../modules/es.regexp.exec');\nrequire('../modules/es.regexp.flags');\nrequire('../modules/es.regexp.sticky');\nrequire('../modules/es.regexp.test');\nrequire('../modules/es.regexp.to-string');\nrequire('../modules/es.parse-int');\nrequire('../modules/es.parse-float');\nrequire('../modules/es.number.constructor');\nrequire('../modules/es.number.epsilon');\nrequire('../modules/es.number.is-finite');\nrequire('../modules/es.number.is-integer');\nrequire('../modules/es.number.is-nan');\nrequire('../modules/es.number.is-safe-integer');\nrequire('../modules/es.number.max-safe-integer');\nrequire('../modules/es.number.min-safe-integer');\nrequire('../modules/es.number.parse-float');\nrequire('../modules/es.number.parse-int');\nrequire('../modules/es.number.to-fixed');\nrequire('../modules/es.number.to-precision');\nrequire('../modules/es.math.acosh');\nrequire('../modules/es.math.asinh');\nrequire('../modules/es.math.atanh');\nrequire('../modules/es.math.cbrt');\nrequire('../modules/es.math.clz32');\nrequire('../modules/es.math.cosh');\nrequire('../modules/es.math.expm1');\nrequire('../modules/es.math.fround');\nrequire('../modules/es.math.hypot');\nrequire('../modules/es.math.imul');\nrequire('../modules/es.math.log10');\nrequire('../modules/es.math.log1p');\nrequire('../modules/es.math.log2');\nrequire('../modules/es.math.sign');\nrequire('../modules/es.math.sinh');\nrequire('../modules/es.math.tanh');\nrequire('../modules/es.math.to-string-tag');\nrequire('../modules/es.math.trunc');\nrequire('../modules/es.date.now');\nrequire('../modules/es.date.to-json');\nrequire('../modules/es.date.to-iso-string');\nrequire('../modules/es.date.to-string');\nrequire('../modules/es.date.to-primitive');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.json.to-string-tag');\nrequire('../modules/es.promise');\nrequire('../modules/es.promise.all-settled');\nrequire('../modules/es.promise.finally');\nrequire('../modules/es.map');\nrequire('../modules/es.set');\nrequire('../modules/es.weak-map');\nrequire('../modules/es.weak-set');\nrequire('../modules/es.array-buffer.constructor');\nrequire('../modules/es.array-buffer.is-view');\nrequire('../modules/es.array-buffer.slice');\nrequire('../modules/es.data-view');\nrequire('../modules/es.typed-array.int8-array');\nrequire('../modules/es.typed-array.uint8-array');\nrequire('../modules/es.typed-array.uint8-clamped-array');\nrequire('../modules/es.typed-array.int16-array');\nrequire('../modules/es.typed-array.uint16-array');\nrequire('../modules/es.typed-array.int32-array');\nrequire('../modules/es.typed-array.uint32-array');\nrequire('../modules/es.typed-array.float32-array');\nrequire('../modules/es.typed-array.float64-array');\nrequire('../modules/es.typed-array.from');\nrequire('../modules/es.typed-array.of');\nrequire('../modules/es.typed-array.copy-within');\nrequire('../modules/es.typed-array.every');\nrequire('../modules/es.typed-array.fill');\nrequire('../modules/es.typed-array.filter');\nrequire('../modules/es.typed-array.find');\nrequire('../modules/es.typed-array.find-index');\nrequire('../modules/es.typed-array.for-each');\nrequire('../modules/es.typed-array.includes');\nrequire('../modules/es.typed-array.index-of');\nrequire('../modules/es.typed-array.iterator');\nrequire('../modules/es.typed-array.join');\nrequire('../modules/es.typed-array.last-index-of');\nrequire('../modules/es.typed-array.map');\nrequire('../modules/es.typed-array.reduce');\nrequire('../modules/es.typed-array.reduce-right');\nrequire('../modules/es.typed-array.reverse');\nrequire('../modules/es.typed-array.set');\nrequire('../modules/es.typed-array.slice');\nrequire('../modules/es.typed-array.some');\nrequire('../modules/es.typed-array.sort');\nrequire('../modules/es.typed-array.subarray');\nrequire('../modules/es.typed-array.to-locale-string');\nrequire('../modules/es.typed-array.to-string');\nrequire('../modules/es.reflect.apply');\nrequire('../modules/es.reflect.construct');\nrequire('../modules/es.reflect.define-property');\nrequire('../modules/es.reflect.delete-property');\nrequire('../modules/es.reflect.get');\nrequire('../modules/es.reflect.get-own-property-descriptor');\nrequire('../modules/es.reflect.get-prototype-of');\nrequire('../modules/es.reflect.has');\nrequire('../modules/es.reflect.is-extensible');\nrequire('../modules/es.reflect.own-keys');\nrequire('../modules/es.reflect.prevent-extensions');\nrequire('../modules/es.reflect.set');\nrequire('../modules/es.reflect.set-prototype-of');\nvar path = require('../internals/path');\n\nmodule.exports = path;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\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\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\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(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModile = require('../internals/object-define-property');\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperty: objectDefinePropertyModile.f\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.github.io/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\nvar nativeFreeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeFreeze(1); });\n\n// `Object.freeze` method\n// https://tc39.github.io/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, undefined, true);\n return obj;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: nativeGetOwnPropertyNames\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.github.io/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.github.io/ecma262/#sec-object.isextensible\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isExtensible: function isExtensible(it) {\n return isObject(it) ? nativeIsExtensible ? nativeIsExtensible(it) : true : false;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsFrozen = Object.isFrozen;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.github.io/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isFrozen: function isFrozen(it) {\n return isObject(it) ? nativeIsFrozen ? nativeIsFrozen(it) : false : true;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsSealed = Object.isSealed;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.github.io/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isSealed: function isSealed(it) {\n return isObject(it) ? nativeIsSealed ? nativeIsSealed(it) : false : true;\n }\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\nvar nativePreventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativePreventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.github.io/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(it) {\n return nativePreventExtensions && isObject(it) ? nativePreventExtensions(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\nvar nativeSeal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeSeal(1); });\n\n// `Object.seal` method\n// https://tc39.github.io/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n seal: function seal(it) {\n return nativeSeal && isObject(it) ? nativeSeal(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar aFunction = require('../internals/a-function');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineGetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__defineGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineGetter__: function __defineGetter__(P, getter) {\n definePropertyModule.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar aFunction = require('../internals/a-function');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineSetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__defineSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineSetter__: function __defineSetter__(P, setter) {\n definePropertyModule.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupGetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var key = toPrimitive(P, true);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupSetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var key = toPrimitive(P, true);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","var $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\n$({ target: 'Function', proto: true }, {\n bind: bind\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.github.io/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n } });\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://github.com/tc39/proposal-global\n$({ global: true }, {\n globalThis: global\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.github.io/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar createProperty = require('../internals/create-property');\n\nvar ISNT_GENERIC = fails(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.github.io/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n of: function of(/* ...args */) {\n var index = 0;\n var argumentsLength = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(argumentsLength);\n while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n result.length = argumentsLength;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('every');\n\n// `Array.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A;\n aFunction(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n lastIndexOf: lastIndexOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduceRight');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduceRight` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = [].reverse;\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign\n if (isArray(this)) this.length = this.length;\n return nativeReverse.call(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('some');\n\n// `Array.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.github.io/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\naddToUnscopables('flat');\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\naddToUnscopables('flatMap');\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\nvar nativeFromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.github.io/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n elements.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n );\n } return elements.join('');\n }\n});\n","var $ = require('../internals/export');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `String.raw` method\n// https://tc39.github.io/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n raw: function raw(template) {\n var rawTemplate = toIndexedObject(template.raw);\n var literalSegments = toLength(rawTemplate.length);\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (literalSegments > i) {\n elements.push(String(rawTemplate[i++]));\n if (i < argumentsLength) elements.push(String(arguments[i]));\n } return elements.join('');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeEndsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return nativeEndsWith\n ? nativeEndsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof-raw');\nvar isRegExp = require('../internals/is-regexp');\nvar getRegExpFlags = require('../internals/regexp-flags');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar regExpBuiltinExec = RegExpPrototype.exec;\nvar nativeMatchAll = ''.matchAll;\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {\n 'a'.matchAll(/./);\n});\n\nvar regExpExec = function (R, S) {\n var exec = R.exec;\n var result;\n if (typeof exec == 'function') {\n result = exec.call(R, S);\n if (typeof result != 'object') throw TypeError('Incorrect exec result');\n return result;\n } return regExpBuiltinExec.call(R, S);\n};\n\n// eslint-disable-next-line max-len\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {\n setInternalState(this, {\n type: REGEXP_STRING_ITERATOR,\n regexp: regexp,\n string: string,\n global: global,\n unicode: fullUnicode,\n done: false\n });\n}, REGEXP_STRING, function next() {\n var state = getInternalState(this);\n if (state.done) return { value: undefined, done: true };\n var R = state.regexp;\n var S = state.string;\n var match = regExpExec(R, S);\n if (match === null) return { value: undefined, done: state.done = true };\n if (state.global) {\n if (String(match[0]) == '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n return { value: match, done: false };\n }\n state.done = true;\n return { value: match, done: false };\n});\n\nvar $matchAll = function (string) {\n var R = anObject(this);\n var S = String(string);\n var C, flagsValue, flags, matcher, global, fullUnicode;\n C = speciesConstructor(R, RegExp);\n flagsValue = R.flags;\n if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype)) {\n flagsValue = getRegExpFlags.call(R);\n }\n flags = flagsValue === undefined ? '' : String(flagsValue);\n matcher = new C(C === RegExp ? R.source : R, flags);\n global = !!~flags.indexOf('g');\n fullUnicode = !!~flags.indexOf('u');\n matcher.lastIndex = toLength(R.lastIndex);\n return new $RegExpStringIterator(matcher, S, global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://github.com/tc39/proposal-string-matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n matchAll: function matchAll(regexp) {\n var O = requireObjectCoercible(this);\n var flags, S, matcher, rx;\n if (regexp != null) {\n if (isRegExp(regexp)) {\n flags = String(requireObjectCoercible('flags' in RegExpPrototype\n ? regexp.flags\n : getRegExpFlags.call(regexp)\n ));\n if (!~flags.indexOf('g')) throw TypeError('`.matchAll` does not allow non-global regexes');\n }\n if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);\n matcher = regexp[MATCH_ALL];\n if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;\n if (matcher != null) return aFunction(matcher).call(regexp, O);\n } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);\n S = String(O);\n rx = new RegExp(regexp, 'g');\n return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);\n }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || createNonEnumerableProperty(RegExpPrototype, MATCH_ALL, $matchAll);\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimStart');\n\nvar trimStart = FORCED ? function trimStart() {\n return $trimStart(this);\n} : ''.trimStart;\n\n// `String.prototype.{ trimStart, trimLeft }` methods\n// https://github.com/tc39/ecmascript-string-left-right-trim\n$({ target: 'String', proto: true, forced: FORCED }, {\n trimStart: trimStart,\n trimLeft: trimStart\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimEnd');\n\nvar trimEnd = FORCED ? function trimEnd() {\n return $trimEnd(this);\n} : ''.trimEnd;\n\n// `String.prototype.{ trimEnd, trimRight }` methods\n// https://github.com/tc39/ecmascript-string-left-right-trim\n$({ target: 'String', proto: true, forced: FORCED }, {\n trimEnd: trimEnd,\n trimRight: trimEnd\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.big` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n big: function big() {\n return createHTML(this, 'big', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.blink` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n blink: function blink() {\n return createHTML(this, 'blink', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n bold: function bold() {\n return createHTML(this, 'b', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontcolor` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n fontcolor: function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n fontsize: function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.italics` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n italics: function italics() {\n return createHTML(this, 'i', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.strike` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n strike: function strike() {\n return createHTML(this, 'strike', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sup` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n sup: function sup() {\n return createHTML(this, 'sup', '', '');\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.github.io/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\n\n// `RegExp.prototype.flags` getter\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nif (DESCRIPTORS && (/./g.flags != 'g' || UNSUPPORTED_Y)) {\n objectDefinePropertyModule.f(RegExp.prototype, 'flags', {\n configurable: true,\n get: regExpFlags\n });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\nvar RegExpPrototype = RegExp.prototype;\n\n// `RegExp.prototype.sticky` getter\nif (DESCRIPTORS && UNSUPPORTED_Y) {\n defineProperty(RegExp.prototype, 'sticky', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (this instanceof RegExp) {\n return !!getInternalState(this).sticky;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (str) {\n if (typeof this.exec !== 'function') {\n return nativeTest.call(this, str);\n }\n var result = this.exec(str);\n if (result !== null && !isObject(result)) {\n throw new Error('RegExp exec method returned something other than an Object or null');\n }\n return !!result;\n }\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n parseFloat: parseFloatImplementation\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.github.io/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true }, {\n EPSILON: Math.pow(2, -52)\n});\n","var $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.github.io/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","var global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.github.io/ecma262/#sec-number.isfinite\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\n// `Number.isInteger` method\n// https://tc39.github.io/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isInteger\n});\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.github.io/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.github.io/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n }\n});\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true }, {\n MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.github.io/ecma262/#sec-number.parseFloat\n$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {\n parseFloat: parseFloat\n});\n","var $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.github.io/ecma262/#sec-number.parseint\n$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {\n parseInt: parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\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};\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\nvar FORCED = nativeToFixed && (\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) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\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 result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar thisNumberValue = require('../internals/this-number-value');\n\nvar nativeToPrecision = 1.0.toPrecision;\n\nvar FORCED = fails(function () {\n // IE7-\n return nativeToPrecision.call(1, undefined) !== '1';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToPrecision.call({});\n});\n\n// `Number.prototype.toPrecision` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.toprecision\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toPrecision: function toPrecision(precision) {\n return precision === undefined\n ? nativeToPrecision.call(thisNumberValue(this))\n : nativeToPrecision.call(thisNumberValue(this), precision);\n }\n});\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\nvar nativeAcosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !nativeAcosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n || Math.floor(nativeAcosh(Number.MAX_VALUE)) != 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n || nativeAcosh(Infinity) != Infinity;\n\n// `Math.acosh` method\n// https://tc39.github.io/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? log(x) + LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","var $ = require('../internals/export');\n\nvar nativeAsinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));\n}\n\n// `Math.asinh` method\n// https://tc39.github.io/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: !(nativeAsinh && 1 / nativeAsinh(0) > 0) }, {\n asinh: asinh\n});\n","var $ = require('../internals/export');\n\nvar nativeAtanh = Math.atanh;\nvar log = Math.log;\n\n// `Math.atanh` method\n// https://tc39.github.io/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: !(nativeAtanh && 1 / nativeAtanh(-0) < 0) }, {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;\n }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.github.io/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n cbrt: function cbrt(x) {\n return sign(x = +x) * pow(abs(x), 1 / 3);\n }\n});\n","var $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.github.io/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;\n }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar nativeCosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\n// `Math.cosh` method\n// https://tc39.github.io/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: !nativeCosh || nativeCosh(710) === Infinity }, {\n cosh: function cosh(x) {\n var t = expm1(abs(x) - 1) + 1;\n return (t + 1 / (t * E * E)) * (E / 2);\n }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.github.io/ecma262/#sec-math.expm1\n$({ target: 'Math', stat: true, forced: expm1 != Math.expm1 }, { expm1: expm1 });\n","var $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.github.io/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n","var sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\n// `Math.fround` method implementation\n// https://tc39.github.io/ecma262/#sec-math.fround\nmodule.exports = Math.fround || function fround(x) {\n var $abs = abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","var $ = require('../internals/export');\n\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.github.io/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\nvar nativeImul = Math.imul;\n\nvar FORCED = fails(function () {\n return nativeImul(0xFFFFFFFF, 5) != -5 || nativeImul.length != 2;\n});\n\n// `Math.imul` method\n// https://tc39.github.io/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n imul: function imul(x, y) {\n var UINT16 = 0xFFFF;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// `Math.log10` method\n// https://tc39.github.io/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n log10: function log10(x) {\n return log(x) * LOG10E;\n }\n});\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.github.io/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.github.io/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n log2: function log2(x) {\n return log(x) / LN2;\n }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.github.io/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n return Math.sinh(-2e-17) != -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.github.io/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n sinh: function sinh(x) {\n return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);\n }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.github.io/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.github.io/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: function trunc(it) {\n return (it > 0 ? floor : ceil)(it);\n }\n});\n","var $ = require('../internals/export');\n\n// `Date.now` method\n// https://tc39.github.io/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return new Date().getTime();\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, forced: FORCED }, {\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 $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n toISOString: toISOString\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar getTime = DatePrototype.getTime;\nvar nativeDateToISOString = DatePrototype.toISOString;\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n nativeDateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var date = this;\n var year = date.getUTCFullYear();\n var milliseconds = date.getUTCMilliseconds();\n var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n '-' + padStart(date.getUTCMonth() + 1, 2, 0) +\n '-' + padStart(date.getUTCDate(), 2, 0) +\n 'T' + padStart(date.getUTCHours(), 2, 0) +\n ':' + padStart(date.getUTCMinutes(), 2, 0) +\n ':' + padStart(date.getUTCSeconds(), 2, 0) +\n '.' + padStart(milliseconds, 3, 0) +\n 'Z';\n} : nativeDateToISOString;\n","var redefine = require('../internals/redefine');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = DatePrototype[TO_STRING];\nvar getTime = DatePrototype.getTime;\n\n// `Date.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.tostring\nif (new Date(NaN) + '' != INVALID_DATE) {\n redefine(DatePrototype, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? nativeDateToString.call(this) : INVALID_DATE;\n });\n}\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-date.prototype-@@toprimitive\nif (!(TO_PRIMITIVE in DatePrototype)) {\n createNonEnumerableProperty(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== 'number' && hint !== 'default') {\n throw TypeError('Incorrect hint');\n } return toPrimitive(anObject(this), hint !== 'number');\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar re = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar fix = function (match, offset, string) {\n var prev = string.charAt(offset - 1);\n var next = string.charAt(offset + 1);\n if ((low.test(match) && !hi.test(next)) || (hi.test(match) && !low.test(prev))) {\n return '\\\\u' + match.charCodeAt(0).toString(16);\n } return match;\n};\n\nvar FORCED = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nif ($stringify) {\n // https://github.com/tc39/proposal-well-formed-stringify\n $({ target: 'JSON', stat: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var result = $stringify.apply(null, arguments);\n return typeof result == 'string' ? result.replace(re, fix) : result;\n }\n });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\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 if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\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 (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can 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 (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\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 $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, 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.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\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 var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.github.io/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.github.io/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","var $ = require('../internals/export');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\n\n// `ArrayBuffer.isView` method\n// https://tc39.github.io/ecma262/#sec-arraybuffer.isview\n$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n isView: ArrayBufferViewCore.isView\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar nativeArrayBufferSlice = ArrayBuffer.prototype.slice;\n\nvar INCORRECT_SLICE = fails(function () {\n return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n slice: function slice(start, end) {\n if (nativeArrayBufferSlice !== undefined && end === undefined) {\n return nativeArrayBufferSlice.call(anObject(this), start); // FF fix\n }\n var length = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n var viewSource = new DataView(this);\n var viewTarget = new DataView(result);\n var index = 0;\n while (first < fin) {\n viewTarget.setUint8(index++, viewSource.getUint8(first++));\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\n\n// `DataView` constructor\n// https://tc39.github.io/ecma262/#sec-dataview-constructor\n$({ global: true, forced: !NATIVE_ARRAY_BUFFER }, {\n DataView: ArrayBufferModule.DataView\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = new (aTypedArrayConstructor(this))(length);\n while (length > index) result[index] = arguments[index++];\n return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\nvar nativeApply = getBuiltIn('Reflect', 'apply');\nvar functionApply = Function.apply;\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n nativeApply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.github.io/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n apply: function apply(target, thisArgument, argumentsList) {\n aFunction(target);\n anObject(argumentsList);\n return nativeApply\n ? nativeApply(target, thisArgument, argumentsList)\n : functionApply.call(target, thisArgument, argumentsList);\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.github.io/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar fails = require('../internals/fails');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n var key = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n definePropertyModule.f(target, key, attributes);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.github.io/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar has = require('../internals/has');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.github.io/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n if (descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey)) return has(descriptor, 'value')\n ? descriptor.value\n : descriptor.get === undefined\n ? undefined\n : descriptor.get.call(receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(target) {\n return objectGetPrototypeOf(anObject(target));\n }\n});\n","var $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.github.io/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\n\nvar objectIsExtensible = Object.isExtensible;\n\n// `Reflect.isExtensible` method\n// https://tc39.github.io/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return objectIsExtensible ? objectIsExtensible(target) : true;\n }\n});\n","var $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.github.io/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.github.io/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n if (objectPreventExtensions) objectPreventExtensions(target);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.github.io/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n var existingDescriptor, prototype;\n if (!ownDescriptor) {\n if (isObject(prototype = getPrototypeOf(target))) {\n return set(prototype, propertyKey, V, receiver);\n }\n ownDescriptor = createPropertyDescriptor(0);\n }\n if (has(ownDescriptor, 'value')) {\n if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n return true;\n }\n return ownDescriptor.set === undefined ? false : (ownDescriptor.set.call(receiver, V), true);\n}\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n var object = definePropertyModule.f({}, 'a', { configurable: true });\n // eslint-disable-next-line no-undef\n return Reflect.set(getPrototypeOf(object), 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n set: set\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n anObject(target);\n aPossiblePrototype(proto);\n try {\n objectSetPrototypeOf(target, proto);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","require('../modules/web.dom-collections.for-each');\nrequire('../modules/web.dom-collections.iterator');\nrequire('../modules/web.immediate');\nrequire('../modules/web.queue-microtask');\nrequire('../modules/web.timers');\nrequire('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar task = require('../internals/task');\n\nvar FORCED = !global.setImmediate || !global.clearImmediate;\n\n// http://w3c.github.io/setImmediate/\n$({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n // `setImmediate` method\n // http://w3c.github.io/setImmediate/#si-setImmediate\n setImmediate: task.set,\n // `clearImmediate` method\n // http://w3c.github.io/setImmediate/#si-clearImmediate\n clearImmediate: task.clear\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar microtask = require('../internals/microtask');\nvar classof = require('../internals/classof-raw');\n\nvar process = global.process;\nvar isNode = classof(process) == 'process';\n\n// `queueMicrotask` method\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n$({ global: true, enumerable: true, noTargetGet: true }, {\n queueMicrotask: function queueMicrotask(fn) {\n var domain = isNode && process.domain;\n microtask(domain ? domain.bind(fn) : fn);\n }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\n\nvar wrap = function (scheduler) {\n return function (handler, timeout /* , ...arguments */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : undefined;\n return scheduler(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof handler == 'function' ? handler : Function(handler)).apply(this, args);\n } : handler, timeout);\n };\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n$({ global: true, bind: true, forced: MSIE }, {\n // `setTimeout` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n setTimeout: wrap(global.setTimeout),\n // `setInterval` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n setInterval: wrap(global.setInterval)\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return URL.prototype.toString.call(this);\n }\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","/**\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 */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\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 * 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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _interopDefault(ex) {\n return ex && _typeof(ex) === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nvar shallowEqual = _interopDefault(require('shallowequal'));\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_Component) {\n _inheritsLoose(SideEffect, _Component);\n\n function SideEffect() {\n return _Component.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n };\n\n _proto.componentWillMount = function componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.Component);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (_typeof(objA) !== \"object\" || !objA || _typeof(objB) !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar objectKeys = require('object-keys');\n\nvar isArguments = require('is-arguments');\n\nvar is = require('object-is');\n\nvar isRegex = require('is-regex');\n\nvar flags = require('regexp.prototype.flags');\n\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {}; // 7.1. All identical values are equivalent, as determined by ===.\n\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n } // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n\n\n if (!actual || !expected || _typeof(actual) !== 'object' && _typeof(expected) !== 'object') {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n\n\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || _typeof(x) !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n\n if (_typeof(a) !== _typeof(b)) {\n return false;\n }\n\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) {\n return false;\n } // an identical 'prototype' property.\n\n\n if (a.prototype !== b.prototype) {\n return false;\n }\n\n if (isArguments(a) !== isArguments(b)) {\n return false;\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n\n if (aIsRegex !== bIsRegex) {\n return false;\n }\n\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\n if (aIsBuffer !== bIsBuffer) {\n return false;\n }\n\n if (aIsBuffer || bIsBuffer) {\n // && would work too, because both are true or both false here\n if (a.length !== b.length) {\n return false;\n }\n\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n if (_typeof(a) !== _typeof(b)) {\n return false;\n }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) {\n // happens when one is a string literal and the other isn't\n return false;\n } // having the same number of owned properties (keys incorporates hasOwnProperty)\n\n\n if (ka.length !== kb.length) {\n return false;\n } // the same set of keys (although not necessarily the same order),\n\n\n ka.sort();\n kb.sort(); // ~~~cheap key test\n\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 ~~~possibly expensive deep test\n\n\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n\n if (!deepEqual(a[key], b[key], opts)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar keysShim;\n\nif (!Object.keys) {\n // modified from https://github.com/es-shims/es5-shim\n var has = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n\n var isArgs = require('./isArguments'); // eslint-disable-line global-require\n\n\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var hasDontEnumBug = !isEnumerable.call({\n toString: null\n }, 'toString');\n var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n var dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];\n\n var equalsConstructorPrototype = function equalsConstructorPrototype(o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n };\n\n var excludedKeys = {\n $applicationCache: true,\n $console: true,\n $external: true,\n $frame: true,\n $frameElement: true,\n $frames: true,\n $innerHeight: true,\n $innerWidth: true,\n $onmozfullscreenchange: true,\n $onmozfullscreenerror: true,\n $outerHeight: true,\n $outerWidth: true,\n $pageXOffset: true,\n $pageYOffset: true,\n $parent: true,\n $scrollLeft: true,\n $scrollTop: true,\n $scrollX: true,\n $scrollY: true,\n $self: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true,\n $window: true\n };\n\n var hasAutomationEqualityBug = function () {\n /* global window */\n if (typeof window === 'undefined') {\n return false;\n }\n\n for (var k in window) {\n try {\n if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && _typeof(window[k]) === 'object') {\n try {\n equalsConstructorPrototype(window[k]);\n } catch (e) {\n return true;\n }\n }\n } catch (e) {\n return true;\n }\n }\n\n return false;\n }();\n\n var equalsConstructorPrototypeIfNotBuggy = function equalsConstructorPrototypeIfNotBuggy(o) {\n /* global window */\n if (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n return equalsConstructorPrototype(o);\n }\n\n try {\n return equalsConstructorPrototype(o);\n } catch (e) {\n return false;\n }\n };\n\n keysShim = function keys(object) {\n var isObject = object !== null && _typeof(object) === 'object';\n var isFunction = toStr.call(object) === '[object Function]';\n var isArguments = isArgs(object);\n var isString = isObject && toStr.call(object) === '[object String]';\n var theKeys = [];\n\n if (!isObject && !isFunction && !isArguments) {\n throw new TypeError('Object.keys called on a non-object');\n }\n\n var skipProto = hasProtoEnumBug && isFunction;\n\n if (isString && object.length > 0 && !has.call(object, 0)) {\n for (var i = 0; i < object.length; ++i) {\n theKeys.push(String(i));\n }\n }\n\n if (isArguments && object.length > 0) {\n for (var j = 0; j < object.length; ++j) {\n theKeys.push(String(j));\n }\n } else {\n for (var name in object) {\n if (!(skipProto && name === 'prototype') && has.call(object, name)) {\n theKeys.push(String(name));\n }\n }\n }\n\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n for (var k = 0; k < dontEnums.length; ++k) {\n if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n theKeys.push(dontEnums[k]);\n }\n }\n }\n\n return theKeys;\n };\n}\n\nmodule.exports = keysShim;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar hasToStringTag = typeof Symbol === 'function' && _typeof(Symbol.toStringTag) === 'symbol';\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && _typeof(value) === 'object' && Symbol.toStringTag in value) {\n return false;\n }\n\n return $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n\n return value !== null && _typeof(value) === 'object' && typeof value.length === 'number' && value.length >= 0 && $toString(value) !== '[object Array]' && $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = function () {\n return isStandardArguments(arguments);\n}();\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;","'use strict';\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nmodule.exports = function hasSymbols() {\n if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') {\n return false;\n }\n\n if (_typeof(Symbol.iterator) === 'symbol') {\n return true;\n }\n\n var obj = {};\n var sym = Symbol('test');\n var symObj = Object(sym);\n\n if (typeof sym === 'string') {\n return false;\n }\n\n if (Object.prototype.toString.call(sym) !== '[object Symbol]') {\n return false;\n }\n\n if (Object.prototype.toString.call(symObj) !== '[object Symbol]') {\n return false;\n } // temp disabled per https://github.com/ljharb/object.assign/issues/17\n // if (sym instanceof Symbol) { return false; }\n // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n // if (!(symObj instanceof Symbol)) { return false; }\n // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\n var symVal = 42;\n obj[sym] = symVal;\n\n for (sym in obj) {\n return false;\n } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\n\n if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n\n var syms = Object.getOwnPropertySymbols(obj);\n\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyDescriptor === 'function') {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n\n return true;\n};","'use strict';\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\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n\n var args = slice.call(arguments, 1);\n var bound;\n\n var binder = function binder() {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n\n if (Object(result) === result) {\n return result;\n }\n\n return this;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n\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\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);","'use strict';\n\nvar define = require('define-properties');\n\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\ndefine(polyfill, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = polyfill;","'use strict';\n\nvar getPolyfill = require('./polyfill');\n\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n var polyfill = getPolyfill();\n define(Object, {\n is: polyfill\n }, {\n is: function testObjectIs() {\n return Object.is !== polyfill;\n }\n });\n return polyfill;\n};","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar callBound = require('call-bind/callBound');\n\nvar hasSymbols = require('has-symbols')();\n\nvar hasToStringTag = hasSymbols && _typeof(Symbol.toStringTag) === 'symbol';\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n has = callBound('Object.prototype.hasOwnProperty');\n $exec = callBound('RegExp.prototype.exec');\n isRegexMarker = {};\n\n var throwRegexMarker = function throwRegexMarker() {\n throw isRegexMarker;\n };\n\n badStringifier = {\n toString: throwRegexMarker,\n valueOf: throwRegexMarker\n };\n\n if (_typeof(Symbol.toPrimitive) === 'symbol') {\n badStringifier[Symbol.toPrimitive] = throwRegexMarker;\n }\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\nmodule.exports = hasToStringTag // eslint-disable-next-line consistent-return\n? function isRegex(value) {\n if (!value || _typeof(value) !== 'object') {\n return false;\n }\n\n var descriptor = gOPD(value, 'lastIndex');\n var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\n if (!hasLastIndexDataProperty) {\n return false;\n }\n\n try {\n $exec(value, badStringifier);\n } catch (e) {\n return e === isRegexMarker;\n }\n} : function isRegex(value) {\n // In older browsers, typeof regex incorrectly returns 'function'\n if (!value || _typeof(value) !== 'object' && typeof value !== 'function') {\n return false;\n }\n\n return $toString(value) === regexClass;\n};","'use strict';\n\nvar define = require('define-properties');\n\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar flagsBound = callBind(implementation);\ndefine(flagsBound, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = flagsBound;","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\nvar getPolyfill = require('./polyfill');\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n if (!supportsDescriptors || !getProto) {\n throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n }\n\n var polyfill = getPolyfill();\n var proto = getProto(regex);\n var descriptor = gOPD(proto, 'flags');\n\n if (!descriptor || descriptor.get !== polyfill) {\n defineProperty(proto, 'flags', {\n configurable: true,\n enumerable: false,\n get: polyfill\n });\n }\n\n return polyfill;\n};","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar getDay = Date.prototype.getDay;\n\nvar tryDateObject = function tryDateGetDayCall(value) {\n try {\n getDay.call(value);\n return true;\n } catch (e) {\n return false;\n }\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 if (_typeof(value) !== 'object' || value === null) {\n return false;\n }\n\n return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nexports.__esModule = true;\nexports.warn = exports.requestAnimationFrame = exports.reducePropsToState = exports.mapStateOnServer = exports.handleClientStateChange = exports.convertReactPropstoHtmlAttributes = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n};\n\nvar _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\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _objectAssign = require(\"object-assign\");\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, _HelmetConstants.TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[_HelmetConstants.TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[_HelmetConstants.TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attributeKey === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT || attributeKey === _HelmetConstants.TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = (0, _objectAssign2[\"default\"])({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([_HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.LINK, [_HelmetConstants.TAG_PROPERTIES.REL, _HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.META, [_HelmetConstants.TAG_PROPERTIES.NAME, _HelmetConstants.TAG_PROPERTIES.CHARSET, _HelmetConstants.TAG_PROPERTIES.HTTPEQUIV, _HelmetConstants.TAG_PROPERTIES.PROPERTY, _HelmetConstants.TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.NOSCRIPT, [_HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.SCRIPT, [_HelmetConstants.TAG_PROPERTIES.SRC, _HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.STYLE, [_HelmetConstants.TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(_HelmetConstants.TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(_HelmetConstants.TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(_HelmetConstants.TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(_HelmetConstants.TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(_HelmetConstants.TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(_HelmetConstants.TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(_HelmetConstants.TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(_HelmetConstants.TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + _HelmetConstants.HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = _HelmetConstants.SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[_HelmetConstants.REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[_HelmetConstants.HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[_HelmetConstants.HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [_react2[\"default\"].createElement(_HelmetConstants.TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[_HelmetConstants.HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = _HelmetConstants.REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || mappedAttribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return _react2[\"default\"].createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case _HelmetConstants.ATTRIBUTE_NAMES.BODY:\n case _HelmetConstants.ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(_HelmetConstants.TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(_HelmetConstants.TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(_HelmetConstants.TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(_HelmetConstants.TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(_HelmetConstants.TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nexports.convertReactPropstoHtmlAttributes = convertReactPropstoHtmlAttributes;\nexports.handleClientStateChange = handleClientStateChange;\nexports.mapStateOnServer = mapStateOnServer;\nexports.reducePropsToState = reducePropsToState;\nexports.requestAnimationFrame = requestAnimationFrame;\nexports.warn = warn;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\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 * 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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","/**\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 */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\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 * 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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * The base implementation of `_.has` 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 */\n\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;","var _Symbol = require('./_Symbol');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\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 */\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\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\n}\n\nmodule.exports = getRawTag;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\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 */\n\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;","var memoizeCapped = require('./_memoizeCapped');\n/** Used to match property names within property paths. */\n\n\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n/** Used to match backslashes in property paths. */\n\nvar reEscapeChar = /\\\\(\\\\)?/g;\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 */\n\nvar stringToPath = memoizeCapped(function (string) {\n var result = [];\n\n if (string.charCodeAt(0) === 46\n /* . */\n ) {\n result.push('');\n }\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});\nmodule.exports = stringToPath;","var memoize = require('./memoize');\n/** Used as the maximum memoize cache size. */\n\n\nvar MAX_MEMOIZE_SIZE = 500;\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 */\n\nfunction memoizeCapped(func) {\n var result = memoize(func, function (key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n\n return key;\n });\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;","var MapCache = require('./_MapCache');\n/** Error message constants. */\n\n\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 */\n\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || resolver != null && typeof resolver != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n var memoized = function memoized() {\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\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n\n memoized.cache = new (memoize.Cache || MapCache)();\n return memoized;\n} // Expose `MapCache`.\n\n\nmemoize.Cache = MapCache;\nmodule.exports = memoize;","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n\n\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\n };\n}\n\nmodule.exports = mapCacheClear;","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `Hash`.\n\n\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\nmodule.exports = Hash;","var nativeCreate = require('./_nativeCreate');\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n\n\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n\n\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n/** Used to detect host constructors (Safari). */\n\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n/** Used for built-in method references. */\n\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n/** Used to resolve the decompiled source of functions. */\n\nvar funcToString = funcProto.toString;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Used to detect if a method is native. */\n\nvar reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\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 */\n\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;","var coreJsData = require('./_coreJsData');\n/** Used to detect methods masquerading as native. */\n\n\nvar maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\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 */\n\n\nfunction isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\n\nmodule.exports = isMasked;","var root = require('./_root');\n/** Used to detect overreaching core-js shims. */\n\n\nvar coreJsData = root['__core-js_shared__'];\nmodule.exports = coreJsData;","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;","var nativeCreate = require('./_nativeCreate');\n/** Used to stand-in for `undefined` hash values. */\n\n\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\n\nfunction hashGet(key) {\n var data = this.__data__;\n\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;","var nativeCreate = require('./_nativeCreate');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\n\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;","var nativeCreate = require('./_nativeCreate');\n/** Used to stand-in for `undefined` hash values. */\n\n\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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 */\n\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;","var assocIndexOf = require('./_assocIndexOf');\n/** Used for built-in method references. */\n\n\nvar arrayProto = Array.prototype;\n/** Built-in value references. */\n\nvar splice = arrayProto.splice;\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 */\n\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n\n var lastIndex = data.length - 1;\n\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;","var assocIndexOf = require('./_assocIndexOf');\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 */\n\n\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;","var assocIndexOf = require('./_assocIndexOf');\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 */\n\n\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;","var assocIndexOf = require('./_assocIndexOf');\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 */\n\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\n return this;\n}\n\nmodule.exports = listCacheSet;","var getMapData = require('./_getMapData');\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 */\n\n\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * 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\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n}\n\nmodule.exports = isKeyable;","var getMapData = require('./_getMapData');\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 */\n\n\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;","var getMapData = require('./_getMapData');\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 */\n\n\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;","var getMapData = require('./_getMapData');\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 */\n\n\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;","var _Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar INFINITY = 1 / 0;\n/** Used to convert symbols to primitives and strings. */\n\nvar symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\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 */\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\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n\nmodule.exports = baseToString;","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar argsTag = '[object Arguments]';\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 */\n\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;","var baseClone = require('./_baseClone');\n/** Used to compose bitmasks for cloning. */\n\n\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n/**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n\nfunction cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n}\n\nmodule.exports = cloneDeepWith;","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n/** Used to compose bitmasks for cloning. */\n\n\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n/** `Object#toString` result references. */\n\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\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/** Used to identify `toStringTag` values supported by `_.clone`. */\n\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n\n if (result !== undefined) {\n return result;\n }\n\n if (!isObject(value)) {\n return value;\n }\n\n var isArr = isArray(value);\n\n if (isArr) {\n result = initCloneArray(value);\n\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n\n if (tag == objectTag || tag == argsTag || isFunc && !object) {\n result = isFlat || isFunc ? {} : initCloneObject(value);\n\n if (!isDeep) {\n return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n\n result = initCloneByTag(value, tag, isDeep);\n }\n } // Check for circular references and return its corresponding clone.\n\n\n stack || (stack = new Stack());\n var stacked = stack.get(value);\n\n if (stacked) {\n return stacked;\n }\n\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function (subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function (subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function (subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n } // Recursively populate clone (susceptible to call stack limits).\n\n\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;","var ListCache = require('./_ListCache');\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n\n\nfunction stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n}\n\nmodule.exports = stackClear;","/**\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 this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n/** Used as the size to enable large array optimizations. */\n\n\nvar LARGE_ARRAY_SIZE = 200;\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 */\n\nfunction stackSet(key, value) {\n var data = this.__data__;\n\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n\n data = this.__data__ = new MapCache(pairs);\n }\n\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;","/**\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\n return array;\n}\n\nmodule.exports = arrayEach;","var getNative = require('./_getNative');\n\nvar defineProperty = function () {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}();\n\nmodule.exports = defineProperty;","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;","/**\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\n return result;\n}\n\nmodule.exports = baseTimes;","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\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]';\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/** Used to identify `toStringTag` values of typed arrays. */\n\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\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 */\n\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\n\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n\n var result = [];\n\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n\n return result;\n}\n\nmodule.exports = baseKeys;","var overArg = require('./_overArg');\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\n\nvar nativeKeys = overArg(Object.keys, Object);\nmodule.exports = nativeKeys;","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\n\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\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\n return result;\n}\n\nmodule.exports = baseKeysIn;","/**\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\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n\n return result;\n}\n\nmodule.exports = nativeKeysIn;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar root = require('./_root');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Built-in value references. */\n\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\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 */\n\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;","/**\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\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n\n return result;\n}\n\nmodule.exports = arrayFilter;","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n/**\n * Creates an array of own and inherited enumerable property names and\n * 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 */\n\n\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar DataView = getNative(root, 'DataView');\nmodule.exports = DataView;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar Promise = getNative(root, 'Promise');\nmodule.exports = Promise;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar Set = getNative(root, 'Set');\nmodule.exports = Set;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar WeakMap = getNative(root, 'WeakMap');\nmodule.exports = WeakMap;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length); // Add properties assigned by `RegExp#exec`.\n\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n\n return result;\n}\n\nmodule.exports = initCloneArray;","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n/** `Object#toString` result references. */\n\n\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\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 * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag:\n case float64Tag:\n case int8Tag:\n case int16Tag:\n case int32Tag:\n case uint8Tag:\n case uint8ClampedTag:\n case uint16Tag:\n case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor();\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor();\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n\n\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;","var _Symbol = require('./_Symbol');\n/** Used to convert symbols to primitives and strings. */\n\n\nvar symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;","var cloneArrayBuffer = require('./_cloneArrayBuffer');\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 */\n\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\nmodule.exports = cloneTypedArray;","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\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 */\n\n\nfunction initCloneObject(object) {\n return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n}\n\nmodule.exports = initCloneObject;","var isObject = require('./isObject');\n/** Built-in value references. */\n\n\nvar objectCreate = Object.create;\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 */\n\nvar baseCreate = function () {\n function object() {}\n\n return function (proto) {\n if (!isObject(proto)) {\n return {};\n }\n\n if (objectCreate) {\n return objectCreate(proto);\n }\n\n object.prototype = proto;\n var result = new object();\n object.prototype = undefined;\n return result;\n };\n}();\n\nmodule.exports = baseCreate;","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n/* Node.js helper references. */\n\n\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n/**\n * Checks if `value` is classified as a `Map` object.\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 map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\nmodule.exports = isMap;","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar mapTag = '[object Map]';\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n/* Node.js helper references. */\n\n\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n/**\n * Checks if `value` is classified as a `Set` object.\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 set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\nmodule.exports = isSet;","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar setTag = '[object Set]';\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;","var _Symbol = require('./_Symbol'),\n copyArray = require('./_copyArray'),\n getTag = require('./_getTag'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n iteratorToArray = require('./_iteratorToArray'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray'),\n stringToArray = require('./_stringToArray'),\n values = require('./values');\n/** `Object#toString` result references. */\n\n\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n/** Built-in value references. */\n\nvar symIterator = _Symbol ? _Symbol.iterator : undefined;\n/**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n\nfunction toArray(value) {\n if (!value) {\n return [];\n }\n\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values;\n return func(value);\n}\n\nmodule.exports = toArray;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar stringTag = '[object String]';\n/**\n * Checks if `value` is classified as a `String` primitive or object.\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 a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n\nfunction isString(value) {\n return typeof value == 'string' || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\n}\n\nmodule.exports = isString;","/**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n\n return result;\n}\n\nmodule.exports = iteratorToArray;","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;","/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\";\n/** Used to compose unicode capture groups. */\n\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsZWJ = \"\\\\u200d\";\n/** Used to compose unicode regexes. */\n\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\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 values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n\n\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;","var arrayMap = require('./_arrayMap');\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n\n\nfunction baseValues(object, props) {\n return arrayMap(props, function (key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar _isSchema = _interopRequireDefault(require(\"./util/isSchema\"));\n\nvar Condition = /*#__PURE__*/function () {\n function Condition(refs, options) {\n this.refs = refs;\n\n if (typeof options === 'function') {\n this.fn = options;\n return;\n }\n\n if (!(0, _has[\"default\"])(options, 'is')) throw new TypeError('`is:` is required for `when()` conditions');\n if (!options.then && !options.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n var is = options.is,\n then = options.then,\n otherwise = options.otherwise;\n var check = typeof is === 'function' ? is : function () {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return values.every(function (value) {\n return value === is;\n });\n };\n\n this.fn = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var options = args.pop();\n var schema = args.pop();\n var branch = check.apply(void 0, args) ? then : otherwise;\n if (!branch) return undefined;\n if (typeof branch === 'function') return branch(schema);\n return schema.concat(branch.resolve(options));\n };\n }\n\n var _proto = Condition.prototype;\n\n _proto.resolve = function resolve(base, options) {\n var values = this.refs.map(function (ref) {\n return ref.getValue(options);\n });\n var schema = this.fn.apply(base, values.concat(base, options));\n if (schema === undefined || schema === base) return base;\n if (!(0, _isSchema[\"default\"])(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n };\n\n return Condition;\n}();\n\nvar _default = Condition;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = prependDeep;\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar _isSchema = _interopRequireDefault(require(\"./isSchema\"));\n\nvar isObject = function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n};\n\nfunction prependDeep(target, source) {\n for (var key in source) {\n if ((0, _has[\"default\"])(source, key)) {\n var sourceVal = source[key],\n targetVal = target[key];\n\n if (targetVal === undefined) {\n target[key] = sourceVal;\n } else if (targetVal === sourceVal) {\n continue;\n } else if ((0, _isSchema[\"default\"])(targetVal)) {\n if ((0, _isSchema[\"default\"])(sourceVal)) target[key] = sourceVal.concat(targetVal);\n } else if (isObject(targetVal)) {\n if (isObject(sourceVal)) target[key] = prependDeep(targetVal, sourceVal);\n } else if (Array.isArray(targetVal)) {\n if (Array.isArray(sourceVal)) target[key] = sourceVal.concat(targetVal);\n }\n }\n }\n\n return target;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.createErrorFactory = createErrorFactory;\nexports[\"default\"] = createValidation;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _mapValues = _interopRequireDefault(require(\"lodash/mapValues\"));\n\nvar _ValidationError = _interopRequireDefault(require(\"../ValidationError\"));\n\nvar _Reference = _interopRequireDefault(require(\"../Reference\"));\n\nvar _synchronousPromise = require(\"synchronous-promise\");\n\nvar formatError = _ValidationError[\"default\"].formatError;\n\nvar thenable = function thenable(p) {\n return p && typeof p.then === 'function' && typeof p[\"catch\"] === 'function';\n};\n\nfunction runTest(testFn, ctx, value, sync) {\n var result = testFn.call(ctx, value);\n if (!sync) return Promise.resolve(result);\n\n if (thenable(result)) {\n throw new Error(\"Validation test of type: \\\"\" + ctx.type + \"\\\" returned a Promise during a synchronous validate. \" + \"This test will finish after the validate call has returned\");\n }\n\n return _synchronousPromise.SynchronousPromise.resolve(result);\n}\n\nfunction resolveParams(oldParams, newParams, resolve) {\n return (0, _mapValues[\"default\"])((0, _extends2[\"default\"])({}, oldParams, newParams), resolve);\n}\n\nfunction createErrorFactory(_ref) {\n var value = _ref.value,\n label = _ref.label,\n resolve = _ref.resolve,\n originalValue = _ref.originalValue,\n opts = (0, _objectWithoutPropertiesLoose2[\"default\"])(_ref, [\"value\", \"label\", \"resolve\", \"originalValue\"]);\n return function createError(_temp) {\n var _ref2 = _temp === void 0 ? {} : _temp,\n _ref2$path = _ref2.path,\n path = _ref2$path === void 0 ? opts.path : _ref2$path,\n _ref2$message = _ref2.message,\n message = _ref2$message === void 0 ? opts.message : _ref2$message,\n _ref2$type = _ref2.type,\n type = _ref2$type === void 0 ? opts.name : _ref2$type,\n params = _ref2.params;\n\n params = (0, _extends2[\"default\"])({\n path: path,\n value: value,\n originalValue: originalValue,\n label: label\n }, resolveParams(opts.params, params, resolve));\n return (0, _extends2[\"default\"])(new _ValidationError[\"default\"](formatError(message, params), value, path, type), {\n params: params\n });\n };\n}\n\nfunction createValidation(options) {\n var name = options.name,\n message = options.message,\n test = options.test,\n params = options.params;\n\n function validate(_ref3) {\n var value = _ref3.value,\n path = _ref3.path,\n label = _ref3.label,\n options = _ref3.options,\n originalValue = _ref3.originalValue,\n sync = _ref3.sync,\n rest = (0, _objectWithoutPropertiesLoose2[\"default\"])(_ref3, [\"value\", \"path\", \"label\", \"options\", \"originalValue\", \"sync\"]);\n var parent = options.parent;\n\n var resolve = function resolve(item) {\n return _Reference[\"default\"].isRef(item) ? item.getValue({\n value: value,\n parent: parent,\n context: options.context\n }) : item;\n };\n\n var createError = createErrorFactory({\n message: message,\n path: path,\n value: value,\n originalValue: originalValue,\n params: params,\n label: label,\n resolve: resolve,\n name: name\n });\n var ctx = (0, _extends2[\"default\"])({\n path: path,\n parent: parent,\n type: name,\n createError: createError,\n resolve: resolve,\n options: options\n }, rest);\n return runTest(test, ctx, value, sync).then(function (validOrError) {\n if (_ValidationError[\"default\"].isError(validOrError)) throw validOrError;else if (!validOrError) throw createError();\n });\n }\n\n validate.OPTIONS = options;\n return validate;\n}","var createBaseFor = require('./_createBaseFor');\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 */\n\n\nvar baseFor = createBaseFor();\nmodule.exports = baseFor;","/**\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\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n\n return object;\n };\n}\n\nmodule.exports = createBaseFor;","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\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 */\n\n\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n\n return function (object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n/** Used to compose bitmasks for value comparisons. */\n\n\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 */\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\n object = Object(object);\n\n while (index--) {\n var data = matchData[index];\n\n if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {\n return false;\n }\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\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n\n if (!(result === undefined ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result)) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nmodule.exports = baseIsMatch;","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n/** Used to compose bitmasks for value comparisons. */\n\n\nvar COMPARE_PARTIAL_FLAG = 1;\n/** `Object#toString` result references. */\n\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\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 objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\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\n objIsArr = true;\n objIsObj = false;\n }\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack());\n return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\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 stack || (stack = new Stack());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n\n if (!isSameTag) {\n return false;\n }\n\n stack || (stack = new Stack());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\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 */\n\n\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n\n while (++index < length) {\n this.add(values[index]);\n }\n} // Add methods to `SetCache`.\n\n\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\nmodule.exports = SetCache;","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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 */\n\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n\n return this;\n}\n\nmodule.exports = setCacheAdd;","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;","/**\n * 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\n return false;\n}\n\nmodule.exports = arraySome;","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;","var _Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n/** Used to compose bitmasks for value comparisons. */\n\n\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n/** `Object#toString` result references. */\n\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]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n/** Used to convert symbols to primitives and strings. */\n\nvar symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\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 */\n\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\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 } // Assume cyclic values are equal.\n\n\n var stacked = stack.get(object);\n\n if (stacked) {\n return stacked == other;\n }\n\n bitmask |= COMPARE_UNORDERED_FLAG; // Recursively compare objects (susceptible to call stack limits).\n\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 }\n\n return false;\n}\n\nmodule.exports = equalByTag;","var getAllKeys = require('./_getAllKeys');\n/** Used to compose bitmasks for value comparisons. */\n\n\nvar COMPARE_PARTIAL_FLAG = 1;\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\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\n var index = objLength;\n\n while (index--) {\n var key = objProps[index];\n\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n } // Check that cyclic values are equal.\n\n\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n\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 ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n } // Recursively compare objects (susceptible to call stack limits).\n\n\n if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result = false;\n break;\n }\n\n skipCtor || (skipCtor = key == 'constructor');\n }\n\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal.\n\n if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\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 */\n\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 result[length] = [key, value, isStrictComparable(value)];\n }\n\n return result;\n}\n\nmodule.exports = getMatchData;","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n/** Used to compose bitmasks for value comparisons. */\n\n\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 */\n\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n\n return function (object) {\n var objValue = get(object, path);\n return objValue === undefined && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;","var baseGet = require('./_baseGet');\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 */\n\n\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\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 */\n\n\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;","/**\n * 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;","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\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 */\n\n\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function (object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;","var baseGet = require('./_baseGet');\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 */\n\n\nfunction basePropertyDeep(path) {\n return function (object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _default = BooleanSchema;\nexports[\"default\"] = _default;\n\nfunction BooleanSchema() {\n var _this = this;\n\n if (!(this instanceof BooleanSchema)) return new BooleanSchema();\n\n _mixed[\"default\"].call(this, {\n type: 'boolean'\n });\n\n this.withMutation(function () {\n _this.transform(function (value) {\n if (!this.isType(value)) {\n if (/^(true|1)$/i.test(value)) return true;\n if (/^(false|0)$/i.test(value)) return false;\n }\n\n return value;\n });\n });\n}\n\n(0, _inherits[\"default\"])(BooleanSchema, _mixed[\"default\"], {\n _typeCheck: function _typeCheck(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n});\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = StringSchema;\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _locale = require(\"./locale\");\n\nvar _isAbsent = _interopRequireDefault(require(\"./util/isAbsent\")); // eslint-disable-next-line\n\n\nvar rEmail = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i; // eslint-disable-next-line\n\nvar rUrl = /^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\n\nvar isTrimmed = function isTrimmed(value) {\n return (0, _isAbsent[\"default\"])(value) || value === value.trim();\n};\n\nfunction StringSchema() {\n var _this = this;\n\n if (!(this instanceof StringSchema)) return new StringSchema();\n\n _mixed[\"default\"].call(this, {\n type: 'string'\n });\n\n this.withMutation(function () {\n _this.transform(function (value) {\n if (this.isType(value)) return value;\n return value != null && value.toString ? value.toString() : value;\n });\n });\n}\n\n(0, _inherits[\"default\"])(StringSchema, _mixed[\"default\"], {\n _typeCheck: function _typeCheck(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n },\n _isPresent: function _isPresent(value) {\n return _mixed[\"default\"].prototype._cast.call(this, value) && value.length > 0;\n },\n length: function length(_length, message) {\n if (message === void 0) {\n message = _locale.string.length;\n }\n\n return this.test({\n message: message,\n name: 'length',\n exclusive: true,\n params: {\n length: _length\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value.length === this.resolve(_length);\n }\n });\n },\n min: function min(_min, message) {\n if (message === void 0) {\n message = _locale.string.min;\n }\n\n return this.test({\n message: message,\n name: 'min',\n exclusive: true,\n params: {\n min: _min\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value.length >= this.resolve(_min);\n }\n });\n },\n max: function max(_max, message) {\n if (message === void 0) {\n message = _locale.string.max;\n }\n\n return this.test({\n name: 'max',\n exclusive: true,\n message: message,\n params: {\n max: _max\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value.length <= this.resolve(_max);\n }\n });\n },\n matches: function matches(regex, options) {\n var excludeEmptyString = false;\n var message;\n\n if (options) {\n if (options.message || options.hasOwnProperty('excludeEmptyString')) {\n excludeEmptyString = options.excludeEmptyString;\n message = options.message;\n } else message = options;\n }\n\n return this.test({\n message: message || _locale.string.matches,\n params: {\n regex: regex\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value === '' && excludeEmptyString || regex.test(value);\n }\n });\n },\n email: function email(message) {\n if (message === void 0) {\n message = _locale.string.email;\n }\n\n return this.matches(rEmail, {\n message: message,\n excludeEmptyString: true\n });\n },\n url: function url(message) {\n if (message === void 0) {\n message = _locale.string.url;\n }\n\n return this.matches(rUrl, {\n message: message,\n excludeEmptyString: true\n });\n },\n //-- transforms --\n ensure: function ensure() {\n return this[\"default\"]('').transform(function (val) {\n return val === null ? '' : val;\n });\n },\n trim: function trim(message) {\n if (message === void 0) {\n message = _locale.string.trim;\n }\n\n return this.transform(function (val) {\n return val != null ? val.trim() : val;\n }).test({\n message: message,\n name: 'trim',\n test: isTrimmed\n });\n },\n lowercase: function lowercase(message) {\n if (message === void 0) {\n message = _locale.string.lowercase;\n }\n\n return this.transform(function (value) {\n return !(0, _isAbsent[\"default\"])(value) ? value.toLowerCase() : value;\n }).test({\n message: message,\n name: 'string_case',\n exclusive: true,\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value === value.toLowerCase();\n }\n });\n },\n uppercase: function uppercase(message) {\n if (message === void 0) {\n message = _locale.string.uppercase;\n }\n\n return this.transform(function (value) {\n return !(0, _isAbsent[\"default\"])(value) ? value.toUpperCase() : value;\n }).test({\n message: message,\n name: 'string_case',\n exclusive: true,\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value === value.toUpperCase();\n }\n });\n }\n});\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = NumberSchema;\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _locale = require(\"./locale\");\n\nvar _isAbsent = _interopRequireDefault(require(\"./util/isAbsent\"));\n\nvar isNaN = function isNaN(value) {\n return value != +value;\n};\n\nvar isInteger = function isInteger(val) {\n return (0, _isAbsent[\"default\"])(val) || val === (val | 0);\n};\n\nfunction NumberSchema() {\n var _this = this;\n\n if (!(this instanceof NumberSchema)) return new NumberSchema();\n\n _mixed[\"default\"].call(this, {\n type: 'number'\n });\n\n this.withMutation(function () {\n _this.transform(function (value) {\n var parsed = value;\n\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN; // don't use parseFloat to avoid positives on alpha-numeric strings\n\n parsed = +parsed;\n }\n\n if (this.isType(parsed)) return parsed;\n return parseFloat(parsed);\n });\n });\n}\n\n(0, _inherits[\"default\"])(NumberSchema, _mixed[\"default\"], {\n _typeCheck: function _typeCheck(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN(value);\n },\n min: function min(_min, message) {\n if (message === void 0) {\n message = _locale.number.min;\n }\n\n return this.test({\n message: message,\n name: 'min',\n exclusive: true,\n params: {\n min: _min\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value >= this.resolve(_min);\n }\n });\n },\n max: function max(_max, message) {\n if (message === void 0) {\n message = _locale.number.max;\n }\n\n return this.test({\n message: message,\n name: 'max',\n exclusive: true,\n params: {\n max: _max\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value <= this.resolve(_max);\n }\n });\n },\n lessThan: function lessThan(less, message) {\n if (message === void 0) {\n message = _locale.number.lessThan;\n }\n\n return this.test({\n message: message,\n name: 'max',\n exclusive: true,\n params: {\n less: less\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value < this.resolve(less);\n }\n });\n },\n moreThan: function moreThan(more, message) {\n if (message === void 0) {\n message = _locale.number.moreThan;\n }\n\n return this.test({\n message: message,\n name: 'min',\n exclusive: true,\n params: {\n more: more\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value > this.resolve(more);\n }\n });\n },\n positive: function positive(msg) {\n if (msg === void 0) {\n msg = _locale.number.positive;\n }\n\n return this.moreThan(0, msg);\n },\n negative: function negative(msg) {\n if (msg === void 0) {\n msg = _locale.number.negative;\n }\n\n return this.lessThan(0, msg);\n },\n integer: function integer(message) {\n if (message === void 0) {\n message = _locale.number.integer;\n }\n\n return this.test({\n name: 'integer',\n message: message,\n test: isInteger\n });\n },\n truncate: function truncate() {\n return this.transform(function (value) {\n return !(0, _isAbsent[\"default\"])(value) ? value | 0 : value;\n });\n },\n round: function round(method) {\n var avail = ['ceil', 'floor', 'round', 'trunc'];\n method = method && method.toLowerCase() || 'round'; // this exists for symemtry with the new Math.trunc\n\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(function (value) {\n return !(0, _isAbsent[\"default\"])(value) ? Math[method](value) : value;\n });\n }\n});\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _isodate = _interopRequireDefault(require(\"./util/isodate\"));\n\nvar _locale = require(\"./locale\");\n\nvar _isAbsent = _interopRequireDefault(require(\"./util/isAbsent\"));\n\nvar _Reference = _interopRequireDefault(require(\"./Reference\"));\n\nvar invalidDate = new Date('');\n\nvar isDate = function isDate(obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n};\n\nvar _default = DateSchema;\nexports[\"default\"] = _default;\n\nfunction DateSchema() {\n var _this = this;\n\n if (!(this instanceof DateSchema)) return new DateSchema();\n\n _mixed[\"default\"].call(this, {\n type: 'date'\n });\n\n this.withMutation(function () {\n _this.transform(function (value) {\n if (this.isType(value)) return value;\n value = (0, _isodate[\"default\"])(value);\n return value ? new Date(value) : invalidDate;\n });\n });\n}\n\n(0, _inherits[\"default\"])(DateSchema, _mixed[\"default\"], {\n _typeCheck: function _typeCheck(v) {\n return isDate(v) && !isNaN(v.getTime());\n },\n min: function min(_min, message) {\n if (message === void 0) {\n message = _locale.date.min;\n }\n\n var limit = _min;\n\n if (!_Reference[\"default\"].isRef(limit)) {\n limit = this.cast(_min);\n if (!this._typeCheck(limit)) throw new TypeError('`min` must be a Date or a value that can be `cast()` to a Date');\n }\n\n return this.test({\n message: message,\n name: 'min',\n exclusive: true,\n params: {\n min: _min\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value >= this.resolve(limit);\n }\n });\n },\n max: function max(_max, message) {\n if (message === void 0) {\n message = _locale.date.max;\n }\n\n var limit = _max;\n\n if (!_Reference[\"default\"].isRef(limit)) {\n limit = this.cast(_max);\n if (!this._typeCheck(limit)) throw new TypeError('`max` must be a Date or a value that can be `cast()` to a Date');\n }\n\n return this.test({\n message: message,\n name: 'max',\n exclusive: true,\n params: {\n max: _max\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value <= this.resolve(limit);\n }\n });\n }\n});\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = parseIsoDate;\n/* eslint-disable */\n\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover \n * Released under MIT license.\n */\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\n\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\n\nfunction parseIsoDate(date) {\n var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n minutesOffset = 0,\n timestamp,\n struct;\n\n if (struct = isoReg.exec(date)) {\n // avoid NaN timestamps caused by “undefined” values being passed to Date.UTC\n for (var i = 0, k; k = numericKeys[i]; ++i) {\n struct[k] = +struct[k] || 0;\n } // allow undefined days and months\n\n\n struct[2] = (+struct[2] || 1) - 1;\n struct[3] = +struct[3] || 1; // allow arbitrary sub-second precision beyond milliseconds\n\n struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0; // timestamps without timezone identifiers should be considered local time\n\n if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n if (struct[8] !== 'Z' && struct[9] !== undefined) {\n minutesOffset = struct[10] * 60 + struct[11];\n if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n }\n\n timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n }\n } else timestamp = Date.parse ? Date.parse(date) : NaN;\n\n return timestamp;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = ObjectSchema;\n\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/taggedTemplateLiteralLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar _snakeCase2 = _interopRequireDefault(require(\"lodash/snakeCase\"));\n\nvar _camelCase2 = _interopRequireDefault(require(\"lodash/camelCase\"));\n\nvar _mapKeys = _interopRequireDefault(require(\"lodash/mapKeys\"));\n\nvar _mapValues = _interopRequireDefault(require(\"lodash/mapValues\"));\n\nvar _propertyExpr = require(\"property-expr\");\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _locale = require(\"./locale.js\");\n\nvar _sortFields = _interopRequireDefault(require(\"./util/sortFields\"));\n\nvar _sortByKeyOrder = _interopRequireDefault(require(\"./util/sortByKeyOrder\"));\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _makePath = _interopRequireDefault(require(\"./util/makePath\"));\n\nvar _runValidations = _interopRequireWildcard(require(\"./util/runValidations\"));\n\nfunction _templateObject2() {\n var data = (0, _taggedTemplateLiteralLoose2[\"default\"])([\"\", \".\", \"\"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = (0, _taggedTemplateLiteralLoose2[\"default\"])([\"\", \".\", \"\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nvar isObject = function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n};\n\nfunction unknown(ctx, value) {\n var known = Object.keys(ctx.fields);\n return Object.keys(value).filter(function (key) {\n return known.indexOf(key) === -1;\n });\n}\n\nfunction ObjectSchema(spec) {\n var _this2 = this;\n\n if (!(this instanceof ObjectSchema)) return new ObjectSchema(spec);\n\n _mixed[\"default\"].call(this, {\n type: 'object',\n \"default\": function _default() {\n var _this = this;\n\n if (!this._nodes.length) return undefined;\n var dft = {};\n\n this._nodes.forEach(function (key) {\n dft[key] = _this.fields[key][\"default\"] ? _this.fields[key][\"default\"]() : undefined;\n });\n\n return dft;\n }\n });\n\n this.fields = Object.create(null);\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(function () {\n _this2.transform(function coerce(value) {\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch (err) {\n value = null;\n }\n }\n\n if (this.isType(value)) return value;\n return null;\n });\n\n if (spec) {\n _this2.shape(spec);\n }\n });\n}\n\n(0, _inherits[\"default\"])(ObjectSchema, _mixed[\"default\"], {\n _typeCheck: function _typeCheck(value) {\n return isObject(value) || typeof value === 'function';\n },\n _cast: function _cast(_value, options) {\n var _this3 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var value = _mixed[\"default\"].prototype._cast.call(this, _value, options); //should ignore nulls here\n\n\n if (value === undefined) return this[\"default\"]();\n if (!this._typeCheck(value)) return value;\n var fields = this.fields;\n var strip = this._option('stripUnknown', options) === true;\n\n var props = this._nodes.concat(Object.keys(value).filter(function (v) {\n return _this3._nodes.indexOf(v) === -1;\n }));\n\n var intermediateValue = {}; // is filled during the transform below\n\n var innerOptions = (0, _extends2[\"default\"])({}, options, {\n parent: intermediateValue,\n __validating: false\n });\n var isChanged = false;\n props.forEach(function (prop) {\n var field = fields[prop];\n var exists = (0, _has[\"default\"])(value, prop);\n\n if (field) {\n var fieldValue;\n var strict = field._options && field._options.strict; // safe to mutate since this is fired in sequence\n\n innerOptions.path = (0, _makePath[\"default\"])(_templateObject(), options.path, prop);\n innerOptions.value = value[prop];\n field = field.resolve(innerOptions);\n\n if (field._strip === true) {\n isChanged = isChanged || prop in value;\n return;\n }\n\n fieldValue = !options.__validating || !strict ? field.cast(value[prop], innerOptions) : value[prop];\n if (fieldValue !== undefined) intermediateValue[prop] = fieldValue;\n } else if (exists && !strip) intermediateValue[prop] = value[prop];\n\n if (intermediateValue[prop] !== value[prop]) isChanged = true;\n });\n return isChanged ? intermediateValue : value;\n },\n _validate: function _validate(_value, opts) {\n var _this4 = this;\n\n if (opts === void 0) {\n opts = {};\n }\n\n var endEarly, recursive;\n var sync = opts.sync;\n var errors = [];\n var originalValue = opts.originalValue != null ? opts.originalValue : _value;\n endEarly = this._option('abortEarly', opts);\n recursive = this._option('recursive', opts);\n opts = (0, _extends2[\"default\"])({}, opts, {\n __validating: true,\n originalValue: originalValue\n });\n return _mixed[\"default\"].prototype._validate.call(this, _value, opts)[\"catch\"]((0, _runValidations.propagateErrors)(endEarly, errors)).then(function (value) {\n if (!recursive || !isObject(value)) {\n // only iterate though actual objects\n if (errors.length) throw errors[0];\n return value;\n }\n\n originalValue = originalValue || value;\n\n var validations = _this4._nodes.map(function (key) {\n var path = (0, _makePath[\"default\"])(_templateObject2(), opts.path, key);\n var field = _this4.fields[key];\n var innerOptions = (0, _extends2[\"default\"])({}, opts, {\n path: path,\n parent: value,\n originalValue: originalValue[key]\n });\n\n if (field && field.validate) {\n // inner fields are always strict:\n // 1. this isn't strict so the casting will also have cast inner values\n // 2. this is strict in which case the nested values weren't cast either\n innerOptions.strict = true;\n return field.validate(value[key], innerOptions);\n }\n\n return Promise.resolve(true);\n });\n\n return (0, _runValidations[\"default\"])({\n sync: sync,\n validations: validations,\n value: value,\n errors: errors,\n endEarly: endEarly,\n path: opts.path,\n sort: (0, _sortByKeyOrder[\"default\"])(_this4.fields)\n });\n });\n },\n concat: function concat(schema) {\n var next = _mixed[\"default\"].prototype.concat.call(this, schema);\n\n next._nodes = (0, _sortFields[\"default\"])(next.fields, next._excludedEdges);\n return next;\n },\n shape: function shape(schema, excludes) {\n if (excludes === void 0) {\n excludes = [];\n }\n\n var next = this.clone();\n var fields = (0, _extends2[\"default\"])(next.fields, schema);\n next.fields = fields;\n\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n var keys = excludes.map(function (_ref) {\n var first = _ref[0],\n second = _ref[1];\n return first + \"-\" + second;\n });\n next._excludedEdges = next._excludedEdges.concat(keys);\n }\n\n next._nodes = (0, _sortFields[\"default\"])(fields, next._excludedEdges);\n return next;\n },\n from: function from(_from, to, alias) {\n var fromGetter = (0, _propertyExpr.getter)(_from, true);\n return this.transform(function (obj) {\n if (obj == null) return obj;\n var newObj = obj;\n\n if ((0, _has[\"default\"])(obj, _from)) {\n newObj = (0, _extends2[\"default\"])({}, obj);\n if (!alias) delete newObj[_from];\n newObj[to] = fromGetter(obj);\n }\n\n return newObj;\n });\n },\n noUnknown: function noUnknown(noAllow, message) {\n if (noAllow === void 0) {\n noAllow = true;\n }\n\n if (message === void 0) {\n message = _locale.object.noUnknown;\n }\n\n if (typeof noAllow === 'string') {\n message = noAllow;\n noAllow = true;\n }\n\n var next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n test: function test(value) {\n return value == null || !noAllow || unknown(this.schema, value).length === 0;\n }\n });\n next._options.stripUnknown = noAllow;\n return next;\n },\n unknown: function unknown(allow, message) {\n if (allow === void 0) {\n allow = true;\n }\n\n if (message === void 0) {\n message = _locale.object.noUnknown;\n }\n\n return this.noUnknown(!allow, message);\n },\n transformKeys: function transformKeys(fn) {\n return this.transform(function (obj) {\n return obj && (0, _mapKeys[\"default\"])(obj, function (_, key) {\n return fn(key);\n });\n });\n },\n camelCase: function camelCase() {\n return this.transformKeys(_camelCase2[\"default\"]);\n },\n snakeCase: function snakeCase() {\n return this.transformKeys(_snakeCase2[\"default\"]);\n },\n constantCase: function constantCase() {\n return this.transformKeys(function (key) {\n return (0, _snakeCase2[\"default\"])(key).toUpperCase();\n });\n },\n describe: function describe() {\n var base = _mixed[\"default\"].prototype.describe.call(this);\n\n base.fields = (0, _mapValues[\"default\"])(this.fields, function (value) {\n return value.describe();\n });\n return base;\n }\n});\nmodule.exports = exports[\"default\"];","var createCompounder = require('./_createCompounder');\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n\n\nvar snakeCase = createCompounder(function (result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\nmodule.exports = snakeCase;","/**\n * A specialized version of `_.reduce` 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 * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n\n return accumulator;\n}\n\nmodule.exports = arrayReduce;","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\n\n\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n/** Used to compose unicode character classes. */\n\nvar rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n/** Used to compose unicode capture groups. */\n\nvar rsCombo = '[' + rsComboRange + ']';\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n\nvar reComboMark = RegExp(rsCombo, 'g');\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;","var basePropertyOf = require('./_basePropertyOf');\n/** Used to map Latin Unicode letters to basic Latin letters. */\n\n\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A',\n '\\xc1': 'A',\n '\\xc2': 'A',\n '\\xc3': 'A',\n '\\xc4': 'A',\n '\\xc5': 'A',\n '\\xe0': 'a',\n '\\xe1': 'a',\n '\\xe2': 'a',\n '\\xe3': 'a',\n '\\xe4': 'a',\n '\\xe5': 'a',\n '\\xc7': 'C',\n '\\xe7': 'c',\n '\\xd0': 'D',\n '\\xf0': 'd',\n '\\xc8': 'E',\n '\\xc9': 'E',\n '\\xca': 'E',\n '\\xcb': 'E',\n '\\xe8': 'e',\n '\\xe9': 'e',\n '\\xea': 'e',\n '\\xeb': 'e',\n '\\xcc': 'I',\n '\\xcd': 'I',\n '\\xce': 'I',\n '\\xcf': 'I',\n '\\xec': 'i',\n '\\xed': 'i',\n '\\xee': 'i',\n '\\xef': 'i',\n '\\xd1': 'N',\n '\\xf1': 'n',\n '\\xd2': 'O',\n '\\xd3': 'O',\n '\\xd4': 'O',\n '\\xd5': 'O',\n '\\xd6': 'O',\n '\\xd8': 'O',\n '\\xf2': 'o',\n '\\xf3': 'o',\n '\\xf4': 'o',\n '\\xf5': 'o',\n '\\xf6': 'o',\n '\\xf8': 'o',\n '\\xd9': 'U',\n '\\xda': 'U',\n '\\xdb': 'U',\n '\\xdc': 'U',\n '\\xf9': 'u',\n '\\xfa': 'u',\n '\\xfb': 'u',\n '\\xfc': 'u',\n '\\xdd': 'Y',\n '\\xfd': 'y',\n '\\xff': 'y',\n '\\xc6': 'Ae',\n '\\xe6': 'ae',\n '\\xde': 'Th',\n '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n \"\\u0100\": 'A',\n \"\\u0102\": 'A',\n \"\\u0104\": 'A',\n \"\\u0101\": 'a',\n \"\\u0103\": 'a',\n \"\\u0105\": 'a',\n \"\\u0106\": 'C',\n \"\\u0108\": 'C',\n \"\\u010A\": 'C',\n \"\\u010C\": 'C',\n \"\\u0107\": 'c',\n \"\\u0109\": 'c',\n \"\\u010B\": 'c',\n \"\\u010D\": 'c',\n \"\\u010E\": 'D',\n \"\\u0110\": 'D',\n \"\\u010F\": 'd',\n \"\\u0111\": 'd',\n \"\\u0112\": 'E',\n \"\\u0114\": 'E',\n \"\\u0116\": 'E',\n \"\\u0118\": 'E',\n \"\\u011A\": 'E',\n \"\\u0113\": 'e',\n \"\\u0115\": 'e',\n \"\\u0117\": 'e',\n \"\\u0119\": 'e',\n \"\\u011B\": 'e',\n \"\\u011C\": 'G',\n \"\\u011E\": 'G',\n \"\\u0120\": 'G',\n \"\\u0122\": 'G',\n \"\\u011D\": 'g',\n \"\\u011F\": 'g',\n \"\\u0121\": 'g',\n \"\\u0123\": 'g',\n \"\\u0124\": 'H',\n \"\\u0126\": 'H',\n \"\\u0125\": 'h',\n \"\\u0127\": 'h',\n \"\\u0128\": 'I',\n \"\\u012A\": 'I',\n \"\\u012C\": 'I',\n \"\\u012E\": 'I',\n \"\\u0130\": 'I',\n \"\\u0129\": 'i',\n \"\\u012B\": 'i',\n \"\\u012D\": 'i',\n \"\\u012F\": 'i',\n \"\\u0131\": 'i',\n \"\\u0134\": 'J',\n \"\\u0135\": 'j',\n \"\\u0136\": 'K',\n \"\\u0137\": 'k',\n \"\\u0138\": 'k',\n \"\\u0139\": 'L',\n \"\\u013B\": 'L',\n \"\\u013D\": 'L',\n \"\\u013F\": 'L',\n \"\\u0141\": 'L',\n \"\\u013A\": 'l',\n \"\\u013C\": 'l',\n \"\\u013E\": 'l',\n \"\\u0140\": 'l',\n \"\\u0142\": 'l',\n \"\\u0143\": 'N',\n \"\\u0145\": 'N',\n \"\\u0147\": 'N',\n \"\\u014A\": 'N',\n \"\\u0144\": 'n',\n \"\\u0146\": 'n',\n \"\\u0148\": 'n',\n \"\\u014B\": 'n',\n \"\\u014C\": 'O',\n \"\\u014E\": 'O',\n \"\\u0150\": 'O',\n \"\\u014D\": 'o',\n \"\\u014F\": 'o',\n \"\\u0151\": 'o',\n \"\\u0154\": 'R',\n \"\\u0156\": 'R',\n \"\\u0158\": 'R',\n \"\\u0155\": 'r',\n \"\\u0157\": 'r',\n \"\\u0159\": 'r',\n \"\\u015A\": 'S',\n \"\\u015C\": 'S',\n \"\\u015E\": 'S',\n \"\\u0160\": 'S',\n \"\\u015B\": 's',\n \"\\u015D\": 's',\n \"\\u015F\": 's',\n \"\\u0161\": 's',\n \"\\u0162\": 'T',\n \"\\u0164\": 'T',\n \"\\u0166\": 'T',\n \"\\u0163\": 't',\n \"\\u0165\": 't',\n \"\\u0167\": 't',\n \"\\u0168\": 'U',\n \"\\u016A\": 'U',\n \"\\u016C\": 'U',\n \"\\u016E\": 'U',\n \"\\u0170\": 'U',\n \"\\u0172\": 'U',\n \"\\u0169\": 'u',\n \"\\u016B\": 'u',\n \"\\u016D\": 'u',\n \"\\u016F\": 'u',\n \"\\u0171\": 'u',\n \"\\u0173\": 'u',\n \"\\u0174\": 'W',\n \"\\u0175\": 'w',\n \"\\u0176\": 'Y',\n \"\\u0177\": 'y',\n \"\\u0178\": 'Y',\n \"\\u0179\": 'Z',\n \"\\u017B\": 'Z',\n \"\\u017D\": 'Z',\n \"\\u017A\": 'z',\n \"\\u017C\": 'z',\n \"\\u017E\": 'z',\n \"\\u0132\": 'IJ',\n \"\\u0133\": 'ij',\n \"\\u0152\": 'Oe',\n \"\\u0153\": 'oe',\n \"\\u0149\": \"'n\",\n \"\\u017F\": 's'\n};\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n\nvar deburrLetter = basePropertyOf(deburredLetters);\nmodule.exports = deburrLetter;","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function (key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n\n\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;","/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = \"\\\\u2700-\\\\u27bf\",\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = \"\\\\u2000-\\\\u206f\",\n rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\",\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n/** Used to compose unicode capture groups. */\n\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = \"\\\\u200d\";\n/** Used to compose unicode regexes. */\n\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n/** Used to match complex or compound words. */\n\nvar reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n\n\nvar camelCase = createCompounder(function (result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\nmodule.exports = camelCase;","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n\n\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;","var createCaseFirst = require('./_createCaseFirst');\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\n\n\nvar upperFirst = createCaseFirst('toUpperCase');\nmodule.exports = upperFirst;","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n\n\nfunction createCaseFirst(methodName) {\n return function (string) {\n string = toString(string);\n var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined;\n var chr = strSymbols ? strSymbols[0] : string.charAt(0);\n var trailing = strSymbols ? castSlice(strSymbols, 1).join('') : string.slice(1);\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;","var baseSlice = require('./_baseSlice');\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n\n\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return !start && end >= length ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n\n end = end > length ? length : end;\n\n if (end < 0) {\n end += length;\n }\n\n length = start > end ? 0 : end - start >>> 0;\n start >>>= 0;\n var result = Array(length);\n\n while (++index < length) {\n result[index] = array[index + start];\n }\n\n return result;\n}\n\nmodule.exports = baseSlice;","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.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 the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n\n\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n baseForOwn(object, function (value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nmodule.exports = mapKeys;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = sortFields;\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar _toposort = _interopRequireDefault(require(\"toposort\"));\n\nvar _propertyExpr = require(\"property-expr\");\n\nvar _Reference = _interopRequireDefault(require(\"../Reference\"));\n\nvar _isSchema = _interopRequireDefault(require(\"./isSchema\"));\n\nfunction sortFields(fields, excludes) {\n if (excludes === void 0) {\n excludes = [];\n }\n\n var edges = [],\n nodes = [];\n\n function addNode(depPath, key) {\n var node = (0, _propertyExpr.split)(depPath)[0];\n if (!~nodes.indexOf(node)) nodes.push(node);\n if (!~excludes.indexOf(key + \"-\" + node)) edges.push([key, node]);\n }\n\n for (var key in fields) {\n if ((0, _has[\"default\"])(fields, key)) {\n var value = fields[key];\n if (!~nodes.indexOf(key)) nodes.push(key);\n if (_Reference[\"default\"].isRef(value) && value.isSibling) addNode(value.path, key);else if ((0, _isSchema[\"default\"])(value) && value._deps) value._deps.forEach(function (path) {\n return addNode(path, key);\n });\n }\n }\n\n return _toposort[\"default\"].array(nodes, edges).reverse();\n}\n\nmodule.exports = exports[\"default\"];","/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\nmodule.exports = function (edges) {\n return toposort(uniqueNodes(edges), edges);\n};\n\nmodule.exports.array = toposort;\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length,\n sorted = new Array(cursor),\n visited = {},\n i = cursor // Better data structures make algorithm much faster.\n ,\n outgoingEdges = makeOutgoingEdges(edges),\n nodesHash = makeNodesHash(nodes); // check for unknown nodes\n\n edges.forEach(function (edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.');\n }\n });\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set());\n }\n\n return sorted;\n\n function visit(node, i, predecessors) {\n if (predecessors.has(node)) {\n var nodeRep;\n\n try {\n nodeRep = \", node was:\" + JSON.stringify(node);\n } catch (e) {\n nodeRep = \"\";\n }\n\n throw new Error('Cyclic dependency' + nodeRep);\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: ' + JSON.stringify(node));\n }\n\n if (visited[i]) return;\n visited[i] = true;\n var outgoing = outgoingEdges.get(node) || new Set();\n outgoing = Array.from(outgoing);\n\n if (i = outgoing.length) {\n predecessors.add(node);\n\n do {\n var child = outgoing[--i];\n visit(child, nodesHash.get(child), predecessors);\n } while (i);\n\n predecessors[\"delete\"](node);\n }\n\n sorted[--cursor] = node;\n }\n}\n\nfunction uniqueNodes(arr) {\n var res = new Set();\n\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i];\n res.add(edge[0]);\n res.add(edge[1]);\n }\n\n return Array.from(res);\n}\n\nfunction makeOutgoingEdges(arr) {\n var edges = new Map();\n\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i];\n if (!edges.has(edge[0])) edges.set(edge[0], new Set());\n if (!edges.has(edge[1])) edges.set(edge[1], new Set());\n edges.get(edge[0]).add(edge[1]);\n }\n\n return edges;\n}\n\nfunction makeNodesHash(arr) {\n var res = new Map();\n\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i);\n }\n\n return res;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = sortByKeyOrder;\n\nfunction findIndex(arr, err) {\n var idx = Infinity;\n arr.some(function (key, ii) {\n if (err.path.indexOf(key) !== -1) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\n\nfunction sortByKeyOrder(fields) {\n var keys = Object.keys(fields);\n return function (a, b) {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/taggedTemplateLiteralLoose\"));\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _isAbsent = _interopRequireDefault(require(\"./util/isAbsent\"));\n\nvar _isSchema = _interopRequireDefault(require(\"./util/isSchema\"));\n\nvar _makePath = _interopRequireDefault(require(\"./util/makePath\"));\n\nvar _printValue = _interopRequireDefault(require(\"./util/printValue\"));\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _locale = require(\"./locale\");\n\nvar _runValidations = _interopRequireWildcard(require(\"./util/runValidations\"));\n\nfunction _templateObject() {\n var data = (0, _taggedTemplateLiteralLoose2[\"default\"])([\"\", \"[\", \"]\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nvar _default = ArraySchema;\nexports[\"default\"] = _default;\n\nfunction ArraySchema(type) {\n var _this = this;\n\n if (!(this instanceof ArraySchema)) return new ArraySchema(type);\n\n _mixed[\"default\"].call(this, {\n type: 'array'\n }); // `undefined` specifically means uninitialized, as opposed to\n // \"no subtype\"\n\n\n this._subType = undefined;\n this.withMutation(function () {\n _this.transform(function (values) {\n if (typeof values === 'string') try {\n values = JSON.parse(values);\n } catch (err) {\n values = null;\n }\n return this.isType(values) ? values : null;\n });\n\n if (type) _this.of(type);\n });\n}\n\n(0, _inherits[\"default\"])(ArraySchema, _mixed[\"default\"], {\n _typeCheck: function _typeCheck(v) {\n return Array.isArray(v);\n },\n _cast: function _cast(_value, _opts) {\n var _this2 = this;\n\n var value = _mixed[\"default\"].prototype._cast.call(this, _value, _opts); //should ignore nulls here\n\n\n if (!this._typeCheck(value) || !this._subType) return value;\n var isChanged = false;\n var castArray = value.map(function (v) {\n var castElement = _this2._subType.cast(v, _opts);\n\n if (castElement !== v) {\n isChanged = true;\n }\n\n return castElement;\n });\n return isChanged ? castArray : value;\n },\n _validate: function _validate(_value, options) {\n var _this3 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var errors = [];\n var sync = options.sync;\n var path = options.path;\n var subType = this._subType;\n\n var endEarly = this._option('abortEarly', options);\n\n var recursive = this._option('recursive', options);\n\n var originalValue = options.originalValue != null ? options.originalValue : _value;\n return _mixed[\"default\"].prototype._validate.call(this, _value, options)[\"catch\"]((0, _runValidations.propagateErrors)(endEarly, errors)).then(function (value) {\n if (!recursive || !subType || !_this3._typeCheck(value)) {\n if (errors.length) throw errors[0];\n return value;\n }\n\n originalValue = originalValue || value;\n var validations = value.map(function (item, idx) {\n var path = (0, _makePath[\"default\"])(_templateObject(), options.path, idx); // object._validate note for isStrict explanation\n\n var innerOptions = (0, _extends2[\"default\"])({}, options, {\n path: path,\n strict: true,\n parent: value,\n originalValue: originalValue[idx]\n });\n if (subType.validate) return subType.validate(item, innerOptions);\n return true;\n });\n return (0, _runValidations[\"default\"])({\n sync: sync,\n path: path,\n value: value,\n errors: errors,\n endEarly: endEarly,\n validations: validations\n });\n });\n },\n _isPresent: function _isPresent(value) {\n return _mixed[\"default\"].prototype._cast.call(this, value) && value.length > 0;\n },\n of: function of(schema) {\n var next = this.clone();\n if (schema !== false && !(0, _isSchema[\"default\"])(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema, or `false` to negate a current sub-schema. ' + 'not: ' + (0, _printValue[\"default\"])(schema));\n next._subType = schema;\n return next;\n },\n min: function min(_min, message) {\n message = message || _locale.array.min;\n return this.test({\n message: message,\n name: 'min',\n exclusive: true,\n params: {\n min: _min\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value.length >= this.resolve(_min);\n }\n });\n },\n max: function max(_max, message) {\n message = message || _locale.array.max;\n return this.test({\n message: message,\n name: 'max',\n exclusive: true,\n params: {\n max: _max\n },\n test: function test(value) {\n return (0, _isAbsent[\"default\"])(value) || value.length <= this.resolve(_max);\n }\n });\n },\n ensure: function ensure() {\n var _this4 = this;\n\n return this[\"default\"](function () {\n return [];\n }).transform(function (val) {\n if (_this4.isType(val)) return val;\n return val === null ? [] : [].concat(val);\n });\n },\n compact: function compact(rejector) {\n var reject = !rejector ? function (v) {\n return !!v;\n } : function (v, i, a) {\n return !rejector(v, i, a);\n };\n return this.transform(function (values) {\n return values != null ? values.filter(reject) : values;\n });\n },\n describe: function describe() {\n var base = _mixed[\"default\"].prototype.describe.call(this);\n\n if (this._subType) base.innerType = this._subType.describe();\n return base;\n }\n});\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _isSchema = _interopRequireDefault(require(\"./util/isSchema\"));\n\nvar Lazy = /*#__PURE__*/function () {\n function Lazy(mapFn) {\n this._resolve = function (value, options) {\n var schema = mapFn(value, options);\n if (!(0, _isSchema[\"default\"])(schema)) throw new TypeError('lazy() functions must return a valid schema');\n return schema.resolve(options);\n };\n }\n\n var _proto = Lazy.prototype;\n\n _proto.resolve = function resolve(options) {\n return this._resolve(options.value, options);\n };\n\n _proto.cast = function cast(value, options) {\n return this._resolve(value, options).cast(value, options);\n };\n\n _proto.validate = function validate(value, options) {\n return this._resolve(value, options).validate(value, options);\n };\n\n _proto.validateSync = function validateSync(value, options) {\n return this._resolve(value, options).validateSync(value, options);\n };\n\n _proto.validateAt = function validateAt(path, value, options) {\n return this._resolve(value, options).validateAt(path, value, options);\n };\n\n _proto.validateSyncAt = function validateSyncAt(path, value, options) {\n return this._resolve(value, options).validateSyncAt(path, value, options);\n };\n\n return Lazy;\n}();\n\nLazy.prototype.__isYupSchema__ = true;\nvar _default = Lazy;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = setLocale;\n\nvar _locale = _interopRequireDefault(require(\"./locale\"));\n\nfunction setLocale(custom) {\n Object.keys(custom).forEach(function (type) {\n Object.keys(custom[type]).forEach(function (method) {\n _locale[\"default\"][type][method] = custom[type][method];\n });\n });\n}\n\nmodule.exports = exports[\"default\"];","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar _Symbol = root.Symbol;\nmodule.exports = _Symbol;","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\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 */\n\n\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = {\n INIT: 'redux-localstorage/INIT'\n};\nmodule.exports = exports['default'];","import { __values } from './_virtual/_tslib.js';\nimport { keys, matchesState } from './utils.js';\n\nfunction mapState(stateMap, stateId) {\n var e_1, _a;\n\n var foundStateId;\n\n try {\n for (var _b = __values(keys(stateMap)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var mappedStateId = _c.value;\n\n if (matchesState(mappedStateId, stateId) && (!foundStateId || stateId.length > foundStateId.length)) {\n foundStateId = mappedStateId;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return stateMap[foundStateId];\n}\n\nexport { mapState };","import { __values, __read } from './_virtual/_tslib.js';\nimport { State } from './State.js';\n\nfunction matchState(state, patterns, defaultValue) {\n var e_1, _a;\n\n var resolvedState = State.from(state, state instanceof State ? state.context : undefined);\n\n try {\n for (var patterns_1 = __values(patterns), patterns_1_1 = patterns_1.next(); !patterns_1_1.done; patterns_1_1 = patterns_1.next()) {\n var _b = __read(patterns_1_1.value, 2),\n stateValue = _b[0],\n getValue = _b[1];\n\n if (resolvedState.matches(stateValue)) {\n return getValue(resolvedState);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (patterns_1_1 && !patterns_1_1.done && (_a = patterns_1[\"return\"])) _a.call(patterns_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return defaultValue(resolvedState);\n}\n\nexport { matchState };","export { matchesState } from './utils.js';\nexport { mapState } from './mapState.js';\nexport { ActionTypes, SpecialTargets } from './types.js';\nimport { raise, send, sendParent, sendUpdate, log, cancel, start, stop, assign, after, done, respond, forwardTo, escalate } from './actions.js';\nexport { assign, doneInvoke, forwardTo, send, sendParent, sendUpdate } from './actions.js';\nexport { State } from './State.js';\nexport { StateNode } from './StateNode.js';\nexport { Machine, createMachine } from './Machine.js';\nexport { Interpreter, interpret, spawn } from './interpreter.js';\nexport { matchState } from './match.js';\nvar actions = {\n raise: raise,\n send: send,\n sendParent: sendParent,\n sendUpdate: sendUpdate,\n log: log,\n cancel: cancel,\n start: start,\n stop: stop,\n assign: assign,\n after: after,\n done: done,\n respond: respond,\n forwardTo: forwardTo,\n escalate: escalate\n};\nexport { actions };","function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { initRange } from \"./init.js\";\nexport var implicit = Symbol(\"implicit\");\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\",\n i = index.get(key);\n\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n\n var _iterator = _createForOfIteratorHelper(_),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var value = _step.value;\n var key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return scale;\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n return scale;\n}","'use strict';\n\nrequire('./warnAboutDeprecatedCJSRequire.js')('createMemoryHistory');\n\nmodule.exports = require('./index.js').createMemoryHistory;","'use strict';\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: 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 defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n\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 for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[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 return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","\"use strict\";\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = require(\"react\");\n\nvar xstate_1 = require(\"xstate\");\n\nvar defaultOptions = {\n immediate: false\n};\n\nfunction useMachine(machine, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var context = options.context,\n guards = options.guards,\n actions = options.actions,\n activities = options.activities,\n services = options.services,\n delays = options.delays,\n immediate = options.immediate,\n rehydratedState = options.state,\n interpreterOptions = __rest(options, [\"context\", \"guards\", \"actions\", \"activities\", \"services\", \"delays\", \"immediate\", \"state\"]);\n\n var machineConfig = {\n context: context,\n guards: guards,\n actions: actions,\n activities: activities,\n services: services,\n delays: delays\n }; // Reference the machine\n\n var machineRef = react_1.useRef(null); // Create the machine only once\n // See https://reactjs.org/docs/hooks-faq.html#how-to-create-expensive-objects-lazily\n\n if (machineRef.current === null) {\n machineRef.current = machine.withConfig(machineConfig, __assign(__assign({}, machine.context), context));\n } // Reference the service\n\n\n var serviceRef = react_1.useRef(null); // Create the service only once\n\n if (serviceRef.current === null) {\n serviceRef.current = xstate_1.interpret(machineRef.current, interpreterOptions).onTransition(function (state) {\n // Update the current machine state when a transition occurs\n if (state.changed) {\n setCurrent(state);\n }\n });\n }\n\n var service = serviceRef.current; // Make sure actions and services are kept updated when they change.\n // This mutation assignment is safe because the service instance is only used\n // in one place -- this hook's caller.\n\n react_1.useEffect(function () {\n Object.assign(service.machine.options.actions, actions);\n }, [actions]);\n react_1.useEffect(function () {\n Object.assign(service.machine.options.services, services);\n }, [services]); // Keep track of the current machine state\n\n var initialState = rehydratedState ? xstate_1.State.create(rehydratedState) : service.initialState;\n\n var _a = __read(react_1.useState(function () {\n return initialState;\n }), 2),\n current = _a[0],\n setCurrent = _a[1]; // Start service immediately (before mount) if specified in options\n\n\n if (immediate) {\n service.start();\n }\n\n react_1.useEffect(function () {\n // Start the service when the component mounts.\n // Note: the service will start only if it hasn't started already.\n //\n // If a rehydrated state was provided, use the resolved `initialState`.\n service.start(rehydratedState ? initialState : undefined);\n return function () {\n // Stop the service when the component unmounts\n service.stop();\n };\n }, []);\n return [current, service.send, service];\n}\n\nexports.useMachine = useMachine;\n\nfunction useService(service) {\n var _a = __read(react_1.useState(service.state), 2),\n current = _a[0],\n setCurrent = _a[1];\n\n react_1.useEffect(function () {\n // Set to current service state as there is a possibility\n // of a transition occurring between the initial useState()\n // initialization and useEffect() commit.\n setCurrent(service.state);\n\n var listener = function listener(state) {\n if (state.changed) {\n setCurrent(state);\n }\n };\n\n var sub = service.subscribe(listener);\n return function () {\n sub.unsubscribe();\n };\n }, [service]);\n return [current, service.send, service];\n}\n\nexports.useService = useService;\n\nvar useActor_1 = require(\"./useActor\");\n\nexports.useActor = useActor_1.useActor;","import { IS_PRODUCTION } from './environment.js';\n\nfunction getDevTools() {\n var w = window;\n\n if (!!w.__xstate__) {\n return w.__xstate__;\n }\n\n return undefined;\n}\n\nfunction registerService(service) {\n if (IS_PRODUCTION || typeof window === 'undefined') {\n return;\n }\n\n var devTools = getDevTools();\n\n if (devTools) {\n devTools.register(service);\n }\n}\n\nexport { registerService };","/**\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 */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\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}","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}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nvar ReCAPTCHA = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n\n function ReCAPTCHA() {\n var _this;\n\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = ReCAPTCHA.prototype;\n\n _proto.getValue = function getValue() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this.props.grecaptcha.getResponse(this._widgetId);\n }\n\n return null;\n };\n\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n\n return null;\n };\n\n _proto.execute = function execute() {\n var grecaptcha = this.props.grecaptcha;\n\n if (grecaptcha && this._widgetId !== undefined) {\n return grecaptcha.execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n\n _this2.execute();\n });\n };\n\n _proto.reset = function reset() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n this.props.grecaptcha.reset(this._widgetId);\n }\n };\n\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n\n _proto.explicitRender = function explicitRender() {\n if (this.props.grecaptcha && this.props.grecaptcha.render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = this.props.grecaptcha.render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge\n });\n this.captcha.appendChild(wrapper);\n }\n\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._widgetId !== undefined) {\n this.delayOfCaptchaIframeRemoving();\n this.reset();\n }\n };\n\n _proto.delayOfCaptchaIframeRemoving = function delayOfCaptchaIframeRemoving() {\n var temporaryNode = document.createElement(\"div\");\n document.body.appendChild(temporaryNode);\n temporaryNode.style.display = \"none\"; // move of the recaptcha to a temporary node\n\n while (this.captcha.firstChild) {\n temporaryNode.appendChild(this.captcha.firstChild);\n } // delete the temporary node after reset will be done\n\n\n setTimeout(function () {\n document.body.removeChild(temporaryNode);\n }, 5000);\n };\n\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\"]);\n /* eslint-enable no-unused-vars */\n\n\n return React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n\n return ReCAPTCHA;\n}(React.Component);\n\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.propTypes = {\n sitekey: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n grecaptcha: PropTypes.object,\n theme: PropTypes.oneOf([\"dark\", \"light\"]),\n type: PropTypes.oneOf([\"image\", \"audio\"]),\n tabindex: PropTypes.number,\n onExpired: PropTypes.func,\n onErrored: PropTypes.func,\n size: PropTypes.oneOf([\"compact\", \"normal\", \"invisible\"]),\n stoken: PropTypes.string,\n hl: PropTypes.string,\n badge: PropTypes.oneOf([\"bottomright\", \"bottomleft\", \"inline\"])\n};\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","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}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n var AsyncScriptLoader = /*#__PURE__*/function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n\n function AsyncScriptLoader(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n\n var _proto = AsyncScriptLoader.prototype;\n\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n\n return this.__scriptLoaderID;\n };\n\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this; // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n\n\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n\n delete window[options.callbackName];\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n\n var observers = {};\n\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n\n if (scriptId) {\n script.id = scriptId;\n }\n\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n\n observer(mapEntry);\n return true;\n });\n }\n };\n\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n\n document.body.appendChild(script);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\n\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\n\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\n\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { useRef, useCallback } from 'react';\n/**\n * useObserver\n * @param callback IntersectionObserverCallback\n * @param options IntersectionObserverInit\n * @param externalState React.ComponentState[]\n */\n\nvar useObserver = function useObserver(callback) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n root = _ref.root,\n rootMargin = _ref.rootMargin,\n threshold = _ref.threshold;\n\n var externalState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var target = useRef(null);\n var observer = useRef(null);\n var setTarget = useCallback(function (node) {\n if (target.current && observer.current) {\n observer.current.unobserve(target.current);\n observer.current.disconnect();\n observer.current = null;\n }\n\n if (node) {\n observer.current = new IntersectionObserver(callback, {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold\n });\n observer.current.observe(node);\n target.current = node;\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [target, root, rootMargin, threshold].concat(_toConsumableArray(externalState)));\n return setTarget;\n};\n\nexport default useObserver;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { useEffect, useState, useCallback } from 'react';\nimport useObserver from './useObserver';\n/**\n * useInView\n * @param options IntersectionObserverInit\n * @param externalState React.ComponentState[]\n */\n\nvar useInView = function useInView() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n root = _ref.root,\n rootMargin = _ref.rootMargin,\n threshold = _ref.threshold,\n unobserveOnEnter = _ref.unobserveOnEnter,\n target = _ref.target,\n onEnter = _ref.onEnter,\n onLeave = _ref.onLeave;\n\n var externalState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var _useState = useState({\n inView: false,\n entry: null,\n observer: null\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var callback = useCallback(function (_ref2, observer) {\n var _ref3 = _slicedToArray(_ref2, 1),\n entry = _ref3[0];\n\n var inThreshold = observer.thresholds.some(function (t) {\n return entry.intersectionRatio >= t;\n });\n var inView = inThreshold && entry.isIntersecting;\n setState({\n inView: inView,\n entry: entry,\n observer: observer\n }); // unobserveOnEnter\n\n if (inView && unobserveOnEnter) {\n observer.unobserve(entry.target);\n observer.disconnect();\n } // Legacy callbacks\n\n\n if (inView) {\n onEnter === null || onEnter === void 0 ? void 0 : onEnter(entry, observer);\n } else {\n onLeave === null || onLeave === void 0 ? void 0 : onLeave(entry, observer);\n }\n }, [onEnter, onLeave, unobserveOnEnter]);\n var setTarget = useObserver(callback, {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold\n }, [unobserveOnEnter].concat(_toConsumableArray(externalState))); // Legacy 'target' option\n\n useEffect(function () {\n if (target === null || target === void 0 ? void 0 : target.current) setTarget(target.current);\n }, [target, setTarget]);\n return [setTarget, state.inView, state.entry, state.observer];\n};\n\nexport default useInView;","import React from \"react\";\nimport { useInViewEffect } from \"react-hook-inview\";\n\nfunction LoadMoreTrigger({ onEnterView }) {\n // const [state, setState] = useState(\"\");\n\n const ref = useInViewEffect(\n ([entry], observer) => {\n if (entry.isIntersecting) {\n observer.unobserve(entry.target);\n onEnterView();\n }\n },\n { threshold: 0.5 },\n );\n\n return (\n
    \n {/* */}\n
    \n );\n}\n\nLoadMoreTrigger.propTypes = {};\n\nLoadMoreTrigger.defaultProps = {};\n\nexport default LoadMoreTrigger;\n","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}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _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/**\n * @fileOverview Surface\n */\n\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = classNames('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, true), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n version: \"1.1\"\n }), children);\n}","var _marked = /*#__PURE__*/regeneratorRuntime.mark(numbers);\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport default function (x) {\n return x === null ? NaN : +x;\n}\nexport function numbers(values, valueof) {\n var _iterator, _step, value, index, _iterator2, _step2, _value;\n\n return regeneratorRuntime.wrap(function numbers$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(valueof === undefined)) {\n _context.next = 21;\n break;\n }\n\n _iterator = _createForOfIteratorHelper(values);\n _context.prev = 2;\n\n _iterator.s();\n\n case 4:\n if ((_step = _iterator.n()).done) {\n _context.next = 11;\n break;\n }\n\n value = _step.value;\n\n if (!(value != null && (value = +value) >= value)) {\n _context.next = 9;\n break;\n }\n\n _context.next = 9;\n return value;\n\n case 9:\n _context.next = 4;\n break;\n\n case 11:\n _context.next = 16;\n break;\n\n case 13:\n _context.prev = 13;\n _context.t0 = _context[\"catch\"](2);\n\n _iterator.e(_context.t0);\n\n case 16:\n _context.prev = 16;\n\n _iterator.f();\n\n return _context.finish(16);\n\n case 19:\n _context.next = 40;\n break;\n\n case 21:\n index = -1;\n _iterator2 = _createForOfIteratorHelper(values);\n _context.prev = 23;\n\n _iterator2.s();\n\n case 25:\n if ((_step2 = _iterator2.n()).done) {\n _context.next = 32;\n break;\n }\n\n _value = _step2.value;\n\n if (!((_value = valueof(_value, ++index, values)) != null && (_value = +_value) >= _value)) {\n _context.next = 30;\n break;\n }\n\n _context.next = 30;\n return _value;\n\n case 30:\n _context.next = 25;\n break;\n\n case 32:\n _context.next = 37;\n break;\n\n case 34:\n _context.prev = 34;\n _context.t1 = _context[\"catch\"](23);\n\n _iterator2.e(_context.t1);\n\n case 37:\n _context.prev = 37;\n\n _iterator2.f();\n\n return _context.finish(37);\n\n case 40:\n case \"end\":\n return _context.stop();\n }\n }\n }, _marked, null, [[2, 13, 16, 19], [23, 34, 37, 40]]);\n}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","var originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\n\nvar FunctionToString =\n/** @class */\nfunction () {\n function FunctionToString() {\n /**\n * @inheritDoc\n */\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n\n\n FunctionToString.prototype.setupOnce = function () {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n Function.prototype.toString = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var context = this.__sentry_original__ || this;\n return originalFunctionToString.apply(context, args);\n };\n };\n /**\n * @inheritDoc\n */\n\n\n FunctionToString.id = 'FunctionToString';\n return FunctionToString;\n}();\n\nexport { FunctionToString };","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils'; // \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\n\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\n\nvar InboundFilters =\n/** @class */\nfunction () {\n function InboundFilters(_options) {\n if (_options === void 0) {\n _options = {};\n }\n\n this._options = _options;\n /**\n * @inheritDoc\n */\n\n this.name = InboundFilters.id;\n }\n /**\n * @inheritDoc\n */\n\n\n InboundFilters.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var hub = getCurrentHub();\n\n if (!hub) {\n return event;\n }\n\n var self = hub.getIntegration(InboundFilters);\n\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n\n var options = self._mergeOptions(clientOptions);\n\n if (self._shouldDropEvent(event, options)) {\n return null;\n }\n }\n\n return event;\n });\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._shouldDropEvent = function (event, options) {\n if (this._isSentryError(event, options)) {\n logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n\n if (this._isIgnoredError(event, options)) {\n logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n\n if (this._isDeniedUrl(event, options)) {\n logger.warn(\"Event dropped due to being matched by `denyUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n\n if (!this._isAllowedUrl(event, options)) {\n logger.warn(\"Event dropped due to not being matched by `allowUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n\n return false;\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._isSentryError = function (event, options) {\n if (!options.ignoreInternal) {\n return false;\n }\n\n try {\n return event && event.exception && event.exception.values && event.exception.values[0] && event.exception.values[0].type === 'SentryError' || false;\n } catch (_oO) {\n return false;\n }\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._isIgnoredError = function (event, options) {\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n\n return this._getPossibleEventMessages(event).some(function (message) {\n // Not sure why TypeScript complains here...\n return options.ignoreErrors.some(function (pattern) {\n return isMatchingPattern(message, pattern);\n });\n });\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._isDeniedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.denyUrls || !options.denyUrls.length) {\n return false;\n }\n\n var url = this._getEventFilterUrl(event);\n\n return !url ? false : options.denyUrls.some(function (pattern) {\n return isMatchingPattern(url, pattern);\n });\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._isAllowedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.allowUrls || !options.allowUrls.length) {\n return true;\n }\n\n var url = this._getEventFilterUrl(event);\n\n return !url ? true : options.allowUrls.some(function (pattern) {\n return isMatchingPattern(url, pattern);\n });\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._mergeOptions = function (clientOptions) {\n if (clientOptions === void 0) {\n clientOptions = {};\n }\n\n return {\n allowUrls: __spread(this._options.whitelistUrls || [], this._options.allowUrls || [], clientOptions.whitelistUrls || [], clientOptions.allowUrls || []),\n denyUrls: __spread(this._options.blacklistUrls || [], this._options.denyUrls || [], clientOptions.blacklistUrls || [], clientOptions.denyUrls || []),\n ignoreErrors: __spread(this._options.ignoreErrors || [], clientOptions.ignoreErrors || [], DEFAULT_IGNORE_ERRORS),\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true\n };\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._getPossibleEventMessages = function (event) {\n if (event.message) {\n return [event.message];\n }\n\n if (event.exception) {\n try {\n var _a = event.exception.values && event.exception.values[0] || {},\n _b = _a.type,\n type = _b === void 0 ? '' : _b,\n _c = _a.value,\n value = _c === void 0 ? '' : _c;\n\n return [\"\" + value, type + \": \" + value];\n } catch (oO) {\n logger.error(\"Cannot extract message for event \" + getEventDescription(event));\n return [];\n }\n }\n\n return [];\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._getEventFilterUrl = function (event) {\n try {\n if (event.stacktrace) {\n var frames_1 = event.stacktrace.frames;\n return frames_1 && frames_1[frames_1.length - 1].filename || null;\n }\n\n if (event.exception) {\n var frames_2 = event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames;\n return frames_2 && frames_2[frames_2.length - 1].filename || null;\n }\n\n return null;\n } catch (oO) {\n logger.error(\"Cannot extract url for event \" + getEventDescription(event));\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n\n\n InboundFilters.id = 'InboundFilters';\n return InboundFilters;\n}();\n\nexport { InboundFilters };","export var setPrototypeOf = Object.setPrototypeOf || ({\n __proto__: []\n} instanceof Array ? setProtoOf : mixinProperties);\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\nfunction setProtoOf(obj, proto) {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj;\n}\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\n\nfunction mixinProperties(obj, proto) {\n for (var prop in proto) {\n // eslint-disable-next-line no-prototype-builtins\n if (!obj.hasOwnProperty(prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n\n return obj;\n}","import { __extends } from \"tslib\";\nimport { setPrototypeOf } from './polyfill';\n/** An error emitted by Sentry SDKs and related utilities. */\n\nvar SentryError =\n/** @class */\nfunction (_super) {\n __extends(SentryError, _super);\n\n function SentryError(message) {\n var _newTarget = this.constructor;\n\n var _this = _super.call(this, message) || this;\n\n _this.message = message;\n _this.name = _newTarget.prototype.constructor.name;\n setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n\n return SentryError;\n}(Error);\n\nexport { SentryError };","import { __read } from \"tslib\";\nimport { SentryError } from './error';\n/** Regular expression used to parse a Dsn. */\n\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n/** Error message */\n\nvar ERROR_MESSAGE = 'Invalid Dsn';\n/** The Sentry Dsn, identifying a Sentry instance and project. */\n\nvar Dsn =\n/** @class */\nfunction () {\n /** Creates a new Dsn component */\n function Dsn(from) {\n if (typeof from === 'string') {\n this._fromString(from);\n } else {\n this._fromComponents(from);\n }\n\n this._validate();\n }\n /**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\n\n\n Dsn.prototype.toString = function (withPassword) {\n if (withPassword === void 0) {\n withPassword = false;\n }\n\n var _a = this,\n host = _a.host,\n path = _a.path,\n pass = _a.pass,\n port = _a.port,\n projectId = _a.projectId,\n protocol = _a.protocol,\n user = _a.user;\n\n return protocol + \"://\" + user + (withPassword && pass ? \":\" + pass : '') + (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId);\n };\n /** Parses a string into this Dsn. */\n\n\n Dsn.prototype._fromString = function (str) {\n var match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(ERROR_MESSAGE);\n }\n\n var _a = __read(match.slice(1), 6),\n protocol = _a[0],\n user = _a[1],\n _b = _a[2],\n pass = _b === void 0 ? '' : _b,\n host = _a[3],\n _c = _a[4],\n port = _c === void 0 ? '' : _c,\n lastPath = _a[5];\n\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop();\n }\n\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n this._fromComponents({\n host: host,\n pass: pass,\n path: path,\n projectId: projectId,\n port: port,\n protocol: protocol,\n user: user\n });\n };\n /** Maps Dsn components into this instance. */\n\n\n Dsn.prototype._fromComponents = function (components) {\n this.protocol = components.protocol;\n this.user = components.user;\n this.pass = components.pass || '';\n this.host = components.host;\n this.port = components.port || '';\n this.path = components.path || '';\n this.projectId = components.projectId;\n };\n /** Validates this Dsn and throws on error. */\n\n\n Dsn.prototype._validate = function () {\n var _this = this;\n\n ['protocol', 'user', 'host', 'projectId'].forEach(function (component) {\n if (!_this[component]) {\n throw new SentryError(ERROR_MESSAGE + \": \" + component + \" missing\");\n }\n });\n\n if (!this.projectId.match(/^\\d+$/)) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid projectId \" + this.projectId);\n }\n\n if (this.protocol !== 'http' && this.protocol !== 'https') {\n throw new SentryError(ERROR_MESSAGE + \": Invalid protocol \" + this.protocol);\n }\n\n if (this.port && isNaN(parseInt(this.port, 10))) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid port \" + this.port);\n }\n };\n\n return Dsn;\n}();\n\nexport { Dsn };","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nexport var installedIntegrations = [];\n/** Gets integration to install */\n\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = options.defaultIntegrations && __spread(options.defaultIntegrations) || [];\n var userIntegrations = options.integrations;\n var integrations = [];\n\n if (Array.isArray(userIntegrations)) {\n var userIntegrationsNames_1 = userIntegrations.map(function (i) {\n return i.name;\n });\n var pickedIntegrationsNames_1 = []; // Leave only unique default integrations, that were not overridden with provided user integrations\n\n defaultIntegrations.forEach(function (defaultIntegration) {\n if (userIntegrationsNames_1.indexOf(defaultIntegration.name) === -1 && pickedIntegrationsNames_1.indexOf(defaultIntegration.name) === -1) {\n integrations.push(defaultIntegration);\n pickedIntegrationsNames_1.push(defaultIntegration.name);\n }\n }); // Don't add same user integration twice\n\n userIntegrations.forEach(function (userIntegration) {\n if (pickedIntegrationsNames_1.indexOf(userIntegration.name) === -1) {\n integrations.push(userIntegration);\n pickedIntegrationsNames_1.push(userIntegration.name);\n }\n });\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(defaultIntegrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n } else {\n integrations = __spread(defaultIntegrations);\n } // Make sure that if present, `Debug` integration will always run last\n\n\n var integrationsNames = integrations.map(function (i) {\n return i.name;\n });\n var alwaysLastToRun = 'Debug';\n\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push.apply(integrations, __spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1)));\n }\n\n return integrations;\n}\n/** Setup given integration */\n\nexport function setupIntegration(integration) {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(\"Integration installed: \" + integration.name);\n}\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\n\nexport function setupIntegrations(options) {\n var integrations = {};\n getIntegrationsToSetup(options).forEach(function (integration) {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n return integrations;\n}","import { __assign } from \"tslib\";\n/* eslint-disable max-lines */\n\nimport { Scope } from '@sentry/hub';\nimport { Dsn, isPrimitive, isThenable, logger, normalize, SyncPromise, timestampWithMs, truncate, uuid4 } from '@sentry/utils';\nimport { setupIntegrations } from './integration';\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient.prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\n\nvar BaseClient =\n/** @class */\nfunction () {\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n function BaseClient(backendClass, options) {\n /** Array of used integrations. */\n this._integrations = {};\n /** Is the client still processing a call? */\n\n this._processing = false;\n this._backend = new backendClass(options);\n this._options = options;\n\n if (options.dsn) {\n this._dsn = new Dsn(options.dsn);\n }\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n\n BaseClient.prototype.captureException = function (exception, hint, scope) {\n var _this = this;\n\n var eventId = hint && hint.event_id;\n this._processing = true; // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n this._getBackend().eventFromException(exception, hint).then(function (event) {\n eventId = _this.captureEvent(event, hint, scope);\n });\n\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n var _this = this;\n\n var eventId = hint && hint.event_id;\n this._processing = true;\n var promisedEvent = isPrimitive(message) ? this._getBackend().eventFromMessage(\"\" + message, level, hint) : this._getBackend().eventFromException(message, hint); // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n promisedEvent.then(function (event) {\n eventId = _this.captureEvent(event, hint, scope);\n });\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.captureEvent = function (event, hint, scope) {\n var _this = this;\n\n var eventId = hint && hint.event_id;\n this._processing = true;\n\n this._processEvent(event, hint, scope).then(function (finalEvent) {\n // We need to check for finalEvent in case beforeSend returned null\n eventId = finalEvent && finalEvent.event_id;\n _this._processing = false;\n }).then(null, function (reason) {\n logger.error(reason);\n _this._processing = false;\n });\n\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.getDsn = function () {\n return this._dsn;\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.getOptions = function () {\n return this._options;\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.flush = function (timeout) {\n var _this = this;\n\n return this._isClientProcessing(timeout).then(function (status) {\n clearInterval(status.interval);\n return _this._getBackend().getTransport().close(timeout).then(function (transportFlushed) {\n return status.ready && transportFlushed;\n });\n });\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.close = function (timeout) {\n var _this = this;\n\n return this.flush(timeout).then(function (result) {\n _this.getOptions().enabled = false;\n return result;\n });\n };\n /**\n * Sets up the integrations\n */\n\n\n BaseClient.prototype.setupIntegrations = function () {\n if (this._isEnabled()) {\n this._integrations = setupIntegrations(this._options);\n }\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.getIntegration = function (integration) {\n try {\n return this._integrations[integration.id] || null;\n } catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n return null;\n }\n };\n /** Waits for the client to be done with processing. */\n\n\n BaseClient.prototype._isClientProcessing = function (timeout) {\n var _this = this;\n\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = 0;\n clearInterval(interval);\n interval = setInterval(function () {\n if (!_this._processing) {\n resolve({\n interval: interval,\n ready: true\n });\n } else {\n ticked += tick;\n\n if (timeout && ticked >= timeout) {\n resolve({\n interval: interval,\n ready: false\n });\n }\n }\n }, tick);\n });\n };\n /** Returns the current backend. */\n\n\n BaseClient.prototype._getBackend = function () {\n return this._backend;\n };\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n\n\n BaseClient.prototype._isEnabled = function () {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n };\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n\n\n BaseClient.prototype._prepareEvent = function (event, scope, hint) {\n var _this = this;\n\n var _a = this.getOptions().normalizeDepth,\n normalizeDepth = _a === void 0 ? 3 : _a;\n\n var prepared = __assign(__assign({}, event), {\n event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()),\n timestamp: event.timestamp || timestampWithMs()\n });\n\n this._applyClientOptions(prepared);\n\n this._applyIntegrationsMetadata(prepared); // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n\n\n var finalScope = scope;\n\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n } // We prepare the result here with a resolved Event.\n\n\n var result = SyncPromise.resolve(prepared); // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(function (evt) {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this._normalizeEvent(evt, normalizeDepth);\n }\n\n return evt;\n });\n };\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n\n\n BaseClient.prototype._normalizeEvent = function (event, depth) {\n if (!event) {\n return null;\n }\n\n var normalized = __assign(__assign(__assign(__assign(__assign({}, event), event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) {\n return __assign(__assign({}, b), b.data && {\n data: normalize(b.data, depth)\n });\n })\n }), event.user && {\n user: normalize(event.user, depth)\n }), event.contexts && {\n contexts: normalize(event.contexts, depth)\n }), event.extra && {\n extra: normalize(event.extra, depth)\n }); // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n\n\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n\n return normalized;\n };\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n\n\n BaseClient.prototype._applyClientOptions = function (event) {\n var _a = this.getOptions(),\n environment = _a.environment,\n release = _a.release,\n dist = _a.dist,\n _b = _a.maxValueLength,\n maxValueLength = _b === void 0 ? 250 : _b;\n\n if (event.environment === undefined && environment !== undefined) {\n event.environment = environment;\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n var exception = event.exception && event.exception.values && event.exception.values[0];\n\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n var request = event.request;\n\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n };\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param sdkInfo The sdkInfo of the event that will be filled with all integrations.\n */\n\n\n BaseClient.prototype._applyIntegrationsMetadata = function (event) {\n var sdkInfo = event.sdk;\n var integrationsArray = Object.keys(this._integrations);\n\n if (sdkInfo && integrationsArray.length > 0) {\n sdkInfo.integrations = integrationsArray;\n }\n };\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n\n\n BaseClient.prototype._sendEvent = function (event) {\n this._getBackend().sendEvent(event);\n };\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n\n\n BaseClient.prototype._processEvent = function (event, hint, scope) {\n var _this = this; // eslint-disable-next-line @typescript-eslint/unbound-method\n\n\n var _a = this.getOptions(),\n beforeSend = _a.beforeSend,\n sampleRate = _a.sampleRate;\n\n if (!this._isEnabled()) {\n return SyncPromise.reject('SDK not enabled, will not send event.');\n }\n\n var isTransaction = event.type === 'transaction'; // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n return SyncPromise.reject('This event has been sampled, will not send event.');\n }\n\n return new SyncPromise(function (resolve, reject) {\n _this._prepareEvent(event, scope, hint).then(function (prepared) {\n if (prepared === null) {\n reject('An event processor returned null, will not send event.');\n return;\n }\n\n var finalEvent = prepared;\n var isInternalException = hint && hint.data && hint.data.__sentry__ === true; // We skip beforeSend in case of transactions\n\n if (isInternalException || !beforeSend || isTransaction) {\n _this._sendEvent(finalEvent);\n\n resolve(finalEvent);\n return;\n }\n\n var beforeSendResult = beforeSend(prepared, hint);\n\n if (typeof beforeSendResult === 'undefined') {\n logger.error('`beforeSend` method has to return `null` or a valid event.');\n } else if (isThenable(beforeSendResult)) {\n _this._handleAsyncBeforeSend(beforeSendResult, resolve, reject);\n } else {\n finalEvent = beforeSendResult;\n\n if (finalEvent === null) {\n logger.log('`beforeSend` returned `null`, will not send event.');\n resolve(null);\n return;\n } // From here on we are really async\n\n\n _this._sendEvent(finalEvent);\n\n resolve(finalEvent);\n }\n }).then(null, function (reason) {\n _this.captureException(reason, {\n data: {\n __sentry__: true\n },\n originalException: reason\n });\n\n reject(\"Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: \" + reason);\n });\n });\n };\n /**\n * Resolves before send Promise and calls resolve/reject on parent SyncPromise.\n */\n\n\n BaseClient.prototype._handleAsyncBeforeSend = function (beforeSend, resolve, reject) {\n var _this = this;\n\n beforeSend.then(function (processedEvent) {\n if (processedEvent === null) {\n reject('`beforeSend` returned `null`, will not send event.');\n return;\n } // From here on we are really async\n\n\n _this._sendEvent(processedEvent);\n\n resolve(processedEvent);\n }).then(null, function (e) {\n reject(\"beforeSend rejected with \" + e);\n });\n };\n\n return BaseClient;\n}();\n\nexport { BaseClient };","/** The status of an event. */\n// eslint-disable-next-line import/export\nexport var Status;\n\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent to Sentry successfully. */\n\n Status[\"Success\"] = \"success\";\n /** The client is currently rate limited and will try again later. */\n\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The event could not be processed. */\n\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error ocurred during submission. */\n\n Status[\"Failed\"] = \"failed\";\n})(Status || (Status = {})); // eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n\n\n(function (Status) {\n /**\n * Converts a HTTP status code into a {@link Status}.\n *\n * @param code The HTTP response status code.\n * @returns The send status or {@link Status.Unknown}.\n */\n function fromHttpCode(code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n\n if (code === 429) {\n return Status.RateLimit;\n }\n\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n\n if (code >= 500) {\n return Status.Failed;\n }\n\n return Status.Unknown;\n }\n\n Status.fromHttpCode = fromHttpCode;\n})(Status || (Status = {}));","import { Status } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n/** Noop transport */\n\nvar NoopTransport =\n/** @class */\nfunction () {\n function NoopTransport() {}\n /**\n * @inheritDoc\n */\n\n\n NoopTransport.prototype.sendEvent = function (_) {\n return SyncPromise.resolve({\n reason: \"NoopTransport: Event has been skipped because no Dsn is configured.\",\n status: Status.Skipped\n });\n };\n /**\n * @inheritDoc\n */\n\n\n NoopTransport.prototype.close = function (_) {\n return SyncPromise.resolve(true);\n };\n\n return NoopTransport;\n}();\n\nexport { NoopTransport };","/** JSDoc */\n// eslint-disable-next-line import/export\nexport var Severity;\n\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {})); // eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n\n\n(function (Severity) {\n /**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\n function fromString(level) {\n switch (level) {\n case 'debug':\n return Severity.Debug;\n\n case 'info':\n return Severity.Info;\n\n case 'warn':\n case 'warning':\n return Severity.Warning;\n\n case 'error':\n return Severity.Error;\n\n case 'fatal':\n return Severity.Fatal;\n\n case 'critical':\n return Severity.Critical;\n\n case 'log':\n default:\n return Severity.Log;\n }\n }\n\n Severity.fromString = fromString;\n})(Severity || (Severity = {}));","import { logger, SentryError } from '@sentry/utils';\nimport { NoopTransport } from './transports/noop';\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\n\nvar BaseBackend =\n/** @class */\nfunction () {\n /** Creates a new backend instance. */\n function BaseBackend(options) {\n this._options = options;\n\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n\n this._transport = this._setupTransport();\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n\n BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n throw new SentryError('Backend has to implement `eventFromException` method');\n };\n /**\n * @inheritDoc\n */\n\n\n BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n };\n /**\n * @inheritDoc\n */\n\n\n BaseBackend.prototype.sendEvent = function (event) {\n this._transport.sendEvent(event).then(null, function (reason) {\n logger.error(\"Error while sending event: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n\n\n BaseBackend.prototype.getTransport = function () {\n return this._transport;\n };\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n\n\n BaseBackend.prototype._setupTransport = function () {\n return new NoopTransport();\n };\n\n return BaseBackend;\n}();\n\nexport { BaseBackend };","/**\n * This was originally forked from https://github.com/occ/TraceKit, but has since been\n * largely modified and is now maintained as part of Sentry JS SDK.\n */\nimport { __assign } from \"tslib\"; // global reference to slice\n\nvar UNKNOWN_FUNCTION = '?'; // Chromium based browsers: Chrome, Brave, new Opera, new Edge\n\nvar chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i; // gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\n\nvar gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js))(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nvar chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/; // Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\n\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\nexport function computeStackTrace(ex) {\n var stack = null;\n var popSize = 0;\n\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n popSize = ex.framesToPop;\n } else if (reactMinifiedRegexp.test(ex.message)) {\n popSize = 1;\n }\n }\n\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n\n if (stack) {\n return popFrames(stack, popSize);\n }\n } catch (e) {// no-empty\n }\n\n try {\n stack = computeStackTraceFromStackProp(ex);\n\n if (stack) {\n return popFrames(stack, popSize);\n }\n } catch (e) {// no-empty\n }\n\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, complexity\n\nfunction computeStackTraceFromStackProp(ex) {\n if (!ex || !ex.stack) {\n return null;\n }\n\n var stack = [];\n var lines = ex.stack.split('\\n');\n var isEval;\n var submatch;\n var parts;\n var element;\n\n for (var i = 0; i < lines.length; ++i) {\n if (parts = chrome.exec(lines[i])) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n element = {\n // working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `\n // prefix here seems like the quickest solution for now.\n url: parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n } else if (parts = winjs.exec(lines[i])) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n } else if (parts = gecko.exec(lines[i])) {\n isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || \"eval\";\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = ''; // no column when eval\n } else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n } else {\n continue;\n }\n\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n\n stack.push(element);\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction computeStackTraceFromStacktraceProp(ex) {\n if (!ex || !ex.stacktrace) {\n return null;\n } // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n\n\n var stacktrace = ex.stacktrace;\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n var opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\((.*)\\))? in (.*):\\s*$/i;\n var lines = stacktrace.split('\\n');\n var stack = [];\n var parts;\n\n for (var line = 0; line < lines.length; line += 2) {\n var element = null;\n\n if (parts = opera10Regex.exec(lines[line])) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null\n };\n } else if (parts = opera11Regex.exec(lines[line])) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(',') : [],\n line: +parts[1],\n column: +parts[2]\n };\n }\n\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n\n stack.push(element);\n }\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack\n };\n}\n/** Remove N number of frames from the stack */\n\n\nfunction popFrames(stacktrace, popSize) {\n try {\n return __assign(__assign({}, stacktrace), {\n stack: stacktrace.stack.slice(popSize)\n });\n } catch (e) {\n return stacktrace;\n }\n}\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n\n if (!message) {\n return 'No error message';\n }\n\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n\n return message;\n}","import { extractExceptionKeysForMessage, isEvent, normalizeToSize } from '@sentry/utils';\nimport { computeStackTrace } from './tracekit';\nvar STACKTRACE_LIMIT = 50;\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\n\nexport function exceptionFromStacktrace(stacktrace) {\n var frames = prepareFramesForEvent(stacktrace.stack);\n var exception = {\n type: stacktrace.name,\n value: stacktrace.message\n };\n\n if (frames && frames.length) {\n exception.stacktrace = {\n frames: frames\n };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n/**\n * @hidden\n */\n\nexport function eventFromPlainObject(exception, syntheticException, rejection) {\n var event = {\n exception: {\n values: [{\n type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \" + (rejection ? 'promise rejection' : 'exception') + \" captured with keys: \" + extractExceptionKeysForMessage(exception)\n }]\n },\n extra: {\n __serialized__: normalizeToSize(exception)\n }\n };\n\n if (syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1\n };\n }\n\n return event;\n}\n/**\n * @hidden\n */\n\nexport function eventFromStacktrace(stacktrace) {\n var exception = exceptionFromStacktrace(stacktrace);\n return {\n exception: {\n values: [exception]\n }\n };\n}\n/**\n * @hidden\n */\n\nexport function prepareFramesForEvent(stack) {\n if (!stack || !stack.length) {\n return [];\n }\n\n var localStack = stack;\n var firstFrameFunction = localStack[0].func || '';\n var lastFrameFunction = localStack[localStack.length - 1].func || ''; // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n } // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n\n\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n } // The frame where the crash happened, should be the last entry in the array\n\n\n return localStack.slice(0, STACKTRACE_LIMIT).map(function (frame) {\n return {\n colno: frame.column === null ? undefined : frame.column,\n filename: frame.url || localStack[0].url,\n \"function\": frame.func || '?',\n in_app: true,\n lineno: frame.line === null ? undefined : frame.line\n };\n }).reverse();\n}","import { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addExceptionTypeValue, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, SyncPromise } from '@sentry/utils';\nimport { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';\nimport { computeStackTrace } from './tracekit';\n/**\n * Builds and Event from a Exception\n * @hidden\n */\n\nexport function eventFromException(options, exception, hint) {\n var syntheticException = hint && hint.syntheticException || undefined;\n var event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: options.attachStacktrace\n });\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic'\n });\n event.level = Severity.Error;\n\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n\n return SyncPromise.resolve(event);\n}\n/**\n * Builds and Event from a Message\n * @hidden\n */\n\nexport function eventFromMessage(options, message, level, hint) {\n if (level === void 0) {\n level = Severity.Info;\n }\n\n var syntheticException = hint && hint.syntheticException || undefined;\n var event = eventFromString(message, syntheticException, {\n attachStacktrace: options.attachStacktrace\n });\n event.level = level;\n\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n\n return SyncPromise.resolve(event);\n}\n/**\n * @hidden\n */\n\nexport function eventFromUnknownInput(exception, syntheticException, options) {\n if (options === void 0) {\n options = {};\n }\n\n var event;\n\n if (isErrorEvent(exception) && exception.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception; // eslint-disable-next-line no-param-reassign\n\n exception = errorEvent.error;\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n\n if (isDOMError(exception) || isDOMException(exception)) {\n // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers)\n // then we just extract the name and message, as they don't provide anything else\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n var domException = exception;\n var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? name_1 + \": \" + domException.message : name_1;\n event = eventFromString(message, syntheticException, options);\n addExceptionTypeValue(event, message);\n return event;\n }\n\n if (isError(exception)) {\n // we have a real Error object, do nothing\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it is plain Object or Event, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n var objectException = exception;\n event = eventFromPlainObject(objectException, syntheticException, options.rejection);\n addExceptionMechanism(event, {\n synthetic: true\n });\n return event;\n } // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n\n\n event = eventFromString(exception, syntheticException, options);\n addExceptionTypeValue(event, \"\" + exception, undefined);\n addExceptionMechanism(event, {\n synthetic: true\n });\n return event;\n}\n/**\n * @hidden\n */\n\nexport function eventFromString(input, syntheticException, options) {\n if (options === void 0) {\n options = {};\n }\n\n var event = {\n message: input\n };\n\n if (options.attachStacktrace && syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1\n };\n }\n\n return event;\n}","import { timestampWithMs } from '@sentry/utils';\n/** Creates a SentryRequest from an event. */\n\nexport function eventToSentryRequest(event, api) {\n var useEnvelope = event.type === 'transaction';\n var req = {\n body: JSON.stringify(event),\n url: useEnvelope ? api.getEnvelopeEndpointWithUrlEncodedAuth() : api.getStoreEndpointWithUrlEncodedAuth()\n }; // https://develop.sentry.dev/sdk/envelopes/\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n\n if (useEnvelope) {\n var envelopeHeaders = JSON.stringify({\n event_id: event.event_id,\n // We need to add * 1000 since we divide it by 1000 by default but JS works with ms precision\n // The reason we use timestampWithMs here is that all clocks across the SDK use the same clock\n sent_at: new Date(timestampWithMs() * 1000).toISOString()\n });\n var itemHeaders = JSON.stringify({\n type: event.type\n }); // The trailing newline is optional. We intentionally don't send it to avoid\n // sending unnecessary bytes.\n //\n // const envelope = `${envelopeHeaders}\\n${itemHeaders}\\n${req.body}\\n`;\n\n var envelope = envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + req.body;\n req.body = envelope;\n }\n\n return req;\n}","import { Dsn, urlEncode } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/** Helper class to provide urls to different Sentry endpoints. */\n\nvar API =\n/** @class */\nfunction () {\n /** Create a new instance of API */\n function API(dsn) {\n this.dsn = dsn;\n this._dsnObject = new Dsn(dsn);\n }\n /** Returns the Dsn object. */\n\n\n API.prototype.getDsn = function () {\n return this._dsnObject;\n };\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n\n\n API.prototype.getBaseApiEndpoint = function () {\n var dsn = this._dsnObject;\n var protocol = dsn.protocol ? dsn.protocol + \":\" : '';\n var port = dsn.port ? \":\" + dsn.port : '';\n return protocol + \"//\" + dsn.host + port + (dsn.path ? \"/\" + dsn.path : '') + \"/api/\";\n };\n /** Returns the store endpoint URL. */\n\n\n API.prototype.getStoreEndpoint = function () {\n return this._getIngestEndpoint('store');\n };\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n\n\n API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n return this.getStoreEndpoint() + \"?\" + this._encodedAuth();\n };\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n\n\n API.prototype.getEnvelopeEndpointWithUrlEncodedAuth = function () {\n return this._getEnvelopeEndpoint() + \"?\" + this._encodedAuth();\n };\n /** Returns only the path component for the store endpoint. */\n\n\n API.prototype.getStoreEndpointPath = function () {\n var dsn = this._dsnObject;\n return (dsn.path ? \"/\" + dsn.path : '') + \"/api/\" + dsn.projectId + \"/store/\";\n };\n /**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\n\n\n API.prototype.getRequestHeaders = function (clientName, clientVersion) {\n var dsn = this._dsnObject;\n var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n header.push(\"sentry_key=\" + dsn.user);\n\n if (dsn.pass) {\n header.push(\"sentry_secret=\" + dsn.pass);\n }\n\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', ')\n };\n };\n /** Returns the url to the report dialog endpoint. */\n\n\n API.prototype.getReportDialogEndpoint = function (dialogOptions) {\n if (dialogOptions === void 0) {\n dialogOptions = {};\n }\n\n var dsn = this._dsnObject;\n var endpoint = this.getBaseApiEndpoint() + \"embed/error-page/\";\n var encodedOptions = [];\n encodedOptions.push(\"dsn=\" + dsn.toString());\n\n for (var key in dialogOptions) {\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n\n if (dialogOptions.user.name) {\n encodedOptions.push(\"name=\" + encodeURIComponent(dialogOptions.user.name));\n }\n\n if (dialogOptions.user.email) {\n encodedOptions.push(\"email=\" + encodeURIComponent(dialogOptions.user.email));\n }\n } else {\n encodedOptions.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]));\n }\n }\n\n if (encodedOptions.length) {\n return endpoint + \"?\" + encodedOptions.join('&');\n }\n\n return endpoint;\n };\n /** Returns the envelope endpoint URL. */\n\n\n API.prototype._getEnvelopeEndpoint = function () {\n return this._getIngestEndpoint('envelope');\n };\n /** Returns the ingest API endpoint for target. */\n\n\n API.prototype._getIngestEndpoint = function (target) {\n var base = this.getBaseApiEndpoint();\n var dsn = this._dsnObject;\n return \"\" + base + dsn.projectId + \"/\" + target + \"/\";\n };\n /** Returns a URL-encoded string with auth config suitable for a query string. */\n\n\n API.prototype._encodedAuth = function () {\n var dsn = this._dsnObject;\n var auth = {\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.user,\n sentry_version: SENTRY_API_VERSION\n };\n return urlEncode(auth);\n };\n\n return API;\n}();\n\nexport { API };","import { SentryError } from './error';\nimport { SyncPromise } from './syncpromise';\n/** A simple queue that holds promises. */\n\nvar PromiseBuffer =\n/** @class */\nfunction () {\n function PromiseBuffer(_limit) {\n this._limit = _limit;\n /** Internal set of queued Promises */\n\n this._buffer = [];\n }\n /**\n * Says if the buffer is ready to take more requests\n */\n\n\n PromiseBuffer.prototype.isReady = function () {\n return this._limit === undefined || this.length() < this._limit;\n };\n /**\n * Add a promise to the queue.\n *\n * @param task Can be any PromiseLike\n * @returns The original promise.\n */\n\n\n PromiseBuffer.prototype.add = function (task) {\n var _this = this;\n\n if (!this.isReady()) {\n return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n\n if (this._buffer.indexOf(task) === -1) {\n this._buffer.push(task);\n }\n\n task.then(function () {\n return _this.remove(task);\n }).then(null, function () {\n return _this.remove(task).then(null, function () {// We have to add this catch here otherwise we have an unhandledPromiseRejection\n // because it's a new Promise chain.\n });\n });\n return task;\n };\n /**\n * Remove a promise to the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n\n\n PromiseBuffer.prototype.remove = function (task) {\n var removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0];\n\n return removedTask;\n };\n /**\n * This function returns the number of unresolved promises in the queue.\n */\n\n\n PromiseBuffer.prototype.length = function () {\n return this._buffer.length;\n };\n /**\n * This will drain the whole queue, returns true if queue is empty or drained.\n * If timeout is provided and the queue takes longer to drain, the promise still resolves but with false.\n *\n * @param timeout Number in ms to wait until it resolves with false.\n */\n\n\n PromiseBuffer.prototype.drain = function (timeout) {\n var _this = this;\n\n return new SyncPromise(function (resolve) {\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n SyncPromise.all(_this._buffer).then(function () {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }).then(null, function () {\n resolve(true);\n });\n });\n };\n\n return PromiseBuffer;\n}();\n\nexport { PromiseBuffer };","import { API } from '@sentry/core';\nimport { PromiseBuffer, SentryError } from '@sentry/utils';\n/** Base Transport class implementation */\n\nvar BaseTransport =\n/** @class */\nfunction () {\n function BaseTransport(options) {\n this.options = options;\n /** A simple buffer holding all requests. */\n\n this._buffer = new PromiseBuffer(30);\n this._api = new API(this.options.dsn); // eslint-disable-next-line deprecation/deprecation\n\n this.url = this._api.getStoreEndpointWithUrlEncodedAuth();\n }\n /**\n * @inheritDoc\n */\n\n\n BaseTransport.prototype.sendEvent = function (_) {\n throw new SentryError('Transport Class has to implement `sendEvent` method');\n };\n /**\n * @inheritDoc\n */\n\n\n BaseTransport.prototype.close = function (timeout) {\n return this._buffer.drain(timeout);\n };\n\n return BaseTransport;\n}();\n\nexport { BaseTransport };","import { __extends } from \"tslib\";\nimport { eventToSentryRequest } from '@sentry/core';\nimport { Status } from '@sentry/types';\nimport { getGlobalObject, logger, parseRetryAfterHeader, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\nvar global = getGlobalObject();\n/** `fetch` based transport */\n\nvar FetchTransport =\n/** @class */\nfunction (_super) {\n __extends(FetchTransport, _super);\n\n function FetchTransport() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** Locks transport after receiving 429 response */\n\n\n _this._disabledUntil = new Date(Date.now());\n return _this;\n }\n /**\n * @inheritDoc\n */\n\n\n FetchTransport.prototype.sendEvent = function (event) {\n var _this = this;\n\n if (new Date(Date.now()) < this._disabledUntil) {\n return Promise.reject({\n event: event,\n reason: \"Transport locked till \" + this._disabledUntil + \" due to too many requests.\",\n status: 429\n });\n }\n\n var sentryReq = eventToSentryRequest(event, this._api);\n var options = {\n body: sentryReq.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: supportsReferrerPolicy() ? 'origin' : ''\n };\n\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n global.fetch(sentryReq.url, options).then(function (response) {\n var status = Status.fromHttpCode(response.status);\n\n if (status === Status.Success) {\n resolve({\n status: status\n });\n return;\n }\n\n if (status === Status.RateLimit) {\n var now = Date.now();\n /**\n * \"The name is case-insensitive.\"\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n */\n\n var retryAfterHeader = response.headers.get('Retry-After');\n _this._disabledUntil = new Date(now + parseRetryAfterHeader(now, retryAfterHeader));\n logger.warn(\"Too many requests, backing off till: \" + _this._disabledUntil);\n }\n\n reject(response);\n })[\"catch\"](reject);\n }));\n };\n\n return FetchTransport;\n}(BaseTransport);\n\nexport { FetchTransport };","import { __extends } from \"tslib\";\nimport { eventToSentryRequest } from '@sentry/core';\nimport { Status } from '@sentry/types';\nimport { logger, parseRetryAfterHeader, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/** `XHR` based transport */\n\nvar XHRTransport =\n/** @class */\nfunction (_super) {\n __extends(XHRTransport, _super);\n\n function XHRTransport() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** Locks transport after receiving 429 response */\n\n\n _this._disabledUntil = new Date(Date.now());\n return _this;\n }\n /**\n * @inheritDoc\n */\n\n\n XHRTransport.prototype.sendEvent = function (event) {\n var _this = this;\n\n if (new Date(Date.now()) < this._disabledUntil) {\n return Promise.reject({\n event: event,\n reason: \"Transport locked till \" + this._disabledUntil + \" due to too many requests.\",\n status: 429\n });\n }\n\n var sentryReq = eventToSentryRequest(event, this._api);\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n\n request.onreadystatechange = function () {\n if (request.readyState !== 4) {\n return;\n }\n\n var status = Status.fromHttpCode(request.status);\n\n if (status === Status.Success) {\n resolve({\n status: status\n });\n return;\n }\n\n if (status === Status.RateLimit) {\n var now = Date.now();\n /**\n * \"The search for the header name is case-insensitive.\"\n * https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getResponseHeader\n */\n\n var retryAfterHeader = request.getResponseHeader('Retry-After');\n _this._disabledUntil = new Date(now + parseRetryAfterHeader(now, retryAfterHeader));\n logger.warn(\"Too many requests, backing off till: \" + _this._disabledUntil);\n }\n\n reject(request);\n };\n\n request.open('POST', sentryReq.url);\n\n for (var header in _this.options.headers) {\n if (_this.options.headers.hasOwnProperty(header)) {\n request.setRequestHeader(header, _this.options.headers[header]);\n }\n }\n\n request.send(sentryReq.body);\n }));\n };\n\n return XHRTransport;\n}(BaseTransport);\n\nexport { XHRTransport };","import { __assign, __extends } from \"tslib\";\nimport { BaseBackend } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\n\nvar BrowserBackend =\n/** @class */\nfunction (_super) {\n __extends(BrowserBackend, _super);\n\n function BrowserBackend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n\n\n BrowserBackend.prototype.eventFromException = function (exception, hint) {\n return eventFromException(this._options, exception, hint);\n };\n /**\n * @inheritDoc\n */\n\n\n BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\n if (level === void 0) {\n level = Severity.Info;\n }\n\n return eventFromMessage(this._options, message, level, hint);\n };\n /**\n * @inheritDoc\n */\n\n\n BrowserBackend.prototype._setupTransport = function () {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return _super.prototype._setupTransport.call(this);\n }\n\n var transportOptions = __assign(__assign({}, this._options.transportOptions), {\n dsn: this._options.dsn\n });\n\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n\n return new XHRTransport(transportOptions);\n };\n\n return BrowserBackend;\n}(BaseBackend);\n\nexport { BrowserBackend };","import { __assign } from \"tslib\";\nimport { API, captureException, withScope } from '@sentry/core';\nimport { addExceptionMechanism, addExceptionTypeValue, logger } from '@sentry/utils';\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\n\nexport function shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\n\nexport function ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\n });\n}\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\n\nexport function wrap(fn, options, before) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // We don't wanna wrap it twice\n if (fn.__sentry__) {\n return fn;\n } // If this has already been wrapped in the past, return that wrapped function\n\n\n if (fn.__sentry_wrapped__) {\n return fn.__sentry_wrapped__;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n var sentryWrapped = function sentryWrapped() {\n var args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\n\n var wrappedArguments = args.map(function (arg) {\n return wrap(arg, options);\n });\n\n if (fn.handleEvent) {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return fn.handleEvent.apply(this, wrappedArguments);\n } // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n\n\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n var processedEvent = __assign({}, event);\n\n if (options.mechanism) {\n addExceptionTypeValue(processedEvent, undefined, undefined);\n addExceptionMechanism(processedEvent, options.mechanism);\n }\n\n processedEvent.extra = __assign(__assign({}, processedEvent.extra), {\n arguments: args\n });\n return processedEvent;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n\n\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n\n fn.prototype = fn.prototype || {};\n sentryWrapped.prototype = fn.prototype;\n Object.defineProperty(fn, '__sentry_wrapped__', {\n enumerable: false,\n value: sentryWrapped\n }); // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n\n Object.defineProperties(sentryWrapped, {\n __sentry__: {\n enumerable: false,\n value: true\n },\n __sentry_original__: {\n enumerable: false,\n value: fn\n }\n }); // Restore original function name (not all browsers allow that)\n\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function get() {\n return fn.name;\n }\n });\n } // eslint-disable-next-line no-empty\n\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n/**\n * Injects the Report Dialog script\n * @hidden\n */\n\nexport function injectReportDialog(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!options.eventId) {\n logger.error(\"Missing eventId option in showReportDialog call\");\n return;\n }\n\n if (!options.dsn) {\n logger.error(\"Missing dsn option in showReportDialog call\");\n return;\n }\n\n var script = document.createElement('script');\n script.async = true;\n script.src = new API(options.dsn).getReportDialogEndpoint(options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n (document.head || document.body).appendChild(script);\n}","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/* eslint-disable max-lines */\n\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addInstrumentationHandler, getEventDescription, getGlobalObject, htmlTreeAsString, parseUrl, safeJoin } from '@sentry/utils';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\n\nvar Breadcrumbs =\n/** @class */\nfunction () {\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n /**\n * @inheritDoc\n */\n this.name = Breadcrumbs.id;\n this._options = __assign({\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true\n }, options);\n }\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n\n\n Breadcrumbs.prototype.addSentryBreadcrumb = function (event) {\n if (!this._options.sentry) {\n return;\n }\n\n getCurrentHub().addBreadcrumb({\n category: \"sentry.\" + (event.type === 'transaction' ? 'transaction' : 'event'),\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event)\n }, {\n event: event\n });\n };\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n\n\n Breadcrumbs.prototype.setupOnce = function () {\n var _this = this;\n\n if (this._options.console) {\n addInstrumentationHandler({\n callback: function callback() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n _this._consoleBreadcrumb.apply(_this, __spread(args));\n },\n type: 'console'\n });\n }\n\n if (this._options.dom) {\n addInstrumentationHandler({\n callback: function callback() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n _this._domBreadcrumb.apply(_this, __spread(args));\n },\n type: 'dom'\n });\n }\n\n if (this._options.xhr) {\n addInstrumentationHandler({\n callback: function callback() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n _this._xhrBreadcrumb.apply(_this, __spread(args));\n },\n type: 'xhr'\n });\n }\n\n if (this._options.fetch) {\n addInstrumentationHandler({\n callback: function callback() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n _this._fetchBreadcrumb.apply(_this, __spread(args));\n },\n type: 'fetch'\n });\n }\n\n if (this._options.history) {\n addInstrumentationHandler({\n callback: function callback() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n _this._historyBreadcrumb.apply(_this, __spread(args));\n },\n type: 'history'\n });\n }\n };\n /**\n * Creates breadcrumbs from console API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Breadcrumbs.prototype._consoleBreadcrumb = function (handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console'\n },\n level: Severity.fromString(handlerData.level),\n message: safeJoin(handlerData.args, ' ')\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = \"Assertion failed: \" + (safeJoin(handlerData.args.slice(1), ' ') || 'console.assert');\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level\n });\n };\n /**\n * Creates breadcrumbs from DOM API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Breadcrumbs.prototype._domBreadcrumb = function (handlerData) {\n var target; // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n\n try {\n target = handlerData.event.target ? htmlTreeAsString(handlerData.event.target) : htmlTreeAsString(handlerData.event);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb({\n category: \"ui.\" + handlerData.name,\n message: target\n }, {\n event: handlerData.event,\n name: handlerData.name\n });\n };\n /**\n * Creates breadcrumbs from XHR API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Breadcrumbs.prototype._xhrBreadcrumb = function (handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n var _a = handlerData.xhr.__sentry_xhr__ || {},\n method = _a.method,\n url = _a.url,\n status_code = _a.status_code,\n body = _a.body;\n\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: {\n method: method,\n url: url,\n status_code: status_code\n },\n type: 'http'\n }, {\n xhr: handlerData.xhr,\n input: body\n });\n return;\n }\n };\n /**\n * Creates breadcrumbs from fetch API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Breadcrumbs.prototype._fetchBreadcrumb = function (handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http'\n }, {\n data: handlerData.error,\n input: handlerData.args\n });\n } else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: __assign(__assign({}, handlerData.fetchData), {\n status_code: handlerData.response.status\n }),\n type: 'http'\n }, {\n input: handlerData.args,\n response: handlerData.response\n });\n }\n };\n /**\n * Creates breadcrumbs from history API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Breadcrumbs.prototype._historyBreadcrumb = function (handlerData) {\n var global = getGlobalObject();\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to); // Initial pushState doesn't provide `from` information\n\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n } // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n\n\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from: from,\n to: to\n }\n });\n };\n /**\n * @inheritDoc\n */\n\n\n Breadcrumbs.id = 'Breadcrumbs';\n return Breadcrumbs;\n}();\n\nexport { Breadcrumbs };","export var SDK_NAME = 'sentry.javascript.browser';\nexport var SDK_VERSION = '5.24.2';","import { __assign, __extends, __read, __spread } from \"tslib\";\nimport { BaseClient } from '@sentry/core';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { BrowserBackend } from './backend';\nimport { injectReportDialog } from './helpers';\nimport { Breadcrumbs } from './integrations';\nimport { SDK_NAME, SDK_VERSION } from './version';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\n\nvar BrowserClient =\n/** @class */\nfunction (_super) {\n __extends(BrowserClient, _super);\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n\n\n function BrowserClient(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _super.call(this, BrowserBackend, options) || this;\n }\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n\n\n BrowserClient.prototype.showReportDialog = function (options) {\n if (options === void 0) {\n options = {};\n } // doesn't work without a document (React Native)\n\n\n var document = getGlobalObject().document;\n\n if (!document) {\n return;\n }\n\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n\n injectReportDialog(__assign(__assign({}, options), {\n dsn: options.dsn || this.getDsn()\n }));\n };\n /**\n * @inheritDoc\n */\n\n\n BrowserClient.prototype._prepareEvent = function (event, scope, hint) {\n event.platform = event.platform || 'javascript';\n event.sdk = __assign(__assign({}, event.sdk), {\n name: SDK_NAME,\n packages: __spread(event.sdk && event.sdk.packages || [], [{\n name: 'npm:@sentry/browser',\n version: SDK_VERSION\n }]),\n version: SDK_VERSION\n });\n return _super.prototype._prepareEvent.call(this, event, scope, hint);\n };\n /**\n * @inheritDoc\n */\n\n\n BrowserClient.prototype._sendEvent = function (event) {\n var integration = this.getIntegration(Breadcrumbs);\n\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n\n _super.prototype._sendEvent.call(this, event);\n };\n\n return BrowserClient;\n}(BaseClient);\n\nexport { BrowserClient };","import { __assign } from \"tslib\";\nimport { fill, getFunctionName, getGlobalObject } from '@sentry/utils';\nimport { wrap } from '../helpers';\nvar DEFAULT_EVENT_TARGET = ['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'];\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\n\nvar TryCatch =\n/** @class */\nfunction () {\n /**\n * @inheritDoc\n */\n function TryCatch(options) {\n /**\n * @inheritDoc\n */\n this.name = TryCatch.id;\n this._options = __assign({\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true\n }, options);\n }\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n\n\n TryCatch.prototype.setupOnce = function () {\n var global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', this._wrapTimeFunction.bind(this));\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', this._wrapTimeFunction.bind(this));\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this));\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this));\n }\n\n if (this._options.eventTarget) {\n var eventTarget = Array.isArray(this._options.eventTarget) ? this._options.eventTarget : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(this._wrapEventTarget.bind(this));\n }\n };\n /** JSDoc */\n\n\n TryCatch.prototype._wrapTimeFunction = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: {\n \"function\": getFunctionName(original)\n },\n handled: true,\n type: 'instrument'\n }\n });\n return original.apply(this, args);\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n TryCatch.prototype._wrapRAF = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.call(this, wrap(callback, {\n mechanism: {\n data: {\n \"function\": 'requestAnimationFrame',\n handler: getFunctionName(original)\n },\n handled: true,\n type: 'instrument'\n }\n }));\n };\n };\n /** JSDoc */\n\n\n TryCatch.prototype._wrapEventTarget = function (target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var global = getGlobalObject(); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n var proto = global[target] && global[target].prototype; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n \"function\": 'handleEvent',\n handler: getFunctionName(fn),\n target: target\n },\n handled: true,\n type: 'instrument'\n }\n });\n }\n } catch (err) {// can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.call(this, eventName, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn, {\n mechanism: {\n data: {\n \"function\": 'addEventListener',\n handler: getFunctionName(fn),\n target: target\n },\n handled: true,\n type: 'instrument'\n }\n }), options);\n };\n });\n fill(proto, 'removeEventListener', function (original) {\n return function (eventName, fn, options) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n try {\n original.call(this, eventName, fn.__sentry_wrapped__, options);\n } catch (e) {// ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n\n return original.call(this, eventName, fn, options);\n };\n });\n };\n /** JSDoc */\n\n\n TryCatch.prototype._wrapXHR = function (originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // eslint-disable-next-line @typescript-eslint/no-this-alias\n\n\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n xmlHttpRequestProps.forEach(function (prop) {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n \"function\": prop,\n handler: getFunctionName(original)\n },\n handled: true,\n type: 'instrument'\n }\n }; // If Instrument integration has been called before TryCatch, get the name of original function\n\n if (original.__sentry_original__) {\n wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__);\n } // Otherwise wrap directly\n\n\n return wrap(original, wrapOptions);\n });\n }\n });\n return originalSend.apply(this, args);\n };\n };\n /**\n * @inheritDoc\n */\n\n\n TryCatch.id = 'TryCatch';\n return TryCatch;\n}();\n\nexport { TryCatch };","import { __assign } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addInstrumentationHandler, getLocationHref, isErrorEvent, isPrimitive, isString, logger } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n/** Global handlers */\n\nvar GlobalHandlers =\n/** @class */\nfunction () {\n /** JSDoc */\n function GlobalHandlers(options) {\n /**\n * @inheritDoc\n */\n this.name = GlobalHandlers.id;\n /** JSDoc */\n\n this._onErrorHandlerInstalled = false;\n /** JSDoc */\n\n this._onUnhandledRejectionHandlerInstalled = false;\n this._options = __assign({\n onerror: true,\n onunhandledrejection: true\n }, options);\n }\n /**\n * @inheritDoc\n */\n\n\n GlobalHandlers.prototype.setupOnce = function () {\n Error.stackTraceLimit = 50;\n\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n\n this._installGlobalOnErrorHandler();\n }\n\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n\n this._installGlobalOnUnhandledRejectionHandler();\n }\n };\n /** JSDoc */\n\n\n GlobalHandlers.prototype._installGlobalOnErrorHandler = function () {\n var _this = this;\n\n if (this._onErrorHandlerInstalled) {\n return;\n }\n\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function callback(data) {\n var error = data.error;\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return;\n }\n\n var client = currentHub.getClient();\n var event = isPrimitive(error) ? _this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column) : _this._enhanceEventWithInitialFrame(eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false\n }), data.url, data.line, data.column);\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror'\n });\n currentHub.captureEvent(event, {\n originalException: error\n });\n },\n type: 'error'\n });\n this._onErrorHandlerInstalled = true;\n };\n /** JSDoc */\n\n\n GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () {\n var _this = this;\n\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function callback(e) {\n var error = e; // dig the object of the rejection out of known event types\n\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n } // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {// no-empty\n }\n\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return true;\n }\n\n var client = currentHub.getClient();\n var event = isPrimitive(error) ? _this._eventFromIncompleteRejection(error) : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true\n });\n event.level = Severity.Error;\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection'\n });\n currentHub.captureEvent(event, {\n originalException: error\n });\n return;\n },\n type: 'unhandledrejection'\n });\n this._onUnhandledRejectionHandlerInstalled = true;\n };\n /**\n * This function creates a stack from an old, error-less onerror handler.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i; // If 'message' is ErrorEvent, get real message from inside\n\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name;\n\n if (isString(message)) {\n var groups = message.match(ERROR_TYPES_RE);\n\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n }\n\n var event = {\n exception: {\n values: [{\n type: name || 'Error',\n value: message\n }]\n }\n };\n return this._enhanceEventWithInitialFrame(event, url, line, column);\n };\n /**\n * This function creates an Event from an TraceKitStackTrace that has part of it missing.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n GlobalHandlers.prototype._eventFromIncompleteRejection = function (error) {\n return {\n exception: {\n values: [{\n type: 'UnhandledRejection',\n value: \"Non-Error promise rejection captured with value: \" + error\n }]\n }\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) {\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].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno: colno,\n filename: filename,\n \"function\": '?',\n in_app: true,\n lineno: lineno\n });\n }\n\n return event;\n };\n /**\n * @inheritDoc\n */\n\n\n GlobalHandlers.id = 'GlobalHandlers';\n return GlobalHandlers;\n}();\n\nexport { GlobalHandlers };","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\n\nvar LinkedErrors =\n/** @class */\nfunction () {\n /**\n * @inheritDoc\n */\n function LinkedErrors(options) {\n if (options === void 0) {\n options = {};\n }\n /**\n * @inheritDoc\n */\n\n\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n\n\n LinkedErrors.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n\n if (self) {\n return self._handler(event, hint);\n }\n\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n\n\n LinkedErrors.prototype._handler = function (event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n\n var linkedErrors = this._walkErrorTree(hint.originalException, this._key);\n\n event.exception.values = __spread(linkedErrors, event.exception.values);\n return event;\n };\n /**\n * @inheritDoc\n */\n\n\n LinkedErrors.prototype._walkErrorTree = function (error, key, stack) {\n if (stack === void 0) {\n stack = [];\n }\n\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n\n var stacktrace = computeStackTrace(error[key]);\n var exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, __spread([exception], stack));\n };\n /**\n * @inheritDoc\n */\n\n\n LinkedErrors.id = 'LinkedErrors';\n return LinkedErrors;\n}();\n\nexport { LinkedErrors };","import { __assign } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nvar global = getGlobalObject();\n/** UserAgent */\n\nvar UserAgent =\n/** @class */\nfunction () {\n function UserAgent() {\n /**\n * @inheritDoc\n */\n this.name = UserAgent.id;\n }\n /**\n * @inheritDoc\n */\n\n\n UserAgent.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var _a, _b, _c;\n\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n } // grab as much info as exists and add it to the event\n\n\n var url = ((_a = event.request) === null || _a === void 0 ? void 0 : _a.url) || ((_b = global.location) === null || _b === void 0 ? void 0 : _b.href);\n var referrer = (global.document || {}).referrer;\n var userAgent = (global.navigator || {}).userAgent;\n\n var headers = __assign(__assign(__assign({}, (_c = event.request) === null || _c === void 0 ? void 0 : _c.headers), referrer && {\n Referer: referrer\n }), userAgent && {\n 'User-Agent': userAgent\n });\n\n var request = __assign(__assign({}, url && {\n url: url\n }), {\n headers: headers\n });\n\n return __assign(__assign({}, event), {\n request: request\n });\n }\n\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n\n\n UserAgent.id = 'UserAgent';\n return UserAgent;\n}();\n\nexport { UserAgent };","import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { getGlobalObject, SyncPromise } from '@sentry/utils';\nimport { BrowserClient } from './client';\nimport { wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\nexport var defaultIntegrations = [new CoreIntegrations.InboundFilters(), new CoreIntegrations.FunctionToString(), new TryCatch(), new Breadcrumbs(), new GlobalHandlers(), new LinkedErrors(), new UserAgent()];\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\n\nexport function init(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n\n if (options.release === undefined) {\n var window_1 = getGlobalObject(); // This supports the variable that sentry-webpack-plugin injects\n\n if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) {\n options.release = window_1.SENTRY_RELEASE.id;\n }\n }\n\n initAndBind(BrowserClient, options);\n}\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\n\nexport function showReportDialog(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!options.eventId) {\n options.eventId = getCurrentHub().lastEventId();\n }\n\n var client = getCurrentHub().getClient();\n\n if (client) {\n client.showReportDialog(options);\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\n\nexport function lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\n\nexport function forceLoad() {// Noop\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\n\nexport function onLoad(callback) {\n callback();\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\n\nexport function flush(timeout) {\n var client = getCurrentHub().getClient();\n\n if (client) {\n return client.flush(timeout);\n }\n\n return SyncPromise.reject(false);\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\n\nexport function close(timeout) {\n var client = getCurrentHub().getClient();\n\n if (client) {\n return client.close(timeout);\n }\n\n return SyncPromise.reject(false);\n}\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport function wrap(fn) {\n return internalWrap(fn)();\n}","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instanciate.\n * @param options Options to pass to the client.\n */\n\nexport function initAndBind(clientClass, options) {\n if (options.debug === true) {\n logger.enable();\n }\n\n var hub = getCurrentHub();\n var client = new clientClass(options);\n hub.bindClient(client);\n}","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}","import { pi, tau } from \"../math.js\";\nexport default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};","export default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\nexport default {\n draw: function draw(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};","export default {\n draw: function draw(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};","import { pi, tau } from \"../math.js\";\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\nexport default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n\n context.closePath();\n }\n};","var sqrt3 = Math.sqrt(3);\nexport default {\n draw: function draw(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\nexport default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport _upperFirst from \"lodash/upperFirst\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Curve\n */\n\n\nimport React, { PureComponent } from 'react';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(_upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nexport var Symbols = /*#__PURE__*/function (_PureComponent) {\n _inherits(Symbols, _PureComponent);\n\n var _super = _createSuper(Symbols);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(PureComponent);\nSymbols.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n};\n\nSymbols.registerSymbol = function (key, factory) {\n symbolFactories[\"symbol\".concat(_upperFirst(key))] = factory;\n};","import { path } from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\nexport var symbols = [circle, cross, diamond, square, star, triangle, wye];\nexport default function (type, size) {\n var context = null;\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function (_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function (_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Default Legend Content\n */\n\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n\n var _super = _createSuper(DefaultLegendContent);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n\n var finalFormatter = entry.formatter || formatter;\n var className = classNames((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n\n if (entry.type === 'none') {\n return null;\n }\n\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n\n if (!payload || !payload.length) {\n return null;\n }\n\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n\n return DefaultLegendContent;\n}(PureComponent);\nDefaultLegendContent.displayName = 'Legend';\nDefaultLegendContent.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\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 _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _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/**\n * @fileOverview Legend\n */\n\n\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\n\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, [\"ref\"]);\n\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\n\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n\n var _super = _createSuper(Legend);\n\n function Legend() {\n var _this;\n\n _classCallCheck(this, Legend);\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.wrapperNode = void 0;\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n return this.wrapperNode.getBoundingClientRect();\n }\n\n return null;\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box = this.getBBoxSnapshot() || {\n width: 0\n };\n\n hPos = {\n left: ((chartWidth || 0) - _box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box2 = this.getBBoxSnapshot() || {\n height: 0\n };\n\n vPos = {\n top: ((chartHeight || 0) - _box2.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box3 = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(_box3.width - boxWidth) > EPS || Math.abs(_box3.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: _box3.width,\n boxHeight: _box3.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(_box3);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payloadUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(PureComponent);\nLegend.displayName = 'Legend';\nLegend.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n};","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\n\n\nfunction max(array) {\n return array && array.length ? baseExtremum(array, identity, baseGt) : undefined;\n}\n\nmodule.exports = max;","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\n\n\nfunction min(array) {\n return array && array.length ? baseExtremum(array, identity, baseLt) : undefined;\n}\n\nmodule.exports = min;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport _isNil from \"lodash/isNil\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\n\nfunction defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\n\nexport var DefaultTooltipContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultTooltipContent, _PureComponent);\n\n var _super = _createSuper(DefaultTooltipContent);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? _sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var name = entry.name,\n value = entry.value;\n\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n\n value = _formatted[0];\n name = _formatted[1];\n } else {\n value = formatted;\n }\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter,\n payload = _this$props2.payload;\n\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\n var hasLabel = !_isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter) {\n finalLabel = labelFormatter(label, payload);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(PureComponent);\nDefaultTooltipContent.displayName = 'DefaultTooltipContent';\nDefaultTooltipContent.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\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 _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Tooltip\n */\n\n\nimport React, { PureComponent } from 'react';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { Global } from '../util/Global';\nimport { isNumber } from '../util/DataUtils';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\n\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\n\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip() {\n var _this;\n\n _classCallCheck(this, Tooltip);\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 boxWidth: -1,\n boxHeight: -1\n };\n _this.wrapperNode = void 0;\n\n _this.getTranslate = function (_ref) {\n var key = _ref.key,\n tooltipDimension = _ref.tooltipDimension,\n viewBoxDimension = _ref.viewBoxDimension;\n var _this$props = _this.props,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n coordinate = _this$props.coordinate,\n offset = _this$props.offset,\n position = _this$props.position,\n viewBox = _this$props.viewBox;\n\n if (position && isNumber(position[key])) {\n return position[key];\n }\n\n var restricted = coordinate[key] - tooltipDimension - offset;\n var unrestricted = coordinate[key] + offset;\n\n if (allowEscapeViewBox[key]) {\n return unrestricted;\n }\n\n var tooltipBoundary = coordinate[key] + tooltipDimension + offset;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(restricted, viewBox[key]);\n }\n\n return Math.max(unrestricted, viewBox[key]);\n };\n\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n isAnimationActive = _this$props2.isAnimationActive,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n filterNull = _this$props2.filterNull,\n payloadUniqBy = _this$props2.payloadUniqBy;\n var finalPayload = getUniqPayload(payloadUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props3 = this.props,\n content = _this$props3.content,\n viewBox = _this$props3.viewBox,\n coordinate = _this$props3.coordinate,\n position = _this$props3.position,\n active = _this$props3.active,\n wrapperStyle = _this$props3.wrapperStyle;\n\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = this.getTranslate({\n key: 'x',\n tooltipDimension: boxWidth,\n viewBoxDimension: viewBox.width\n });\n translateY = this.getTranslate({\n key: 'y',\n tooltipDimension: boxHeight,\n viewBoxDimension: viewBox.height\n });\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n })), outerStyle);\n\n if (isAnimationActive && active) {\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n })), outerStyle);\n }\n\n var cls = classNames(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n\n return Tooltip;\n}(PureComponent);\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n trigger: 'hover',\n isAnimationActive: !Global.isSsr,\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n};","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\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 IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\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","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// turn {x: {val: 1, stiffness: 1, damping: 2}, y: 2} generated by\n// `{x: spring(1, {stiffness: 1, damping: 2}), y: 2}` into {x: 1, y: 2}\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = stripStyle;\n\nfunction stripStyle(style) {\n var ret = {};\n\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","var getNative = require('./_getNative');\n/* Built-in method references that are verified to be native. */\n\n\nvar nativeCreate = getNative(Object, 'create');\nmodule.exports = nativeCreate;","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `ListCache`.\n\n\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\nmodule.exports = ListCache;","var eq = require('./eq');\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 */\n\n\nfunction assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\n}\n\nmodule.exports = assocIndexOf;","var isKeyable = require('./_isKeyable');\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 */\n\n\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\n\nmodule.exports = getMapData;","var isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar INFINITY = 1 / 0;\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 */\n\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n\nmodule.exports = toKey;","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\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 */\n\n\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\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 */\n\n\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n\n var type = _typeof(index);\n\n if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {\n return eq(object[index], value);\n }\n\n return false;\n}\n\nmodule.exports = isIterateeCall;","import { tickStep } from \"d3-array\";\nimport { format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound } from \"d3-format\";\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n\n switch (specifier.type) {\n case \"s\":\n {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\":\n {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n\n case \"f\":\n case \"%\":\n {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n\n return format(specifier);\n}","import exponent from \"./exponent.js\";\nexport default function (step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}","import exponent from \"./exponent.js\";\nexport default function (step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}","import exponent from \"./exponent.js\";\nexport default function (step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","import { TextSelection, NodeSelection, Selection, AllSelection } from 'prosemirror-state';\nimport { DOMSerializer, Fragment, Mark, DOMParser, Slice } from 'prosemirror-model';\nimport { dropPoint } from 'prosemirror-transform';\nvar result = {};\n\nif (typeof navigator != \"undefined\" && typeof document != \"undefined\") {\n var ie_edge = /Edge\\/(\\d+)/.exec(navigator.userAgent);\n var ie_upto10 = /MSIE \\d/.test(navigator.userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);\n result.mac = /Mac/.test(navigator.platform);\n var ie = result.ie = !!(ie_upto10 || ie_11up || ie_edge);\n result.ie_version = ie_upto10 ? document.documentMode || 6 : ie_11up ? +ie_11up[1] : ie_edge ? +ie_edge[1] : null;\n result.gecko = !ie && /gecko\\/(\\d+)/i.test(navigator.userAgent);\n result.gecko_version = result.gecko && +(/Firefox\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1];\n var chrome = !ie && /Chrome\\/(\\d+)/.exec(navigator.userAgent);\n result.chrome = !!chrome;\n result.chrome_version = chrome && +chrome[1]; // Is true for both iOS and iPadOS for convenience\n\n result.safari = !ie && /Apple Computer/.test(navigator.vendor);\n result.ios = result.safari && (/Mobile\\/\\w+/.test(navigator.userAgent) || navigator.maxTouchPoints > 2);\n result.android = /Android \\d/.test(navigator.userAgent);\n result.webkit = \"webkitFontSmoothing\" in document.documentElement.style;\n result.webkit_version = result.webkit && +(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1];\n}\n\nvar domIndex = function domIndex(node) {\n for (var index = 0;; index++) {\n node = node.previousSibling;\n\n if (!node) {\n return index;\n }\n }\n};\n\nvar parentNode = function parentNode(node) {\n var parent = node.parentNode;\n return parent && parent.nodeType == 11 ? parent.host : parent;\n};\n\nvar reusedRange = null; // Note that this will always return the same range, because DOM range\n// objects are every expensive, and keep slowing down subsequent DOM\n// updates, for some reason.\n\nvar textRange = function textRange(node, from, to) {\n var range = reusedRange || (reusedRange = document.createRange());\n range.setEnd(node, to == null ? node.nodeValue.length : to);\n range.setStart(node, from || 0);\n return range;\n}; // Scans forward and backward through DOM positions equivalent to the\n// given one to see if the two are in the same place (i.e. after a\n// text node vs at the end of that text node)\n\n\nvar isEquivalentPosition = function isEquivalentPosition(node, off, targetNode, targetOff) {\n return targetNode && (scanFor(node, off, targetNode, targetOff, -1) || scanFor(node, off, targetNode, targetOff, 1));\n};\n\nvar atomElements = /^(img|br|input|textarea|hr)$/i;\n\nfunction scanFor(node, off, targetNode, targetOff, dir) {\n for (;;) {\n if (node == targetNode && off == targetOff) {\n return true;\n }\n\n if (off == (dir < 0 ? 0 : nodeSize(node))) {\n var parent = node.parentNode;\n\n if (parent.nodeType != 1 || hasBlockDesc(node) || atomElements.test(node.nodeName) || node.contentEditable == \"false\") {\n return false;\n }\n\n off = domIndex(node) + (dir < 0 ? 0 : 1);\n node = parent;\n } else if (node.nodeType == 1) {\n node = node.childNodes[off + (dir < 0 ? -1 : 0)];\n\n if (node.contentEditable == \"false\") {\n return false;\n }\n\n off = dir < 0 ? nodeSize(node) : 0;\n } else {\n return false;\n }\n }\n}\n\nfunction nodeSize(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\n\nfunction isOnEdge(node, offset, parent) {\n for (var atStart = offset == 0, atEnd = offset == nodeSize(node); atStart || atEnd;) {\n if (node == parent) {\n return true;\n }\n\n var index = domIndex(node);\n node = node.parentNode;\n\n if (!node) {\n return false;\n }\n\n atStart = atStart && index == 0;\n atEnd = atEnd && index == nodeSize(node);\n }\n}\n\nfunction hasBlockDesc(dom) {\n var desc;\n\n for (var cur = dom; cur; cur = cur.parentNode) {\n if (desc = cur.pmViewDesc) {\n break;\n }\n }\n\n return desc && desc.node && desc.node.isBlock && (desc.dom == dom || desc.contentDOM == dom);\n} // Work around Chrome issue https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n// (isCollapsed inappropriately returns true in shadow dom)\n\n\nvar selectionCollapsed = function selectionCollapsed(domSel) {\n var collapsed = domSel.isCollapsed;\n\n if (collapsed && result.chrome && domSel.rangeCount && !domSel.getRangeAt(0).collapsed) {\n collapsed = false;\n }\n\n return collapsed;\n};\n\nfunction keyEvent(keyCode, key) {\n var event = document.createEvent(\"Event\");\n event.initEvent(\"keydown\", true, true);\n event.keyCode = keyCode;\n event.key = event.code = key;\n return event;\n}\n\nfunction windowRect(doc) {\n return {\n left: 0,\n right: doc.documentElement.clientWidth,\n top: 0,\n bottom: doc.documentElement.clientHeight\n };\n}\n\nfunction getSide(value, side) {\n return typeof value == \"number\" ? value : value[side];\n}\n\nfunction clientRect(node) {\n var rect = node.getBoundingClientRect(); // Make sure scrollbar width isn't included in the rectangle\n\n return {\n left: rect.left,\n right: rect.left + node.clientWidth,\n top: rect.top,\n bottom: rect.top + node.clientHeight\n };\n}\n\nfunction scrollRectIntoView(view, rect, startDOM) {\n var scrollThreshold = view.someProp(\"scrollThreshold\") || 0,\n scrollMargin = view.someProp(\"scrollMargin\") || 5;\n var doc = view.dom.ownerDocument;\n\n for (var parent = startDOM || view.dom;; parent = parentNode(parent)) {\n if (!parent) {\n break;\n }\n\n if (parent.nodeType != 1) {\n continue;\n }\n\n var atTop = parent == doc.body || parent.nodeType != 1;\n var bounding = atTop ? windowRect(doc) : clientRect(parent);\n var moveX = 0,\n moveY = 0;\n\n if (rect.top < bounding.top + getSide(scrollThreshold, \"top\")) {\n moveY = -(bounding.top - rect.top + getSide(scrollMargin, \"top\"));\n } else if (rect.bottom > bounding.bottom - getSide(scrollThreshold, \"bottom\")) {\n moveY = rect.bottom - bounding.bottom + getSide(scrollMargin, \"bottom\");\n }\n\n if (rect.left < bounding.left + getSide(scrollThreshold, \"left\")) {\n moveX = -(bounding.left - rect.left + getSide(scrollMargin, \"left\"));\n } else if (rect.right > bounding.right - getSide(scrollThreshold, \"right\")) {\n moveX = rect.right - bounding.right + getSide(scrollMargin, \"right\");\n }\n\n if (moveX || moveY) {\n if (atTop) {\n doc.defaultView.scrollBy(moveX, moveY);\n } else {\n var startX = parent.scrollLeft,\n startY = parent.scrollTop;\n\n if (moveY) {\n parent.scrollTop += moveY;\n }\n\n if (moveX) {\n parent.scrollLeft += moveX;\n }\n\n var dX = parent.scrollLeft - startX,\n dY = parent.scrollTop - startY;\n rect = {\n left: rect.left - dX,\n top: rect.top - dY,\n right: rect.right - dX,\n bottom: rect.bottom - dY\n };\n }\n }\n\n if (atTop) {\n break;\n }\n }\n} // Store the scroll position of the editor's parent nodes, along with\n// the top position of an element near the top of the editor, which\n// will be used to make sure the visible viewport remains stable even\n// when the size of the content above changes.\n\n\nfunction storeScrollPos(view) {\n var rect = view.dom.getBoundingClientRect(),\n startY = Math.max(0, rect.top);\n var refDOM, refTop;\n\n for (var x = (rect.left + rect.right) / 2, y = startY + 1; y < Math.min(innerHeight, rect.bottom); y += 5) {\n var dom = view.root.elementFromPoint(x, y);\n\n if (dom == view.dom || !view.dom.contains(dom)) {\n continue;\n }\n\n var localRect = dom.getBoundingClientRect();\n\n if (localRect.top >= startY - 20) {\n refDOM = dom;\n refTop = localRect.top;\n break;\n }\n }\n\n return {\n refDOM: refDOM,\n refTop: refTop,\n stack: scrollStack(view.dom)\n };\n}\n\nfunction scrollStack(dom) {\n var stack = [],\n doc = dom.ownerDocument;\n\n for (; dom; dom = parentNode(dom)) {\n stack.push({\n dom: dom,\n top: dom.scrollTop,\n left: dom.scrollLeft\n });\n\n if (dom == doc) {\n break;\n }\n }\n\n return stack;\n} // Reset the scroll position of the editor's parent nodes to that what\n// it was before, when storeScrollPos was called.\n\n\nfunction resetScrollPos(ref) {\n var refDOM = ref.refDOM;\n var refTop = ref.refTop;\n var stack = ref.stack;\n var newRefTop = refDOM ? refDOM.getBoundingClientRect().top : 0;\n restoreScrollStack(stack, newRefTop == 0 ? 0 : newRefTop - refTop);\n}\n\nfunction restoreScrollStack(stack, dTop) {\n for (var i = 0; i < stack.length; i++) {\n var ref = stack[i];\n var dom = ref.dom;\n var top = ref.top;\n var left = ref.left;\n\n if (dom.scrollTop != top + dTop) {\n dom.scrollTop = top + dTop;\n }\n\n if (dom.scrollLeft != left) {\n dom.scrollLeft = left;\n }\n }\n}\n\nvar preventScrollSupported = null; // Feature-detects support for .focus({preventScroll: true}), and uses\n// a fallback kludge when not supported.\n\nfunction focusPreventScroll(dom) {\n if (dom.setActive) {\n return dom.setActive();\n } // in IE\n\n\n if (preventScrollSupported) {\n return dom.focus(preventScrollSupported);\n }\n\n var stored = scrollStack(dom);\n dom.focus(preventScrollSupported == null ? {\n get preventScroll() {\n preventScrollSupported = {\n preventScroll: true\n };\n return true;\n }\n\n } : undefined);\n\n if (!preventScrollSupported) {\n preventScrollSupported = false;\n restoreScrollStack(stored, 0);\n }\n}\n\nfunction findOffsetInNode(node, coords) {\n var closest,\n dxClosest = 2e8,\n coordsClosest,\n offset = 0;\n var rowBot = coords.top,\n rowTop = coords.top;\n\n for (var child = node.firstChild, childIndex = 0; child; child = child.nextSibling, childIndex++) {\n var rects = void 0;\n\n if (child.nodeType == 1) {\n rects = child.getClientRects();\n } else if (child.nodeType == 3) {\n rects = textRange(child).getClientRects();\n } else {\n continue;\n }\n\n for (var i = 0; i < rects.length; i++) {\n var rect = rects[i];\n\n if (rect.top <= rowBot && rect.bottom >= rowTop) {\n rowBot = Math.max(rect.bottom, rowBot);\n rowTop = Math.min(rect.top, rowTop);\n var dx = rect.left > coords.left ? rect.left - coords.left : rect.right < coords.left ? coords.left - rect.right : 0;\n\n if (dx < dxClosest) {\n closest = child;\n dxClosest = dx;\n coordsClosest = dx && closest.nodeType == 3 ? {\n left: rect.right < coords.left ? rect.right : rect.left,\n top: coords.top\n } : coords;\n\n if (child.nodeType == 1 && dx) {\n offset = childIndex + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0);\n }\n\n continue;\n }\n }\n\n if (!closest && (coords.left >= rect.right && coords.top >= rect.top || coords.left >= rect.left && coords.top >= rect.bottom)) {\n offset = childIndex + 1;\n }\n }\n }\n\n if (closest && closest.nodeType == 3) {\n return findOffsetInText(closest, coordsClosest);\n }\n\n if (!closest || dxClosest && closest.nodeType == 1) {\n return {\n node: node,\n offset: offset\n };\n }\n\n return findOffsetInNode(closest, coordsClosest);\n}\n\nfunction findOffsetInText(node, coords) {\n var len = node.nodeValue.length;\n var range = document.createRange();\n\n for (var i = 0; i < len; i++) {\n range.setEnd(node, i + 1);\n range.setStart(node, i);\n var rect = singleRect(range, 1);\n\n if (rect.top == rect.bottom) {\n continue;\n }\n\n if (inRect(coords, rect)) {\n return {\n node: node,\n offset: i + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0)\n };\n }\n }\n\n return {\n node: node,\n offset: 0\n };\n}\n\nfunction inRect(coords, rect) {\n return coords.left >= rect.left - 1 && coords.left <= rect.right + 1 && coords.top >= rect.top - 1 && coords.top <= rect.bottom + 1;\n}\n\nfunction targetKludge(dom, coords) {\n var parent = dom.parentNode;\n\n if (parent && /^li$/i.test(parent.nodeName) && coords.left < dom.getBoundingClientRect().left) {\n return parent;\n }\n\n return dom;\n}\n\nfunction posFromElement(view, elt, coords) {\n var ref = findOffsetInNode(elt, coords);\n var node = ref.node;\n var offset = ref.offset;\n var bias = -1;\n\n if (node.nodeType == 1 && !node.firstChild) {\n var rect = node.getBoundingClientRect();\n bias = rect.left != rect.right && coords.left > (rect.left + rect.right) / 2 ? 1 : -1;\n }\n\n return view.docView.posFromDOM(node, offset, bias);\n}\n\nfunction posFromCaret(view, node, offset, coords) {\n // Browser (in caretPosition/RangeFromPoint) will agressively\n // normalize towards nearby inline nodes. Since we are interested in\n // positions between block nodes too, we first walk up the hierarchy\n // of nodes to see if there are block nodes that the coordinates\n // fall outside of. If so, we take the position before/after that\n // block. If not, we call `posFromDOM` on the raw node/offset.\n var outside = -1;\n\n for (var cur = node;;) {\n if (cur == view.dom) {\n break;\n }\n\n var desc = view.docView.nearestDesc(cur, true);\n\n if (!desc) {\n return null;\n }\n\n if (desc.node.isBlock && desc.parent) {\n var rect = desc.dom.getBoundingClientRect();\n\n if (rect.left > coords.left || rect.top > coords.top) {\n outside = desc.posBefore;\n } else if (rect.right < coords.left || rect.bottom < coords.top) {\n outside = desc.posAfter;\n } else {\n break;\n }\n }\n\n cur = desc.dom.parentNode;\n }\n\n return outside > -1 ? outside : view.docView.posFromDOM(node, offset);\n}\n\nfunction elementFromPoint(element, coords, box) {\n var len = element.childNodes.length;\n\n if (len && box.top < box.bottom) {\n for (var startI = Math.max(0, Math.min(len - 1, Math.floor(len * (coords.top - box.top) / (box.bottom - box.top)) - 2)), i = startI;;) {\n var child = element.childNodes[i];\n\n if (child.nodeType == 1) {\n var rects = child.getClientRects();\n\n for (var j = 0; j < rects.length; j++) {\n var rect = rects[j];\n\n if (inRect(coords, rect)) {\n return elementFromPoint(child, coords, rect);\n }\n }\n }\n\n if ((i = (i + 1) % len) == startI) {\n break;\n }\n }\n }\n\n return element;\n} // Given an x,y position on the editor, get the position in the document.\n\n\nfunction posAtCoords(view, coords) {\n var assign, assign$1;\n var root = view.root,\n node,\n offset;\n\n if (root.caretPositionFromPoint) {\n try {\n // Firefox throws for this call in hard-to-predict circumstances (#994)\n var pos$1 = root.caretPositionFromPoint(coords.left, coords.top);\n\n if (pos$1) {\n assign = pos$1, node = assign.offsetNode, offset = assign.offset;\n }\n } catch (_) {}\n }\n\n if (!node && root.caretRangeFromPoint) {\n var range = root.caretRangeFromPoint(coords.left, coords.top);\n\n if (range) {\n assign$1 = range, node = assign$1.startContainer, offset = assign$1.startOffset;\n }\n }\n\n var elt = root.elementFromPoint(coords.left, coords.top + 1),\n pos;\n\n if (!elt || !view.dom.contains(elt.nodeType != 1 ? elt.parentNode : elt)) {\n var box = view.dom.getBoundingClientRect();\n\n if (!inRect(coords, box)) {\n return null;\n }\n\n elt = elementFromPoint(view.dom, coords, box);\n\n if (!elt) {\n return null;\n }\n } // Safari's caretRangeFromPoint returns nonsense when on a draggable element\n\n\n if (result.safari && elt.draggable) {\n node = offset = null;\n }\n\n elt = targetKludge(elt, coords);\n\n if (node) {\n if (result.gecko && node.nodeType == 1) {\n // Firefox will sometimes return offsets into nodes, which\n // have no actual children, from caretPositionFromPoint (#953)\n offset = Math.min(offset, node.childNodes.length); // It'll also move the returned position before image nodes,\n // even if those are behind it.\n\n if (offset < node.childNodes.length) {\n var next = node.childNodes[offset],\n box$1;\n\n if (next.nodeName == \"IMG\" && (box$1 = next.getBoundingClientRect()).right <= coords.left && box$1.bottom > coords.top) {\n offset++;\n }\n }\n } // Suspiciously specific kludge to work around caret*FromPoint\n // never returning a position at the end of the document\n\n\n if (node == view.dom && offset == node.childNodes.length - 1 && node.lastChild.nodeType == 1 && coords.top > node.lastChild.getBoundingClientRect().bottom) {\n pos = view.state.doc.content.size;\n } // Ignore positions directly after a BR, since caret*FromPoint\n // 'round up' positions that would be more accurately placed\n // before the BR node.\n else if (offset == 0 || node.nodeType != 1 || node.childNodes[offset - 1].nodeName != \"BR\") {\n pos = posFromCaret(view, node, offset, coords);\n }\n }\n\n if (pos == null) {\n pos = posFromElement(view, elt, coords);\n }\n\n var desc = view.docView.nearestDesc(elt, true);\n return {\n pos: pos,\n inside: desc ? desc.posAtStart - desc.border : -1\n };\n}\n\nfunction singleRect(object, bias) {\n var rects = object.getClientRects();\n return !rects.length ? object.getBoundingClientRect() : rects[bias < 0 ? 0 : rects.length - 1];\n}\n\nvar BIDI = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/; // : (EditorView, number, number) → {left: number, top: number, right: number, bottom: number}\n// Given a position in the document model, get a bounding box of the\n// character at that position, relative to the window.\n\nfunction coordsAtPos(view, pos, side) {\n var ref = view.docView.domFromPos(pos, side < 0 ? -1 : 1);\n var node = ref.node;\n var offset = ref.offset;\n var supportEmptyRange = result.webkit || result.gecko;\n\n if (node.nodeType == 3) {\n // These browsers support querying empty text ranges. Prefer that in\n // bidi context or when at the end of a node.\n if (supportEmptyRange && (BIDI.test(node.nodeValue) || (side < 0 ? !offset : offset == node.nodeValue.length))) {\n var rect = singleRect(textRange(node, offset, offset), side); // Firefox returns bad results (the position before the space)\n // when querying a position directly after line-broken\n // whitespace. Detect this situation and and kludge around it\n\n if (result.gecko && offset && /\\s/.test(node.nodeValue[offset - 1]) && offset < node.nodeValue.length) {\n var rectBefore = singleRect(textRange(node, offset - 1, offset - 1), -1);\n\n if (rectBefore.top == rect.top) {\n var rectAfter = singleRect(textRange(node, offset, offset + 1), -1);\n\n if (rectAfter.top != rect.top) {\n return flattenV(rectAfter, rectAfter.left < rectBefore.left);\n }\n }\n }\n\n return rect;\n } else {\n var from = offset,\n to = offset,\n takeSide = side < 0 ? 1 : -1;\n\n if (side < 0 && !offset) {\n to++;\n takeSide = -1;\n } else if (side >= 0 && offset == node.nodeValue.length) {\n from--;\n takeSide = 1;\n } else if (side < 0) {\n from--;\n } else {\n to++;\n }\n\n return flattenV(singleRect(textRange(node, from, to), takeSide), takeSide < 0);\n }\n } // Return a horizontal line in block context\n\n\n if (!view.state.doc.resolve(pos).parent.inlineContent) {\n if (offset && (side < 0 || offset == nodeSize(node))) {\n var before = node.childNodes[offset - 1];\n\n if (before.nodeType == 1) {\n return flattenH(before.getBoundingClientRect(), false);\n }\n }\n\n if (offset < nodeSize(node)) {\n var after = node.childNodes[offset];\n\n if (after.nodeType == 1) {\n return flattenH(after.getBoundingClientRect(), true);\n }\n }\n\n return flattenH(node.getBoundingClientRect(), side >= 0);\n } // Inline, not in text node (this is not Bidi-safe)\n\n\n if (offset && (side < 0 || offset == nodeSize(node))) {\n var before$1 = node.childNodes[offset - 1];\n var target = before$1.nodeType == 3 ? textRange(before$1, nodeSize(before$1) - (supportEmptyRange ? 0 : 1)) // BR nodes tend to only return the rectangle before them.\n // Only use them if they are the last element in their parent\n : before$1.nodeType == 1 && (before$1.nodeName != \"BR\" || !before$1.nextSibling) ? before$1 : null;\n\n if (target) {\n return flattenV(singleRect(target, 1), false);\n }\n }\n\n if (offset < nodeSize(node)) {\n var after$1 = node.childNodes[offset];\n var target$1 = after$1.nodeType == 3 ? textRange(after$1, 0, supportEmptyRange ? 0 : 1) : after$1.nodeType == 1 ? after$1 : null;\n\n if (target$1) {\n return flattenV(singleRect(target$1, -1), true);\n }\n } // All else failed, just try to get a rectangle for the target node\n\n\n return flattenV(singleRect(node.nodeType == 3 ? textRange(node) : node, -side), side >= 0);\n}\n\nfunction flattenV(rect, left) {\n if (rect.width == 0) {\n return rect;\n }\n\n var x = left ? rect.left : rect.right;\n return {\n top: rect.top,\n bottom: rect.bottom,\n left: x,\n right: x\n };\n}\n\nfunction flattenH(rect, top) {\n if (rect.height == 0) {\n return rect;\n }\n\n var y = top ? rect.top : rect.bottom;\n return {\n top: y,\n bottom: y,\n left: rect.left,\n right: rect.right\n };\n}\n\nfunction withFlushedState(view, state, f) {\n var viewState = view.state,\n active = view.root.activeElement;\n\n if (viewState != state) {\n view.updateState(state);\n }\n\n if (active != view.dom) {\n view.focus();\n }\n\n try {\n return f();\n } finally {\n if (viewState != state) {\n view.updateState(viewState);\n }\n\n if (active != view.dom && active) {\n active.focus();\n }\n }\n} // : (EditorView, number, number)\n// Whether vertical position motion in a given direction\n// from a position would leave a text block.\n\n\nfunction endOfTextblockVertical(view, state, dir) {\n var sel = state.selection;\n var $pos = dir == \"up\" ? sel.$from : sel.$to;\n return withFlushedState(view, state, function () {\n var ref = view.docView.domFromPos($pos.pos, dir == \"up\" ? -1 : 1);\n var dom = ref.node;\n\n for (;;) {\n var nearest = view.docView.nearestDesc(dom, true);\n\n if (!nearest) {\n break;\n }\n\n if (nearest.node.isBlock) {\n dom = nearest.dom;\n break;\n }\n\n dom = nearest.dom.parentNode;\n }\n\n var coords = coordsAtPos(view, $pos.pos, 1);\n\n for (var child = dom.firstChild; child; child = child.nextSibling) {\n var boxes = void 0;\n\n if (child.nodeType == 1) {\n boxes = child.getClientRects();\n } else if (child.nodeType == 3) {\n boxes = textRange(child, 0, child.nodeValue.length).getClientRects();\n } else {\n continue;\n }\n\n for (var i = 0; i < boxes.length; i++) {\n var box = boxes[i];\n\n if (box.bottom > box.top && (dir == \"up\" ? box.bottom < coords.top + 1 : box.top > coords.bottom - 1)) {\n return false;\n }\n }\n }\n\n return true;\n });\n}\n\nvar maybeRTL = /[\\u0590-\\u08ac]/;\n\nfunction endOfTextblockHorizontal(view, state, dir) {\n var ref = state.selection;\n var $head = ref.$head;\n\n if (!$head.parent.isTextblock) {\n return false;\n }\n\n var offset = $head.parentOffset,\n atStart = !offset,\n atEnd = offset == $head.parent.content.size;\n var sel = getSelection(); // If the textblock is all LTR, or the browser doesn't support\n // Selection.modify (Edge), fall back to a primitive approach\n\n if (!maybeRTL.test($head.parent.textContent) || !sel.modify) {\n return dir == \"left\" || dir == \"backward\" ? atStart : atEnd;\n }\n\n return withFlushedState(view, state, function () {\n // This is a huge hack, but appears to be the best we can\n // currently do: use `Selection.modify` to move the selection by\n // one character, and see if that moves the cursor out of the\n // textblock (or doesn't move it at all, when at the start/end of\n // the document).\n var oldRange = sel.getRangeAt(0),\n oldNode = sel.focusNode,\n oldOff = sel.focusOffset;\n var oldBidiLevel = sel.caretBidiLevel; // Only for Firefox\n\n sel.modify(\"move\", dir, \"character\");\n var parentDOM = $head.depth ? view.docView.domAfterPos($head.before()) : view.dom;\n var result = !parentDOM.contains(sel.focusNode.nodeType == 1 ? sel.focusNode : sel.focusNode.parentNode) || oldNode == sel.focusNode && oldOff == sel.focusOffset; // Restore the previous selection\n\n sel.removeAllRanges();\n sel.addRange(oldRange);\n\n if (oldBidiLevel != null) {\n sel.caretBidiLevel = oldBidiLevel;\n }\n\n return result;\n });\n}\n\nvar cachedState = null,\n cachedDir = null,\n cachedResult = false;\n\nfunction endOfTextblock(view, state, dir) {\n if (cachedState == state && cachedDir == dir) {\n return cachedResult;\n }\n\n cachedState = state;\n cachedDir = dir;\n return cachedResult = dir == \"up\" || dir == \"down\" ? endOfTextblockVertical(view, state, dir) : endOfTextblockHorizontal(view, state, dir);\n} // NodeView:: interface\n//\n// By default, document nodes are rendered using the result of the\n// [`toDOM`](#model.NodeSpec.toDOM) method of their spec, and managed\n// entirely by the editor. For some use cases, such as embedded\n// node-specific editing interfaces, you want more control over\n// the behavior of a node's in-editor representation, and need to\n// [define](#view.EditorProps.nodeViews) a custom node view.\n//\n// Mark views only support `dom` and `contentDOM`, and don't support\n// any of the node view methods.\n//\n// Objects returned as node views must conform to this interface.\n//\n// dom:: ?dom.Node\n// The outer DOM node that represents the document node. When not\n// given, the default strategy is used to create a DOM node.\n//\n// contentDOM:: ?dom.Node\n// The DOM node that should hold the node's content. Only meaningful\n// if the node view also defines a `dom` property and if its node\n// type is not a leaf node type. When this is present, ProseMirror\n// will take care of rendering the node's children into it. When it\n// is not present, the node view itself is responsible for rendering\n// (or deciding not to render) its child nodes.\n//\n// update:: ?(node: Node, decorations: [Decoration]) → bool\n// When given, this will be called when the view is updating itself.\n// It will be given a node (possibly of a different type), and an\n// array of active decorations (which are automatically drawn, and\n// the node view may ignore if it isn't interested in them), and\n// should return true if it was able to update to that node, and\n// false otherwise. If the node view has a `contentDOM` property (or\n// no `dom` property), updating its child nodes will be handled by\n// ProseMirror.\n//\n// selectNode:: ?()\n// Can be used to override the way the node's selected status (as a\n// node selection) is displayed.\n//\n// deselectNode:: ?()\n// When defining a `selectNode` method, you should also provide a\n// `deselectNode` method to remove the effect again.\n//\n// setSelection:: ?(anchor: number, head: number, root: dom.Document)\n// This will be called to handle setting the selection inside the\n// node. The `anchor` and `head` positions are relative to the start\n// of the node. By default, a DOM selection will be created between\n// the DOM positions corresponding to those positions, but if you\n// override it you can do something else.\n//\n// stopEvent:: ?(event: dom.Event) → bool\n// Can be used to prevent the editor view from trying to handle some\n// or all DOM events that bubble up from the node view. Events for\n// which this returns true are not handled by the editor.\n//\n// ignoreMutation:: ?(dom.MutationRecord) → bool\n// Called when a DOM\n// [mutation](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver)\n// or a selection change happens within the view. When the change is\n// a selection change, the record will have a `type` property of\n// `\"selection\"` (which doesn't occur for native mutation records).\n// Return false if the editor should re-read the selection or\n// re-parse the range around the mutation, true if it can safely be\n// ignored.\n//\n// destroy:: ?()\n// Called when the node view is removed from the editor or the whole\n// editor is destroyed. (Not available for marks.)\n// View descriptions are data structures that describe the DOM that is\n// used to represent the editor's content. They are used for:\n//\n// - Incremental redrawing when the document changes\n//\n// - Figuring out what part of the document a given DOM position\n// corresponds to\n//\n// - Wiring in custom implementations of the editing interface for a\n// given node\n//\n// They form a doubly-linked mutable tree, starting at `view.docView`.\n\n\nvar NOT_DIRTY = 0,\n CHILD_DIRTY = 1,\n CONTENT_DIRTY = 2,\n NODE_DIRTY = 3; // Superclass for the various kinds of descriptions. Defines their\n// basic structure and shared methods.\n\nvar ViewDesc = function ViewDesc(parent, children, dom, contentDOM) {\n this.parent = parent;\n this.children = children;\n this.dom = dom; // An expando property on the DOM node provides a link back to its\n // description.\n\n dom.pmViewDesc = this; // This is the node that holds the child views. It may be null for\n // descs that don't have children.\n\n this.contentDOM = contentDOM;\n this.dirty = NOT_DIRTY;\n};\n\nvar prototypeAccessors = {\n beforePosition: {\n configurable: true\n },\n size: {\n configurable: true\n },\n border: {\n configurable: true\n },\n posBefore: {\n configurable: true\n },\n posAtStart: {\n configurable: true\n },\n posAfter: {\n configurable: true\n },\n posAtEnd: {\n configurable: true\n },\n contentLost: {\n configurable: true\n },\n domAtom: {\n configurable: true\n }\n}; // Used to check whether a given description corresponds to a\n// widget/mark/node.\n\nViewDesc.prototype.matchesWidget = function matchesWidget() {\n return false;\n};\n\nViewDesc.prototype.matchesMark = function matchesMark() {\n return false;\n};\n\nViewDesc.prototype.matchesNode = function matchesNode() {\n return false;\n};\n\nViewDesc.prototype.matchesHack = function matchesHack() {\n return false;\n};\n\nprototypeAccessors.beforePosition.get = function () {\n return false;\n}; // : () → ?ParseRule\n// When parsing in-editor content (in domchange.js), we allow\n// descriptions to determine the parse rules that should be used to\n// parse them.\n\n\nViewDesc.prototype.parseRule = function parseRule() {\n return null;\n}; // : (dom.Event) → bool\n// Used by the editor's event handler to ignore events that come\n// from certain descs.\n\n\nViewDesc.prototype.stopEvent = function stopEvent() {\n return false;\n}; // The size of the content represented by this desc.\n\n\nprototypeAccessors.size.get = function () {\n var size = 0;\n\n for (var i = 0; i < this.children.length; i++) {\n size += this.children[i].size;\n }\n\n return size;\n}; // For block nodes, this represents the space taken up by their\n// start/end tokens.\n\n\nprototypeAccessors.border.get = function () {\n return 0;\n};\n\nViewDesc.prototype.destroy = function destroy() {\n this.parent = null;\n\n if (this.dom.pmViewDesc == this) {\n this.dom.pmViewDesc = null;\n }\n\n for (var i = 0; i < this.children.length; i++) {\n this.children[i].destroy();\n }\n};\n\nViewDesc.prototype.posBeforeChild = function posBeforeChild(child) {\n for (var i = 0, pos = this.posAtStart; i < this.children.length; i++) {\n var cur = this.children[i];\n\n if (cur == child) {\n return pos;\n }\n\n pos += cur.size;\n }\n};\n\nprototypeAccessors.posBefore.get = function () {\n return this.parent.posBeforeChild(this);\n};\n\nprototypeAccessors.posAtStart.get = function () {\n return this.parent ? this.parent.posBeforeChild(this) + this.border : 0;\n};\n\nprototypeAccessors.posAfter.get = function () {\n return this.posBefore + this.size;\n};\n\nprototypeAccessors.posAtEnd.get = function () {\n return this.posAtStart + this.size - 2 * this.border;\n}; // : (dom.Node, number, ?number) → number\n\n\nViewDesc.prototype.localPosFromDOM = function localPosFromDOM(dom, offset, bias) {\n // If the DOM position is in the content, use the child desc after\n // it to figure out a position.\n if (this.contentDOM && this.contentDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode)) {\n if (bias < 0) {\n var domBefore, desc;\n\n if (dom == this.contentDOM) {\n domBefore = dom.childNodes[offset - 1];\n } else {\n while (dom.parentNode != this.contentDOM) {\n dom = dom.parentNode;\n }\n\n domBefore = dom.previousSibling;\n }\n\n while (domBefore && !((desc = domBefore.pmViewDesc) && desc.parent == this)) {\n domBefore = domBefore.previousSibling;\n }\n\n return domBefore ? this.posBeforeChild(desc) + desc.size : this.posAtStart;\n } else {\n var domAfter, desc$1;\n\n if (dom == this.contentDOM) {\n domAfter = dom.childNodes[offset];\n } else {\n while (dom.parentNode != this.contentDOM) {\n dom = dom.parentNode;\n }\n\n domAfter = dom.nextSibling;\n }\n\n while (domAfter && !((desc$1 = domAfter.pmViewDesc) && desc$1.parent == this)) {\n domAfter = domAfter.nextSibling;\n }\n\n return domAfter ? this.posBeforeChild(desc$1) : this.posAtEnd;\n }\n } // Otherwise, use various heuristics, falling back on the bias\n // parameter, to determine whether to return the position at the\n // start or at the end of this view desc.\n\n\n var atEnd;\n\n if (dom == this.dom) {\n atEnd = offset > domIndex(this.contentDOM);\n } else if (this.contentDOM && this.contentDOM != this.dom && this.dom.contains(this.contentDOM)) {\n atEnd = dom.compareDocumentPosition(this.contentDOM) & 2;\n } else if (this.dom.firstChild) {\n if (offset == 0) {\n for (var search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = false;\n break;\n }\n\n if (search.parentNode.firstChild != search) {\n break;\n }\n }\n }\n\n if (atEnd == null && offset == dom.childNodes.length) {\n for (var search$1 = dom;; search$1 = search$1.parentNode) {\n if (search$1 == this.dom) {\n atEnd = true;\n break;\n }\n\n if (search$1.parentNode.lastChild != search$1) {\n break;\n }\n }\n }\n }\n\n return (atEnd == null ? bias > 0 : atEnd) ? this.posAtEnd : this.posAtStart;\n}; // Scan up the dom finding the first desc that is a descendant of\n// this one.\n\n\nViewDesc.prototype.nearestDesc = function nearestDesc(dom, onlyNodes) {\n for (var first = true, cur = dom; cur; cur = cur.parentNode) {\n var desc = this.getDesc(cur);\n\n if (desc && (!onlyNodes || desc.node)) {\n // If dom is outside of this desc's nodeDOM, don't count it.\n if (first && desc.nodeDOM && !(desc.nodeDOM.nodeType == 1 ? desc.nodeDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode) : desc.nodeDOM == dom)) {\n first = false;\n } else {\n return desc;\n }\n }\n }\n};\n\nViewDesc.prototype.getDesc = function getDesc(dom) {\n var desc = dom.pmViewDesc;\n\n for (var cur = desc; cur; cur = cur.parent) {\n if (cur == this) {\n return desc;\n }\n }\n};\n\nViewDesc.prototype.posFromDOM = function posFromDOM(dom, offset, bias) {\n for (var scan = dom; scan; scan = scan.parentNode) {\n var desc = this.getDesc(scan);\n\n if (desc) {\n return desc.localPosFromDOM(dom, offset, bias);\n }\n }\n\n return -1;\n}; // : (number) → ?NodeViewDesc\n// Find the desc for the node after the given pos, if any. (When a\n// parent node overrode rendering, there might not be one.)\n\n\nViewDesc.prototype.descAt = function descAt(pos) {\n for (var i = 0, offset = 0; i < this.children.length; i++) {\n var child = this.children[i],\n end = offset + child.size;\n\n if (offset == pos && end != offset) {\n while (!child.border && child.children.length) {\n child = child.children[0];\n }\n\n return child;\n }\n\n if (pos < end) {\n return child.descAt(pos - offset - child.border);\n }\n\n offset = end;\n }\n}; // : (number, number) → {node: dom.Node, offset: number}\n\n\nViewDesc.prototype.domFromPos = function domFromPos(pos, side) {\n if (!this.contentDOM) {\n return {\n node: this.dom,\n offset: 0\n };\n }\n\n for (var offset = 0, i = 0, first = true;; i++, first = false) {\n // Skip removed or always-before children\n while (i < this.children.length && (this.children[i].beforePosition || this.children[i].dom.parentNode != this.contentDOM)) {\n offset += this.children[i++].size;\n }\n\n var child = i == this.children.length ? null : this.children[i];\n\n if (offset == pos && (side == 0 || !child || !child.size || child.border || side < 0 && first) || child && child.domAtom && pos < offset + child.size) {\n return {\n node: this.contentDOM,\n offset: child ? domIndex(child.dom) : this.contentDOM.childNodes.length\n };\n }\n\n if (!child) {\n throw new Error(\"Invalid position \" + pos);\n }\n\n var end = offset + child.size;\n\n if (!child.domAtom && (side < 0 && !child.border ? end >= pos : end > pos) && (end > pos || i + 1 >= this.children.length || !this.children[i + 1].beforePosition)) {\n return child.domFromPos(pos - offset - child.border, side);\n }\n\n offset = end;\n }\n}; // Used to find a DOM range in a single parent for a given changed\n// range.\n\n\nViewDesc.prototype.parseRange = function parseRange(from, to, base) {\n if (base === void 0) base = 0;\n\n if (this.children.length == 0) {\n return {\n node: this.contentDOM,\n from: from,\n to: to,\n fromOffset: 0,\n toOffset: this.contentDOM.childNodes.length\n };\n }\n\n var fromOffset = -1,\n toOffset = -1;\n\n for (var offset = base, i = 0;; i++) {\n var child = this.children[i],\n end = offset + child.size;\n\n if (fromOffset == -1 && from <= end) {\n var childBase = offset + child.border; // FIXME maybe descend mark views to parse a narrower range?\n\n if (from >= childBase && to <= end - child.border && child.node && child.contentDOM && this.contentDOM.contains(child.contentDOM)) {\n return child.parseRange(from, to, childBase);\n }\n\n from = offset;\n\n for (var j = i; j > 0; j--) {\n var prev = this.children[j - 1];\n\n if (prev.size && prev.dom.parentNode == this.contentDOM && !prev.emptyChildAt(1)) {\n fromOffset = domIndex(prev.dom) + 1;\n break;\n }\n\n from -= prev.size;\n }\n\n if (fromOffset == -1) {\n fromOffset = 0;\n }\n }\n\n if (fromOffset > -1 && (end > to || i == this.children.length - 1)) {\n to = end;\n\n for (var j$1 = i + 1; j$1 < this.children.length; j$1++) {\n var next = this.children[j$1];\n\n if (next.size && next.dom.parentNode == this.contentDOM && !next.emptyChildAt(-1)) {\n toOffset = domIndex(next.dom);\n break;\n }\n\n to += next.size;\n }\n\n if (toOffset == -1) {\n toOffset = this.contentDOM.childNodes.length;\n }\n\n break;\n }\n\n offset = end;\n }\n\n return {\n node: this.contentDOM,\n from: from,\n to: to,\n fromOffset: fromOffset,\n toOffset: toOffset\n };\n};\n\nViewDesc.prototype.emptyChildAt = function emptyChildAt(side) {\n if (this.border || !this.contentDOM || !this.children.length) {\n return false;\n }\n\n var child = this.children[side < 0 ? 0 : this.children.length - 1];\n return child.size == 0 || child.emptyChildAt(side);\n}; // : (number) → dom.Node\n\n\nViewDesc.prototype.domAfterPos = function domAfterPos(pos) {\n var ref = this.domFromPos(pos, 0);\n var node = ref.node;\n var offset = ref.offset;\n\n if (node.nodeType != 1 || offset == node.childNodes.length) {\n throw new RangeError(\"No node after pos \" + pos);\n }\n\n return node.childNodes[offset];\n}; // : (number, number, dom.Document)\n// View descs are responsible for setting any selection that falls\n// entirely inside of them, so that custom implementations can do\n// custom things with the selection. Note that this falls apart when\n// a selection starts in such a node and ends in another, in which\n// case we just use whatever domFromPos produces as a best effort.\n\n\nViewDesc.prototype.setSelection = function setSelection(anchor, head, root, force) {\n // If the selection falls entirely in a child, give it to that child\n var from = Math.min(anchor, head),\n to = Math.max(anchor, head);\n\n for (var i = 0, offset = 0; i < this.children.length; i++) {\n var child = this.children[i],\n end = offset + child.size;\n\n if (from > offset && to < end) {\n return child.setSelection(anchor - offset - child.border, head - offset - child.border, root, force);\n }\n\n offset = end;\n }\n\n var anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);\n var headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);\n var domSel = root.getSelection();\n var brKludge = false; // On Firefox, using Selection.collapse to put the cursor after a\n // BR node for some reason doesn't always work (#1073). On Safari,\n // the cursor sometimes inexplicable visually lags behind its\n // reported position in such situations (#1092).\n\n if ((result.gecko || result.safari) && anchor == head) {\n var node = anchorDOM.node;\n var offset$1 = anchorDOM.offset;\n\n if (node.nodeType == 3) {\n brKludge = offset$1 && node.nodeValue[offset$1 - 1] == \"\\n\"; // Issue #1128\n\n if (brKludge && offset$1 == node.nodeValue.length && node.nextSibling && node.nextSibling.nodeName == \"BR\") {\n anchorDOM = headDOM = {\n node: node.parentNode,\n offset: domIndex(node) + 1\n };\n }\n } else {\n var prev = node.childNodes[offset$1 - 1];\n brKludge = prev && (prev.nodeName == \"BR\" || prev.contentEditable == \"false\");\n }\n }\n\n if (!(force || brKludge && result.safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset)) {\n return;\n } // Selection.extend can be used to create an 'inverted' selection\n // (one where the focus is before the anchor), but not all\n // browsers support it yet.\n\n\n var domSelExtended = false;\n\n if ((domSel.extend || anchor == head) && !brKludge) {\n domSel.collapse(anchorDOM.node, anchorDOM.offset);\n\n try {\n if (anchor != head) {\n domSel.extend(headDOM.node, headDOM.offset);\n }\n\n domSelExtended = true;\n } catch (err) {\n // In some cases with Chrome the selection is empty after calling\n // collapse, even when it should be valid. This appears to be a bug, but\n // it is difficult to isolate. If this happens fallback to the old path\n // without using extend.\n if (!(err instanceof DOMException)) {\n throw err;\n } // declare global: DOMException\n\n }\n }\n\n if (!domSelExtended) {\n if (anchor > head) {\n var tmp = anchorDOM;\n anchorDOM = headDOM;\n headDOM = tmp;\n }\n\n var range = document.createRange();\n range.setEnd(headDOM.node, headDOM.offset);\n range.setStart(anchorDOM.node, anchorDOM.offset);\n domSel.removeAllRanges();\n domSel.addRange(range);\n }\n}; // : (dom.MutationRecord) → bool\n\n\nViewDesc.prototype.ignoreMutation = function ignoreMutation(mutation) {\n return !this.contentDOM && mutation.type != \"selection\";\n};\n\nprototypeAccessors.contentLost.get = function () {\n return this.contentDOM && this.contentDOM != this.dom && !this.dom.contains(this.contentDOM);\n}; // Remove a subtree of the element tree that has been touched\n// by a DOM change, so that the next update will redraw it.\n\n\nViewDesc.prototype.markDirty = function markDirty(from, to) {\n for (var offset = 0, i = 0; i < this.children.length; i++) {\n var child = this.children[i],\n end = offset + child.size;\n\n if (offset == end ? from <= end && to >= offset : from < end && to > offset) {\n var startInside = offset + child.border,\n endInside = end - child.border;\n\n if (from >= startInside && to <= endInside) {\n this.dirty = from == offset || to == end ? CONTENT_DIRTY : CHILD_DIRTY;\n\n if (from == startInside && to == endInside && (child.contentLost || child.dom.parentNode != this.contentDOM)) {\n child.dirty = NODE_DIRTY;\n } else {\n child.markDirty(from - startInside, to - startInside);\n }\n\n return;\n } else {\n child.dirty = NODE_DIRTY;\n }\n }\n\n offset = end;\n }\n\n this.dirty = CONTENT_DIRTY;\n};\n\nViewDesc.prototype.markParentsDirty = function markParentsDirty() {\n var level = 1;\n\n for (var node = this.parent; node; node = node.parent, level++) {\n var dirty = level == 1 ? CONTENT_DIRTY : CHILD_DIRTY;\n\n if (node.dirty < dirty) {\n node.dirty = dirty;\n }\n }\n};\n\nprototypeAccessors.domAtom.get = function () {\n return false;\n};\n\nObject.defineProperties(ViewDesc.prototype, prototypeAccessors); // Reused array to avoid allocating fresh arrays for things that will\n// stay empty anyway.\n\nvar nothing = []; // A widget desc represents a widget decoration, which is a DOM node\n// drawn between the document nodes.\n\nvar WidgetViewDesc = /*@__PURE__*/function (ViewDesc) {\n function WidgetViewDesc(parent, widget, view, pos) {\n var self,\n dom = widget.type.toDOM;\n\n if (typeof dom == \"function\") {\n dom = dom(view, function () {\n if (!self) {\n return pos;\n }\n\n if (self.parent) {\n return self.parent.posBeforeChild(self);\n }\n });\n }\n\n if (!widget.type.spec.raw) {\n if (dom.nodeType != 1) {\n var wrap = document.createElement(\"span\");\n wrap.appendChild(dom);\n dom = wrap;\n }\n\n dom.contentEditable = false;\n dom.classList.add(\"ProseMirror-widget\");\n }\n\n ViewDesc.call(this, parent, nothing, dom, null);\n this.widget = widget;\n self = this;\n }\n\n if (ViewDesc) WidgetViewDesc.__proto__ = ViewDesc;\n WidgetViewDesc.prototype = Object.create(ViewDesc && ViewDesc.prototype);\n WidgetViewDesc.prototype.constructor = WidgetViewDesc;\n var prototypeAccessors$1 = {\n beforePosition: {\n configurable: true\n },\n domAtom: {\n configurable: true\n }\n };\n\n prototypeAccessors$1.beforePosition.get = function () {\n return this.widget.type.side < 0;\n };\n\n WidgetViewDesc.prototype.matchesWidget = function matchesWidget(widget) {\n return this.dirty == NOT_DIRTY && widget.type.eq(this.widget.type);\n };\n\n WidgetViewDesc.prototype.parseRule = function parseRule() {\n return {\n ignore: true\n };\n };\n\n WidgetViewDesc.prototype.stopEvent = function stopEvent(event) {\n var stop = this.widget.spec.stopEvent;\n return stop ? stop(event) : false;\n };\n\n WidgetViewDesc.prototype.ignoreMutation = function ignoreMutation(mutation) {\n return mutation.type != \"selection\" || this.widget.spec.ignoreSelection;\n };\n\n prototypeAccessors$1.domAtom.get = function () {\n return true;\n };\n\n Object.defineProperties(WidgetViewDesc.prototype, prototypeAccessors$1);\n return WidgetViewDesc;\n}(ViewDesc);\n\nvar CompositionViewDesc = /*@__PURE__*/function (ViewDesc) {\n function CompositionViewDesc(parent, dom, textDOM, text) {\n ViewDesc.call(this, parent, nothing, dom, null);\n this.textDOM = textDOM;\n this.text = text;\n }\n\n if (ViewDesc) CompositionViewDesc.__proto__ = ViewDesc;\n CompositionViewDesc.prototype = Object.create(ViewDesc && ViewDesc.prototype);\n CompositionViewDesc.prototype.constructor = CompositionViewDesc;\n var prototypeAccessors$2 = {\n size: {\n configurable: true\n }\n };\n\n prototypeAccessors$2.size.get = function () {\n return this.text.length;\n };\n\n CompositionViewDesc.prototype.localPosFromDOM = function localPosFromDOM(dom, offset) {\n if (dom != this.textDOM) {\n return this.posAtStart + (offset ? this.size : 0);\n }\n\n return this.posAtStart + offset;\n };\n\n CompositionViewDesc.prototype.domFromPos = function domFromPos(pos) {\n return {\n node: this.textDOM,\n offset: pos\n };\n };\n\n CompositionViewDesc.prototype.ignoreMutation = function ignoreMutation(mut) {\n return mut.type === 'characterData' && mut.target.nodeValue == mut.oldValue;\n };\n\n Object.defineProperties(CompositionViewDesc.prototype, prototypeAccessors$2);\n return CompositionViewDesc;\n}(ViewDesc); // A mark desc represents a mark. May have multiple children,\n// depending on how the mark is split. Note that marks are drawn using\n// a fixed nesting order, for simplicity and predictability, so in\n// some cases they will be split more often than would appear\n// necessary.\n\n\nvar MarkViewDesc = /*@__PURE__*/function (ViewDesc) {\n function MarkViewDesc(parent, mark, dom, contentDOM) {\n ViewDesc.call(this, parent, [], dom, contentDOM);\n this.mark = mark;\n }\n\n if (ViewDesc) MarkViewDesc.__proto__ = ViewDesc;\n MarkViewDesc.prototype = Object.create(ViewDesc && ViewDesc.prototype);\n MarkViewDesc.prototype.constructor = MarkViewDesc;\n\n MarkViewDesc.create = function create(parent, mark, inline, view) {\n var custom = view.nodeViews[mark.type.name];\n var spec = custom && custom(mark, view, inline);\n\n if (!spec || !spec.dom) {\n spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline));\n }\n\n return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom);\n };\n\n MarkViewDesc.prototype.parseRule = function parseRule() {\n return {\n mark: this.mark.type.name,\n attrs: this.mark.attrs,\n contentElement: this.contentDOM\n };\n };\n\n MarkViewDesc.prototype.matchesMark = function matchesMark(mark) {\n return this.dirty != NODE_DIRTY && this.mark.eq(mark);\n };\n\n MarkViewDesc.prototype.markDirty = function markDirty(from, to) {\n ViewDesc.prototype.markDirty.call(this, from, to); // Move dirty info to nearest node view\n\n if (this.dirty != NOT_DIRTY) {\n var parent = this.parent;\n\n while (!parent.node) {\n parent = parent.parent;\n }\n\n if (parent.dirty < this.dirty) {\n parent.dirty = this.dirty;\n }\n\n this.dirty = NOT_DIRTY;\n }\n };\n\n MarkViewDesc.prototype.slice = function slice(from, to, view) {\n var copy = MarkViewDesc.create(this.parent, this.mark, true, view);\n var nodes = this.children,\n size = this.size;\n\n if (to < size) {\n nodes = replaceNodes(nodes, to, size, view);\n }\n\n if (from > 0) {\n nodes = replaceNodes(nodes, 0, from, view);\n }\n\n for (var i = 0; i < nodes.length; i++) {\n nodes[i].parent = copy;\n }\n\n copy.children = nodes;\n return copy;\n };\n\n return MarkViewDesc;\n}(ViewDesc); // Node view descs are the main, most common type of view desc, and\n// correspond to an actual node in the document. Unlike mark descs,\n// they populate their child array themselves.\n\n\nvar NodeViewDesc = /*@__PURE__*/function (ViewDesc) {\n function NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {\n ViewDesc.call(this, parent, node.isLeaf ? nothing : [], dom, contentDOM);\n this.nodeDOM = nodeDOM;\n this.node = node;\n this.outerDeco = outerDeco;\n this.innerDeco = innerDeco;\n\n if (contentDOM) {\n this.updateChildren(view, pos);\n }\n }\n\n if (ViewDesc) NodeViewDesc.__proto__ = ViewDesc;\n NodeViewDesc.prototype = Object.create(ViewDesc && ViewDesc.prototype);\n NodeViewDesc.prototype.constructor = NodeViewDesc;\n var prototypeAccessors$3 = {\n size: {\n configurable: true\n },\n border: {\n configurable: true\n },\n domAtom: {\n configurable: true\n }\n }; // By default, a node is rendered using the `toDOM` method from the\n // node type spec. But client code can use the `nodeViews` spec to\n // supply a custom node view, which can influence various aspects of\n // the way the node works.\n //\n // (Using subclassing for this was intentionally decided against,\n // since it'd require exposing a whole slew of finnicky\n // implementation details to the user code that they probably will\n // never need.)\n\n NodeViewDesc.create = function create(parent, node, outerDeco, innerDeco, view, pos) {\n var assign;\n var custom = view.nodeViews[node.type.name],\n descObj;\n var spec = custom && custom(node, view, function () {\n // (This is a function that allows the custom view to find its\n // own position)\n if (!descObj) {\n return pos;\n }\n\n if (descObj.parent) {\n return descObj.parent.posBeforeChild(descObj);\n }\n }, outerDeco);\n var dom = spec && spec.dom,\n contentDOM = spec && spec.contentDOM;\n\n if (node.isText) {\n if (!dom) {\n dom = document.createTextNode(node.text);\n } else if (dom.nodeType != 3) {\n throw new RangeError(\"Text must be rendered as a DOM text node\");\n }\n } else if (!dom) {\n assign = DOMSerializer.renderSpec(document, node.type.spec.toDOM(node)), dom = assign.dom, contentDOM = assign.contentDOM;\n }\n\n if (!contentDOM && !node.isText && dom.nodeName != \"BR\") {\n // Chrome gets confused by
    \n if (!dom.hasAttribute(\"contenteditable\")) {\n dom.contentEditable = false;\n }\n\n if (node.type.spec.draggable) {\n dom.draggable = true;\n }\n }\n\n var nodeDOM = dom;\n dom = applyOuterDeco(dom, outerDeco, node);\n\n if (spec) {\n return descObj = new CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec, view, pos + 1);\n } else if (node.isText) {\n return new TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view);\n } else {\n return new NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos + 1);\n }\n };\n\n NodeViewDesc.prototype.parseRule = function parseRule() {\n var this$1 = this; // Experimental kludge to allow opt-in re-parsing of nodes\n\n if (this.node.type.spec.reparseInView) {\n return null;\n } // FIXME the assumption that this can always return the current\n // attrs means that if the user somehow manages to change the\n // attrs in the dom, that won't be picked up. Not entirely sure\n // whether this is a problem\n\n\n var rule = {\n node: this.node.type.name,\n attrs: this.node.attrs\n };\n\n if (this.node.type.spec.code) {\n rule.preserveWhitespace = \"full\";\n }\n\n if (this.contentDOM && !this.contentLost) {\n rule.contentElement = this.contentDOM;\n } else {\n rule.getContent = function () {\n return this$1.contentDOM ? Fragment.empty : this$1.node.content;\n };\n }\n\n return rule;\n };\n\n NodeViewDesc.prototype.matchesNode = function matchesNode(node, outerDeco, innerDeco) {\n return this.dirty == NOT_DIRTY && node.eq(this.node) && sameOuterDeco(outerDeco, this.outerDeco) && innerDeco.eq(this.innerDeco);\n };\n\n prototypeAccessors$3.size.get = function () {\n return this.node.nodeSize;\n };\n\n prototypeAccessors$3.border.get = function () {\n return this.node.isLeaf ? 0 : 1;\n }; // Syncs `this.children` to match `this.node.content` and the local\n // decorations, possibly introducing nesting for marks. Then, in a\n // separate step, syncs the DOM inside `this.contentDOM` to\n // `this.children`.\n\n\n NodeViewDesc.prototype.updateChildren = function updateChildren(view, pos) {\n var this$1 = this;\n var inline = this.node.inlineContent,\n off = pos;\n var composition = inline && view.composing && this.localCompositionNode(view, pos);\n var updater = new ViewTreeUpdater(this, composition && composition.node);\n iterDeco(this.node, this.innerDeco, function (widget, i, insideNode) {\n if (widget.spec.marks) {\n updater.syncToMarks(widget.spec.marks, inline, view);\n } else if (widget.type.side >= 0 && !insideNode) {\n updater.syncToMarks(i == this$1.node.childCount ? Mark.none : this$1.node.child(i).marks, inline, view);\n } // If the next node is a desc matching this widget, reuse it,\n // otherwise insert the widget as a new view desc.\n\n\n updater.placeWidget(widget, view, off);\n }, function (child, outerDeco, innerDeco, i) {\n // Make sure the wrapping mark descs match the node's marks.\n updater.syncToMarks(child.marks, inline, view); // Either find an existing desc that exactly matches this node,\n // and drop the descs before it.\n\n updater.findNodeMatch(child, outerDeco, innerDeco, i) || // Or try updating the next desc to reflect this node.\n updater.updateNextNode(child, outerDeco, innerDeco, view, i) || // Or just add it as a new desc.\n updater.addNode(child, outerDeco, innerDeco, view, off);\n off += child.nodeSize;\n }); // Drop all remaining descs after the current position.\n\n updater.syncToMarks(nothing, inline, view);\n\n if (this.node.isTextblock) {\n updater.addTextblockHacks();\n }\n\n updater.destroyRest(); // Sync the DOM if anything changed\n\n if (updater.changed || this.dirty == CONTENT_DIRTY) {\n // May have to protect focused DOM from being changed if a composition is active\n if (composition) {\n this.protectLocalComposition(view, composition);\n }\n\n renderDescs(this.contentDOM, this.children, view);\n\n if (result.ios) {\n iosHacks(this.dom);\n }\n }\n };\n\n NodeViewDesc.prototype.localCompositionNode = function localCompositionNode(view, pos) {\n // Only do something if both the selection and a focused text node\n // are inside of this node, and the node isn't already part of a\n // view that's a child of this view\n var ref = view.state.selection;\n var from = ref.from;\n var to = ref.to;\n\n if (!(view.state.selection instanceof TextSelection) || from < pos || to > pos + this.node.content.size) {\n return;\n }\n\n var sel = view.root.getSelection();\n var textNode = nearbyTextNode(sel.focusNode, sel.focusOffset);\n\n if (!textNode || !this.dom.contains(textNode.parentNode)) {\n return;\n } // Find the text in the focused node in the node, stop if it's not\n // there (may have been modified through other means, in which\n // case it should overwritten)\n\n\n var text = textNode.nodeValue;\n var textPos = findTextInFragment(this.node.content, text, from - pos, to - pos);\n return textPos < 0 ? null : {\n node: textNode,\n pos: textPos,\n text: text\n };\n };\n\n NodeViewDesc.prototype.protectLocalComposition = function protectLocalComposition(view, ref) {\n var node = ref.node;\n var pos = ref.pos;\n var text = ref.text; // The node is already part of a local view desc, leave it there\n\n if (this.getDesc(node)) {\n return;\n } // Create a composition view for the orphaned nodes\n\n\n var topNode = node;\n\n for (;; topNode = topNode.parentNode) {\n if (topNode.parentNode == this.contentDOM) {\n break;\n }\n\n while (topNode.previousSibling) {\n topNode.parentNode.removeChild(topNode.previousSibling);\n }\n\n while (topNode.nextSibling) {\n topNode.parentNode.removeChild(topNode.nextSibling);\n }\n\n if (topNode.pmViewDesc) {\n topNode.pmViewDesc = null;\n }\n }\n\n var desc = new CompositionViewDesc(this, topNode, node, text);\n view.compositionNodes.push(desc); // Patch up this.children to contain the composition view\n\n this.children = replaceNodes(this.children, pos, pos + text.length, view, desc);\n }; // : (Node, [Decoration], DecorationSet, EditorView) → bool\n // If this desc be updated to match the given node decoration,\n // do so and return true.\n\n\n NodeViewDesc.prototype.update = function update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY || !node.sameMarkup(this.node)) {\n return false;\n }\n\n this.updateInner(node, outerDeco, innerDeco, view);\n return true;\n };\n\n NodeViewDesc.prototype.updateInner = function updateInner(node, outerDeco, innerDeco, view) {\n this.updateOuterDeco(outerDeco);\n this.node = node;\n this.innerDeco = innerDeco;\n\n if (this.contentDOM) {\n this.updateChildren(view, this.posAtStart);\n }\n\n this.dirty = NOT_DIRTY;\n };\n\n NodeViewDesc.prototype.updateOuterDeco = function updateOuterDeco(outerDeco) {\n if (sameOuterDeco(outerDeco, this.outerDeco)) {\n return;\n }\n\n var needsWrap = this.nodeDOM.nodeType != 1;\n var oldDOM = this.dom;\n this.dom = patchOuterDeco(this.dom, this.nodeDOM, computeOuterDeco(this.outerDeco, this.node, needsWrap), computeOuterDeco(outerDeco, this.node, needsWrap));\n\n if (this.dom != oldDOM) {\n oldDOM.pmViewDesc = null;\n this.dom.pmViewDesc = this;\n }\n\n this.outerDeco = outerDeco;\n }; // Mark this node as being the selected node.\n\n\n NodeViewDesc.prototype.selectNode = function selectNode() {\n this.nodeDOM.classList.add(\"ProseMirror-selectednode\");\n\n if (this.contentDOM || !this.node.type.spec.draggable) {\n this.dom.draggable = true;\n }\n }; // Remove selected node marking from this node.\n\n\n NodeViewDesc.prototype.deselectNode = function deselectNode() {\n this.nodeDOM.classList.remove(\"ProseMirror-selectednode\");\n\n if (this.contentDOM || !this.node.type.spec.draggable) {\n this.dom.removeAttribute(\"draggable\");\n }\n };\n\n prototypeAccessors$3.domAtom.get = function () {\n return this.node.isAtom;\n };\n\n Object.defineProperties(NodeViewDesc.prototype, prototypeAccessors$3);\n return NodeViewDesc;\n}(ViewDesc); // Create a view desc for the top-level document node, to be exported\n// and used by the view class.\n\n\nfunction docViewDesc(doc, outerDeco, innerDeco, dom, view) {\n applyOuterDeco(dom, outerDeco, doc);\n return new NodeViewDesc(null, doc, outerDeco, innerDeco, dom, dom, dom, view, 0);\n}\n\nvar TextViewDesc = /*@__PURE__*/function (NodeViewDesc) {\n function TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view) {\n NodeViewDesc.call(this, parent, node, outerDeco, innerDeco, dom, null, nodeDOM, view);\n }\n\n if (NodeViewDesc) TextViewDesc.__proto__ = NodeViewDesc;\n TextViewDesc.prototype = Object.create(NodeViewDesc && NodeViewDesc.prototype);\n TextViewDesc.prototype.constructor = TextViewDesc;\n var prototypeAccessors$4 = {\n domAtom: {\n configurable: true\n }\n };\n\n TextViewDesc.prototype.parseRule = function parseRule() {\n var skip = this.nodeDOM.parentNode;\n\n while (skip && skip != this.dom && !skip.pmIsDeco) {\n skip = skip.parentNode;\n }\n\n return {\n skip: skip || true\n };\n };\n\n TextViewDesc.prototype.update = function update(node, outerDeco, _, view) {\n if (this.dirty == NODE_DIRTY || this.dirty != NOT_DIRTY && !this.inParent() || !node.sameMarkup(this.node)) {\n return false;\n }\n\n this.updateOuterDeco(outerDeco);\n\n if ((this.dirty != NOT_DIRTY || node.text != this.node.text) && node.text != this.nodeDOM.nodeValue) {\n this.nodeDOM.nodeValue = node.text;\n\n if (view.trackWrites == this.nodeDOM) {\n view.trackWrites = null;\n }\n }\n\n this.node = node;\n this.dirty = NOT_DIRTY;\n return true;\n };\n\n TextViewDesc.prototype.inParent = function inParent() {\n var parentDOM = this.parent.contentDOM;\n\n for (var n = this.nodeDOM; n; n = n.parentNode) {\n if (n == parentDOM) {\n return true;\n }\n }\n\n return false;\n };\n\n TextViewDesc.prototype.domFromPos = function domFromPos(pos) {\n return {\n node: this.nodeDOM,\n offset: pos\n };\n };\n\n TextViewDesc.prototype.localPosFromDOM = function localPosFromDOM(dom, offset, bias) {\n if (dom == this.nodeDOM) {\n return this.posAtStart + Math.min(offset, this.node.text.length);\n }\n\n return NodeViewDesc.prototype.localPosFromDOM.call(this, dom, offset, bias);\n };\n\n TextViewDesc.prototype.ignoreMutation = function ignoreMutation(mutation) {\n return mutation.type != \"characterData\" && mutation.type != \"selection\";\n };\n\n TextViewDesc.prototype.slice = function slice(from, to, view) {\n var node = this.node.cut(from, to),\n dom = document.createTextNode(node.text);\n return new TextViewDesc(this.parent, node, this.outerDeco, this.innerDeco, dom, dom, view);\n };\n\n prototypeAccessors$4.domAtom.get = function () {\n return false;\n };\n\n Object.defineProperties(TextViewDesc.prototype, prototypeAccessors$4);\n return TextViewDesc;\n}(NodeViewDesc); // A dummy desc used to tag trailing BR or span nodes created to work\n// around contentEditable terribleness.\n\n\nvar BRHackViewDesc = /*@__PURE__*/function (ViewDesc) {\n function BRHackViewDesc() {\n ViewDesc.apply(this, arguments);\n }\n\n if (ViewDesc) BRHackViewDesc.__proto__ = ViewDesc;\n BRHackViewDesc.prototype = Object.create(ViewDesc && ViewDesc.prototype);\n BRHackViewDesc.prototype.constructor = BRHackViewDesc;\n var prototypeAccessors$5 = {\n domAtom: {\n configurable: true\n }\n };\n\n BRHackViewDesc.prototype.parseRule = function parseRule() {\n return {\n ignore: true\n };\n };\n\n BRHackViewDesc.prototype.matchesHack = function matchesHack() {\n return this.dirty == NOT_DIRTY;\n };\n\n prototypeAccessors$5.domAtom.get = function () {\n return true;\n };\n\n Object.defineProperties(BRHackViewDesc.prototype, prototypeAccessors$5);\n return BRHackViewDesc;\n}(ViewDesc); // A separate subclass is used for customized node views, so that the\n// extra checks only have to be made for nodes that are actually\n// customized.\n\n\nvar CustomNodeViewDesc = /*@__PURE__*/function (NodeViewDesc) {\n function CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec, view, pos) {\n NodeViewDesc.call(this, parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos);\n this.spec = spec;\n }\n\n if (NodeViewDesc) CustomNodeViewDesc.__proto__ = NodeViewDesc;\n CustomNodeViewDesc.prototype = Object.create(NodeViewDesc && NodeViewDesc.prototype);\n CustomNodeViewDesc.prototype.constructor = CustomNodeViewDesc; // A custom `update` method gets to decide whether the update goes\n // through. If it does, and there's a `contentDOM` node, our logic\n // updates the children.\n\n CustomNodeViewDesc.prototype.update = function update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY) {\n return false;\n }\n\n if (this.spec.update) {\n var result = this.spec.update(node, outerDeco);\n\n if (result) {\n this.updateInner(node, outerDeco, innerDeco, view);\n }\n\n return result;\n } else if (!this.contentDOM && !node.isLeaf) {\n return false;\n } else {\n return NodeViewDesc.prototype.update.call(this, node, outerDeco, innerDeco, view);\n }\n };\n\n CustomNodeViewDesc.prototype.selectNode = function selectNode() {\n this.spec.selectNode ? this.spec.selectNode() : NodeViewDesc.prototype.selectNode.call(this);\n };\n\n CustomNodeViewDesc.prototype.deselectNode = function deselectNode() {\n this.spec.deselectNode ? this.spec.deselectNode() : NodeViewDesc.prototype.deselectNode.call(this);\n };\n\n CustomNodeViewDesc.prototype.setSelection = function setSelection(anchor, head, root, force) {\n this.spec.setSelection ? this.spec.setSelection(anchor, head, root) : NodeViewDesc.prototype.setSelection.call(this, anchor, head, root, force);\n };\n\n CustomNodeViewDesc.prototype.destroy = function destroy() {\n if (this.spec.destroy) {\n this.spec.destroy();\n }\n\n NodeViewDesc.prototype.destroy.call(this);\n };\n\n CustomNodeViewDesc.prototype.stopEvent = function stopEvent(event) {\n return this.spec.stopEvent ? this.spec.stopEvent(event) : false;\n };\n\n CustomNodeViewDesc.prototype.ignoreMutation = function ignoreMutation(mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : NodeViewDesc.prototype.ignoreMutation.call(this, mutation);\n };\n\n return CustomNodeViewDesc;\n}(NodeViewDesc); // : (dom.Node, [ViewDesc])\n// Sync the content of the given DOM node with the nodes associated\n// with the given array of view descs, recursing into mark descs\n// because this should sync the subtree for a whole node at a time.\n\n\nfunction renderDescs(parentDOM, descs, view) {\n var dom = parentDOM.firstChild,\n written = false;\n\n for (var i = 0; i < descs.length; i++) {\n var desc = descs[i],\n childDOM = desc.dom;\n\n if (childDOM.parentNode == parentDOM) {\n while (childDOM != dom) {\n dom = rm(dom);\n written = true;\n }\n\n dom = dom.nextSibling;\n } else {\n written = true;\n parentDOM.insertBefore(childDOM, dom);\n }\n\n if (desc instanceof MarkViewDesc) {\n var pos = dom ? dom.previousSibling : parentDOM.lastChild;\n renderDescs(desc.contentDOM, desc.children, view);\n dom = pos ? pos.nextSibling : parentDOM.firstChild;\n }\n }\n\n while (dom) {\n dom = rm(dom);\n written = true;\n }\n\n if (written && view.trackWrites == parentDOM) {\n view.trackWrites = null;\n }\n}\n\nfunction OuterDecoLevel(nodeName) {\n if (nodeName) {\n this.nodeName = nodeName;\n }\n}\n\nOuterDecoLevel.prototype = Object.create(null);\nvar noDeco = [new OuterDecoLevel()];\n\nfunction computeOuterDeco(outerDeco, node, needsWrap) {\n if (outerDeco.length == 0) {\n return noDeco;\n }\n\n var top = needsWrap ? noDeco[0] : new OuterDecoLevel(),\n result = [top];\n\n for (var i = 0; i < outerDeco.length; i++) {\n var attrs = outerDeco[i].type.attrs;\n\n if (!attrs) {\n continue;\n }\n\n if (attrs.nodeName) {\n result.push(top = new OuterDecoLevel(attrs.nodeName));\n }\n\n for (var name in attrs) {\n var val = attrs[name];\n\n if (val == null) {\n continue;\n }\n\n if (needsWrap && result.length == 1) {\n result.push(top = new OuterDecoLevel(node.isInline ? \"span\" : \"div\"));\n }\n\n if (name == \"class\") {\n top[\"class\"] = (top[\"class\"] ? top[\"class\"] + \" \" : \"\") + val;\n } else if (name == \"style\") {\n top.style = (top.style ? top.style + \";\" : \"\") + val;\n } else if (name != \"nodeName\") {\n top[name] = val;\n }\n }\n }\n\n return result;\n}\n\nfunction patchOuterDeco(outerDOM, nodeDOM, prevComputed, curComputed) {\n // Shortcut for trivial case\n if (prevComputed == noDeco && curComputed == noDeco) {\n return nodeDOM;\n }\n\n var curDOM = nodeDOM;\n\n for (var i = 0; i < curComputed.length; i++) {\n var deco = curComputed[i],\n prev = prevComputed[i];\n\n if (i) {\n var parent = void 0;\n\n if (prev && prev.nodeName == deco.nodeName && curDOM != outerDOM && (parent = curDOM.parentNode) && parent.tagName.toLowerCase() == deco.nodeName) {\n curDOM = parent;\n } else {\n parent = document.createElement(deco.nodeName);\n parent.pmIsDeco = true;\n parent.appendChild(curDOM);\n prev = noDeco[0];\n curDOM = parent;\n }\n }\n\n patchAttributes(curDOM, prev || noDeco[0], deco);\n }\n\n return curDOM;\n}\n\nfunction patchAttributes(dom, prev, cur) {\n for (var name in prev) {\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && !(name in cur)) {\n dom.removeAttribute(name);\n }\n }\n\n for (var name$1 in cur) {\n if (name$1 != \"class\" && name$1 != \"style\" && name$1 != \"nodeName\" && cur[name$1] != prev[name$1]) {\n dom.setAttribute(name$1, cur[name$1]);\n }\n }\n\n if (prev[\"class\"] != cur[\"class\"]) {\n var prevList = prev[\"class\"] ? prev[\"class\"].split(\" \") : nothing;\n var curList = cur[\"class\"] ? cur[\"class\"].split(\" \") : nothing;\n\n for (var i = 0; i < prevList.length; i++) {\n if (curList.indexOf(prevList[i]) == -1) {\n dom.classList.remove(prevList[i]);\n }\n }\n\n for (var i$1 = 0; i$1 < curList.length; i$1++) {\n if (prevList.indexOf(curList[i$1]) == -1) {\n dom.classList.add(curList[i$1]);\n }\n }\n }\n\n if (prev.style != cur.style) {\n if (prev.style) {\n var prop = /\\s*([\\w\\-\\xa1-\\uffff]+)\\s*:(?:\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|\\(.*?\\)|[^;])*/g,\n m;\n\n while (m = prop.exec(prev.style)) {\n dom.style.removeProperty(m[1]);\n }\n }\n\n if (cur.style) {\n dom.style.cssText += cur.style;\n }\n }\n}\n\nfunction applyOuterDeco(dom, deco, node) {\n return patchOuterDeco(dom, dom, noDeco, computeOuterDeco(deco, node, dom.nodeType != 1));\n} // : ([Decoration], [Decoration]) → bool\n\n\nfunction sameOuterDeco(a, b) {\n if (a.length != b.length) {\n return false;\n }\n\n for (var i = 0; i < a.length; i++) {\n if (!a[i].type.eq(b[i].type)) {\n return false;\n }\n }\n\n return true;\n} // Remove a DOM node and return its next sibling.\n\n\nfunction rm(dom) {\n var next = dom.nextSibling;\n dom.parentNode.removeChild(dom);\n return next;\n} // Helper class for incrementally updating a tree of mark descs and\n// the widget and node descs inside of them.\n\n\nvar ViewTreeUpdater = function ViewTreeUpdater(top, lockedNode) {\n this.top = top;\n this.lock = lockedNode; // Index into `this.top`'s child array, represents the current\n // update position.\n\n this.index = 0; // When entering a mark, the current top and index are pushed\n // onto this.\n\n this.stack = []; // Tracks whether anything was changed\n\n this.changed = false;\n var pre = preMatch(top.node.content, top.children);\n this.preMatched = pre.nodes;\n this.preMatchOffset = pre.offset;\n};\n\nViewTreeUpdater.prototype.getPreMatch = function getPreMatch(index) {\n return index >= this.preMatchOffset ? this.preMatched[index - this.preMatchOffset] : null;\n}; // Destroy and remove the children between the given indices in\n// `this.top`.\n\n\nViewTreeUpdater.prototype.destroyBetween = function destroyBetween(start, end) {\n if (start == end) {\n return;\n }\n\n for (var i = start; i < end; i++) {\n this.top.children[i].destroy();\n }\n\n this.top.children.splice(start, end - start);\n this.changed = true;\n}; // Destroy all remaining children in `this.top`.\n\n\nViewTreeUpdater.prototype.destroyRest = function destroyRest() {\n this.destroyBetween(this.index, this.top.children.length);\n}; // : ([Mark], EditorView)\n// Sync the current stack of mark descs with the given array of\n// marks, reusing existing mark descs when possible.\n\n\nViewTreeUpdater.prototype.syncToMarks = function syncToMarks(marks, inline, view) {\n var keep = 0,\n depth = this.stack.length >> 1;\n var maxKeep = Math.min(depth, marks.length);\n\n while (keep < maxKeep && (keep == depth - 1 ? this.top : this.stack[keep + 1 << 1]).matchesMark(marks[keep]) && marks[keep].type.spec.spanning !== false) {\n keep++;\n }\n\n while (keep < depth) {\n this.destroyRest();\n this.top.dirty = NOT_DIRTY;\n this.index = this.stack.pop();\n this.top = this.stack.pop();\n depth--;\n }\n\n while (depth < marks.length) {\n this.stack.push(this.top, this.index + 1);\n var found = -1;\n\n for (var i = this.index; i < Math.min(this.index + 3, this.top.children.length); i++) {\n if (this.top.children[i].matchesMark(marks[depth])) {\n found = i;\n break;\n }\n }\n\n if (found > -1) {\n if (found > this.index) {\n this.changed = true;\n this.destroyBetween(this.index, found);\n }\n\n this.top = this.top.children[this.index];\n } else {\n var markDesc = MarkViewDesc.create(this.top, marks[depth], inline, view);\n this.top.children.splice(this.index, 0, markDesc);\n this.top = markDesc;\n this.changed = true;\n }\n\n this.index = 0;\n depth++;\n }\n}; // : (Node, [Decoration], DecorationSet) → bool\n// Try to find a node desc matching the given data. Skip over it and\n// return true when successful.\n\n\nViewTreeUpdater.prototype.findNodeMatch = function findNodeMatch(node, outerDeco, innerDeco, index) {\n var found = -1,\n preMatch = index < 0 ? undefined : this.getPreMatch(index),\n children = this.top.children;\n\n if (preMatch && preMatch.matchesNode(node, outerDeco, innerDeco)) {\n found = children.indexOf(preMatch);\n } else {\n for (var i = this.index, e = Math.min(children.length, i + 5); i < e; i++) {\n var child = children[i];\n\n if (child.matchesNode(node, outerDeco, innerDeco) && this.preMatched.indexOf(child) < 0) {\n found = i;\n break;\n }\n }\n }\n\n if (found < 0) {\n return false;\n }\n\n this.destroyBetween(this.index, found);\n this.index++;\n return true;\n}; // : (Node, [Decoration], DecorationSet, EditorView, Fragment, number) → bool\n// Try to update the next node, if any, to the given data. Checks\n// pre-matches to avoid overwriting nodes that could still be used.\n\n\nViewTreeUpdater.prototype.updateNextNode = function updateNextNode(node, outerDeco, innerDeco, view, index) {\n for (var i = this.index; i < this.top.children.length; i++) {\n var next = this.top.children[i];\n\n if (next instanceof NodeViewDesc) {\n var preMatch = this.preMatched.indexOf(next);\n\n if (preMatch > -1 && preMatch + this.preMatchOffset != index) {\n return false;\n }\n\n var nextDOM = next.dom; // Can't update if nextDOM is or contains this.lock, except if\n // it's a text node whose content already matches the new text\n // and whose decorations match the new ones.\n\n var locked = this.lock && (nextDOM == this.lock || nextDOM.nodeType == 1 && nextDOM.contains(this.lock.parentNode)) && !(node.isText && next.node && next.node.isText && next.nodeDOM.nodeValue == node.text && next.dirty != NODE_DIRTY && sameOuterDeco(outerDeco, next.outerDeco));\n\n if (!locked && next.update(node, outerDeco, innerDeco, view)) {\n this.destroyBetween(this.index, i);\n\n if (next.dom != nextDOM) {\n this.changed = true;\n }\n\n this.index++;\n return true;\n }\n\n break;\n }\n }\n\n return false;\n}; // : (Node, [Decoration], DecorationSet, EditorView)\n// Insert the node as a newly created node desc.\n\n\nViewTreeUpdater.prototype.addNode = function addNode(node, outerDeco, innerDeco, view, pos) {\n this.top.children.splice(this.index++, 0, NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos));\n this.changed = true;\n};\n\nViewTreeUpdater.prototype.placeWidget = function placeWidget(widget, view, pos) {\n var next = this.index < this.top.children.length ? this.top.children[this.index] : null;\n\n if (next && next.matchesWidget(widget) && (widget == next.widget || !next.widget.type.toDOM.parentNode)) {\n this.index++;\n } else {\n var desc = new WidgetViewDesc(this.top, widget, view, pos);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n}; // Make sure a textblock looks and behaves correctly in\n// contentEditable.\n\n\nViewTreeUpdater.prototype.addTextblockHacks = function addTextblockHacks() {\n var lastChild = this.top.children[this.index - 1];\n\n while (lastChild instanceof MarkViewDesc) {\n lastChild = lastChild.children[lastChild.children.length - 1];\n }\n\n if (!lastChild || // Empty textblock\n !(lastChild instanceof TextViewDesc) || /\\n$/.test(lastChild.node.text)) {\n if (this.index < this.top.children.length && this.top.children[this.index].matchesHack()) {\n this.index++;\n } else {\n var dom = document.createElement(\"br\");\n this.top.children.splice(this.index++, 0, new BRHackViewDesc(this.top, nothing, dom, null));\n this.changed = true;\n }\n }\n}; // : (Fragment, [ViewDesc]) → [ViewDesc]\n// Iterate from the end of the fragment and array of descs to find\n// directly matching ones, in order to avoid overeagerly reusing\n// those for other nodes. Returns an array whose positions correspond\n// to node positions in the fragment, and whose elements are either\n// descs matched to the child at that index, or empty.\n\n\nfunction preMatch(frag, descs) {\n var result = [],\n end = frag.childCount;\n\n for (var i = descs.length - 1; end > 0 && i >= 0; i--) {\n var desc = descs[i],\n node = desc.node;\n\n if (!node) {\n continue;\n }\n\n if (node != frag.child(end - 1)) {\n break;\n }\n\n result.push(desc);\n --end;\n }\n\n return {\n nodes: result.reverse(),\n offset: end\n };\n}\n\nfunction compareSide(a, b) {\n return a.type.side - b.type.side;\n} // : (ViewDesc, DecorationSet, (Decoration, number), (Node, [Decoration], DecorationSet, number))\n// This function abstracts iterating over the nodes and decorations in\n// a fragment. Calls `onNode` for each node, with its local and child\n// decorations. Splits text nodes when there is a decoration starting\n// or ending inside of them. Calls `onWidget` for each widget.\n\n\nfunction iterDeco(parent, deco, onWidget, onNode) {\n var locals = deco.locals(parent),\n offset = 0; // Simple, cheap variant for when there are no local decorations\n\n if (locals.length == 0) {\n for (var i = 0; i < parent.childCount; i++) {\n var child = parent.child(i);\n onNode(child, locals, deco.forChild(offset, child), i);\n offset += child.nodeSize;\n }\n\n return;\n }\n\n var decoIndex = 0,\n active = [],\n restNode = null;\n\n for (var parentIndex = 0;;) {\n if (decoIndex < locals.length && locals[decoIndex].to == offset) {\n var widget = locals[decoIndex++],\n widgets = void 0;\n\n while (decoIndex < locals.length && locals[decoIndex].to == offset) {\n (widgets || (widgets = [widget])).push(locals[decoIndex++]);\n }\n\n if (widgets) {\n widgets.sort(compareSide);\n\n for (var i$1 = 0; i$1 < widgets.length; i$1++) {\n onWidget(widgets[i$1], parentIndex, !!restNode);\n }\n } else {\n onWidget(widget, parentIndex, !!restNode);\n }\n }\n\n var child$1 = void 0,\n index = void 0;\n\n if (restNode) {\n index = -1;\n child$1 = restNode;\n restNode = null;\n } else if (parentIndex < parent.childCount) {\n index = parentIndex;\n child$1 = parent.child(parentIndex++);\n } else {\n break;\n }\n\n for (var i$2 = 0; i$2 < active.length; i$2++) {\n if (active[i$2].to <= offset) {\n active.splice(i$2--, 1);\n }\n }\n\n while (decoIndex < locals.length && locals[decoIndex].from <= offset && locals[decoIndex].to > offset) {\n active.push(locals[decoIndex++]);\n }\n\n var end = offset + child$1.nodeSize;\n\n if (child$1.isText) {\n var cutAt = end;\n\n if (decoIndex < locals.length && locals[decoIndex].from < cutAt) {\n cutAt = locals[decoIndex].from;\n }\n\n for (var i$3 = 0; i$3 < active.length; i$3++) {\n if (active[i$3].to < cutAt) {\n cutAt = active[i$3].to;\n }\n }\n\n if (cutAt < end) {\n restNode = child$1.cut(cutAt - offset);\n child$1 = child$1.cut(0, cutAt - offset);\n end = cutAt;\n index = -1;\n }\n }\n\n var outerDeco = !active.length ? nothing : child$1.isInline && !child$1.isLeaf ? active.filter(function (d) {\n return !d.inline;\n }) : active.slice();\n onNode(child$1, outerDeco, deco.forChild(offset, child$1), index);\n offset = end;\n }\n} // List markers in Mobile Safari will mysteriously disappear\n// sometimes. This works around that.\n\n\nfunction iosHacks(dom) {\n if (dom.nodeName == \"UL\" || dom.nodeName == \"OL\") {\n var oldCSS = dom.style.cssText;\n dom.style.cssText = oldCSS + \"; list-style: square !important\";\n window.getComputedStyle(dom).listStyle;\n dom.style.cssText = oldCSS;\n }\n}\n\nfunction nearbyTextNode(node, offset) {\n for (;;) {\n if (node.nodeType == 3) {\n return node;\n }\n\n if (node.nodeType == 1 && offset > 0) {\n if (node.childNodes.length > offset && node.childNodes[offset].nodeType == 3) {\n return node.childNodes[offset];\n }\n\n node = node.childNodes[offset - 1];\n offset = nodeSize(node);\n } else if (node.nodeType == 1 && offset < node.childNodes.length) {\n node = node.childNodes[offset];\n offset = 0;\n } else {\n return null;\n }\n }\n} // Find a piece of text in an inline fragment, overlapping from-to\n\n\nfunction findTextInFragment(frag, text, from, to) {\n for (var i = 0, pos = 0; i < frag.childCount && pos <= to;) {\n var child = frag.child(i++),\n childStart = pos;\n pos += child.nodeSize;\n\n if (!child.isText) {\n continue;\n }\n\n var str = child.text;\n\n while (i < frag.childCount) {\n var next = frag.child(i++);\n pos += next.nodeSize;\n\n if (!next.isText) {\n break;\n }\n\n str += next.text;\n }\n\n if (pos >= from) {\n var found = str.lastIndexOf(text, to - childStart);\n\n if (found >= 0 && found + text.length + childStart >= from) {\n return childStart + found;\n }\n }\n }\n\n return -1;\n} // Replace range from-to in an array of view descs with replacement\n// (may be null to just delete). This goes very much against the grain\n// of the rest of this code, which tends to create nodes with the\n// right shape in one go, rather than messing with them after\n// creation, but is necessary in the composition hack.\n\n\nfunction replaceNodes(nodes, from, to, view, replacement) {\n var result = [];\n\n for (var i = 0, off = 0; i < nodes.length; i++) {\n var child = nodes[i],\n start = off,\n end = off += child.size;\n\n if (start >= to || end <= from) {\n result.push(child);\n } else {\n if (start < from) {\n result.push(child.slice(0, from - start, view));\n }\n\n if (replacement) {\n result.push(replacement);\n replacement = null;\n }\n\n if (end > to) {\n result.push(child.slice(to - start, child.size, view));\n }\n }\n }\n\n return result;\n}\n\nfunction selectionFromDOM(view, origin) {\n var domSel = view.root.getSelection(),\n doc = view.state.doc;\n\n if (!domSel.focusNode) {\n return null;\n }\n\n var nearestDesc = view.docView.nearestDesc(domSel.focusNode),\n inWidget = nearestDesc && nearestDesc.size == 0;\n var head = view.docView.posFromDOM(domSel.focusNode, domSel.focusOffset);\n\n if (head < 0) {\n return null;\n }\n\n var $head = doc.resolve(head),\n $anchor,\n selection;\n\n if (selectionCollapsed(domSel)) {\n $anchor = $head;\n\n while (nearestDesc && !nearestDesc.node) {\n nearestDesc = nearestDesc.parent;\n }\n\n if (nearestDesc && nearestDesc.node.isAtom && NodeSelection.isSelectable(nearestDesc.node) && nearestDesc.parent && !(nearestDesc.node.isInline && isOnEdge(domSel.focusNode, domSel.focusOffset, nearestDesc.dom))) {\n var pos = nearestDesc.posBefore;\n selection = new NodeSelection(head == pos ? $head : doc.resolve(pos));\n }\n } else {\n var anchor = view.docView.posFromDOM(domSel.anchorNode, domSel.anchorOffset);\n\n if (anchor < 0) {\n return null;\n }\n\n $anchor = doc.resolve(anchor);\n }\n\n if (!selection) {\n var bias = origin == \"pointer\" || view.state.selection.head < $head.pos && !inWidget ? 1 : -1;\n selection = selectionBetween(view, $anchor, $head, bias);\n }\n\n return selection;\n}\n\nfunction editorOwnsSelection(view) {\n return view.editable ? view.hasFocus() : hasSelection(view) && document.activeElement && document.activeElement.contains(view.dom);\n}\n\nfunction selectionToDOM(view, force) {\n var sel = view.state.selection;\n syncNodeSelection(view, sel);\n\n if (!editorOwnsSelection(view)) {\n return;\n }\n\n view.domObserver.disconnectSelection();\n\n if (view.cursorWrapper) {\n selectCursorWrapper(view);\n } else {\n var anchor = sel.anchor;\n var head = sel.head;\n var resetEditableFrom, resetEditableTo;\n\n if (brokenSelectBetweenUneditable && !(sel instanceof TextSelection)) {\n if (!sel.$from.parent.inlineContent) {\n resetEditableFrom = temporarilyEditableNear(view, sel.from);\n }\n\n if (!sel.empty && !sel.$from.parent.inlineContent) {\n resetEditableTo = temporarilyEditableNear(view, sel.to);\n }\n }\n\n view.docView.setSelection(anchor, head, view.root, force);\n\n if (brokenSelectBetweenUneditable) {\n if (resetEditableFrom) {\n resetEditable(resetEditableFrom);\n }\n\n if (resetEditableTo) {\n resetEditable(resetEditableTo);\n }\n }\n\n if (sel.visible) {\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n } else {\n view.dom.classList.add(\"ProseMirror-hideselection\");\n\n if (\"onselectionchange\" in document) {\n removeClassOnSelectionChange(view);\n }\n }\n }\n\n view.domObserver.setCurSelection();\n view.domObserver.connectSelection();\n} // Kludge to work around Webkit not allowing a selection to start/end\n// between non-editable block nodes. We briefly make something\n// editable, set the selection, then set it uneditable again.\n\n\nvar brokenSelectBetweenUneditable = result.safari || result.chrome && result.chrome_version < 63;\n\nfunction temporarilyEditableNear(view, pos) {\n var ref = view.docView.domFromPos(pos, 0);\n var node = ref.node;\n var offset = ref.offset;\n var after = offset < node.childNodes.length ? node.childNodes[offset] : null;\n var before = offset ? node.childNodes[offset - 1] : null;\n\n if (result.safari && after && after.contentEditable == \"false\") {\n return setEditable(after);\n }\n\n if ((!after || after.contentEditable == \"false\") && (!before || before.contentEditable == \"false\")) {\n if (after) {\n return setEditable(after);\n } else if (before) {\n return setEditable(before);\n }\n }\n}\n\nfunction setEditable(element) {\n element.contentEditable = \"true\";\n\n if (result.safari && element.draggable) {\n element.draggable = false;\n element.wasDraggable = true;\n }\n\n return element;\n}\n\nfunction resetEditable(element) {\n element.contentEditable = \"false\";\n\n if (element.wasDraggable) {\n element.draggable = true;\n element.wasDraggable = null;\n }\n}\n\nfunction removeClassOnSelectionChange(view) {\n var doc = view.dom.ownerDocument;\n doc.removeEventListener(\"selectionchange\", view.hideSelectionGuard);\n var domSel = view.root.getSelection();\n var node = domSel.anchorNode,\n offset = domSel.anchorOffset;\n doc.addEventListener(\"selectionchange\", view.hideSelectionGuard = function () {\n if (domSel.anchorNode != node || domSel.anchorOffset != offset) {\n doc.removeEventListener(\"selectionchange\", view.hideSelectionGuard);\n setTimeout(function () {\n if (!editorOwnsSelection(view) || view.state.selection.visible) {\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }\n }, 20);\n }\n });\n}\n\nfunction selectCursorWrapper(view) {\n var domSel = view.root.getSelection(),\n range = document.createRange();\n var node = view.cursorWrapper.dom,\n img = node.nodeName == \"IMG\";\n\n if (img) {\n range.setEnd(node.parentNode, domIndex(node) + 1);\n } else {\n range.setEnd(node, 0);\n }\n\n range.collapse(false);\n domSel.removeAllRanges();\n domSel.addRange(range); // Kludge to kill 'control selection' in IE11 when selecting an\n // invisible cursor wrapper, since that would result in those weird\n // resize handles and a selection that considers the absolutely\n // positioned wrapper, rather than the root editable node, the\n // focused element.\n\n if (!img && !view.state.selection.visible && result.ie && result.ie_version <= 11) {\n node.disabled = true;\n node.disabled = false;\n }\n}\n\nfunction syncNodeSelection(view, sel) {\n if (sel instanceof NodeSelection) {\n var desc = view.docView.descAt(sel.from);\n\n if (desc != view.lastSelectedViewDesc) {\n clearNodeSelection(view);\n\n if (desc) {\n desc.selectNode();\n }\n\n view.lastSelectedViewDesc = desc;\n }\n } else {\n clearNodeSelection(view);\n }\n} // Clear all DOM statefulness of the last node selection.\n\n\nfunction clearNodeSelection(view) {\n if (view.lastSelectedViewDesc) {\n if (view.lastSelectedViewDesc.parent) {\n view.lastSelectedViewDesc.deselectNode();\n }\n\n view.lastSelectedViewDesc = null;\n }\n}\n\nfunction selectionBetween(view, $anchor, $head, bias) {\n return view.someProp(\"createSelectionBetween\", function (f) {\n return f(view, $anchor, $head);\n }) || TextSelection.between($anchor, $head, bias);\n}\n\nfunction hasFocusAndSelection(view) {\n if (view.editable && view.root.activeElement != view.dom) {\n return false;\n }\n\n return hasSelection(view);\n}\n\nfunction hasSelection(view) {\n var sel = view.root.getSelection();\n\n if (!sel.anchorNode) {\n return false;\n }\n\n try {\n // Firefox will raise 'permission denied' errors when accessing\n // properties of `sel.anchorNode` when it's in a generated CSS\n // element.\n return view.dom.contains(sel.anchorNode.nodeType == 3 ? sel.anchorNode.parentNode : sel.anchorNode) && (view.editable || view.dom.contains(sel.focusNode.nodeType == 3 ? sel.focusNode.parentNode : sel.focusNode));\n } catch (_) {\n return false;\n }\n}\n\nfunction anchorInRightPlace(view) {\n var anchorDOM = view.docView.domFromPos(view.state.selection.anchor, 0);\n var domSel = view.root.getSelection();\n return isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset);\n}\n\nfunction moveSelectionBlock(state, dir) {\n var ref = state.selection;\n var $anchor = ref.$anchor;\n var $head = ref.$head;\n var $side = dir > 0 ? $anchor.max($head) : $anchor.min($head);\n var $start = !$side.parent.inlineContent ? $side : $side.depth ? state.doc.resolve(dir > 0 ? $side.after() : $side.before()) : null;\n return $start && Selection.findFrom($start, dir);\n}\n\nfunction apply(view, sel) {\n view.dispatch(view.state.tr.setSelection(sel).scrollIntoView());\n return true;\n}\n\nfunction selectHorizontally(view, dir, mods) {\n var sel = view.state.selection;\n\n if (sel instanceof TextSelection) {\n if (!sel.empty || mods.indexOf(\"s\") > -1) {\n return false;\n } else if (view.endOfTextblock(dir > 0 ? \"right\" : \"left\")) {\n var next = moveSelectionBlock(view.state, dir);\n\n if (next && next instanceof NodeSelection) {\n return apply(view, next);\n }\n\n return false;\n } else if (!(result.mac && mods.indexOf(\"m\") > -1)) {\n var $head = sel.$head,\n node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter,\n desc;\n\n if (!node || node.isText) {\n return false;\n }\n\n var nodePos = dir < 0 ? $head.pos - node.nodeSize : $head.pos;\n\n if (!(node.isAtom || (desc = view.docView.descAt(nodePos)) && !desc.contentDOM)) {\n return false;\n }\n\n if (NodeSelection.isSelectable(node)) {\n return apply(view, new NodeSelection(dir < 0 ? view.state.doc.resolve($head.pos - node.nodeSize) : $head));\n } else if (result.webkit) {\n // Chrome and Safari will introduce extra pointless cursor\n // positions around inline uneditable nodes, so we have to\n // take over and move the cursor past them (#937)\n return apply(view, new TextSelection(view.state.doc.resolve(dir < 0 ? nodePos : nodePos + node.nodeSize)));\n } else {\n return false;\n }\n }\n } else if (sel instanceof NodeSelection && sel.node.isInline) {\n return apply(view, new TextSelection(dir > 0 ? sel.$to : sel.$from));\n } else {\n var next$1 = moveSelectionBlock(view.state, dir);\n\n if (next$1) {\n return apply(view, next$1);\n }\n\n return false;\n }\n}\n\nfunction nodeLen(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\n\nfunction isIgnorable(dom) {\n var desc = dom.pmViewDesc;\n return desc && desc.size == 0 && (dom.nextSibling || dom.nodeName != \"BR\");\n} // Make sure the cursor isn't directly after one or more ignored\n// nodes, which will confuse the browser's cursor motion logic.\n\n\nfunction skipIgnoredNodesLeft(view) {\n var sel = view.root.getSelection();\n var node = sel.focusNode,\n offset = sel.focusOffset;\n\n if (!node) {\n return;\n }\n\n var moveNode,\n moveOffset,\n force = false; // Gecko will do odd things when the selection is directly in front\n // of a non-editable node, so in that case, move it into the next\n // node if possible. Issue prosemirror/prosemirror#832.\n\n if (result.gecko && node.nodeType == 1 && offset < nodeLen(node) && isIgnorable(node.childNodes[offset])) {\n force = true;\n }\n\n for (;;) {\n if (offset > 0) {\n if (node.nodeType != 1) {\n break;\n } else {\n var before = node.childNodes[offset - 1];\n\n if (isIgnorable(before)) {\n moveNode = node;\n moveOffset = --offset;\n } else if (before.nodeType == 3) {\n node = before;\n offset = node.nodeValue.length;\n } else {\n break;\n }\n }\n } else if (isBlockNode(node)) {\n break;\n } else {\n var prev = node.previousSibling;\n\n while (prev && isIgnorable(prev)) {\n moveNode = node.parentNode;\n moveOffset = domIndex(prev);\n prev = prev.previousSibling;\n }\n\n if (!prev) {\n node = node.parentNode;\n\n if (node == view.dom) {\n break;\n }\n\n offset = 0;\n } else {\n node = prev;\n offset = nodeLen(node);\n }\n }\n }\n\n if (force) {\n setSelFocus(view, sel, node, offset);\n } else if (moveNode) {\n setSelFocus(view, sel, moveNode, moveOffset);\n }\n} // Make sure the cursor isn't directly before one or more ignored\n// nodes.\n\n\nfunction skipIgnoredNodesRight(view) {\n var sel = view.root.getSelection();\n var node = sel.focusNode,\n offset = sel.focusOffset;\n\n if (!node) {\n return;\n }\n\n var len = nodeLen(node);\n var moveNode, moveOffset;\n\n for (;;) {\n if (offset < len) {\n if (node.nodeType != 1) {\n break;\n }\n\n var after = node.childNodes[offset];\n\n if (isIgnorable(after)) {\n moveNode = node;\n moveOffset = ++offset;\n } else {\n break;\n }\n } else if (isBlockNode(node)) {\n break;\n } else {\n var next = node.nextSibling;\n\n while (next && isIgnorable(next)) {\n moveNode = next.parentNode;\n moveOffset = domIndex(next) + 1;\n next = next.nextSibling;\n }\n\n if (!next) {\n node = node.parentNode;\n\n if (node == view.dom) {\n break;\n }\n\n offset = len = 0;\n } else {\n node = next;\n offset = 0;\n len = nodeLen(node);\n }\n }\n }\n\n if (moveNode) {\n setSelFocus(view, sel, moveNode, moveOffset);\n }\n}\n\nfunction isBlockNode(dom) {\n var desc = dom.pmViewDesc;\n return desc && desc.node && desc.node.isBlock;\n}\n\nfunction setSelFocus(view, sel, node, offset) {\n if (selectionCollapsed(sel)) {\n var range = document.createRange();\n range.setEnd(node, offset);\n range.setStart(node, offset);\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (sel.extend) {\n sel.extend(node, offset);\n }\n\n view.domObserver.setCurSelection();\n var state = view.state; // If no state update ends up happening, reset the selection.\n\n setTimeout(function () {\n if (view.state == state) {\n selectionToDOM(view);\n }\n }, 50);\n} // : (EditorState, number)\n// Check whether vertical selection motion would involve node\n// selections. If so, apply it (if not, the result is left to the\n// browser)\n\n\nfunction selectVertically(view, dir, mods) {\n var sel = view.state.selection;\n\n if (sel instanceof TextSelection && !sel.empty || mods.indexOf(\"s\") > -1) {\n return false;\n }\n\n if (result.mac && mods.indexOf(\"m\") > -1) {\n return false;\n }\n\n var $from = sel.$from;\n var $to = sel.$to;\n\n if (!$from.parent.inlineContent || view.endOfTextblock(dir < 0 ? \"up\" : \"down\")) {\n var next = moveSelectionBlock(view.state, dir);\n\n if (next && next instanceof NodeSelection) {\n return apply(view, next);\n }\n }\n\n if (!$from.parent.inlineContent) {\n var side = dir < 0 ? $from : $to;\n var beyond = sel instanceof AllSelection ? Selection.near(side, dir) : Selection.findFrom(side, dir);\n return beyond ? apply(view, beyond) : false;\n }\n\n return false;\n}\n\nfunction stopNativeHorizontalDelete(view, dir) {\n if (!(view.state.selection instanceof TextSelection)) {\n return true;\n }\n\n var ref = view.state.selection;\n var $head = ref.$head;\n var $anchor = ref.$anchor;\n var empty = ref.empty;\n\n if (!$head.sameParent($anchor)) {\n return true;\n }\n\n if (!empty) {\n return false;\n }\n\n if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\")) {\n return true;\n }\n\n var nextNode = !$head.textOffset && (dir < 0 ? $head.nodeBefore : $head.nodeAfter);\n\n if (nextNode && !nextNode.isText) {\n var tr = view.state.tr;\n\n if (dir < 0) {\n tr[\"delete\"]($head.pos - nextNode.nodeSize, $head.pos);\n } else {\n tr[\"delete\"]($head.pos, $head.pos + nextNode.nodeSize);\n }\n\n view.dispatch(tr);\n return true;\n }\n\n return false;\n}\n\nfunction switchEditable(view, node, state) {\n view.domObserver.stop();\n node.contentEditable = state;\n view.domObserver.start();\n} // Issue #867 / #1090 / https://bugs.chromium.org/p/chromium/issues/detail?id=903821\n// In which Safari (and at some point in the past, Chrome) does really\n// wrong things when the down arrow is pressed when the cursor is\n// directly at the start of a textblock and has an uneditable node\n// after it\n\n\nfunction safariDownArrowBug(view) {\n if (!result.safari || view.state.selection.$head.parentOffset > 0) {\n return;\n }\n\n var ref = view.root.getSelection();\n var focusNode = ref.focusNode;\n var focusOffset = ref.focusOffset;\n\n if (focusNode && focusNode.nodeType == 1 && focusOffset == 0 && focusNode.firstChild && focusNode.firstChild.contentEditable == \"false\") {\n var child = focusNode.firstChild;\n switchEditable(view, child, true);\n setTimeout(function () {\n return switchEditable(view, child, false);\n }, 20);\n }\n} // A backdrop key mapping used to make sure we always suppress keys\n// that have a dangerous default effect, even if the commands they are\n// bound to return false, and to make sure that cursor-motion keys\n// find a cursor (as opposed to a node selection) when pressed. For\n// cursor-motion keys, the code in the handlers also takes care of\n// block selections.\n\n\nfunction getMods(event) {\n var result = \"\";\n\n if (event.ctrlKey) {\n result += \"c\";\n }\n\n if (event.metaKey) {\n result += \"m\";\n }\n\n if (event.altKey) {\n result += \"a\";\n }\n\n if (event.shiftKey) {\n result += \"s\";\n }\n\n return result;\n}\n\nfunction captureKeyDown(view, event) {\n var code = event.keyCode,\n mods = getMods(event);\n\n if (code == 8 || result.mac && code == 72 && mods == \"c\") {\n // Backspace, Ctrl-h on Mac\n return stopNativeHorizontalDelete(view, -1) || skipIgnoredNodesLeft(view);\n } else if (code == 46 || result.mac && code == 68 && mods == \"c\") {\n // Delete, Ctrl-d on Mac\n return stopNativeHorizontalDelete(view, 1) || skipIgnoredNodesRight(view);\n } else if (code == 13 || code == 27) {\n // Enter, Esc\n return true;\n } else if (code == 37) {\n // Left arrow\n return selectHorizontally(view, -1, mods) || skipIgnoredNodesLeft(view);\n } else if (code == 39) {\n // Right arrow\n return selectHorizontally(view, 1, mods) || skipIgnoredNodesRight(view);\n } else if (code == 38) {\n // Up arrow\n return selectVertically(view, -1, mods) || skipIgnoredNodesLeft(view);\n } else if (code == 40) {\n // Down arrow\n return safariDownArrowBug(view) || selectVertically(view, 1, mods) || skipIgnoredNodesRight(view);\n } else if (mods == (result.mac ? \"m\" : \"c\") && (code == 66 || code == 73 || code == 89 || code == 90)) {\n // Mod-[biyz]\n return true;\n }\n\n return false;\n} // Note that all referencing and parsing is done with the\n// start-of-operation selection and document, since that's the one\n// that the DOM represents. If any changes came in in the meantime,\n// the modification is mapped over those before it is applied, in\n// readDOMChange.\n\n\nfunction parseBetween(view, from_, to_) {\n var ref = view.docView.parseRange(from_, to_);\n var parent = ref.node;\n var fromOffset = ref.fromOffset;\n var toOffset = ref.toOffset;\n var from = ref.from;\n var to = ref.to;\n var domSel = view.root.getSelection(),\n find = null,\n anchor = domSel.anchorNode;\n\n if (anchor && view.dom.contains(anchor.nodeType == 1 ? anchor : anchor.parentNode)) {\n find = [{\n node: anchor,\n offset: domSel.anchorOffset\n }];\n\n if (!selectionCollapsed(domSel)) {\n find.push({\n node: domSel.focusNode,\n offset: domSel.focusOffset\n });\n }\n } // Work around issue in Chrome where backspacing sometimes replaces\n // the deleted content with a random BR node (issues #799, #831)\n\n\n if (result.chrome && view.lastKeyCode === 8) {\n for (var off = toOffset; off > fromOffset; off--) {\n var node = parent.childNodes[off - 1],\n desc = node.pmViewDesc;\n\n if (node.nodeType == \"BR\" && !desc) {\n toOffset = off;\n break;\n }\n\n if (!desc || desc.size) {\n break;\n }\n }\n }\n\n var startDoc = view.state.doc;\n var parser = view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n var $from = startDoc.resolve(from);\n var sel = null,\n doc = parser.parse(parent, {\n topNode: $from.parent,\n topMatch: $from.parent.contentMatchAt($from.index()),\n topOpen: true,\n from: fromOffset,\n to: toOffset,\n preserveWhitespace: $from.parent.type.spec.code ? \"full\" : true,\n editableContent: true,\n findPositions: find,\n ruleFromNode: ruleFromNode,\n context: $from\n });\n\n if (find && find[0].pos != null) {\n var anchor$1 = find[0].pos,\n head = find[1] && find[1].pos;\n\n if (head == null) {\n head = anchor$1;\n }\n\n sel = {\n anchor: anchor$1 + from,\n head: head + from\n };\n }\n\n return {\n doc: doc,\n sel: sel,\n from: from,\n to: to\n };\n}\n\nfunction ruleFromNode(dom) {\n var desc = dom.pmViewDesc;\n\n if (desc) {\n return desc.parseRule();\n } else if (dom.nodeName == \"BR\" && dom.parentNode) {\n // Safari replaces the list item or table cell with a BR\n // directly in the list node (?!) if you delete the last\n // character in a list item or table cell (#708, #862)\n if (result.safari && /^(ul|ol)$/i.test(dom.parentNode.nodeName)) {\n var skip = document.createElement(\"div\");\n skip.appendChild(document.createElement(\"li\"));\n return {\n skip: skip\n };\n } else if (dom.parentNode.lastChild == dom || result.safari && /^(tr|table)$/i.test(dom.parentNode.nodeName)) {\n return {\n ignore: true\n };\n }\n } else if (dom.nodeName == \"IMG\" && dom.getAttribute(\"mark-placeholder\")) {\n return {\n ignore: true\n };\n }\n}\n\nfunction readDOMChange(view, from, to, typeOver, addedNodes) {\n if (from < 0) {\n var origin = view.lastSelectionTime > Date.now() - 50 ? view.lastSelectionOrigin : null;\n var newSel = selectionFromDOM(view, origin);\n\n if (newSel && !view.state.selection.eq(newSel)) {\n var tr$1 = view.state.tr.setSelection(newSel);\n\n if (origin == \"pointer\") {\n tr$1.setMeta(\"pointer\", true);\n } else if (origin == \"key\") {\n tr$1.scrollIntoView();\n }\n\n view.dispatch(tr$1);\n }\n\n return;\n }\n\n var $before = view.state.doc.resolve(from);\n var shared = $before.sharedDepth(to);\n from = $before.before(shared + 1);\n to = view.state.doc.resolve(to).after(shared + 1);\n var sel = view.state.selection;\n var parse = parseBetween(view, from, to); // Chrome sometimes leaves the cursor before the inserted text when\n // composing after a cursor wrapper. This moves it forward.\n\n if (result.chrome && view.cursorWrapper && parse.sel && parse.sel.anchor == view.cursorWrapper.deco.from) {\n var text = view.cursorWrapper.deco.type.toDOM.nextSibling;\n var size = text && text.nodeValue ? text.nodeValue.length : 1;\n parse.sel = {\n anchor: parse.sel.anchor + size,\n head: parse.sel.anchor + size\n };\n }\n\n var doc = view.state.doc,\n compare = doc.slice(parse.from, parse.to);\n var preferredPos, preferredSide; // Prefer anchoring to end when Backspace is pressed\n\n if (view.lastKeyCode === 8 && Date.now() - 100 < view.lastKeyCodeTime) {\n preferredPos = view.state.selection.to;\n preferredSide = \"end\";\n } else {\n preferredPos = view.state.selection.from;\n preferredSide = \"start\";\n }\n\n view.lastKeyCode = null;\n var change = findDiff(compare.content, parse.doc.content, parse.from, preferredPos, preferredSide);\n\n if (!change) {\n if (typeOver && sel instanceof TextSelection && !sel.empty && sel.$head.sameParent(sel.$anchor) && !view.composing && !(parse.sel && parse.sel.anchor != parse.sel.head)) {\n change = {\n start: sel.from,\n endA: sel.to,\n endB: sel.to\n };\n } else if (result.ios && view.lastIOSEnter > Date.now() - 225 && addedNodes.some(function (n) {\n return n.nodeName == \"DIV\" || n.nodeName == \"P\";\n }) && view.someProp(\"handleKeyDown\", function (f) {\n return f(view, keyEvent(13, \"Enter\"));\n })) {\n view.lastIOSEnter = 0;\n return;\n } else {\n if (parse.sel) {\n var sel$1 = resolveSelection(view, view.state.doc, parse.sel);\n\n if (sel$1 && !sel$1.eq(view.state.selection)) {\n view.dispatch(view.state.tr.setSelection(sel$1));\n }\n }\n\n return;\n }\n }\n\n view.domChangeCount++; // Handle the case where overwriting a selection by typing matches\n // the start or end of the selected content, creating a change\n // that's smaller than what was actually overwritten.\n\n if (view.state.selection.from < view.state.selection.to && change.start == change.endB && view.state.selection instanceof TextSelection) {\n if (change.start > view.state.selection.from && change.start <= view.state.selection.from + 2) {\n change.start = view.state.selection.from;\n } else if (change.endA < view.state.selection.to && change.endA >= view.state.selection.to - 2) {\n change.endB += view.state.selection.to - change.endA;\n change.endA = view.state.selection.to;\n }\n } // IE11 will insert a non-breaking space _ahead_ of the space after\n // the cursor space when adding a space before another space. When\n // that happened, adjust the change to cover the space instead.\n\n\n if (result.ie && result.ie_version <= 11 && change.endB == change.start + 1 && change.endA == change.start && change.start > parse.from && parse.doc.textBetween(change.start - parse.from - 1, change.start - parse.from + 1) == \" \\xA0\") {\n change.start--;\n change.endA--;\n change.endB--;\n }\n\n var $from = parse.doc.resolveNoCache(change.start - parse.from);\n var $to = parse.doc.resolveNoCache(change.endB - parse.from);\n var inlineChange = $from.sameParent($to) && $from.parent.inlineContent;\n var nextSel; // If this looks like the effect of pressing Enter (or was recorded\n // as being an iOS enter press), just dispatch an Enter key instead.\n\n if ((result.ios && view.lastIOSEnter > Date.now() - 225 && (!inlineChange || addedNodes.some(function (n) {\n return n.nodeName == \"DIV\" || n.nodeName == \"P\";\n })) || !inlineChange && $from.pos < parse.doc.content.size && (nextSel = Selection.findFrom(parse.doc.resolve($from.pos + 1), 1, true)) && nextSel.head == $to.pos) && view.someProp(\"handleKeyDown\", function (f) {\n return f(view, keyEvent(13, \"Enter\"));\n })) {\n view.lastIOSEnter = 0;\n return;\n } // Same for backspace\n\n\n if (view.state.selection.anchor > change.start && looksLikeJoin(doc, change.start, change.endA, $from, $to) && view.someProp(\"handleKeyDown\", function (f) {\n return f(view, keyEvent(8, \"Backspace\"));\n })) {\n if (result.android && result.chrome) {\n view.domObserver.suppressSelectionUpdates();\n } // #820\n\n\n return;\n } // This tries to detect Android virtual keyboard\n // enter-and-pick-suggestion action. That sometimes (see issue\n // #1059) first fires a DOM mutation, before moving the selection to\n // the newly created block. And then, because ProseMirror cleans up\n // the DOM selection, it gives up moving the selection entirely,\n // leaving the cursor in the wrong place. When that happens, we drop\n // the new paragraph from the initial change, and fire a simulated\n // enter key afterwards.\n\n\n if (result.android && !inlineChange && $from.start() != $to.start() && $to.parentOffset == 0 && $from.depth == $to.depth && parse.sel && parse.sel.anchor == parse.sel.head && parse.sel.head == change.endA) {\n change.endB -= 2;\n $to = parse.doc.resolveNoCache(change.endB - parse.from);\n setTimeout(function () {\n view.someProp(\"handleKeyDown\", function (f) {\n return f(view, keyEvent(13, \"Enter\"));\n });\n }, 20);\n }\n\n var chFrom = change.start,\n chTo = change.endA;\n var tr, storedMarks, markChange, $from1;\n\n if (inlineChange) {\n if ($from.pos == $to.pos) {\n // Deletion\n // IE11 sometimes weirdly moves the DOM selection around after\n // backspacing out the first element in a textblock\n if (result.ie && result.ie_version <= 11 && $from.parentOffset == 0) {\n view.domObserver.suppressSelectionUpdates();\n setTimeout(function () {\n return selectionToDOM(view);\n }, 20);\n }\n\n tr = view.state.tr[\"delete\"](chFrom, chTo);\n storedMarks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));\n } else if ( // Adding or removing a mark\n change.endA == change.endB && ($from1 = doc.resolve(change.start)) && (markChange = isMarkChange($from.parent.content.cut($from.parentOffset, $to.parentOffset), $from1.parent.content.cut($from1.parentOffset, change.endA - $from1.start())))) {\n tr = view.state.tr;\n\n if (markChange.type == \"add\") {\n tr.addMark(chFrom, chTo, markChange.mark);\n } else {\n tr.removeMark(chFrom, chTo, markChange.mark);\n }\n } else if ($from.parent.child($from.index()).isText && $from.index() == $to.index() - ($to.textOffset ? 0 : 1)) {\n // Both positions in the same text node -- simply insert text\n var text$1 = $from.parent.textBetween($from.parentOffset, $to.parentOffset);\n\n if (view.someProp(\"handleTextInput\", function (f) {\n return f(view, chFrom, chTo, text$1);\n })) {\n return;\n }\n\n tr = view.state.tr.insertText(text$1, chFrom, chTo);\n }\n }\n\n if (!tr) {\n tr = view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from));\n }\n\n if (parse.sel) {\n var sel$2 = resolveSelection(view, tr.doc, parse.sel); // Chrome Android will sometimes, during composition, report the\n // selection in the wrong place. If it looks like that is\n // happening, don't update the selection.\n // Edge just doesn't move the cursor forward when you start typing\n // in an empty block or between br nodes.\n\n if (sel$2 && !(result.chrome && result.android && view.composing && sel$2.empty && (sel$2.head == chFrom || sel$2.head == tr.mapping.map(chTo) - 1) || result.ie && sel$2.empty && sel$2.head == chFrom)) {\n tr.setSelection(sel$2);\n }\n }\n\n if (storedMarks) {\n tr.ensureMarks(storedMarks);\n }\n\n view.dispatch(tr.scrollIntoView());\n}\n\nfunction resolveSelection(view, doc, parsedSel) {\n if (Math.max(parsedSel.anchor, parsedSel.head) > doc.content.size) {\n return null;\n }\n\n return selectionBetween(view, doc.resolve(parsedSel.anchor), doc.resolve(parsedSel.head));\n} // : (Fragment, Fragment) → ?{mark: Mark, type: string}\n// Given two same-length, non-empty fragments of inline content,\n// determine whether the first could be created from the second by\n// removing or adding a single mark type.\n\n\nfunction isMarkChange(cur, prev) {\n var curMarks = cur.firstChild.marks,\n prevMarks = prev.firstChild.marks;\n var added = curMarks,\n removed = prevMarks,\n type,\n mark,\n update;\n\n for (var i = 0; i < prevMarks.length; i++) {\n added = prevMarks[i].removeFromSet(added);\n }\n\n for (var i$1 = 0; i$1 < curMarks.length; i$1++) {\n removed = curMarks[i$1].removeFromSet(removed);\n }\n\n if (added.length == 1 && removed.length == 0) {\n mark = added[0];\n type = \"add\";\n\n update = function update(node) {\n return node.mark(mark.addToSet(node.marks));\n };\n } else if (added.length == 0 && removed.length == 1) {\n mark = removed[0];\n type = \"remove\";\n\n update = function update(node) {\n return node.mark(mark.removeFromSet(node.marks));\n };\n } else {\n return null;\n }\n\n var updated = [];\n\n for (var i$2 = 0; i$2 < prev.childCount; i$2++) {\n updated.push(update(prev.child(i$2)));\n }\n\n if (Fragment.from(updated).eq(cur)) {\n return {\n mark: mark,\n type: type\n };\n }\n}\n\nfunction looksLikeJoin(old, start, end, $newStart, $newEnd) {\n if (!$newStart.parent.isTextblock || // The content must have shrunk\n end - start <= $newEnd.pos - $newStart.pos || // newEnd must point directly at or after the end of the block that newStart points into\n skipClosingAndOpening($newStart, true, false) < $newEnd.pos) {\n return false;\n }\n\n var $start = old.resolve(start); // Start must be at the end of a block\n\n if ($start.parentOffset < $start.parent.content.size || !$start.parent.isTextblock) {\n return false;\n }\n\n var $next = old.resolve(skipClosingAndOpening($start, true, true)); // The next textblock must start before end and end near it\n\n if (!$next.parent.isTextblock || $next.pos > end || skipClosingAndOpening($next, true, false) < end) {\n return false;\n } // The fragments after the join point must match\n\n\n return $newStart.parent.content.cut($newStart.parentOffset).eq($next.parent.content);\n}\n\nfunction skipClosingAndOpening($pos, fromEnd, mayOpen) {\n var depth = $pos.depth,\n end = fromEnd ? $pos.end() : $pos.pos;\n\n while (depth > 0 && (fromEnd || $pos.indexAfter(depth) == $pos.node(depth).childCount)) {\n depth--;\n end++;\n fromEnd = false;\n }\n\n if (mayOpen) {\n var next = $pos.node(depth).maybeChild($pos.indexAfter(depth));\n\n while (next && !next.isLeaf) {\n next = next.firstChild;\n end++;\n }\n }\n\n return end;\n}\n\nfunction findDiff(a, b, pos, preferredPos, preferredSide) {\n var start = a.findDiffStart(b, pos);\n\n if (start == null) {\n return null;\n }\n\n var ref = a.findDiffEnd(b, pos + a.size, pos + b.size);\n var endA = ref.a;\n var endB = ref.b;\n\n if (preferredSide == \"end\") {\n var adjust = Math.max(0, start - Math.min(endA, endB));\n preferredPos -= endA + adjust - start;\n }\n\n if (endA < start && a.size < b.size) {\n var move = preferredPos <= start && preferredPos >= endA ? start - preferredPos : 0;\n start -= move;\n endB = start + (endB - endA);\n endA = start;\n } else if (endB < start) {\n var move$1 = preferredPos <= start && preferredPos >= endB ? start - preferredPos : 0;\n start -= move$1;\n endA = start + (endA - endB);\n endB = start;\n }\n\n return {\n start: start,\n endA: endA,\n endB: endB\n };\n}\n\nfunction serializeForClipboard(view, slice) {\n var context = [];\n var content = slice.content;\n var openStart = slice.openStart;\n var openEnd = slice.openEnd;\n\n while (openStart > 1 && openEnd > 1 && content.childCount == 1 && content.firstChild.childCount == 1) {\n openStart--;\n openEnd--;\n var node = content.firstChild;\n context.push(node.type.name, node.attrs != node.type.defaultAttrs ? node.attrs : null);\n content = node.content;\n }\n\n var serializer = view.someProp(\"clipboardSerializer\") || DOMSerializer.fromSchema(view.state.schema);\n var doc = detachedDoc(),\n wrap = doc.createElement(\"div\");\n wrap.appendChild(serializer.serializeFragment(content, {\n document: doc\n }));\n var firstChild = wrap.firstChild,\n needsWrap;\n\n while (firstChild && firstChild.nodeType == 1 && (needsWrap = wrapMap[firstChild.nodeName.toLowerCase()])) {\n for (var i = needsWrap.length - 1; i >= 0; i--) {\n var wrapper = doc.createElement(needsWrap[i]);\n\n while (wrap.firstChild) {\n wrapper.appendChild(wrap.firstChild);\n }\n\n wrap.appendChild(wrapper);\n }\n\n firstChild = wrap.firstChild;\n }\n\n if (firstChild && firstChild.nodeType == 1) {\n firstChild.setAttribute(\"data-pm-slice\", openStart + \" \" + openEnd + \" \" + JSON.stringify(context));\n }\n\n var text = view.someProp(\"clipboardTextSerializer\", function (f) {\n return f(slice);\n }) || slice.content.textBetween(0, slice.content.size, \"\\n\\n\");\n return {\n dom: wrap,\n text: text\n };\n} // : (EditorView, string, string, ?bool, ResolvedPos) → ?Slice\n// Read a slice of content from the clipboard (or drop data).\n\n\nfunction parseFromClipboard(view, text, html, plainText, $context) {\n var dom,\n inCode = $context.parent.type.spec.code,\n slice;\n\n if (!html && !text) {\n return null;\n }\n\n var asText = text && (plainText || inCode || !html);\n\n if (asText) {\n view.someProp(\"transformPastedText\", function (f) {\n text = f(text, inCode || plainText);\n });\n\n if (inCode) {\n return new Slice(Fragment.from(view.state.schema.text(text)), 0, 0);\n }\n\n var parsed = view.someProp(\"clipboardTextParser\", function (f) {\n return f(text, $context, plainText);\n });\n\n if (parsed) {\n slice = parsed;\n } else {\n dom = document.createElement(\"div\");\n text.trim().split(/(?:\\r\\n?|\\n)+/).forEach(function (block) {\n dom.appendChild(document.createElement(\"p\")).textContent = block;\n });\n }\n } else {\n view.someProp(\"transformPastedHTML\", function (f) {\n html = f(html);\n });\n dom = readHTML(html);\n }\n\n var contextNode = dom && dom.querySelector(\"[data-pm-slice]\");\n var sliceData = contextNode && /^(\\d+) (\\d+) (.*)/.exec(contextNode.getAttribute(\"data-pm-slice\"));\n\n if (!slice) {\n var parser = view.someProp(\"clipboardParser\") || view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n slice = parser.parseSlice(dom, {\n preserveWhitespace: !!(asText || sliceData),\n context: $context\n });\n }\n\n if (sliceData) {\n slice = addContext(closeSlice(slice, +sliceData[1], +sliceData[2]), sliceData[3]);\n } else // HTML wasn't created by ProseMirror. Make sure top-level siblings are coherent\n {\n slice = Slice.maxOpen(normalizeSiblings(slice.content, $context), false);\n }\n\n view.someProp(\"transformPasted\", function (f) {\n slice = f(slice);\n });\n return slice;\n} // Takes a slice parsed with parseSlice, which means there hasn't been\n// any content-expression checking done on the top nodes, tries to\n// find a parent node in the current context that might fit the nodes,\n// and if successful, rebuilds the slice so that it fits into that parent.\n//\n// This addresses the problem that Transform.replace expects a\n// coherent slice, and will fail to place a set of siblings that don't\n// fit anywhere in the schema.\n\n\nfunction normalizeSiblings(fragment, $context) {\n if (fragment.childCount < 2) {\n return fragment;\n }\n\n var loop = function loop(d) {\n var parent = $context.node(d);\n var match = parent.contentMatchAt($context.index(d));\n var lastWrap = void 0,\n result = [];\n fragment.forEach(function (node) {\n if (!result) {\n return;\n }\n\n var wrap = match.findWrapping(node.type),\n inLast;\n\n if (!wrap) {\n return result = null;\n }\n\n if (inLast = result.length && lastWrap.length && addToSibling(wrap, lastWrap, node, result[result.length - 1], 0)) {\n result[result.length - 1] = inLast;\n } else {\n if (result.length) {\n result[result.length - 1] = closeRight(result[result.length - 1], lastWrap.length);\n }\n\n var wrapped = withWrappers(node, wrap);\n result.push(wrapped);\n match = match.matchType(wrapped.type, wrapped.attrs);\n lastWrap = wrap;\n }\n });\n\n if (result) {\n return {\n v: Fragment.from(result)\n };\n }\n };\n\n for (var d = $context.depth; d >= 0; d--) {\n var returned = loop(d);\n if (returned) return returned.v;\n }\n\n return fragment;\n}\n\nfunction withWrappers(node, wrap, from) {\n if (from === void 0) from = 0;\n\n for (var i = wrap.length - 1; i >= from; i--) {\n node = wrap[i].create(null, Fragment.from(node));\n }\n\n return node;\n} // Used to group adjacent nodes wrapped in similar parents by\n// normalizeSiblings into the same parent node\n\n\nfunction addToSibling(wrap, lastWrap, node, sibling, depth) {\n if (depth < wrap.length && depth < lastWrap.length && wrap[depth] == lastWrap[depth]) {\n var inner = addToSibling(wrap, lastWrap, node, sibling.lastChild, depth + 1);\n\n if (inner) {\n return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner));\n }\n\n var match = sibling.contentMatchAt(sibling.childCount);\n\n if (match.matchType(depth == wrap.length - 1 ? node.type : wrap[depth + 1])) {\n return sibling.copy(sibling.content.append(Fragment.from(withWrappers(node, wrap, depth + 1))));\n }\n }\n}\n\nfunction closeRight(node, depth) {\n if (depth == 0) {\n return node;\n }\n\n var fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));\n var fill = node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true);\n return node.copy(fragment.append(fill));\n}\n\nfunction closeRange(fragment, side, from, to, depth, openEnd) {\n var node = side < 0 ? fragment.firstChild : fragment.lastChild,\n inner = node.content;\n\n if (depth < to - 1) {\n inner = closeRange(inner, side, from, to, depth + 1, openEnd);\n }\n\n if (depth >= from) {\n inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, fragment.childCount > 1 || openEnd <= depth).append(inner) : inner.append(node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true));\n }\n\n return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner));\n}\n\nfunction closeSlice(slice, openStart, openEnd) {\n if (openStart < slice.openStart) {\n slice = new Slice(closeRange(slice.content, -1, openStart, slice.openStart, 0, slice.openEnd), openStart, slice.openEnd);\n }\n\n if (openEnd < slice.openEnd) {\n slice = new Slice(closeRange(slice.content, 1, openEnd, slice.openEnd, 0, 0), slice.openStart, openEnd);\n }\n\n return slice;\n} // Trick from jQuery -- some elements must be wrapped in other\n// elements for innerHTML to work. I.e. if you do `div.innerHTML =\n// \"..\"` the table cells are ignored.\n\n\nvar wrapMap = {\n thead: [\"table\"],\n tbody: [\"table\"],\n tfoot: [\"table\"],\n caption: [\"table\"],\n colgroup: [\"table\"],\n col: [\"table\", \"colgroup\"],\n tr: [\"table\", \"tbody\"],\n td: [\"table\", \"tbody\", \"tr\"],\n th: [\"table\", \"tbody\", \"tr\"]\n};\nvar _detachedDoc = null;\n\nfunction detachedDoc() {\n return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument(\"title\"));\n}\n\nfunction readHTML(html) {\n var metas = /(\\s*]*>)*/.exec(html);\n\n if (metas) {\n html = html.slice(metas[0].length);\n }\n\n var elt = detachedDoc().createElement(\"div\");\n var firstTag = /(?:]*>)*<([a-z][^>\\s]+)/i.exec(html),\n wrap,\n depth = 0;\n\n if (wrap = firstTag && wrapMap[firstTag[1].toLowerCase()]) {\n html = wrap.map(function (n) {\n return \"<\" + n + \">\";\n }).join(\"\") + html + wrap.map(function (n) {\n return \"\";\n }).reverse().join(\"\");\n depth = wrap.length;\n }\n\n elt.innerHTML = html;\n\n for (var i = 0; i < depth; i++) {\n elt = elt.firstChild;\n }\n\n return elt;\n}\n\nfunction addContext(slice, context) {\n if (!slice.size) {\n return slice;\n }\n\n var schema = slice.content.firstChild.type.schema,\n array;\n\n try {\n array = JSON.parse(context);\n } catch (e) {\n return slice;\n }\n\n var content = slice.content;\n var openStart = slice.openStart;\n var openEnd = slice.openEnd;\n\n for (var i = array.length - 2; i >= 0; i -= 2) {\n var type = schema.nodes[array[i]];\n\n if (!type || type.hasRequiredAttrs()) {\n break;\n }\n\n content = Fragment.from(type.create(array[i + 1], content));\n openStart++;\n openEnd++;\n }\n\n return new Slice(content, openStart, openEnd);\n}\n\nvar observeOptions = {\n childList: true,\n characterData: true,\n characterDataOldValue: true,\n attributes: true,\n attributeOldValue: true,\n subtree: true\n}; // IE11 has very broken mutation observers, so we also listen to DOMCharacterDataModified\n\nvar useCharData = result.ie && result.ie_version <= 11;\n\nvar SelectionState = function SelectionState() {\n this.anchorNode = this.anchorOffset = this.focusNode = this.focusOffset = null;\n};\n\nSelectionState.prototype.set = function set(sel) {\n this.anchorNode = sel.anchorNode;\n this.anchorOffset = sel.anchorOffset;\n this.focusNode = sel.focusNode;\n this.focusOffset = sel.focusOffset;\n};\n\nSelectionState.prototype.eq = function eq(sel) {\n return sel.anchorNode == this.anchorNode && sel.anchorOffset == this.anchorOffset && sel.focusNode == this.focusNode && sel.focusOffset == this.focusOffset;\n};\n\nvar DOMObserver = function DOMObserver(view, handleDOMChange) {\n var this$1 = this;\n this.view = view;\n this.handleDOMChange = handleDOMChange;\n this.queue = [];\n this.flushingSoon = -1;\n this.observer = window.MutationObserver && new window.MutationObserver(function (mutations) {\n for (var i = 0; i < mutations.length; i++) {\n this$1.queue.push(mutations[i]);\n } // IE11 will sometimes (on backspacing out a single character\n // text node after a BR node) call the observer callback\n // before actually updating the DOM, which will cause\n // ProseMirror to miss the change (see #930)\n\n\n if (result.ie && result.ie_version <= 11 && mutations.some(function (m) {\n return m.type == \"childList\" && m.removedNodes.length || m.type == \"characterData\" && m.oldValue.length > m.target.nodeValue.length;\n })) {\n this$1.flushSoon();\n } else {\n this$1.flush();\n }\n });\n this.currentSelection = new SelectionState();\n\n if (useCharData) {\n this.onCharData = function (e) {\n this$1.queue.push({\n target: e.target,\n type: \"characterData\",\n oldValue: e.prevValue\n });\n this$1.flushSoon();\n };\n }\n\n this.onSelectionChange = this.onSelectionChange.bind(this);\n this.suppressingSelectionUpdates = false;\n};\n\nDOMObserver.prototype.flushSoon = function flushSoon() {\n var this$1 = this;\n\n if (this.flushingSoon < 0) {\n this.flushingSoon = window.setTimeout(function () {\n this$1.flushingSoon = -1;\n this$1.flush();\n }, 20);\n }\n};\n\nDOMObserver.prototype.forceFlush = function forceFlush() {\n if (this.flushingSoon > -1) {\n window.clearTimeout(this.flushingSoon);\n this.flushingSoon = -1;\n this.flush();\n }\n};\n\nDOMObserver.prototype.start = function start() {\n if (this.observer) {\n this.observer.observe(this.view.dom, observeOptions);\n }\n\n if (useCharData) {\n this.view.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData);\n }\n\n this.connectSelection();\n};\n\nDOMObserver.prototype.stop = function stop() {\n var this$1 = this;\n\n if (this.observer) {\n var take = this.observer.takeRecords();\n\n if (take.length) {\n for (var i = 0; i < take.length; i++) {\n this.queue.push(take[i]);\n }\n\n window.setTimeout(function () {\n return this$1.flush();\n }, 20);\n }\n\n this.observer.disconnect();\n }\n\n if (useCharData) {\n this.view.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData);\n }\n\n this.disconnectSelection();\n};\n\nDOMObserver.prototype.connectSelection = function connectSelection() {\n this.view.dom.ownerDocument.addEventListener(\"selectionchange\", this.onSelectionChange);\n};\n\nDOMObserver.prototype.disconnectSelection = function disconnectSelection() {\n this.view.dom.ownerDocument.removeEventListener(\"selectionchange\", this.onSelectionChange);\n};\n\nDOMObserver.prototype.suppressSelectionUpdates = function suppressSelectionUpdates() {\n var this$1 = this;\n this.suppressingSelectionUpdates = true;\n setTimeout(function () {\n return this$1.suppressingSelectionUpdates = false;\n }, 50);\n};\n\nDOMObserver.prototype.onSelectionChange = function onSelectionChange() {\n if (!hasFocusAndSelection(this.view)) {\n return;\n }\n\n if (this.suppressingSelectionUpdates) {\n return selectionToDOM(this.view);\n } // Deletions on IE11 fire their events in the wrong order, giving\n // us a selection change event before the DOM changes are\n // reported.\n\n\n if (result.ie && result.ie_version <= 11 && !this.view.state.selection.empty) {\n var sel = this.view.root.getSelection(); // Selection.isCollapsed isn't reliable on IE\n\n if (sel.focusNode && isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset)) {\n return this.flushSoon();\n }\n }\n\n this.flush();\n};\n\nDOMObserver.prototype.setCurSelection = function setCurSelection() {\n this.currentSelection.set(this.view.root.getSelection());\n};\n\nDOMObserver.prototype.ignoreSelectionChange = function ignoreSelectionChange(sel) {\n if (sel.rangeCount == 0) {\n return true;\n }\n\n var container = sel.getRangeAt(0).commonAncestorContainer;\n var desc = this.view.docView.nearestDesc(container);\n\n if (desc && desc.ignoreMutation({\n type: \"selection\",\n target: container.nodeType == 3 ? container.parentNode : container\n })) {\n this.setCurSelection();\n return true;\n }\n};\n\nDOMObserver.prototype.flush = function flush() {\n if (!this.view.docView || this.flushingSoon > -1) {\n return;\n }\n\n var mutations = this.observer ? this.observer.takeRecords() : [];\n\n if (this.queue.length) {\n mutations = this.queue.concat(mutations);\n this.queue.length = 0;\n }\n\n var sel = this.view.root.getSelection();\n var newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasSelection(this.view) && !this.ignoreSelectionChange(sel);\n var from = -1,\n to = -1,\n typeOver = false,\n added = [];\n\n if (this.view.editable) {\n for (var i = 0; i < mutations.length; i++) {\n var result$1 = this.registerMutation(mutations[i], added);\n\n if (result$1) {\n from = from < 0 ? result$1.from : Math.min(result$1.from, from);\n to = to < 0 ? result$1.to : Math.max(result$1.to, to);\n\n if (result$1.typeOver) {\n typeOver = true;\n }\n }\n }\n }\n\n if (result.gecko && added.length > 1) {\n var brs = added.filter(function (n) {\n return n.nodeName == \"BR\";\n });\n\n if (brs.length == 2) {\n var a = brs[0];\n var b = brs[1];\n\n if (a.parentNode && a.parentNode.parentNode == b.parentNode) {\n b.remove();\n } else {\n a.remove();\n }\n }\n }\n\n if (from > -1 || newSel) {\n if (from > -1) {\n this.view.docView.markDirty(from, to);\n checkCSS(this.view);\n }\n\n this.handleDOMChange(from, to, typeOver, added);\n\n if (this.view.docView.dirty) {\n this.view.updateState(this.view.state);\n } else if (!this.currentSelection.eq(sel)) {\n selectionToDOM(this.view);\n }\n\n this.currentSelection.set(sel);\n }\n};\n\nDOMObserver.prototype.registerMutation = function registerMutation(mut, added) {\n // Ignore mutations inside nodes that were already noted as inserted\n if (added.indexOf(mut.target) > -1) {\n return null;\n }\n\n var desc = this.view.docView.nearestDesc(mut.target);\n\n if (mut.type == \"attributes\" && (desc == this.view.docView || mut.attributeName == \"contenteditable\" || // Firefox sometimes fires spurious events for null/empty styles\n mut.attributeName == \"style\" && !mut.oldValue && !mut.target.getAttribute(\"style\"))) {\n return null;\n }\n\n if (!desc || desc.ignoreMutation(mut)) {\n return null;\n }\n\n if (mut.type == \"childList\") {\n if (desc.contentDOM && desc.contentDOM != desc.dom && !desc.contentDOM.contains(mut.target)) {\n return {\n from: desc.posBefore,\n to: desc.posAfter\n };\n }\n\n var prev = mut.previousSibling,\n next = mut.nextSibling;\n\n if (result.ie && result.ie_version <= 11 && mut.addedNodes.length) {\n // IE11 gives us incorrect next/prev siblings for some\n // insertions, so if there are added nodes, recompute those\n for (var i = 0; i < mut.addedNodes.length; i++) {\n var ref = mut.addedNodes[i];\n var previousSibling = ref.previousSibling;\n var nextSibling = ref.nextSibling;\n\n if (!previousSibling || Array.prototype.indexOf.call(mut.addedNodes, previousSibling) < 0) {\n prev = previousSibling;\n }\n\n if (!nextSibling || Array.prototype.indexOf.call(mut.addedNodes, nextSibling) < 0) {\n next = nextSibling;\n }\n }\n }\n\n var fromOffset = prev && prev.parentNode == mut.target ? domIndex(prev) + 1 : 0;\n var from = desc.localPosFromDOM(mut.target, fromOffset, -1);\n var toOffset = next && next.parentNode == mut.target ? domIndex(next) : mut.target.childNodes.length;\n\n for (var i$1 = 0; i$1 < mut.addedNodes.length; i$1++) {\n added.push(mut.addedNodes[i$1]);\n }\n\n var to = desc.localPosFromDOM(mut.target, toOffset, 1);\n return {\n from: from,\n to: to\n };\n } else if (mut.type == \"attributes\") {\n return {\n from: desc.posAtStart - desc.border,\n to: desc.posAtEnd + desc.border\n };\n } else {\n // \"characterData\"\n return {\n from: desc.posAtStart,\n to: desc.posAtEnd,\n // An event was generated for a text change that didn't change\n // any text. Mark the dom change to fall back to assuming the\n // selection was typed over with an identical value if it can't\n // find another change.\n typeOver: mut.target.nodeValue == mut.oldValue\n };\n }\n};\n\nvar cssChecked = false;\n\nfunction checkCSS(view) {\n if (cssChecked) {\n return;\n }\n\n cssChecked = true;\n\n if (getComputedStyle(view.dom).whiteSpace == \"normal\") {\n console[\"warn\"](\"ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package.\");\n }\n} // A collection of DOM events that occur within the editor, and callback functions\n// to invoke when the event fires.\n\n\nvar handlers = {},\n editHandlers = {};\n\nfunction initInput(view) {\n view.shiftKey = false;\n view.mouseDown = null;\n view.lastKeyCode = null;\n view.lastKeyCodeTime = 0;\n view.lastClick = {\n time: 0,\n x: 0,\n y: 0,\n type: \"\"\n };\n view.lastSelectionOrigin = null;\n view.lastSelectionTime = 0;\n view.lastIOSEnter = 0;\n view.lastIOSEnterFallbackTimeout = null;\n view.composing = false;\n view.composingTimeout = null;\n view.compositionNodes = [];\n view.compositionEndedAt = -2e8;\n view.domObserver = new DOMObserver(view, function (from, to, typeOver, added) {\n return readDOMChange(view, from, to, typeOver, added);\n });\n view.domObserver.start(); // Used by hacks like the beforeinput handler to check whether anything happened in the DOM\n\n view.domChangeCount = 0;\n view.eventHandlers = Object.create(null);\n\n var loop = function loop(event) {\n var handler = handlers[event];\n view.dom.addEventListener(event, view.eventHandlers[event] = function (event) {\n if (eventBelongsToView(view, event) && !runCustomHandler(view, event) && (view.editable || !(event.type in editHandlers))) {\n handler(view, event);\n }\n });\n };\n\n for (var event in handlers) {\n loop(event);\n } // On Safari, for reasons beyond my understanding, adding an input\n // event handler makes an issue where the composition vanishes when\n // you press enter go away.\n\n\n if (result.safari) {\n view.dom.addEventListener(\"input\", function () {\n return null;\n });\n }\n\n ensureListeners(view);\n}\n\nfunction setSelectionOrigin(view, origin) {\n view.lastSelectionOrigin = origin;\n view.lastSelectionTime = Date.now();\n}\n\nfunction destroyInput(view) {\n view.domObserver.stop();\n\n for (var type in view.eventHandlers) {\n view.dom.removeEventListener(type, view.eventHandlers[type]);\n }\n\n clearTimeout(view.composingTimeout);\n clearTimeout(view.lastIOSEnterFallbackTimeout);\n}\n\nfunction ensureListeners(view) {\n view.someProp(\"handleDOMEvents\", function (currentHandlers) {\n for (var type in currentHandlers) {\n if (!view.eventHandlers[type]) {\n view.dom.addEventListener(type, view.eventHandlers[type] = function (event) {\n return runCustomHandler(view, event);\n });\n }\n }\n });\n}\n\nfunction runCustomHandler(view, event) {\n return view.someProp(\"handleDOMEvents\", function (handlers) {\n var handler = handlers[event.type];\n return handler ? handler(view, event) || event.defaultPrevented : false;\n });\n}\n\nfunction eventBelongsToView(view, event) {\n if (!event.bubbles) {\n return true;\n }\n\n if (event.defaultPrevented) {\n return false;\n }\n\n for (var node = event.target; node != view.dom; node = node.parentNode) {\n if (!node || node.nodeType == 11 || node.pmViewDesc && node.pmViewDesc.stopEvent(event)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction dispatchEvent(view, event) {\n if (!runCustomHandler(view, event) && handlers[event.type] && (view.editable || !(event.type in editHandlers))) {\n handlers[event.type](view, event);\n }\n}\n\neditHandlers.keydown = function (view, event) {\n view.shiftKey = event.keyCode == 16 || event.shiftKey;\n\n if (inOrNearComposition(view, event)) {\n return;\n }\n\n view.domObserver.forceFlush();\n view.lastKeyCode = event.keyCode;\n view.lastKeyCodeTime = Date.now(); // On iOS, if we preventDefault enter key presses, the virtual\n // keyboard gets confused. So the hack here is to set a flag that\n // makes the DOM change code recognize that what just happens should\n // be replaced by whatever the Enter key handlers do.\n\n if (result.ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {\n var now = Date.now();\n view.lastIOSEnter = now;\n view.lastIOSEnterFallbackTimeout = setTimeout(function () {\n if (view.lastIOSEnter == now) {\n view.someProp(\"handleKeyDown\", function (f) {\n return f(view, keyEvent(13, \"Enter\"));\n });\n view.lastIOSEnter = 0;\n }\n }, 200);\n } else if (view.someProp(\"handleKeyDown\", function (f) {\n return f(view, event);\n }) || captureKeyDown(view, event)) {\n event.preventDefault();\n } else {\n setSelectionOrigin(view, \"key\");\n }\n};\n\neditHandlers.keyup = function (view, e) {\n if (e.keyCode == 16) {\n view.shiftKey = false;\n }\n};\n\neditHandlers.keypress = function (view, event) {\n if (inOrNearComposition(view, event) || !event.charCode || event.ctrlKey && !event.altKey || result.mac && event.metaKey) {\n return;\n }\n\n if (view.someProp(\"handleKeyPress\", function (f) {\n return f(view, event);\n })) {\n event.preventDefault();\n return;\n }\n\n var sel = view.state.selection;\n\n if (!(sel instanceof TextSelection) || !sel.$from.sameParent(sel.$to)) {\n var text = String.fromCharCode(event.charCode);\n\n if (!view.someProp(\"handleTextInput\", function (f) {\n return f(view, sel.$from.pos, sel.$to.pos, text);\n })) {\n view.dispatch(view.state.tr.insertText(text).scrollIntoView());\n }\n\n event.preventDefault();\n }\n};\n\nfunction eventCoords(event) {\n return {\n left: event.clientX,\n top: event.clientY\n };\n}\n\nfunction isNear(event, click) {\n var dx = click.x - event.clientX,\n dy = click.y - event.clientY;\n return dx * dx + dy * dy < 100;\n}\n\nfunction runHandlerOnContext(view, propName, pos, inside, event) {\n if (inside == -1) {\n return false;\n }\n\n var $pos = view.state.doc.resolve(inside);\n\n var loop = function loop(i) {\n if (view.someProp(propName, function (f) {\n return i > $pos.depth ? f(view, pos, $pos.nodeAfter, $pos.before(i), event, true) : f(view, pos, $pos.node(i), $pos.before(i), event, false);\n })) {\n return {\n v: true\n };\n }\n };\n\n for (var i = $pos.depth + 1; i > 0; i--) {\n var returned = loop(i);\n if (returned) return returned.v;\n }\n\n return false;\n}\n\nfunction updateSelection(view, selection, origin) {\n if (!view.focused) {\n view.focus();\n }\n\n var tr = view.state.tr.setSelection(selection);\n\n if (origin == \"pointer\") {\n tr.setMeta(\"pointer\", true);\n }\n\n view.dispatch(tr);\n}\n\nfunction selectClickedLeaf(view, inside) {\n if (inside == -1) {\n return false;\n }\n\n var $pos = view.state.doc.resolve(inside),\n node = $pos.nodeAfter;\n\n if (node && node.isAtom && NodeSelection.isSelectable(node)) {\n updateSelection(view, new NodeSelection($pos), \"pointer\");\n return true;\n }\n\n return false;\n}\n\nfunction selectClickedNode(view, inside) {\n if (inside == -1) {\n return false;\n }\n\n var sel = view.state.selection,\n selectedNode,\n selectAt;\n\n if (sel instanceof NodeSelection) {\n selectedNode = sel.node;\n }\n\n var $pos = view.state.doc.resolve(inside);\n\n for (var i = $pos.depth + 1; i > 0; i--) {\n var node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n\n if (NodeSelection.isSelectable(node)) {\n if (selectedNode && sel.$from.depth > 0 && i >= sel.$from.depth && $pos.before(sel.$from.depth + 1) == sel.$from.pos) {\n selectAt = $pos.before(sel.$from.depth);\n } else {\n selectAt = $pos.before(i);\n }\n\n break;\n }\n }\n\n if (selectAt != null) {\n updateSelection(view, NodeSelection.create(view.state.doc, selectAt), \"pointer\");\n return true;\n } else {\n return false;\n }\n}\n\nfunction handleSingleClick(view, pos, inside, event, selectNode) {\n return runHandlerOnContext(view, \"handleClickOn\", pos, inside, event) || view.someProp(\"handleClick\", function (f) {\n return f(view, pos, event);\n }) || (selectNode ? selectClickedNode(view, inside) : selectClickedLeaf(view, inside));\n}\n\nfunction handleDoubleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleDoubleClickOn\", pos, inside, event) || view.someProp(\"handleDoubleClick\", function (f) {\n return f(view, pos, event);\n });\n}\n\nfunction handleTripleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleTripleClickOn\", pos, inside, event) || view.someProp(\"handleTripleClick\", function (f) {\n return f(view, pos, event);\n }) || defaultTripleClick(view, inside);\n}\n\nfunction defaultTripleClick(view, inside) {\n var doc = view.state.doc;\n\n if (inside == -1) {\n if (doc.inlineContent) {\n updateSelection(view, TextSelection.create(doc, 0, doc.content.size), \"pointer\");\n return true;\n }\n\n return false;\n }\n\n var $pos = doc.resolve(inside);\n\n for (var i = $pos.depth + 1; i > 0; i--) {\n var node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n var nodePos = $pos.before(i);\n\n if (node.inlineContent) {\n updateSelection(view, TextSelection.create(doc, nodePos + 1, nodePos + 1 + node.content.size), \"pointer\");\n } else if (NodeSelection.isSelectable(node)) {\n updateSelection(view, NodeSelection.create(doc, nodePos), \"pointer\");\n } else {\n continue;\n }\n\n return true;\n }\n}\n\nfunction forceDOMFlush(view) {\n return endComposition(view);\n}\n\nvar selectNodeModifier = result.mac ? \"metaKey\" : \"ctrlKey\";\n\nhandlers.mousedown = function (view, event) {\n view.shiftKey = event.shiftKey;\n var flushed = forceDOMFlush(view);\n var now = Date.now(),\n type = \"singleClick\";\n\n if (now - view.lastClick.time < 500 && isNear(event, view.lastClick) && !event[selectNodeModifier]) {\n if (view.lastClick.type == \"singleClick\") {\n type = \"doubleClick\";\n } else if (view.lastClick.type == \"doubleClick\") {\n type = \"tripleClick\";\n }\n }\n\n view.lastClick = {\n time: now,\n x: event.clientX,\n y: event.clientY,\n type: type\n };\n var pos = view.posAtCoords(eventCoords(event));\n\n if (!pos) {\n return;\n }\n\n if (type == \"singleClick\") {\n view.mouseDown = new MouseDown(view, pos, event, flushed);\n } else if ((type == \"doubleClick\" ? handleDoubleClick : handleTripleClick)(view, pos.pos, pos.inside, event)) {\n event.preventDefault();\n } else {\n setSelectionOrigin(view, \"pointer\");\n }\n};\n\nvar MouseDown = function MouseDown(view, pos, event, flushed) {\n var this$1 = this;\n this.view = view;\n this.startDoc = view.state.doc;\n this.pos = pos;\n this.event = event;\n this.flushed = flushed;\n this.selectNode = event[selectNodeModifier];\n this.allowDefault = event.shiftKey;\n var targetNode, targetPos;\n\n if (pos.inside > -1) {\n targetNode = view.state.doc.nodeAt(pos.inside);\n targetPos = pos.inside;\n } else {\n var $pos = view.state.doc.resolve(pos.pos);\n targetNode = $pos.parent;\n targetPos = $pos.depth ? $pos.before() : 0;\n }\n\n this.mightDrag = null;\n var target = flushed ? null : event.target;\n var targetDesc = target ? view.docView.nearestDesc(target, true) : null;\n this.target = targetDesc ? targetDesc.dom : null;\n\n if (targetNode.type.spec.draggable && targetNode.type.spec.selectable !== false || view.state.selection instanceof NodeSelection && targetPos == view.state.selection.from) {\n this.mightDrag = {\n node: targetNode,\n pos: targetPos,\n addAttr: this.target && !this.target.draggable,\n setUneditable: this.target && result.gecko && !this.target.hasAttribute(\"contentEditable\")\n };\n }\n\n if (this.target && this.mightDrag && (this.mightDrag.addAttr || this.mightDrag.setUneditable)) {\n this.view.domObserver.stop();\n\n if (this.mightDrag.addAttr) {\n this.target.draggable = true;\n }\n\n if (this.mightDrag.setUneditable) {\n setTimeout(function () {\n return this$1.target.setAttribute(\"contentEditable\", \"false\");\n }, 20);\n }\n\n this.view.domObserver.start();\n }\n\n view.root.addEventListener(\"mouseup\", this.up = this.up.bind(this));\n view.root.addEventListener(\"mousemove\", this.move = this.move.bind(this));\n setSelectionOrigin(view, \"pointer\");\n};\n\nMouseDown.prototype.done = function done() {\n this.view.root.removeEventListener(\"mouseup\", this.up);\n this.view.root.removeEventListener(\"mousemove\", this.move);\n\n if (this.mightDrag && this.target) {\n this.view.domObserver.stop();\n\n if (this.mightDrag.addAttr) {\n this.target.removeAttribute(\"draggable\");\n }\n\n if (this.mightDrag.setUneditable) {\n this.target.removeAttribute(\"contentEditable\");\n }\n\n this.view.domObserver.start();\n }\n\n this.view.mouseDown = null;\n};\n\nMouseDown.prototype.up = function up(event) {\n this.done();\n\n if (!this.view.dom.contains(event.target.nodeType == 3 ? event.target.parentNode : event.target)) {\n return;\n }\n\n var pos = this.pos;\n\n if (this.view.state.doc != this.startDoc) {\n pos = this.view.posAtCoords(eventCoords(event));\n }\n\n if (this.allowDefault || !pos) {\n setSelectionOrigin(this.view, \"pointer\");\n } else if (handleSingleClick(this.view, pos.pos, pos.inside, event, this.selectNode)) {\n event.preventDefault();\n } else if (this.flushed || // Safari ignores clicks on draggable elements\n result.safari && this.mightDrag && !this.mightDrag.node.isAtom || // Chrome will sometimes treat a node selection as a\n // cursor, but still report that the node is selected\n // when asked through getSelection. You'll then get a\n // situation where clicking at the point where that\n // (hidden) cursor is doesn't change the selection, and\n // thus doesn't get a reaction from ProseMirror. This\n // works around that.\n result.chrome && !(this.view.state.selection instanceof TextSelection) && (pos.pos == this.view.state.selection.from || pos.pos == this.view.state.selection.to)) {\n updateSelection(this.view, Selection.near(this.view.state.doc.resolve(pos.pos)), \"pointer\");\n event.preventDefault();\n } else {\n setSelectionOrigin(this.view, \"pointer\");\n }\n};\n\nMouseDown.prototype.move = function move(event) {\n if (!this.allowDefault && (Math.abs(this.event.x - event.clientX) > 4 || Math.abs(this.event.y - event.clientY) > 4)) {\n this.allowDefault = true;\n }\n\n setSelectionOrigin(this.view, \"pointer\");\n};\n\nhandlers.touchdown = function (view) {\n forceDOMFlush(view);\n setSelectionOrigin(view, \"pointer\");\n};\n\nhandlers.contextmenu = function (view) {\n return forceDOMFlush(view);\n};\n\nfunction inOrNearComposition(view, event) {\n if (view.composing) {\n return true;\n } // See https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/.\n // On Japanese input method editors (IMEs), the Enter key is used to confirm character\n // selection. On Safari, when Enter is pressed, compositionend and keydown events are\n // emitted. The keydown event triggers newline insertion, which we don't want.\n // This method returns true if the keydown event should be ignored.\n // We only ignore it once, as pressing Enter a second time *should* insert a newline.\n // Furthermore, the keydown event timestamp must be close to the compositionEndedAt timestamp.\n // This guards against the case where compositionend is triggered without the keyboard\n // (e.g. character confirmation may be done with the mouse), and keydown is triggered\n // afterwards- we wouldn't want to ignore the keydown event in this case.\n\n\n if (result.safari && Math.abs(event.timeStamp - view.compositionEndedAt) < 500) {\n view.compositionEndedAt = -2e8;\n return true;\n }\n\n return false;\n} // Drop active composition after 5 seconds of inactivity on Android\n\n\nvar timeoutComposition = result.android ? 5000 : -1;\n\neditHandlers.compositionstart = editHandlers.compositionupdate = function (view) {\n if (!view.composing) {\n view.domObserver.flush();\n var state = view.state;\n var $pos = state.selection.$from;\n\n if (state.selection.empty && (state.storedMarks || !$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some(function (m) {\n return m.type.spec.inclusive === false;\n }))) {\n // Need to wrap the cursor in mark nodes different from the ones in the DOM context\n view.markCursor = view.state.storedMarks || $pos.marks();\n endComposition(view, true);\n view.markCursor = null;\n } else {\n endComposition(view); // In firefox, if the cursor is after but outside a marked node,\n // the inserted text won't inherit the marks. So this moves it\n // inside if necessary.\n\n if (result.gecko && state.selection.empty && $pos.parentOffset && !$pos.textOffset && $pos.nodeBefore.marks.length) {\n var sel = view.root.getSelection();\n\n for (var node = sel.focusNode, offset = sel.focusOffset; node && node.nodeType == 1 && offset != 0;) {\n var before = offset < 0 ? node.lastChild : node.childNodes[offset - 1];\n\n if (!before) {\n break;\n }\n\n if (before.nodeType == 3) {\n sel.collapse(before, before.nodeValue.length);\n break;\n } else {\n node = before;\n offset = -1;\n }\n }\n }\n }\n\n view.composing = true;\n }\n\n scheduleComposeEnd(view, timeoutComposition);\n};\n\neditHandlers.compositionend = function (view, event) {\n if (view.composing) {\n view.composing = false;\n view.compositionEndedAt = event.timeStamp;\n scheduleComposeEnd(view, 20);\n }\n};\n\nfunction scheduleComposeEnd(view, delay) {\n clearTimeout(view.composingTimeout);\n\n if (delay > -1) {\n view.composingTimeout = setTimeout(function () {\n return endComposition(view);\n }, delay);\n }\n}\n\nfunction clearComposition(view) {\n view.composing = false;\n\n while (view.compositionNodes.length > 0) {\n view.compositionNodes.pop().markParentsDirty();\n }\n}\n\nfunction endComposition(view, forceUpdate) {\n view.domObserver.forceFlush();\n clearComposition(view);\n\n if (forceUpdate || view.docView.dirty) {\n var sel = selectionFromDOM(view);\n\n if (sel && !sel.eq(view.state.selection)) {\n view.dispatch(view.state.tr.setSelection(sel));\n } else {\n view.updateState(view.state);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction captureCopy(view, dom) {\n // The extra wrapper is somehow necessary on IE/Edge to prevent the\n // content from being mangled when it is put onto the clipboard\n if (!view.dom.parentNode) {\n return;\n }\n\n var wrap = view.dom.parentNode.appendChild(document.createElement(\"div\"));\n wrap.appendChild(dom);\n wrap.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n var sel = getSelection(),\n range = document.createRange();\n range.selectNodeContents(dom); // Done because IE will fire a selectionchange moving the selection\n // to its start when removeAllRanges is called and the editor still\n // has focus (which will mess up the editor's selection state).\n\n view.dom.blur();\n sel.removeAllRanges();\n sel.addRange(range);\n setTimeout(function () {\n if (wrap.parentNode) {\n wrap.parentNode.removeChild(wrap);\n }\n\n view.focus();\n }, 50);\n} // This is very crude, but unfortunately both these browsers _pretend_\n// that they have a clipboard API—all the objects and methods are\n// there, they just don't work, and they are hard to test.\n\n\nvar brokenClipboardAPI = result.ie && result.ie_version < 15 || result.ios && result.webkit_version < 604;\n\nhandlers.copy = editHandlers.cut = function (view, e) {\n var sel = view.state.selection,\n cut = e.type == \"cut\";\n\n if (sel.empty) {\n return;\n } // IE and Edge's clipboard interface is completely broken\n\n\n var data = brokenClipboardAPI ? null : e.clipboardData;\n var slice = sel.content();\n var ref = serializeForClipboard(view, slice);\n var dom = ref.dom;\n var text = ref.text;\n\n if (data) {\n e.preventDefault();\n data.clearData();\n data.setData(\"text/html\", dom.innerHTML);\n data.setData(\"text/plain\", text);\n } else {\n captureCopy(view, dom);\n }\n\n if (cut) {\n view.dispatch(view.state.tr.deleteSelection().scrollIntoView().setMeta(\"uiEvent\", \"cut\"));\n }\n};\n\nfunction sliceSingleNode(slice) {\n return slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1 ? slice.content.firstChild : null;\n}\n\nfunction capturePaste(view, e) {\n if (!view.dom.parentNode) {\n return;\n }\n\n var plainText = view.shiftKey || view.state.selection.$from.parent.type.spec.code;\n var target = view.dom.parentNode.appendChild(document.createElement(plainText ? \"textarea\" : \"div\"));\n\n if (!plainText) {\n target.contentEditable = \"true\";\n }\n\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.focus();\n setTimeout(function () {\n view.focus();\n\n if (target.parentNode) {\n target.parentNode.removeChild(target);\n }\n\n if (plainText) {\n doPaste(view, target.value, null, e);\n } else {\n doPaste(view, target.textContent, target.innerHTML, e);\n }\n }, 50);\n}\n\nfunction doPaste(view, text, html, e) {\n var slice = parseFromClipboard(view, text, html, view.shiftKey, view.state.selection.$from);\n\n if (view.someProp(\"handlePaste\", function (f) {\n return f(view, e, slice || Slice.empty);\n })) {\n return true;\n }\n\n if (!slice) {\n return false;\n }\n\n var singleNode = sliceSingleNode(slice);\n var tr = singleNode ? view.state.tr.replaceSelectionWith(singleNode, view.shiftKey) : view.state.tr.replaceSelection(slice);\n view.dispatch(tr.scrollIntoView().setMeta(\"paste\", true).setMeta(\"uiEvent\", \"paste\"));\n return true;\n}\n\neditHandlers.paste = function (view, e) {\n var data = brokenClipboardAPI ? null : e.clipboardData;\n\n if (data && doPaste(view, data.getData(\"text/plain\"), data.getData(\"text/html\"), e)) {\n e.preventDefault();\n } else {\n capturePaste(view, e);\n }\n};\n\nvar Dragging = function Dragging(slice, move) {\n this.slice = slice;\n this.move = move;\n};\n\nvar dragCopyModifier = result.mac ? \"altKey\" : \"ctrlKey\";\n\nhandlers.dragstart = function (view, e) {\n var mouseDown = view.mouseDown;\n\n if (mouseDown) {\n mouseDown.done();\n }\n\n if (!e.dataTransfer) {\n return;\n }\n\n var sel = view.state.selection;\n var pos = sel.empty ? null : view.posAtCoords(eventCoords(e));\n if (pos && pos.pos >= sel.from && pos.pos <= (sel instanceof NodeSelection ? sel.to - 1 : sel.to)) ;else if (mouseDown && mouseDown.mightDrag) {\n view.dispatch(view.state.tr.setSelection(NodeSelection.create(view.state.doc, mouseDown.mightDrag.pos)));\n } else if (e.target && e.target.nodeType == 1) {\n var desc = view.docView.nearestDesc(e.target, true);\n\n if (!desc || !desc.node.type.spec.draggable || desc == view.docView) {\n return;\n }\n\n view.dispatch(view.state.tr.setSelection(NodeSelection.create(view.state.doc, desc.posBefore)));\n }\n var slice = view.state.selection.content();\n var ref = serializeForClipboard(view, slice);\n var dom = ref.dom;\n var text = ref.text;\n e.dataTransfer.clearData();\n e.dataTransfer.setData(brokenClipboardAPI ? \"Text\" : \"text/html\", dom.innerHTML);\n\n if (!brokenClipboardAPI) {\n e.dataTransfer.setData(\"text/plain\", text);\n }\n\n view.dragging = new Dragging(slice, !e[dragCopyModifier]);\n};\n\nhandlers.dragend = function (view) {\n var dragging = view.dragging;\n window.setTimeout(function () {\n if (view.dragging == dragging) {\n view.dragging = null;\n }\n }, 50);\n};\n\neditHandlers.dragover = editHandlers.dragenter = function (_, e) {\n return e.preventDefault();\n};\n\neditHandlers.drop = function (view, e) {\n var dragging = view.dragging;\n view.dragging = null;\n\n if (!e.dataTransfer) {\n return;\n }\n\n var eventPos = view.posAtCoords(eventCoords(e));\n\n if (!eventPos) {\n return;\n }\n\n var $mouse = view.state.doc.resolve(eventPos.pos);\n\n if (!$mouse) {\n return;\n }\n\n var slice = dragging && dragging.slice || parseFromClipboard(view, e.dataTransfer.getData(brokenClipboardAPI ? \"Text\" : \"text/plain\"), brokenClipboardAPI ? null : e.dataTransfer.getData(\"text/html\"), false, $mouse);\n var move = dragging && !e[dragCopyModifier];\n\n if (view.someProp(\"handleDrop\", function (f) {\n return f(view, e, slice || Slice.empty, move);\n })) {\n e.preventDefault();\n return;\n }\n\n if (!slice) {\n return;\n }\n\n e.preventDefault();\n var insertPos = slice ? dropPoint(view.state.doc, $mouse.pos, slice) : $mouse.pos;\n\n if (insertPos == null) {\n insertPos = $mouse.pos;\n }\n\n var tr = view.state.tr;\n\n if (move) {\n tr.deleteSelection();\n }\n\n var pos = tr.mapping.map(insertPos);\n var isNode = slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1;\n var beforeInsert = tr.doc;\n\n if (isNode) {\n tr.replaceRangeWith(pos, pos, slice.content.firstChild);\n } else {\n tr.replaceRange(pos, pos, slice);\n }\n\n if (tr.doc.eq(beforeInsert)) {\n return;\n }\n\n var $pos = tr.doc.resolve(pos);\n\n if (isNode && NodeSelection.isSelectable(slice.content.firstChild) && $pos.nodeAfter && $pos.nodeAfter.sameMarkup(slice.content.firstChild)) {\n tr.setSelection(new NodeSelection($pos));\n } else {\n var end = tr.mapping.map(insertPos);\n tr.mapping.maps[tr.mapping.maps.length - 1].forEach(function (_from, _to, _newFrom, newTo) {\n return end = newTo;\n });\n tr.setSelection(selectionBetween(view, $pos, tr.doc.resolve(end)));\n }\n\n view.focus();\n view.dispatch(tr.setMeta(\"uiEvent\", \"drop\"));\n};\n\nhandlers.focus = function (view) {\n if (!view.focused) {\n view.domObserver.stop();\n view.dom.classList.add(\"ProseMirror-focused\");\n view.domObserver.start();\n view.focused = true;\n setTimeout(function () {\n if (view.docView && view.hasFocus() && !view.domObserver.currentSelection.eq(view.root.getSelection())) {\n selectionToDOM(view);\n }\n }, 20);\n }\n};\n\nhandlers.blur = function (view) {\n if (view.focused) {\n view.domObserver.stop();\n view.dom.classList.remove(\"ProseMirror-focused\");\n view.domObserver.start();\n view.domObserver.currentSelection.set({});\n view.focused = false;\n }\n};\n\nhandlers.beforeinput = function (view, event) {\n // We should probably do more with beforeinput events, but support\n // is so spotty that I'm still waiting to see where they are going.\n // Very specific hack to deal with backspace sometimes failing on\n // Chrome Android when after an uneditable node.\n if (result.chrome && result.android && event.inputType == \"deleteContentBackward\") {\n var domChangeCount = view.domChangeCount;\n setTimeout(function () {\n if (view.domChangeCount != domChangeCount) {\n return;\n } // Event already had some effect\n // This bug tends to close the virtual keyboard, so we refocus\n\n\n view.dom.blur();\n view.focus();\n\n if (view.someProp(\"handleKeyDown\", function (f) {\n return f(view, keyEvent(8, \"Backspace\"));\n })) {\n return;\n }\n\n var ref = view.state.selection;\n var $cursor = ref.$cursor; // Crude approximation of backspace behavior when no command handled it\n\n if ($cursor && $cursor.pos > 0) {\n view.dispatch(view.state.tr[\"delete\"]($cursor.pos - 1, $cursor.pos).scrollIntoView());\n }\n }, 50);\n }\n}; // Make sure all handlers get registered\n\n\nfor (var prop in editHandlers) {\n handlers[prop] = editHandlers[prop];\n}\n\nfunction compareObjs(a, b) {\n if (a == b) {\n return true;\n }\n\n for (var p in a) {\n if (a[p] !== b[p]) {\n return false;\n }\n }\n\n for (var p$1 in b) {\n if (!(p$1 in a)) {\n return false;\n }\n }\n\n return true;\n}\n\nvar WidgetType = function WidgetType(toDOM, spec) {\n this.spec = spec || noSpec;\n this.side = this.spec.side || 0;\n this.toDOM = toDOM;\n};\n\nWidgetType.prototype.map = function map(mapping, span, offset, oldOffset) {\n var ref = mapping.mapResult(span.from + oldOffset, this.side < 0 ? -1 : 1);\n var pos = ref.pos;\n var deleted = ref.deleted;\n return deleted ? null : new Decoration(pos - offset, pos - offset, this);\n};\n\nWidgetType.prototype.valid = function valid() {\n return true;\n};\n\nWidgetType.prototype.eq = function eq(other) {\n return this == other || other instanceof WidgetType && (this.spec.key && this.spec.key == other.spec.key || this.toDOM == other.toDOM && compareObjs(this.spec, other.spec));\n};\n\nvar InlineType = function InlineType(attrs, spec) {\n this.spec = spec || noSpec;\n this.attrs = attrs;\n};\n\nInlineType.prototype.map = function map(mapping, span, offset, oldOffset) {\n var from = mapping.map(span.from + oldOffset, this.spec.inclusiveStart ? -1 : 1) - offset;\n var to = mapping.map(span.to + oldOffset, this.spec.inclusiveEnd ? 1 : -1) - offset;\n return from >= to ? null : new Decoration(from, to, this);\n};\n\nInlineType.prototype.valid = function valid(_, span) {\n return span.from < span.to;\n};\n\nInlineType.prototype.eq = function eq(other) {\n return this == other || other instanceof InlineType && compareObjs(this.attrs, other.attrs) && compareObjs(this.spec, other.spec);\n};\n\nInlineType.is = function is(span) {\n return span.type instanceof InlineType;\n};\n\nvar NodeType = function NodeType(attrs, spec) {\n this.spec = spec || noSpec;\n this.attrs = attrs;\n};\n\nNodeType.prototype.map = function map(mapping, span, offset, oldOffset) {\n var from = mapping.mapResult(span.from + oldOffset, 1);\n\n if (from.deleted) {\n return null;\n }\n\n var to = mapping.mapResult(span.to + oldOffset, -1);\n\n if (to.deleted || to.pos <= from.pos) {\n return null;\n }\n\n return new Decoration(from.pos - offset, to.pos - offset, this);\n};\n\nNodeType.prototype.valid = function valid(node, span) {\n var ref = node.content.findIndex(span.from);\n var index = ref.index;\n var offset = ref.offset;\n return offset == span.from && offset + node.child(index).nodeSize == span.to;\n};\n\nNodeType.prototype.eq = function eq(other) {\n return this == other || other instanceof NodeType && compareObjs(this.attrs, other.attrs) && compareObjs(this.spec, other.spec);\n}; // ::- Decoration objects can be provided to the view through the\n// [`decorations` prop](#view.EditorProps.decorations). They come in\n// several variants—see the static members of this class for details.\n\n\nvar Decoration = function Decoration(from, to, type) {\n // :: number\n // The start position of the decoration.\n this.from = from; // :: number\n // The end position. Will be the same as `from` for [widget\n // decorations](#view.Decoration^widget).\n\n this.to = to;\n this.type = type;\n};\n\nvar prototypeAccessors$1 = {\n spec: {\n configurable: true\n },\n inline: {\n configurable: true\n }\n};\n\nDecoration.prototype.copy = function copy(from, to) {\n return new Decoration(from, to, this.type);\n};\n\nDecoration.prototype.eq = function eq(other, offset) {\n if (offset === void 0) offset = 0;\n return this.type.eq(other.type) && this.from + offset == other.from && this.to + offset == other.to;\n};\n\nDecoration.prototype.map = function map(mapping, offset, oldOffset) {\n return this.type.map(mapping, this, offset, oldOffset);\n}; // :: (number, union<(view: EditorView, getPos: () → number) → dom.Node, dom.Node>, ?Object) → Decoration\n// Creates a widget decoration, which is a DOM node that's shown in\n// the document at the given position. It is recommended that you\n// delay rendering the widget by passing a function that will be\n// called when the widget is actually drawn in a view, but you can\n// also directly pass a DOM node. `getPos` can be used to find the\n// widget's current document position.\n//\n// spec::- These options are supported:\n//\n// side:: ?number\n// Controls which side of the document position this widget is\n// associated with. When negative, it is drawn before a cursor\n// at its position, and content inserted at that position ends\n// up after the widget. When zero (the default) or positive, the\n// widget is drawn after the cursor and content inserted there\n// ends up before the widget.\n//\n// When there are multiple widgets at a given position, their\n// `side` values determine the order in which they appear. Those\n// with lower values appear first. The ordering of widgets with\n// the same `side` value is unspecified.\n//\n// When `marks` is null, `side` also determines the marks that\n// the widget is wrapped in—those of the node before when\n// negative, those of the node after when positive.\n//\n// marks:: ?[Mark]\n// The precise set of marks to draw around the widget.\n//\n// stopEvent:: ?(event: dom.Event) → bool\n// Can be used to control which DOM events, when they bubble out\n// of this widget, the editor view should ignore.\n//\n// ignoreSelection:: ?bool\n// When set (defaults to false), selection changes inside the\n// widget are ignored, and don't cause ProseMirror to try and\n// re-sync the selection with its selection state.\n//\n// key:: ?string\n// When comparing decorations of this type (in order to decide\n// whether it needs to be redrawn), ProseMirror will by default\n// compare the widget DOM node by identity. If you pass a key,\n// that key will be compared instead, which can be useful when\n// you generate decorations on the fly and don't want to store\n// and reuse DOM nodes. Make sure that any widgets with the same\n// key are interchangeable—if widgets differ in, for example,\n// the behavior of some event handler, they should get\n// different keys.\n\n\nDecoration.widget = function widget(pos, toDOM, spec) {\n return new Decoration(pos, pos, new WidgetType(toDOM, spec));\n}; // :: (number, number, DecorationAttrs, ?Object) → Decoration\n// Creates an inline decoration, which adds the given attributes to\n// each inline node between `from` and `to`.\n//\n// spec::- These options are recognized:\n//\n// inclusiveStart:: ?bool\n// Determines how the left side of the decoration is\n// [mapped](#transform.Position_Mapping) when content is\n// inserted directly at that position. By default, the decoration\n// won't include the new content, but you can set this to `true`\n// to make it inclusive.\n//\n// inclusiveEnd:: ?bool\n// Determines how the right side of the decoration is mapped.\n// See\n// [`inclusiveStart`](#view.Decoration^inline^spec.inclusiveStart).\n\n\nDecoration.inline = function inline(from, to, attrs, spec) {\n return new Decoration(from, to, new InlineType(attrs, spec));\n}; // :: (number, number, DecorationAttrs, ?Object) → Decoration\n// Creates a node decoration. `from` and `to` should point precisely\n// before and after a node in the document. That node, and only that\n// node, will receive the given attributes.\n//\n// spec::-\n//\n// Optional information to store with the decoration. It\n// is also used when comparing decorators for equality.\n\n\nDecoration.node = function node(from, to, attrs, spec) {\n return new Decoration(from, to, new NodeType(attrs, spec));\n}; // :: Object\n// The spec provided when creating this decoration. Can be useful\n// if you've stored extra information in that object.\n\n\nprototypeAccessors$1.spec.get = function () {\n return this.type.spec;\n};\n\nprototypeAccessors$1.inline.get = function () {\n return this.type instanceof InlineType;\n};\n\nObject.defineProperties(Decoration.prototype, prototypeAccessors$1); // DecorationAttrs:: interface\n// A set of attributes to add to a decorated node. Most properties\n// simply directly correspond to DOM attributes of the same name,\n// which will be set to the property's value. These are exceptions:\n//\n// class:: ?string\n// A CSS class name or a space-separated set of class names to be\n// _added_ to the classes that the node already had.\n//\n// style:: ?string\n// A string of CSS to be _added_ to the node's existing `style` property.\n//\n// nodeName:: ?string\n// When non-null, the target node is wrapped in a DOM element of\n// this type (and the other attributes are applied to this element).\n\nvar none = [],\n noSpec = {}; // ::- A collection of [decorations](#view.Decoration), organized in\n// such a way that the drawing algorithm can efficiently use and\n// compare them. This is a persistent data structure—it is not\n// modified, updates create a new value.\n\nvar DecorationSet = function DecorationSet(local, children) {\n this.local = local && local.length ? local : none;\n this.children = children && children.length ? children : none;\n}; // :: (Node, [Decoration]) → DecorationSet\n// Create a set of decorations, using the structure of the given\n// document.\n\n\nDecorationSet.create = function create(doc, decorations) {\n return decorations.length ? buildTree(decorations, doc, 0, noSpec) : empty;\n}; // :: (?number, ?number, ?(spec: Object) → bool) → [Decoration]\n// Find all decorations in this set which touch the given range\n// (including decorations that start or end directly at the\n// boundaries) and match the given predicate on their spec. When\n// `start` and `end` are omitted, all decorations in the set are\n// considered. When `predicate` isn't given, all decorations are\n// assumed to match.\n\n\nDecorationSet.prototype.find = function find(start, end, predicate) {\n var result = [];\n this.findInner(start == null ? 0 : start, end == null ? 1e9 : end, result, 0, predicate);\n return result;\n};\n\nDecorationSet.prototype.findInner = function findInner(start, end, result, offset, predicate) {\n for (var i = 0; i < this.local.length; i++) {\n var span = this.local[i];\n\n if (span.from <= end && span.to >= start && (!predicate || predicate(span.spec))) {\n result.push(span.copy(span.from + offset, span.to + offset));\n }\n }\n\n for (var i$1 = 0; i$1 < this.children.length; i$1 += 3) {\n if (this.children[i$1] < end && this.children[i$1 + 1] > start) {\n var childOff = this.children[i$1] + 1;\n this.children[i$1 + 2].findInner(start - childOff, end - childOff, result, offset + childOff, predicate);\n }\n }\n}; // :: (Mapping, Node, ?Object) → DecorationSet\n// Map the set of decorations in response to a change in the\n// document.\n//\n// options::- An optional set of options.\n//\n// onRemove:: ?(decorationSpec: Object)\n// When given, this function will be called for each decoration\n// that gets dropped as a result of the mapping, passing the\n// spec of that decoration.\n\n\nDecorationSet.prototype.map = function map(mapping, doc, options) {\n if (this == empty || mapping.maps.length == 0) {\n return this;\n }\n\n return this.mapInner(mapping, doc, 0, 0, options || noSpec);\n};\n\nDecorationSet.prototype.mapInner = function mapInner(mapping, node, offset, oldOffset, options) {\n var newLocal;\n\n for (var i = 0; i < this.local.length; i++) {\n var mapped = this.local[i].map(mapping, offset, oldOffset);\n\n if (mapped && mapped.type.valid(node, mapped)) {\n (newLocal || (newLocal = [])).push(mapped);\n } else if (options.onRemove) {\n options.onRemove(this.local[i].spec);\n }\n }\n\n if (this.children.length) {\n return mapChildren(this.children, newLocal, mapping, node, offset, oldOffset, options);\n } else {\n return newLocal ? new DecorationSet(newLocal.sort(byPos)) : empty;\n }\n}; // :: (Node, [Decoration]) → DecorationSet\n// Add the given array of decorations to the ones in the set,\n// producing a new set. Needs access to the current document to\n// create the appropriate tree structure.\n\n\nDecorationSet.prototype.add = function add(doc, decorations) {\n if (!decorations.length) {\n return this;\n }\n\n if (this == empty) {\n return DecorationSet.create(doc, decorations);\n }\n\n return this.addInner(doc, decorations, 0);\n};\n\nDecorationSet.prototype.addInner = function addInner(doc, decorations, offset) {\n var this$1 = this;\n var children,\n childIndex = 0;\n doc.forEach(function (childNode, childOffset) {\n var baseOffset = childOffset + offset,\n found;\n\n if (!(found = takeSpansForNode(decorations, childNode, baseOffset))) {\n return;\n }\n\n if (!children) {\n children = this$1.children.slice();\n }\n\n while (childIndex < children.length && children[childIndex] < childOffset) {\n childIndex += 3;\n }\n\n if (children[childIndex] == childOffset) {\n children[childIndex + 2] = children[childIndex + 2].addInner(childNode, found, baseOffset + 1);\n } else {\n children.splice(childIndex, 0, childOffset, childOffset + childNode.nodeSize, buildTree(found, childNode, baseOffset + 1, noSpec));\n }\n\n childIndex += 3;\n });\n var local = moveSpans(childIndex ? withoutNulls(decorations) : decorations, -offset);\n\n for (var i = 0; i < local.length; i++) {\n if (!local[i].type.valid(doc, local[i])) {\n local.splice(i--, 1);\n }\n }\n\n return new DecorationSet(local.length ? this.local.concat(local).sort(byPos) : this.local, children || this.children);\n}; // :: ([Decoration]) → DecorationSet\n// Create a new set that contains the decorations in this set, minus\n// the ones in the given array.\n\n\nDecorationSet.prototype.remove = function remove(decorations) {\n if (decorations.length == 0 || this == empty) {\n return this;\n }\n\n return this.removeInner(decorations, 0);\n};\n\nDecorationSet.prototype.removeInner = function removeInner(decorations, offset) {\n var children = this.children,\n local = this.local;\n\n for (var i = 0; i < children.length; i += 3) {\n var found = void 0,\n from = children[i] + offset,\n to = children[i + 1] + offset;\n\n for (var j = 0, span = void 0; j < decorations.length; j++) {\n if (span = decorations[j]) {\n if (span.from > from && span.to < to) {\n decorations[j] = null;\n (found || (found = [])).push(span);\n }\n }\n }\n\n if (!found) {\n continue;\n }\n\n if (children == this.children) {\n children = this.children.slice();\n }\n\n var removed = children[i + 2].removeInner(found, from + 1);\n\n if (removed != empty) {\n children[i + 2] = removed;\n } else {\n children.splice(i, 3);\n i -= 3;\n }\n }\n\n if (local.length) {\n for (var i$1 = 0, span$1 = void 0; i$1 < decorations.length; i$1++) {\n if (span$1 = decorations[i$1]) {\n for (var j$1 = 0; j$1 < local.length; j$1++) {\n if (local[j$1].eq(span$1, offset)) {\n if (local == this.local) {\n local = this.local.slice();\n }\n\n local.splice(j$1--, 1);\n }\n }\n }\n }\n }\n\n if (children == this.children && local == this.local) {\n return this;\n }\n\n return local.length || children.length ? new DecorationSet(local, children) : empty;\n};\n\nDecorationSet.prototype.forChild = function forChild(offset, node) {\n if (this == empty) {\n return this;\n }\n\n if (node.isLeaf) {\n return DecorationSet.empty;\n }\n\n var child, local;\n\n for (var i = 0; i < this.children.length; i += 3) {\n if (this.children[i] >= offset) {\n if (this.children[i] == offset) {\n child = this.children[i + 2];\n }\n\n break;\n }\n }\n\n var start = offset + 1,\n end = start + node.content.size;\n\n for (var i$1 = 0; i$1 < this.local.length; i$1++) {\n var dec = this.local[i$1];\n\n if (dec.from < end && dec.to > start && dec.type instanceof InlineType) {\n var from = Math.max(start, dec.from) - start,\n to = Math.min(end, dec.to) - start;\n\n if (from < to) {\n (local || (local = [])).push(dec.copy(from, to));\n }\n }\n }\n\n if (local) {\n var localSet = new DecorationSet(local.sort(byPos));\n return child ? new DecorationGroup([localSet, child]) : localSet;\n }\n\n return child || empty;\n};\n\nDecorationSet.prototype.eq = function eq(other) {\n if (this == other) {\n return true;\n }\n\n if (!(other instanceof DecorationSet) || this.local.length != other.local.length || this.children.length != other.children.length) {\n return false;\n }\n\n for (var i = 0; i < this.local.length; i++) {\n if (!this.local[i].eq(other.local[i])) {\n return false;\n }\n }\n\n for (var i$1 = 0; i$1 < this.children.length; i$1 += 3) {\n if (this.children[i$1] != other.children[i$1] || this.children[i$1 + 1] != other.children[i$1 + 1] || !this.children[i$1 + 2].eq(other.children[i$1 + 2])) {\n return false;\n }\n }\n\n return true;\n};\n\nDecorationSet.prototype.locals = function locals(node) {\n return removeOverlap(this.localsInner(node));\n};\n\nDecorationSet.prototype.localsInner = function localsInner(node) {\n if (this == empty) {\n return none;\n }\n\n if (node.inlineContent || !this.local.some(InlineType.is)) {\n return this.local;\n }\n\n var result = [];\n\n for (var i = 0; i < this.local.length; i++) {\n if (!(this.local[i].type instanceof InlineType)) {\n result.push(this.local[i]);\n }\n }\n\n return result;\n};\n\nvar empty = new DecorationSet(); // :: DecorationSet\n// The empty set of decorations.\n\nDecorationSet.empty = empty;\nDecorationSet.removeOverlap = removeOverlap; // :- An abstraction that allows the code dealing with decorations to\n// treat multiple DecorationSet objects as if it were a single object\n// with (a subset of) the same interface.\n\nvar DecorationGroup = function DecorationGroup(members) {\n this.members = members;\n};\n\nDecorationGroup.prototype.forChild = function forChild(offset, child) {\n if (child.isLeaf) {\n return DecorationSet.empty;\n }\n\n var found = [];\n\n for (var i = 0; i < this.members.length; i++) {\n var result = this.members[i].forChild(offset, child);\n\n if (result == empty) {\n continue;\n }\n\n if (result instanceof DecorationGroup) {\n found = found.concat(result.members);\n } else {\n found.push(result);\n }\n }\n\n return DecorationGroup.from(found);\n};\n\nDecorationGroup.prototype.eq = function eq(other) {\n if (!(other instanceof DecorationGroup) || other.members.length != this.members.length) {\n return false;\n }\n\n for (var i = 0; i < this.members.length; i++) {\n if (!this.members[i].eq(other.members[i])) {\n return false;\n }\n }\n\n return true;\n};\n\nDecorationGroup.prototype.locals = function locals(node) {\n var result,\n sorted = true;\n\n for (var i = 0; i < this.members.length; i++) {\n var locals = this.members[i].localsInner(node);\n\n if (!locals.length) {\n continue;\n }\n\n if (!result) {\n result = locals;\n } else {\n if (sorted) {\n result = result.slice();\n sorted = false;\n }\n\n for (var j = 0; j < locals.length; j++) {\n result.push(locals[j]);\n }\n }\n }\n\n return result ? removeOverlap(sorted ? result : result.sort(byPos)) : none;\n}; // : ([DecorationSet]) → union\n// Create a group for the given array of decoration sets, or return\n// a single set when possible.\n\n\nDecorationGroup.from = function from(members) {\n switch (members.length) {\n case 0:\n return empty;\n\n case 1:\n return members[0];\n\n default:\n return new DecorationGroup(members);\n }\n};\n\nfunction mapChildren(oldChildren, newLocal, mapping, node, offset, oldOffset, options) {\n var children = oldChildren.slice(); // Mark the children that are directly touched by changes, and\n // move those that are after the changes.\n\n var shift = function shift(oldStart, oldEnd, newStart, newEnd) {\n for (var i = 0; i < children.length; i += 3) {\n var end = children[i + 1],\n dSize = void 0;\n\n if (end == -1 || oldStart > end + oldOffset) {\n continue;\n }\n\n if (oldEnd >= children[i] + oldOffset) {\n children[i + 1] = -1;\n } else if (newStart >= offset && (dSize = newEnd - newStart - (oldEnd - oldStart))) {\n children[i] += dSize;\n children[i + 1] += dSize;\n }\n }\n };\n\n for (var i = 0; i < mapping.maps.length; i++) {\n mapping.maps[i].forEach(shift);\n } // Find the child nodes that still correspond to a single node,\n // recursively call mapInner on them and update their positions.\n\n\n var mustRebuild = false;\n\n for (var i$1 = 0; i$1 < children.length; i$1 += 3) {\n if (children[i$1 + 1] == -1) {\n // Touched nodes\n var from = mapping.map(oldChildren[i$1] + oldOffset),\n fromLocal = from - offset;\n\n if (fromLocal < 0 || fromLocal >= node.content.size) {\n mustRebuild = true;\n continue;\n } // Must read oldChildren because children was tagged with -1\n\n\n var to = mapping.map(oldChildren[i$1 + 1] + oldOffset, -1),\n toLocal = to - offset;\n var ref = node.content.findIndex(fromLocal);\n var index = ref.index;\n var childOffset = ref.offset;\n var childNode = node.maybeChild(index);\n\n if (childNode && childOffset == fromLocal && childOffset + childNode.nodeSize == toLocal) {\n var mapped = children[i$1 + 2].mapInner(mapping, childNode, from + 1, oldChildren[i$1] + oldOffset + 1, options);\n\n if (mapped != empty) {\n children[i$1] = fromLocal;\n children[i$1 + 1] = toLocal;\n children[i$1 + 2] = mapped;\n } else {\n children[i$1 + 1] = -2;\n mustRebuild = true;\n }\n } else {\n mustRebuild = true;\n }\n }\n } // Remaining children must be collected and rebuilt into the appropriate structure\n\n\n if (mustRebuild) {\n var decorations = mapAndGatherRemainingDecorations(children, oldChildren, newLocal || [], mapping, offset, oldOffset, options);\n var built = buildTree(decorations, node, 0, options);\n newLocal = built.local;\n\n for (var i$2 = 0; i$2 < children.length; i$2 += 3) {\n if (children[i$2 + 1] < 0) {\n children.splice(i$2, 3);\n i$2 -= 3;\n }\n }\n\n for (var i$3 = 0, j = 0; i$3 < built.children.length; i$3 += 3) {\n var from$1 = built.children[i$3];\n\n while (j < children.length && children[j] < from$1) {\n j += 3;\n }\n\n children.splice(j, 0, built.children[i$3], built.children[i$3 + 1], built.children[i$3 + 2]);\n }\n }\n\n return new DecorationSet(newLocal && newLocal.sort(byPos), children);\n}\n\nfunction moveSpans(spans, offset) {\n if (!offset || !spans.length) {\n return spans;\n }\n\n var result = [];\n\n for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n result.push(new Decoration(span.from + offset, span.to + offset, span.type));\n }\n\n return result;\n}\n\nfunction mapAndGatherRemainingDecorations(children, oldChildren, decorations, mapping, offset, oldOffset, options) {\n // Gather all decorations from the remaining marked children\n function gather(set, oldOffset) {\n for (var i = 0; i < set.local.length; i++) {\n var mapped = set.local[i].map(mapping, offset, oldOffset);\n\n if (mapped) {\n decorations.push(mapped);\n } else if (options.onRemove) {\n options.onRemove(set.local[i].spec);\n }\n }\n\n for (var i$1 = 0; i$1 < set.children.length; i$1 += 3) {\n gather(set.children[i$1 + 2], set.children[i$1] + oldOffset + 1);\n }\n }\n\n for (var i = 0; i < children.length; i += 3) {\n if (children[i + 1] == -1) {\n gather(children[i + 2], oldChildren[i] + oldOffset + 1);\n }\n }\n\n return decorations;\n}\n\nfunction takeSpansForNode(spans, node, offset) {\n if (node.isLeaf) {\n return null;\n }\n\n var end = offset + node.nodeSize,\n found = null;\n\n for (var i = 0, span = void 0; i < spans.length; i++) {\n if ((span = spans[i]) && span.from > offset && span.to < end) {\n (found || (found = [])).push(span);\n spans[i] = null;\n }\n }\n\n return found;\n}\n\nfunction withoutNulls(array) {\n var result = [];\n\n for (var i = 0; i < array.length; i++) {\n if (array[i] != null) {\n result.push(array[i]);\n }\n }\n\n return result;\n} // : ([Decoration], Node, number) → DecorationSet\n// Build up a tree that corresponds to a set of decorations. `offset`\n// is a base offset that should be subtractet from the `from` and `to`\n// positions in the spans (so that we don't have to allocate new spans\n// for recursive calls).\n\n\nfunction buildTree(spans, node, offset, options) {\n var children = [],\n hasNulls = false;\n node.forEach(function (childNode, localStart) {\n var found = takeSpansForNode(spans, childNode, localStart + offset);\n\n if (found) {\n hasNulls = true;\n var subtree = buildTree(found, childNode, offset + localStart + 1, options);\n\n if (subtree != empty) {\n children.push(localStart, localStart + childNode.nodeSize, subtree);\n }\n }\n });\n var locals = moveSpans(hasNulls ? withoutNulls(spans) : spans, -offset).sort(byPos);\n\n for (var i = 0; i < locals.length; i++) {\n if (!locals[i].type.valid(node, locals[i])) {\n if (options.onRemove) {\n options.onRemove(locals[i].spec);\n }\n\n locals.splice(i--, 1);\n }\n }\n\n return locals.length || children.length ? new DecorationSet(locals, children) : empty;\n} // : (Decoration, Decoration) → number\n// Used to sort decorations so that ones with a low start position\n// come first, and within a set with the same start position, those\n// with an smaller end position come first.\n\n\nfunction byPos(a, b) {\n return a.from - b.from || a.to - b.to;\n} // : ([Decoration]) → [Decoration]\n// Scan a sorted array of decorations for partially overlapping spans,\n// and split those so that only fully overlapping spans are left (to\n// make subsequent rendering easier). Will return the input array if\n// no partially overlapping spans are found (the common case).\n\n\nfunction removeOverlap(spans) {\n var working = spans;\n\n for (var i = 0; i < working.length - 1; i++) {\n var span = working[i];\n\n if (span.from != span.to) {\n for (var j = i + 1; j < working.length; j++) {\n var next = working[j];\n\n if (next.from == span.from) {\n if (next.to != span.to) {\n if (working == spans) {\n working = spans.slice();\n } // Followed by a partially overlapping larger span. Split that\n // span.\n\n\n working[j] = next.copy(next.from, span.to);\n insertAhead(working, j + 1, next.copy(span.to, next.to));\n }\n\n continue;\n } else {\n if (next.from < span.to) {\n if (working == spans) {\n working = spans.slice();\n } // The end of this one overlaps with a subsequent span. Split\n // this one.\n\n\n working[i] = span.copy(span.from, next.from);\n insertAhead(working, j, span.copy(next.from, span.to));\n }\n\n break;\n }\n }\n }\n }\n\n return working;\n}\n\nfunction insertAhead(array, i, deco) {\n while (i < array.length && byPos(deco, array[i]) > 0) {\n i++;\n }\n\n array.splice(i, 0, deco);\n} // : (EditorView) → union\n// Get the decorations associated with the current props of a view.\n\n\nfunction viewDecorations(view) {\n var found = [];\n view.someProp(\"decorations\", function (f) {\n var result = f(view.state);\n\n if (result && result != empty) {\n found.push(result);\n }\n });\n\n if (view.cursorWrapper) {\n found.push(DecorationSet.create(view.state.doc, [view.cursorWrapper.deco]));\n }\n\n return DecorationGroup.from(found);\n} // ::- An editor view manages the DOM structure that represents an\n// editable document. Its state and behavior are determined by its\n// [props](#view.DirectEditorProps).\n\n\nvar EditorView = function EditorView(place, props) {\n this._props = props; // :: EditorState\n // The view's current [state](#state.EditorState).\n\n this.state = props.state;\n this.dispatch = this.dispatch.bind(this);\n this._root = null;\n this.focused = false; // Kludge used to work around a Chrome bug\n\n this.trackWrites = null; // :: dom.Element\n // An editable DOM node containing the document. (You probably\n // should not directly interfere with its content.)\n\n this.dom = place && place.mount || document.createElement(\"div\");\n\n if (place) {\n if (place.appendChild) {\n place.appendChild(this.dom);\n } else if (place.apply) {\n place(this.dom);\n } else if (place.mount) {\n this.mounted = true;\n }\n } // :: bool\n // Indicates whether the editor is currently [editable](#view.EditorProps.editable).\n\n\n this.editable = getEditable(this);\n this.markCursor = null;\n this.cursorWrapper = null;\n updateCursorWrapper(this);\n this.nodeViews = buildNodeViews(this);\n this.docView = docViewDesc(this.state.doc, computeDocDeco(this), viewDecorations(this), this.dom, this);\n this.lastSelectedViewDesc = null; // :: ?{slice: Slice, move: bool}\n // When editor content is being dragged, this object contains\n // information about the dragged slice and whether it is being\n // copied or moved. At any other time, it is null.\n\n this.dragging = null;\n initInput(this);\n this.pluginViews = [];\n this.updatePluginViews();\n};\n\nvar prototypeAccessors$2 = {\n props: {\n configurable: true\n },\n root: {\n configurable: true\n }\n}; // composing:: boolean\n// Holds `true` when a\n// [composition](https://developer.mozilla.org/en-US/docs/Mozilla/IME_handling_guide)\n// is active.\n// :: DirectEditorProps\n// The view's current [props](#view.EditorProps).\n\nprototypeAccessors$2.props.get = function () {\n if (this._props.state != this.state) {\n var prev = this._props;\n this._props = {};\n\n for (var name in prev) {\n this._props[name] = prev[name];\n }\n\n this._props.state = this.state;\n }\n\n return this._props;\n}; // :: (DirectEditorProps)\n// Update the view's props. Will immediately cause an update to\n// the DOM.\n\n\nEditorView.prototype.update = function update(props) {\n if (props.handleDOMEvents != this._props.handleDOMEvents) {\n ensureListeners(this);\n }\n\n this._props = props;\n this.updateStateInner(props.state, true);\n}; // :: (DirectEditorProps)\n// Update the view by updating existing props object with the object\n// given as argument. Equivalent to `view.update(Object.assign({},\n// view.props, props))`.\n\n\nEditorView.prototype.setProps = function setProps(props) {\n var updated = {};\n\n for (var name in this._props) {\n updated[name] = this._props[name];\n }\n\n updated.state = this.state;\n\n for (var name$1 in props) {\n updated[name$1] = props[name$1];\n }\n\n this.update(updated);\n}; // :: (EditorState)\n// Update the editor's `state` prop, without touching any of the\n// other props.\n\n\nEditorView.prototype.updateState = function updateState(state) {\n this.updateStateInner(state, this.state.plugins != state.plugins);\n};\n\nEditorView.prototype.updateStateInner = function updateStateInner(state, reconfigured) {\n var this$1 = this;\n var prev = this.state,\n redraw = false,\n updateSel = false; // When stored marks are added, stop composition, so that they can\n // be displayed.\n\n if (state.storedMarks && this.composing) {\n clearComposition(this);\n updateSel = true;\n }\n\n this.state = state;\n\n if (reconfigured) {\n var nodeViews = buildNodeViews(this);\n\n if (changedNodeViews(nodeViews, this.nodeViews)) {\n this.nodeViews = nodeViews;\n redraw = true;\n }\n\n ensureListeners(this);\n }\n\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n var innerDeco = viewDecorations(this),\n outerDeco = computeDocDeco(this);\n var scroll = reconfigured ? \"reset\" : state.scrollToSelection > prev.scrollToSelection ? \"to selection\" : \"preserve\";\n var updateDoc = redraw || !this.docView.matchesNode(state.doc, outerDeco, innerDeco);\n\n if (updateDoc || !state.selection.eq(prev.selection)) {\n updateSel = true;\n }\n\n var oldScrollPos = scroll == \"preserve\" && updateSel && this.dom.style.overflowAnchor == null && storeScrollPos(this);\n\n if (updateSel) {\n this.domObserver.stop(); // Work around an issue in Chrome, IE, and Edge where changing\n // the DOM around an active selection puts it into a broken\n // state where the thing the user sees differs from the\n // selection reported by the Selection object (#710, #973,\n // #1011, #1013, #1035).\n\n var forceSelUpdate = updateDoc && (result.ie || result.chrome) && !this.composing && !prev.selection.empty && !state.selection.empty && selectionContextChanged(prev.selection, state.selection);\n\n if (updateDoc) {\n // If the node that the selection points into is written to,\n // Chrome sometimes starts misreporting the selection, so this\n // tracks that and forces a selection reset when our update\n // did write to the node.\n var chromeKludge = result.chrome ? this.trackWrites = this.root.getSelection().focusNode : null;\n\n if (redraw || !this.docView.update(state.doc, outerDeco, innerDeco, this)) {\n this.docView.updateOuterDeco([]);\n this.docView.destroy();\n this.docView = docViewDesc(state.doc, outerDeco, innerDeco, this.dom, this);\n }\n\n if (chromeKludge && !this.trackWrites) {\n forceSelUpdate = true;\n }\n } // Work around for an issue where an update arriving right between\n // a DOM selection change and the \"selectionchange\" event for it\n // can cause a spurious DOM selection update, disrupting mouse\n // drag selection.\n\n\n if (forceSelUpdate || !(this.mouseDown && this.domObserver.currentSelection.eq(this.root.getSelection()) && anchorInRightPlace(this))) {\n selectionToDOM(this, forceSelUpdate);\n } else {\n syncNodeSelection(this, state.selection);\n this.domObserver.setCurSelection();\n }\n\n this.domObserver.start();\n }\n\n this.updatePluginViews(prev);\n\n if (scroll == \"reset\") {\n this.dom.scrollTop = 0;\n } else if (scroll == \"to selection\") {\n var startDOM = this.root.getSelection().focusNode;\n if (this.someProp(\"handleScrollToSelection\", function (f) {\n return f(this$1);\n })) ; // Handled\n else if (state.selection instanceof NodeSelection) {\n scrollRectIntoView(this, this.docView.domAfterPos(state.selection.from).getBoundingClientRect(), startDOM);\n } else {\n scrollRectIntoView(this, this.coordsAtPos(state.selection.head, 1), startDOM);\n }\n } else if (oldScrollPos) {\n resetScrollPos(oldScrollPos);\n }\n};\n\nEditorView.prototype.destroyPluginViews = function destroyPluginViews() {\n var view;\n\n while (view = this.pluginViews.pop()) {\n if (view.destroy) {\n view.destroy();\n }\n }\n};\n\nEditorView.prototype.updatePluginViews = function updatePluginViews(prevState) {\n if (!prevState || prevState.plugins != this.state.plugins) {\n this.destroyPluginViews();\n\n for (var i = 0; i < this.state.plugins.length; i++) {\n var plugin = this.state.plugins[i];\n\n if (plugin.spec.view) {\n this.pluginViews.push(plugin.spec.view(this));\n }\n }\n } else {\n for (var i$1 = 0; i$1 < this.pluginViews.length; i$1++) {\n var pluginView = this.pluginViews[i$1];\n\n if (pluginView.update) {\n pluginView.update(this, prevState);\n }\n }\n }\n}; // :: (string, ?(prop: *) → *) → *\n// Goes over the values of a prop, first those provided directly,\n// then those from plugins (in order), and calls `f` every time a\n// non-undefined value is found. When `f` returns a truthy value,\n// that is immediately returned. When `f` isn't provided, it is\n// treated as the identity function (the prop value is returned\n// directly).\n\n\nEditorView.prototype.someProp = function someProp(propName, f) {\n var prop = this._props && this._props[propName],\n value;\n\n if (prop != null && (value = f ? f(prop) : prop)) {\n return value;\n }\n\n var plugins = this.state.plugins;\n\n if (plugins) {\n for (var i = 0; i < plugins.length; i++) {\n var prop$1 = plugins[i].props[propName];\n\n if (prop$1 != null && (value = f ? f(prop$1) : prop$1)) {\n return value;\n }\n }\n }\n}; // :: () → bool\n// Query whether the view has focus.\n\n\nEditorView.prototype.hasFocus = function hasFocus() {\n return this.root.activeElement == this.dom;\n}; // :: ()\n// Focus the editor.\n\n\nEditorView.prototype.focus = function focus() {\n this.domObserver.stop();\n\n if (this.editable) {\n focusPreventScroll(this.dom);\n }\n\n selectionToDOM(this);\n this.domObserver.start();\n}; // :: union\n// Get the document root in which the editor exists. This will\n// usually be the top-level `document`, but might be a [shadow\n// DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM)\n// root if the editor is inside one.\n\n\nprototypeAccessors$2.root.get = function () {\n var cached = this._root;\n\n if (cached == null) {\n for (var search = this.dom.parentNode; search; search = search.parentNode) {\n if (search.nodeType == 9 || search.nodeType == 11 && search.host) {\n if (!search.getSelection) {\n Object.getPrototypeOf(search).getSelection = function () {\n return document.getSelection();\n };\n }\n\n return this._root = search;\n }\n }\n }\n\n return cached || document;\n}; // :: ({left: number, top: number}) → ?{pos: number, inside: number}\n// Given a pair of viewport coordinates, return the document\n// position that corresponds to them. May return null if the given\n// coordinates aren't inside of the editor. When an object is\n// returned, its `pos` property is the position nearest to the\n// coordinates, and its `inside` property holds the position of the\n// inner node that the position falls inside of, or -1 if it is at\n// the top level, not in any node.\n\n\nEditorView.prototype.posAtCoords = function posAtCoords$1(coords) {\n return posAtCoords(this, coords);\n}; // :: (number, number) → {left: number, right: number, top: number, bottom: number}\n// Returns the viewport rectangle at a given document position.\n// `left` and `right` will be the same number, as this returns a\n// flat cursor-ish rectangle. If the position is between two things\n// that aren't directly adjacent, `side` determines which element is\n// used. When < 0, the element before the position is used,\n// otherwise the element after.\n\n\nEditorView.prototype.coordsAtPos = function coordsAtPos$1(pos, side) {\n if (side === void 0) side = 1;\n return coordsAtPos(this, pos, side);\n}; // :: (number, number) → {node: dom.Node, offset: number}\n// Find the DOM position that corresponds to the given document\n// position. When `side` is negative, find the position as close as\n// possible to the content before the position. When positive,\n// prefer positions close to the content after the position. When\n// zero, prefer as shallow a position as possible.\n//\n// Note that you should **not** mutate the editor's internal DOM,\n// only inspect it (and even that is usually not necessary).\n\n\nEditorView.prototype.domAtPos = function domAtPos(pos, side) {\n if (side === void 0) side = 0;\n return this.docView.domFromPos(pos, side);\n}; // :: (number) → ?dom.Node\n// Find the DOM node that represents the document node after the\n// given position. May return `null` when the position doesn't point\n// in front of a node or if the node is inside an opaque node view.\n//\n// This is intended to be able to call things like\n// `getBoundingClientRect` on that DOM node. Do **not** mutate the\n// editor DOM directly, or add styling this way, since that will be\n// immediately overriden by the editor as it redraws the node.\n\n\nEditorView.prototype.nodeDOM = function nodeDOM(pos) {\n var desc = this.docView.descAt(pos);\n return desc ? desc.nodeDOM : null;\n}; // :: (dom.Node, number, ?number) → number\n// Find the document position that corresponds to a given DOM\n// position. (Whenever possible, it is preferable to inspect the\n// document structure directly, rather than poking around in the\n// DOM, but sometimes—for example when interpreting an event\n// target—you don't have a choice.)\n//\n// The `bias` parameter can be used to influence which side of a DOM\n// node to use when the position is inside a leaf node.\n\n\nEditorView.prototype.posAtDOM = function posAtDOM(node, offset, bias) {\n if (bias === void 0) bias = -1;\n var pos = this.docView.posFromDOM(node, offset, bias);\n\n if (pos == null) {\n throw new RangeError(\"DOM position not inside the editor\");\n }\n\n return pos;\n}; // :: (union<\"up\", \"down\", \"left\", \"right\", \"forward\", \"backward\">, ?EditorState) → bool\n// Find out whether the selection is at the end of a textblock when\n// moving in a given direction. When, for example, given `\"left\"`,\n// it will return true if moving left from the current cursor\n// position would leave that position's parent textblock. Will apply\n// to the view's current state by default, but it is possible to\n// pass a different state.\n\n\nEditorView.prototype.endOfTextblock = function endOfTextblock$1(dir, state) {\n return endOfTextblock(this, state || this.state, dir);\n}; // :: ()\n// Removes the editor from the DOM and destroys all [node\n// views](#view.NodeView).\n\n\nEditorView.prototype.destroy = function destroy() {\n if (!this.docView) {\n return;\n }\n\n destroyInput(this);\n this.destroyPluginViews();\n\n if (this.mounted) {\n this.docView.update(this.state.doc, [], viewDecorations(this), this);\n this.dom.textContent = \"\";\n } else if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n\n this.docView.destroy();\n this.docView = null;\n}; // Used for testing.\n\n\nEditorView.prototype.dispatchEvent = function dispatchEvent$1(event) {\n return dispatchEvent(this, event);\n}; // :: (Transaction)\n// Dispatch a transaction. Will call\n// [`dispatchTransaction`](#view.DirectEditorProps.dispatchTransaction)\n// when given, and otherwise defaults to applying the transaction to\n// the current state and calling\n// [`updateState`](#view.EditorView.updateState) with the result.\n// This method is bound to the view instance, so that it can be\n// easily passed around.\n\n\nEditorView.prototype.dispatch = function dispatch(tr) {\n var dispatchTransaction = this._props.dispatchTransaction;\n\n if (dispatchTransaction) {\n dispatchTransaction.call(this, tr);\n } else {\n this.updateState(this.state.apply(tr));\n }\n};\n\nObject.defineProperties(EditorView.prototype, prototypeAccessors$2);\n\nfunction computeDocDeco(view) {\n var attrs = Object.create(null);\n attrs[\"class\"] = \"ProseMirror\";\n attrs.contenteditable = String(view.editable);\n view.someProp(\"attributes\", function (value) {\n if (typeof value == \"function\") {\n value = value(view.state);\n }\n\n if (value) {\n for (var attr in value) {\n if (attr == \"class\") {\n attrs[\"class\"] += \" \" + value[attr];\n } else if (!attrs[attr] && attr != \"contenteditable\" && attr != \"nodeName\") {\n attrs[attr] = String(value[attr]);\n }\n }\n }\n });\n return [Decoration.node(0, view.state.doc.content.size, attrs)];\n}\n\nfunction updateCursorWrapper(view) {\n if (view.markCursor) {\n var dom = document.createElement(\"img\");\n dom.setAttribute(\"mark-placeholder\", \"true\");\n view.cursorWrapper = {\n dom: dom,\n deco: Decoration.widget(view.state.selection.head, dom, {\n raw: true,\n marks: view.markCursor\n })\n };\n } else {\n view.cursorWrapper = null;\n }\n}\n\nfunction getEditable(view) {\n return !view.someProp(\"editable\", function (value) {\n return value(view.state) === false;\n });\n}\n\nfunction selectionContextChanged(sel1, sel2) {\n var depth = Math.min(sel1.$anchor.sharedDepth(sel1.head), sel2.$anchor.sharedDepth(sel2.head));\n return sel1.$anchor.start(depth) != sel2.$anchor.start(depth);\n}\n\nfunction buildNodeViews(view) {\n var result = {};\n view.someProp(\"nodeViews\", function (obj) {\n for (var prop in obj) {\n if (!Object.prototype.hasOwnProperty.call(result, prop)) {\n result[prop] = obj[prop];\n }\n }\n });\n return result;\n}\n\nfunction changedNodeViews(a, b) {\n var nA = 0,\n nB = 0;\n\n for (var prop in a) {\n if (a[prop] != b[prop]) {\n return true;\n }\n\n nA++;\n }\n\n for (var _ in b) {\n nB++;\n }\n\n return nA != nB;\n} // EditorProps:: interface\n//\n// Props are configuration values that can be passed to an editor view\n// or included in a plugin. This interface lists the supported props.\n//\n// The various event-handling functions may all return `true` to\n// indicate that they handled the given event. The view will then take\n// care to call `preventDefault` on the event, except with\n// `handleDOMEvents`, where the handler itself is responsible for that.\n//\n// How a prop is resolved depends on the prop. Handler functions are\n// called one at a time, starting with the base props and then\n// searching through the plugins (in order of appearance) until one of\n// them returns true. For some props, the first plugin that yields a\n// value gets precedence.\n//\n// handleDOMEvents:: ?Object<(view: EditorView, event: dom.Event) → bool>\n// Can be an object mapping DOM event type names to functions that\n// handle them. Such functions will be called before any handling\n// ProseMirror does of events fired on the editable DOM element.\n// Contrary to the other event handling props, when returning true\n// from such a function, you are responsible for calling\n// `preventDefault` yourself (or not, if you want to allow the\n// default behavior).\n//\n// handleKeyDown:: ?(view: EditorView, event: dom.KeyboardEvent) → bool\n// Called when the editor receives a `keydown` event.\n//\n// handleKeyPress:: ?(view: EditorView, event: dom.KeyboardEvent) → bool\n// Handler for `keypress` events.\n//\n// handleTextInput:: ?(view: EditorView, from: number, to: number, text: string) → bool\n// Whenever the user directly input text, this handler is called\n// before the input is applied. If it returns `true`, the default\n// behavior of actually inserting the text is suppressed.\n//\n// handleClickOn:: ?(view: EditorView, pos: number, node: Node, nodePos: number, event: dom.MouseEvent, direct: bool) → bool\n// Called for each node around a click, from the inside out. The\n// `direct` flag will be true for the inner node.\n//\n// handleClick:: ?(view: EditorView, pos: number, event: dom.MouseEvent) → bool\n// Called when the editor is clicked, after `handleClickOn` handlers\n// have been called.\n//\n// handleDoubleClickOn:: ?(view: EditorView, pos: number, node: Node, nodePos: number, event: dom.MouseEvent, direct: bool) → bool\n// Called for each node around a double click.\n//\n// handleDoubleClick:: ?(view: EditorView, pos: number, event: dom.MouseEvent) → bool\n// Called when the editor is double-clicked, after `handleDoubleClickOn`.\n//\n// handleTripleClickOn:: ?(view: EditorView, pos: number, node: Node, nodePos: number, event: dom.MouseEvent, direct: bool) → bool\n// Called for each node around a triple click.\n//\n// handleTripleClick:: ?(view: EditorView, pos: number, event: dom.MouseEvent) → bool\n// Called when the editor is triple-clicked, after `handleTripleClickOn`.\n//\n// handlePaste:: ?(view: EditorView, event: dom.ClipboardEvent, slice: Slice) → bool\n// Can be used to override the behavior of pasting. `slice` is the\n// pasted content parsed by the editor, but you can directly access\n// the event to get at the raw content.\n//\n// handleDrop:: ?(view: EditorView, event: dom.Event, slice: Slice, moved: bool) → bool\n// Called when something is dropped on the editor. `moved` will be\n// true if this drop moves from the current selection (which should\n// thus be deleted).\n//\n// handleScrollToSelection:: ?(view: EditorView) → bool\n// Called when the view, after updating its state, tries to scroll\n// the selection into view. A handler function may return false to\n// indicate that it did not handle the scrolling and further\n// handlers or the default behavior should be tried.\n//\n// createSelectionBetween:: ?(view: EditorView, anchor: ResolvedPos, head: ResolvedPos) → ?Selection\n// Can be used to override the way a selection is created when\n// reading a DOM selection between the given anchor and head.\n//\n// domParser:: ?DOMParser\n// The [parser](#model.DOMParser) to use when reading editor changes\n// from the DOM. Defaults to calling\n// [`DOMParser.fromSchema`](#model.DOMParser^fromSchema) on the\n// editor's schema.\n//\n// transformPastedHTML:: ?(html: string) → string\n// Can be used to transform pasted HTML text, _before_ it is parsed,\n// for example to clean it up.\n//\n// clipboardParser:: ?DOMParser\n// The [parser](#model.DOMParser) to use when reading content from\n// the clipboard. When not given, the value of the\n// [`domParser`](#view.EditorProps.domParser) prop is used.\n//\n// transformPastedText:: ?(text: string, plain: bool) → string\n// Transform pasted plain text. The `plain` flag will be true when\n// the text is pasted as plain text.\n//\n// clipboardTextParser:: ?(text: string, $context: ResolvedPos, plain: bool) → Slice\n// A function to parse text from the clipboard into a document\n// slice. Called after\n// [`transformPastedText`](#view.EditorProps.transformPastedText).\n// The default behavior is to split the text into lines, wrap them\n// in `

    ` tags, and call\n// [`clipboardParser`](#view.EditorProps.clipboardParser) on it.\n// The `plain` flag will be true when the text is pasted as plain text.\n//\n// transformPasted:: ?(Slice) → Slice\n// Can be used to transform pasted content before it is applied to\n// the document.\n//\n// nodeViews:: ?Object<(node: Node, view: EditorView, getPos: () → number, decorations: [Decoration]) → NodeView>\n// Allows you to pass custom rendering and behavior logic for nodes\n// and marks. Should map node and mark names to constructor\n// functions that produce a [`NodeView`](#view.NodeView) object\n// implementing the node's display behavior. For nodes, the third\n// argument `getPos` is a function that can be called to get the\n// node's current position, which can be useful when creating\n// transactions to update it. For marks, the third argument is a\n// boolean that indicates whether the mark's content is inline.\n//\n// `decorations` is an array of node or inline decorations that are\n// active around the node. They are automatically drawn in the\n// normal way, and you will usually just want to ignore this, but\n// they can also be used as a way to provide context information to\n// the node view without adding it to the document itself.\n//\n// clipboardSerializer:: ?DOMSerializer\n// The DOM serializer to use when putting content onto the\n// clipboard. If not given, the result of\n// [`DOMSerializer.fromSchema`](#model.DOMSerializer^fromSchema)\n// will be used.\n//\n// clipboardTextSerializer:: ?(Slice) → string\n// A function that will be called to get the text for the current\n// selection when copying text to the clipboard. By default, the\n// editor will use [`textBetween`](#model.Node.textBetween) on the\n// selected range.\n//\n// decorations:: ?(state: EditorState) → ?DecorationSet\n// A set of [document decorations](#view.Decoration) to show in the\n// view.\n//\n// editable:: ?(state: EditorState) → bool\n// When this returns false, the content of the view is not directly\n// editable.\n//\n// attributes:: ?union, (EditorState) → ?Object>\n// Control the DOM attributes of the editable element. May be either\n// an object or a function going from an editor state to an object.\n// By default, the element will get a class `\"ProseMirror\"`, and\n// will have its `contentEditable` attribute determined by the\n// [`editable` prop](#view.EditorProps.editable). Additional classes\n// provided here will be added to the class. For other attributes,\n// the value provided first (as in\n// [`someProp`](#view.EditorView.someProp)) will be used.\n//\n// scrollThreshold:: ?union\n// Determines the distance (in pixels) between the cursor and the\n// end of the visible viewport at which point, when scrolling the\n// cursor into view, scrolling takes place. Defaults to 0.\n//\n// scrollMargin:: ?union\n// Determines the extra space (in pixels) that is left above or\n// below the cursor when it is scrolled into view. Defaults to 5.\n// DirectEditorProps:: interface extends EditorProps\n//\n// The props object given directly to the editor view supports two\n// fields that can't be used in plugins:\n//\n// state:: EditorState\n// The current state of the editor.\n//\n// dispatchTransaction:: ?(tr: Transaction)\n// The callback over which to send transactions (state updates)\n// produced by the view. If you specify this, you probably want to\n// make sure this ends up calling the view's\n// [`updateState`](#view.EditorView.updateState) method with a new\n// state that has the transaction\n// [applied](#state.EditorState.apply). The callback will be bound to have\n// the view instance as its `this` binding.\n\n\nexport { Decoration, DecorationSet, EditorView, endComposition as __endComposition, parseFromClipboard as __parseFromClipboard, serializeForClipboard as __serializeForClipboard };","module.exports = require(\"core-js/library/fn/object/assign\");","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = 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\nvar NOTHING = typeof Symbol !== \"undefined\" ? Symbol(\"immer-nothing\") : defineProperty({}, \"immer-nothing\", true);\nvar DRAFTABLE = typeof Symbol !== \"undefined\" ? Symbol(\"immer-draftable\") : \"__$immer_draftable\";\nvar DRAFT_STATE = typeof Symbol !== \"undefined\" ? Symbol(\"immer-state\") : \"__$immer_state\";\n\nfunction isDraft(value) {\n return !!value && !!value[DRAFT_STATE];\n}\n\nfunction isDraftable(value) {\n if (!value || (typeof value === \"undefined\" ? \"undefined\" : _typeof(value)) !== \"object\") return false;\n if (Array.isArray(value)) return true;\n var proto = Object.getPrototypeOf(value);\n if (!proto || proto === Object.prototype) return true;\n return !!value[DRAFTABLE] || !!value.constructor[DRAFTABLE];\n}\n\nfunction original(value) {\n if (value && value[DRAFT_STATE]) {\n return value[DRAFT_STATE].base;\n } // otherwise return undefined\n\n}\n\nvar assign = Object.assign || function assign(target, value) {\n for (var key in value) {\n if (has(value, key)) {\n target[key] = value[key];\n }\n }\n\n return target;\n};\n\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : typeof Object.getOwnPropertySymbols !== \"undefined\" ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : Object.getOwnPropertyNames;\n\nfunction shallowCopy(base) {\n var invokeGetters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (Array.isArray(base)) return base.slice();\n var clone = Object.create(Object.getPrototypeOf(base));\n ownKeys(base).forEach(function (key) {\n if (key === DRAFT_STATE) {\n return; // Never copy over draft state.\n }\n\n var desc = Object.getOwnPropertyDescriptor(base, key);\n\n if (desc.get) {\n if (!invokeGetters) {\n throw new Error(\"Immer drafts cannot have computed properties\");\n }\n\n desc.value = desc.get.call(base);\n }\n\n if (desc.enumerable) {\n clone[key] = desc.value;\n } else {\n Object.defineProperty(clone, key, {\n value: desc.value,\n writable: true,\n configurable: true\n });\n }\n });\n return clone;\n}\n\nfunction each(value, cb) {\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n cb(i, value[i], value);\n }\n } else {\n ownKeys(value).forEach(function (key) {\n return cb(key, value[key], value);\n });\n }\n}\n\nfunction isEnumerable(base, prop) {\n return Object.getOwnPropertyDescriptor(base, prop).enumerable;\n}\n\nfunction has(thing, prop) {\n return Object.prototype.hasOwnProperty.call(thing, prop);\n}\n\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n} // @ts-check\n\n\nvar descriptors = {}; // For nested produce calls:\n\nvar scopes = [];\n\nvar currentScope = function currentScope() {\n return scopes[scopes.length - 1];\n};\n\nfunction willFinalize(result, baseDraft, needPatches) {\n var scope = currentScope();\n scope.forEach(function (state) {\n return state.finalizing = true;\n });\n\n if (result === undefined || result === baseDraft) {\n if (needPatches) markChangesRecursively(baseDraft); // This is faster when we don't care about which attributes changed.\n\n markChangesSweep(scope);\n }\n}\n\nfunction createDraft(base, parent) {\n var isArray = Array.isArray(base);\n var draft = clonePotentialDraft(base);\n each(draft, function (prop) {\n proxyProperty(draft, prop, isArray || isEnumerable(base, prop));\n }); // See \"proxy.js\" for property documentation.\n\n var state = {\n scope: parent ? parent.scope : currentScope(),\n modified: false,\n finalizing: false,\n // es5 only\n finalized: false,\n assigned: {},\n parent: parent,\n base: base,\n draft: draft,\n copy: null,\n revoke: revoke,\n revoked: false // es5 only\n\n };\n createHiddenProperty(draft, DRAFT_STATE, state);\n state.scope.push(state);\n return draft;\n}\n\nfunction revoke() {\n this.revoked = true;\n}\n\nfunction source(state) {\n return state.copy || state.base;\n}\n\nfunction _get(state, prop) {\n assertUnrevoked(state);\n var value = source(state)[prop]; // Drafts are only created for proxyable values that exist in the base state.\n\n if (!state.finalizing && value === state.base[prop] && isDraftable(value)) {\n prepareCopy(state);\n return state.copy[prop] = createDraft(value, state);\n }\n\n return value;\n}\n\nfunction _set(state, prop, value) {\n assertUnrevoked(state);\n state.assigned[prop] = true;\n\n if (!state.modified) {\n if (is(source(state)[prop], value)) return;\n markChanged(state);\n prepareCopy(state);\n }\n\n state.copy[prop] = value;\n}\n\nfunction markChanged(state) {\n if (!state.modified) {\n state.modified = true;\n if (state.parent) markChanged(state.parent);\n }\n}\n\nfunction prepareCopy(state) {\n if (!state.copy) state.copy = clonePotentialDraft(state.base);\n}\n\nfunction clonePotentialDraft(base) {\n var state = base && base[DRAFT_STATE];\n\n if (state) {\n state.finalizing = true;\n var draft = shallowCopy(state.draft, true);\n state.finalizing = false;\n return draft;\n }\n\n return shallowCopy(base);\n}\n\nfunction proxyProperty(draft, prop, enumerable) {\n var desc = descriptors[prop];\n\n if (desc) {\n desc.enumerable = enumerable;\n } else {\n descriptors[prop] = desc = {\n configurable: true,\n enumerable: enumerable,\n get: function get$$1() {\n return _get(this[DRAFT_STATE], prop);\n },\n set: function set$$1(value) {\n _set(this[DRAFT_STATE], prop, value);\n }\n };\n }\n\n Object.defineProperty(draft, prop, desc);\n}\n\nfunction assertUnrevoked(state) {\n if (state.revoked === true) throw new Error(\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + JSON.stringify(source(state)));\n} // This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\n\nfunction markChangesSweep(scope) {\n // The natural order of drafts in the `scope` array is based on when they\n // were accessed. By processing drafts in reverse natural order, we have a\n // better chance of processing leaf nodes first. When a leaf node is known to\n // have changed, we can avoid any traversal of its ancestor nodes.\n for (var i = scope.length - 1; i >= 0; i--) {\n var state = scope[i];\n\n if (state.modified === false) {\n if (Array.isArray(state.base)) {\n if (hasArrayChanges(state)) markChanged(state);\n } else if (hasObjectChanges(state)) markChanged(state);\n }\n }\n}\n\nfunction markChangesRecursively(object) {\n if (!object || (typeof object === \"undefined\" ? \"undefined\" : _typeof(object)) !== \"object\") return;\n var state = object[DRAFT_STATE];\n if (!state) return;\n var base = state.base,\n draft = state.draft,\n assigned = state.assigned;\n\n if (!Array.isArray(object)) {\n // Look for added keys.\n Object.keys(draft).forEach(function (key) {\n // The `undefined` check is a fast path for pre-existing keys.\n if (base[key] === undefined && !has(base, key)) {\n assigned[key] = true;\n markChanged(state);\n } else if (!assigned[key]) {\n // Only untouched properties trigger recursion.\n markChangesRecursively(draft[key]);\n }\n }); // Look for removed keys.\n\n Object.keys(base).forEach(function (key) {\n // The `undefined` check is a fast path for pre-existing keys.\n if (draft[key] === undefined && !has(draft, key)) {\n assigned[key] = false;\n markChanged(state);\n }\n });\n } else if (hasArrayChanges(state)) {\n markChanged(state);\n assigned.length = true;\n\n if (draft.length < base.length) {\n for (var i = draft.length; i < base.length; i++) {\n assigned[i] = false;\n }\n } else {\n for (var _i = base.length; _i < draft.length; _i++) {\n assigned[_i] = true;\n }\n }\n\n for (var _i2 = 0; _i2 < draft.length; _i2++) {\n // Only untouched indices trigger recursion.\n if (assigned[_i2] === undefined) markChangesRecursively(draft[_i2]);\n }\n }\n}\n\nfunction hasObjectChanges(state) {\n var base = state.base,\n draft = state.draft; // Search for added keys. Start at the back, because non-numeric keys\n // are ordered by time of definition on the object.\n\n var keys = Object.keys(draft);\n\n for (var i = keys.length - 1; i >= 0; i--) {\n // The `undefined` check is a fast path for pre-existing keys.\n if (base[keys[i]] === undefined && !has(base, keys[i])) {\n return true;\n }\n } // Since no keys have been added, we can compare lengths to know if an\n // object has been deleted.\n\n\n return keys.length !== Object.keys(base).length;\n}\n\nfunction hasArrayChanges(state) {\n var draft = state.draft;\n if (draft.length !== state.base.length) return true; // See #116\n // If we first shorten the length, our array interceptors will be removed.\n // If after that new items are added, result in the same original length,\n // those last items will have no intercepting property.\n // So if there is no own descriptor on the last position, we know that items were removed and added\n // N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n // the last one\n\n var descriptor = Object.getOwnPropertyDescriptor(draft, draft.length - 1); // descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\n if (descriptor && !descriptor.get) return true; // For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\n return false;\n}\n\nfunction createHiddenProperty(target, prop, value) {\n Object.defineProperty(target, prop, {\n value: value,\n enumerable: false,\n writable: true\n });\n}\n\nvar legacyProxy = Object.freeze({\n scopes: scopes,\n currentScope: currentScope,\n willFinalize: willFinalize,\n createDraft: createDraft\n}); // @ts-check\n// For nested produce calls:\n\nvar scopes$1 = [];\n\nvar currentScope$1 = function currentScope() {\n return scopes$1[scopes$1.length - 1];\n}; // Do nothing before being finalized.\n\n\nfunction willFinalize$1() {}\n\nfunction createDraft$1(base, parent) {\n var state = {\n // Track which produce call this is associated with.\n scope: parent ? parent.scope : currentScope$1(),\n // True for both shallow and deep changes.\n modified: false,\n // Used during finalization.\n finalized: false,\n // Track which properties have been assigned (true) or deleted (false).\n assigned: {},\n // The parent draft state.\n parent: parent,\n // The base state.\n base: base,\n // The base proxy.\n draft: null,\n // Any property proxies.\n drafts: {},\n // The base copy with any updated values.\n copy: null,\n // Called by the `produce` function.\n revoke: null\n };\n\n var _ref = Array.isArray(base) ? Proxy.revocable([state], arrayTraps) : Proxy.revocable(state, objectTraps),\n revoke = _ref.revoke,\n proxy = _ref.proxy;\n\n state.draft = proxy;\n state.revoke = revoke;\n state.scope.push(state);\n return proxy;\n}\n\nvar objectTraps = {\n get: get$1,\n has: function has$$1(target, prop) {\n return prop in source$1(target);\n },\n ownKeys: function ownKeys$$1(target) {\n return Reflect.ownKeys(source$1(target));\n },\n set: set$1,\n deleteProperty: deleteProperty,\n getOwnPropertyDescriptor: getOwnPropertyDescriptor,\n defineProperty: function defineProperty() {\n throw new Error(\"Object.defineProperty() cannot be used on an Immer draft\"); // prettier-ignore\n },\n getPrototypeOf: function getPrototypeOf(target) {\n return Object.getPrototypeOf(target.base);\n },\n setPrototypeOf: function setPrototypeOf() {\n throw new Error(\"Object.setPrototypeOf() cannot be used on an Immer draft\"); // prettier-ignore\n }\n};\nvar arrayTraps = {};\neach(objectTraps, function (key, fn) {\n arrayTraps[key] = function () {\n arguments[0] = arguments[0][0];\n return fn.apply(this, arguments);\n };\n});\n\narrayTraps.deleteProperty = function (state, prop) {\n if (isNaN(parseInt(prop))) {\n throw new Error(\"Immer only supports deleting array indices\"); // prettier-ignore\n }\n\n return objectTraps.deleteProperty.call(this, state[0], prop);\n};\n\narrayTraps.set = function (state, prop, value) {\n if (prop !== \"length\" && isNaN(parseInt(prop))) {\n throw new Error(\"Immer only supports setting array indices and the 'length' property\"); // prettier-ignore\n }\n\n return objectTraps.set.call(this, state[0], prop, value);\n};\n\nfunction source$1(state) {\n return state.copy || state.base;\n}\n\nfunction get$1(state, prop) {\n if (prop === DRAFT_STATE) return state;\n var drafts = state.drafts; // Check for existing draft in unmodified state.\n\n if (!state.modified && has(drafts, prop)) {\n return drafts[prop];\n }\n\n var value = source$1(state)[prop];\n if (state.finalized || !isDraftable(value)) return value; // Check for existing draft in modified state.\n\n if (state.modified) {\n // Assigned values are never drafted. This catches any drafts we created, too.\n if (value !== state.base[prop]) return value; // Store drafts on the copy (when one exists).\n\n drafts = state.copy;\n }\n\n return drafts[prop] = createDraft$1(value, state);\n}\n\nfunction set$1(state, prop, value) {\n if (!state.modified) {\n // Optimize based on value's truthiness. Truthy values are guaranteed to\n // never be undefined, so we can avoid the `in` operator. Lastly, truthy\n // values may be drafts, but falsy values are never drafts.\n var isUnchanged = value ? is(state.base[prop], value) || value === state.drafts[prop] : is(state.base[prop], value) && prop in state.base;\n if (isUnchanged) return true;\n markChanged$1(state);\n }\n\n state.assigned[prop] = true;\n state.copy[prop] = value;\n return true;\n}\n\nfunction deleteProperty(state, prop) {\n // The `undefined` check is a fast path for pre-existing keys.\n if (state.base[prop] !== undefined || prop in state.base) {\n state.assigned[prop] = false;\n markChanged$1(state);\n }\n\n if (state.copy) delete state.copy[prop];\n return true;\n}\n\nfunction getOwnPropertyDescriptor(state, prop) {\n var owner = source$1(state);\n var desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n\n if (desc) {\n desc.writable = true;\n desc.configurable = !Array.isArray(owner) || prop !== \"length\";\n }\n\n return desc;\n}\n\nfunction markChanged$1(state) {\n if (!state.modified) {\n state.modified = true;\n state.copy = assign(shallowCopy(state.base), state.drafts);\n state.drafts = null;\n if (state.parent) markChanged$1(state.parent);\n }\n}\n\nvar modernProxy = Object.freeze({\n scopes: scopes$1,\n currentScope: currentScope$1,\n willFinalize: willFinalize$1,\n createDraft: createDraft$1\n});\n\nfunction generatePatches(state, basePath, patches, inversePatches) {\n Array.isArray(state.base) ? generateArrayPatches(state, basePath, patches, inversePatches) : generateObjectPatches(state, basePath, patches, inversePatches);\n}\n\nfunction generateArrayPatches(state, basePath, patches, inversePatches) {\n var base = state.base,\n copy = state.copy,\n assigned = state.assigned;\n var minLength = Math.min(base.length, copy.length); // Look for replaced indices.\n\n for (var i = 0; i < minLength; i++) {\n if (assigned[i] && base[i] !== copy[i]) {\n var path = basePath.concat(i);\n patches.push({\n op: \"replace\",\n path: path,\n value: copy[i]\n });\n inversePatches.push({\n op: \"replace\",\n path: path,\n value: base[i]\n });\n }\n } // Did the array expand?\n\n\n if (minLength < copy.length) {\n for (var _i = minLength; _i < copy.length; _i++) {\n patches.push({\n op: \"add\",\n path: basePath.concat(_i),\n value: copy[_i]\n });\n }\n\n inversePatches.push({\n op: \"replace\",\n path: basePath.concat(\"length\"),\n value: base.length\n });\n } // ...or did it shrink?\n else if (minLength < base.length) {\n patches.push({\n op: \"replace\",\n path: basePath.concat(\"length\"),\n value: copy.length\n });\n\n for (var _i2 = minLength; _i2 < base.length; _i2++) {\n inversePatches.push({\n op: \"add\",\n path: basePath.concat(_i2),\n value: base[_i2]\n });\n }\n }\n}\n\nfunction generateObjectPatches(state, basePath, patches, inversePatches) {\n var base = state.base,\n copy = state.copy;\n each(state.assigned, function (key, assignedValue) {\n var origValue = base[key];\n var value = copy[key];\n var op = !assignedValue ? \"remove\" : key in base ? \"replace\" : \"add\";\n if (origValue === value && op === \"replace\") return;\n var path = basePath.concat(key);\n patches.push(op === \"remove\" ? {\n op: op,\n path: path\n } : {\n op: op,\n path: path,\n value: value\n });\n inversePatches.push(op === \"add\" ? {\n op: \"remove\",\n path: path\n } : op === \"remove\" ? {\n op: \"add\",\n path: path,\n value: origValue\n } : {\n op: \"replace\",\n path: path,\n value: origValue\n });\n });\n}\n\nfunction applyPatches(draft, patches) {\n for (var i = 0; i < patches.length; i++) {\n var patch = patches[i];\n var path = patch.path;\n\n if (path.length === 0 && patch.op === \"replace\") {\n draft = patch.value;\n } else {\n var base = draft;\n\n for (var _i3 = 0; _i3 < path.length - 1; _i3++) {\n base = base[path[_i3]];\n if (!base || (typeof base === \"undefined\" ? \"undefined\" : _typeof(base)) !== \"object\") throw new Error(\"Cannot apply patch, path doesn't resolve: \" + path.join(\"/\")); // prettier-ignore\n }\n\n var key = path[path.length - 1];\n\n switch (patch.op) {\n case \"replace\":\n case \"add\":\n // TODO: add support is not extensive, it does not support insertion or `-` atm!\n base[key] = patch.value;\n break;\n\n case \"remove\":\n if (Array.isArray(base)) {\n if (key !== base.length - 1) throw new Error(\"Only the last index of an array can be removed, index: \" + key + \", length: \" + base.length); // prettier-ignore\n\n base.length -= 1;\n } else {\n delete base[key];\n }\n\n break;\n\n default:\n throw new Error(\"Unsupported patch operation: \" + patch.op);\n }\n }\n }\n\n return draft;\n}\n\nfunction verifyMinified() {}\n\nvar configDefaults = {\n useProxies: typeof Proxy !== \"undefined\" && typeof Reflect !== \"undefined\",\n autoFreeze: typeof process !== \"undefined\" ? process.env.NODE_ENV !== \"production\" : verifyMinified.name === \"verifyMinified\",\n onAssign: null,\n onDelete: null,\n onCopy: null\n};\n\nvar Immer = function () {\n function Immer(config) {\n classCallCheck(this, Immer);\n assign(this, configDefaults, config);\n this.setUseProxies(this.useProxies);\n this.produce = this.produce.bind(this);\n }\n\n createClass(Immer, [{\n key: \"produce\",\n value: function produce(base, recipe, patchListener) {\n var _this = this; // curried invocation\n\n\n if (typeof base === \"function\" && typeof recipe !== \"function\") {\n var defaultBase = recipe;\n recipe = base; // prettier-ignore\n\n return function () {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultBase;\n return _this.produce(base, function (draft) {\n var _recipe;\n\n return (_recipe = recipe).call.apply(_recipe, [draft, draft].concat(args));\n });\n };\n } // prettier-ignore\n\n\n {\n if (typeof recipe !== \"function\") throw new Error(\"if first argument is not a function, the second argument to produce should be a function\");\n if (patchListener !== undefined && typeof patchListener !== \"function\") throw new Error(\"the third argument of a producer should not be set or a function\");\n }\n var result = void 0; // Only create proxies for plain objects/arrays.\n\n if (!isDraftable(base)) {\n result = recipe(base);\n if (result === undefined) return base;\n } // The given value must be proxied.\n else {\n this.scopes.push([]);\n var baseDraft = this.createDraft(base);\n\n try {\n result = recipe.call(baseDraft, baseDraft);\n this.willFinalize(result, baseDraft, !!patchListener); // Never generate patches when no listener exists.\n\n var patches = patchListener && [],\n inversePatches = patchListener && []; // Finalize the modified draft...\n\n if (result === undefined || result === baseDraft) {\n result = this.finalize(baseDraft, [], patches, inversePatches);\n } // ...or use a replacement value.\n else {\n // Users must never modify the draft _and_ return something else.\n if (baseDraft[DRAFT_STATE].modified) throw new Error(\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\"); // prettier-ignore\n // Finalize the replacement in case it contains (or is) a subset of the draft.\n\n if (isDraftable(result)) result = this.finalize(result);\n\n if (patchListener) {\n patches.push({\n op: \"replace\",\n path: [],\n value: result\n });\n inversePatches.push({\n op: \"replace\",\n path: [],\n value: base\n });\n }\n }\n } finally {\n this.currentScope().forEach(function (state) {\n return state.revoke();\n });\n this.scopes.pop();\n }\n\n patchListener && patchListener(patches, inversePatches);\n } // Normalize the result.\n\n\n return result === NOTHING ? undefined : result;\n }\n }, {\n key: \"setAutoFreeze\",\n value: function setAutoFreeze(value) {\n this.autoFreeze = value;\n }\n }, {\n key: \"setUseProxies\",\n value: function setUseProxies(value) {\n this.useProxies = value;\n assign(this, value ? modernProxy : legacyProxy);\n }\n }, {\n key: \"applyPatches\",\n value: function applyPatches$$1(base, patches) {\n // Mutate the base state when a draft is passed.\n if (isDraft(base)) {\n return applyPatches(base, patches);\n } // Otherwise, produce a copy of the base state.\n\n\n return this.produce(base, function (draft) {\n return applyPatches(draft, patches);\n });\n }\n /**\n * @internal\n * Finalize a draft, returning either the unmodified base state or a modified\n * copy of the base state.\n */\n\n }, {\n key: \"finalize\",\n value: function finalize(draft, path, patches, inversePatches) {\n var _this2 = this;\n\n var state = draft[DRAFT_STATE];\n\n if (!state) {\n if (Object.isFrozen(draft)) return draft;\n return this.finalizeTree(draft);\n } // Never finalize drafts owned by an outer scope.\n\n\n if (state.scope !== this.currentScope()) {\n return draft;\n }\n\n if (!state.modified) return state.base;\n\n if (!state.finalized) {\n state.finalized = true;\n this.finalizeTree(state.draft, path, patches, inversePatches);\n\n if (this.onDelete) {\n // The `assigned` object is unreliable with ES5 drafts.\n if (this.useProxies) {\n var assigned = state.assigned;\n\n for (var prop in assigned) {\n if (!assigned[prop]) this.onDelete(state, prop);\n }\n } else {\n var base = state.base,\n copy = state.copy;\n each(base, function (prop) {\n if (!has(copy, prop)) _this2.onDelete(state, prop);\n });\n }\n }\n\n if (this.onCopy) this.onCopy(state); // Nested producers must never auto-freeze their result,\n // because it may contain drafts from parent producers.\n\n if (this.autoFreeze && this.scopes.length === 1) {\n Object.freeze(state.copy);\n }\n\n if (patches) generatePatches(state, path, patches, inversePatches);\n }\n\n return state.copy;\n }\n /**\n * @internal\n * Finalize all drafts in the given state tree.\n */\n\n }, {\n key: \"finalizeTree\",\n value: function finalizeTree(root, path, patches, inversePatches) {\n var _this3 = this;\n\n var state = root[DRAFT_STATE];\n\n if (state) {\n if (!this.useProxies) {\n state.finalizing = true;\n state.copy = shallowCopy(state.draft, true);\n state.finalizing = false;\n }\n\n root = state.copy;\n }\n\n var onAssign = this.onAssign;\n\n var finalizeProperty = function finalizeProperty(prop, value, parent) {\n if (value === parent) {\n throw Error(\"Immer forbids circular references\");\n } // The only possible draft (in the scope of a `finalizeTree` call) is the `root` object.\n\n\n var inDraft = !!state && parent === root;\n\n if (isDraft(value)) {\n value = // Patches are never generated for assigned properties.\n patches && inDraft && !state.assigned[prop] ? _this3.finalize(value, path.concat(prop), patches, inversePatches) // prettier-ignore\n : _this3.finalize(value); // Preserve non-enumerable properties.\n\n if (Array.isArray(parent) || isEnumerable(parent, prop)) {\n parent[prop] = value;\n } else {\n Object.defineProperty(parent, prop, {\n value: value\n });\n } // Unchanged drafts are never passed to the `onAssign` hook.\n\n\n if (inDraft && value === state.base[prop]) return;\n } // Unchanged draft properties are ignored.\n else if (inDraft && is(value, state.base[prop])) {\n return;\n } // Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n else if (isDraftable(value) && !Object.isFrozen(value)) {\n each(value, finalizeProperty);\n }\n\n if (inDraft && onAssign) {\n onAssign(state, prop, value);\n }\n };\n\n each(root, finalizeProperty);\n return root;\n }\n }]);\n return Immer;\n}();\n\nvar immer = new Immer();\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n\nvar produce = immer.produce;\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is disabled in production.\n */\n\nvar setAutoFreeze = immer.setAutoFreeze.bind(immer);\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\n\nvar setUseProxies = immer.setUseProxies.bind(immer);\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\n\nvar applyPatches$1 = immer.applyPatches.bind(immer);\nexport { produce, setAutoFreeze, setUseProxies, applyPatches$1 as applyPatches, Immer, original, isDraft, isDraftable, NOTHING as nothing, DRAFTABLE as immerable };\nexport default produce;","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.makeAsyncSelect = exports.defaultProps = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _Select = _interopRequireDefault(require(\"./Select\"));\n\nvar _utils = require(\"./utils\");\n\nvar _stateManager = _interopRequireDefault(require(\"./stateManager\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _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\nvar defaultProps = {\n cacheOptions: false,\n defaultOptions: false,\n filterOption: null\n};\nexports.defaultProps = defaultProps;\n\nvar makeAsyncSelect = function makeAsyncSelect(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(Async, _Component);\n\n function Async(props) {\n var _this;\n\n _classCallCheck(this, Async);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Async).call(this));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"select\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"lastRequest\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"optionsCache\", {});\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleInputChange\", function (newValue, actionMeta) {\n var _this$props = _this.props,\n cacheOptions = _this$props.cacheOptions,\n onInputChange = _this$props.onInputChange; // TODO\n\n var inputValue = (0, _utils.handleInputChange)(newValue, actionMeta, onInputChange);\n\n if (!inputValue) {\n delete _this.lastRequest;\n\n _this.setState({\n inputValue: '',\n loadedInputValue: '',\n loadedOptions: [],\n isLoading: false,\n passEmptyOptions: false\n });\n\n return;\n }\n\n if (cacheOptions && _this.optionsCache[inputValue]) {\n _this.setState({\n inputValue: inputValue,\n loadedInputValue: inputValue,\n loadedOptions: _this.optionsCache[inputValue],\n isLoading: false,\n passEmptyOptions: false\n });\n } else {\n var request = _this.lastRequest = {};\n\n _this.setState({\n inputValue: inputValue,\n isLoading: true,\n passEmptyOptions: !_this.state.loadedInputValue\n }, function () {\n _this.loadOptions(inputValue, function (options) {\n if (!_this.mounted) return;\n\n if (options) {\n _this.optionsCache[inputValue] = options;\n }\n\n if (request !== _this.lastRequest) return;\n delete _this.lastRequest;\n\n _this.setState({\n isLoading: false,\n loadedInputValue: inputValue,\n loadedOptions: options || [],\n passEmptyOptions: false\n });\n });\n });\n }\n\n return inputValue;\n });\n\n _this.state = {\n defaultOptions: Array.isArray(props.defaultOptions) ? props.defaultOptions : undefined,\n inputValue: typeof props.inputValue !== 'undefined' ? props.inputValue : '',\n isLoading: props.defaultOptions === true ? true : false,\n loadedOptions: [],\n passEmptyOptions: false\n };\n return _this;\n }\n\n _createClass(Async, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.mounted = true;\n var defaultOptions = this.props.defaultOptions;\n var inputValue = this.state.inputValue;\n\n if (defaultOptions === true) {\n this.loadOptions(inputValue, function (options) {\n if (!_this2.mounted) return;\n var isLoading = !!_this2.lastRequest;\n\n _this2.setState({\n defaultOptions: options || [],\n isLoading: isLoading\n });\n });\n }\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n // if the cacheOptions prop changes, clear the cache\n if (nextProps.cacheOptions !== this.props.cacheOptions) {\n this.optionsCache = {};\n }\n\n if (nextProps.defaultOptions !== this.props.defaultOptions) {\n this.setState({\n defaultOptions: Array.isArray(nextProps.defaultOptions) ? nextProps.defaultOptions : undefined\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n }\n }, {\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 }\n }, {\n key: \"loadOptions\",\n value: function loadOptions(inputValue, callback) {\n var loadOptions = this.props.loadOptions;\n if (!loadOptions) return callback();\n var loader = loadOptions(inputValue, callback);\n\n if (loader && typeof loader.then === 'function') {\n loader.then(callback, function () {\n return callback();\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props2 = this.props,\n loadOptions = _this$props2.loadOptions,\n props = _objectWithoutProperties(_this$props2, [\"loadOptions\"]);\n\n var _this$state = this.state,\n defaultOptions = _this$state.defaultOptions,\n inputValue = _this$state.inputValue,\n isLoading = _this$state.isLoading,\n loadedInputValue = _this$state.loadedInputValue,\n loadedOptions = _this$state.loadedOptions,\n passEmptyOptions = _this$state.passEmptyOptions;\n var options = passEmptyOptions ? [] : inputValue && loadedInputValue ? loadedOptions : defaultOptions || [];\n return _react[\"default\"].createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this3.select = _ref;\n },\n options: options,\n isLoading: isLoading,\n onInputChange: this.handleInputChange\n }));\n }\n }]);\n\n return Async;\n }(_react.Component), _defineProperty(_class, \"defaultProps\", defaultProps), _temp;\n};\n\nexports.makeAsyncSelect = makeAsyncSelect;\nvar SelectState = (0, _stateManager[\"default\"])(_Select[\"default\"]);\n\nvar _default = makeAsyncSelect(SelectState);\n\nexports[\"default\"] = _default;","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\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} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n\n\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;","var baseIsEqual = require('./_baseIsEqual');\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 */\n\n\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Dot\n */\n\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nexport var Dot = /*#__PURE__*/function (_PureComponent) {\n _inherits(Dot, _PureComponent);\n\n var _super = _createSuper(Dot);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = classNames('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(PureComponent);","import { linearish } from \"./linear.js\";\nimport number from \"./number.js\";\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function (_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n return linearish(scale);\n}","export default function nice(domain, interval) {\n domain = domain.slice();\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}","import { ticks } from \"d3-array\";\nimport { format } from \"d3-format\";\nimport nice from \"./nice.js\";\nimport { copy, transformer } from \"./continuous.js\";\nimport { initRange } from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10 : base === Math.E ? Math.exp : function (x) {\n return Math.pow(base, x);\n };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), function (x) {\n return Math.log(x) / base;\n });\n}\n\nfunction reflect(f) {\n return function (x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n\n return scale;\n }\n\n scale.base = function (_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function (count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n if (r = v < u) i = u, u = v, v = i;\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function (count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n\n return function (d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function () {\n return domain(nice(domain(), {\n floor: function floor(x) {\n return pows(Math.floor(logs(x)));\n },\n ceil: function ceil(x) {\n return pows(Math.ceil(logs(x)));\n }\n }));\n };\n\n return scale;\n}\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function () {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n return scale;\n}","import { linearish } from \"./linear.js\";\nimport { copy, transformer } from \"./continuous.js\";\nimport { initRange } from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function (x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function (x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1,\n scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function (_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function () {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}","import { linearish } from \"./linear.js\";\nimport { copy, identity, transformer } from \"./continuous.js\";\nimport { initRange } from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function (x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity) : exponent === 0.5 ? transform(transformSqrt, transformSquare) : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function (_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function () {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n return scale;\n}\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}","import continuous from \"./continuous.js\";\nimport { initRange } from \"./init.js\";\nimport { linearish } from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function (y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function (_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function (_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function (_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return radial(squared.domain(), range).round(round).clamp(squared.clamp()).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n return linearish(scale);\n}","function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport default function max(values, valueof) {\n var max;\n\n if (valueof === undefined) {\n var _iterator = _createForOfIteratorHelper(values),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var value = _step.value;\n\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else {\n var index = -1;\n\n var _iterator2 = _createForOfIteratorHelper(values),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _value = _step2.value;\n\n if ((_value = valueof(_value, ++index, values)) != null && (max < _value || max === undefined && _value >= _value)) {\n max = _value;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n\n return max;\n}","function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport default function min(values, valueof) {\n var min;\n\n if (valueof === undefined) {\n var _iterator = _createForOfIteratorHelper(values),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var value = _step.value;\n\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else {\n var index = -1;\n\n var _iterator2 = _createForOfIteratorHelper(values),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _value = _step2.value;\n\n if ((_value = valueof(_value, ++index, values)) != null && (min > _value || min === undefined && _value >= _value)) {\n min = _value;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n\n return min;\n}","import ascending from \"./ascending.js\"; // Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\n\nexport default function quickselect(array, k) {\n var left = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var right = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : array.length - 1;\n var compare = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : ascending;\n\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n var t = array[k];\n var i = left;\n var j = right;\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n\n while (compare(array[i], t) < 0) {\n ++i;\n }\n\n while (compare(array[j], t) > 0) {\n --j;\n }\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);else ++j, swap(array, j, right);\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n var t = array[i];\n array[i] = array[j];\n array[j] = t;\n}","import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, { numbers } from \"./number.js\";\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\nexport function quantileSorted(values, p) {\n var valueof = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}","function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { ascending, bisect, quantileSorted as threshold } from \"d3-array\";\nimport { initRange } from \"./init.js\";\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0,\n n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n\n while (++i < n) {\n thresholds[i - 1] = threshold(domain, i / n);\n }\n\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function (y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [i > 0 ? thresholds[i - 1] : domain[0], i < thresholds.length ? thresholds[i] : domain[domain.length - 1]];\n };\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n\n var _iterator = _createForOfIteratorHelper(_),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var d = _step.value;\n if (d != null && !isNaN(d = +d)) domain.push(d);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function () {\n return thresholds.slice();\n };\n\n scale.copy = function () {\n return quantile().domain(domain).range(range).unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { bisect } from \"d3-array\";\nimport { linearish } from \"./linear.js\";\nimport { initRange } from \"./init.js\";\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n\n while (++i < n) {\n domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n }\n\n return scale;\n }\n\n scale.domain = function (_) {\n var _ref, _ref2;\n\n return arguments.length ? ((_ref = _, _ref2 = _slicedToArray(_ref, 2), x0 = _ref2[0], x1 = _ref2[1], _ref), x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function (_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function (y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : i < 1 ? [x0, domain[0]] : i >= n ? [domain[n - 1], x1] : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function () {\n return domain.slice();\n };\n\n scale.copy = function () {\n return quantize().domain([x0, x1]).range(range).unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}","import { bisect } from \"d3-array\";\nimport { initRange } from \"./init.js\";\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function (_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function (y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return threshold().domain(domain).range(range).unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}","export var durationSecond = 1000;\nexport var durationMinute = durationSecond * 60;\nexport var durationHour = durationMinute * 60;\nexport var durationDay = durationHour * 24;\nexport var durationWeek = durationDay * 7;\nexport var durationMonth = durationDay * 30;\nexport var durationYear = durationDay * 365;","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n}","import interval from \"./interval.js\";\nvar millisecond = interval(function () {// noop\n}, function (date, step) {\n date.setTime(+date + step);\n}, function (start, end) {\n return end - start;\n}); // An optimized implementation for this simple case.\n\nmillisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;","import interval from \"./interval.js\";\nimport { durationSecond } from \"./duration.js\";\nvar second = interval(function (date) {\n date.setTime(date - date.getMilliseconds());\n}, function (date, step) {\n date.setTime(+date + step * durationSecond);\n}, function (start, end) {\n return (end - start) / durationSecond;\n}, function (date) {\n return date.getUTCSeconds();\n});\nexport default second;\nexport var seconds = second.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationSecond } from \"./duration.js\";\nvar minute = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getMinutes();\n});\nexport default minute;\nexport var minutes = minute.range;","import interval from \"./interval.js\";\nimport { durationHour, durationMinute, durationSecond } from \"./duration.js\";\nvar hour = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getHours();\n});\nexport default hour;\nexport var hours = hour.range;","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(function (date) {\n return date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n return date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","import interval from \"./interval.js\";\nvar month = interval(function (date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setMonth(date.getMonth() + step);\n}, function (start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function (date) {\n return date.getMonth();\n});\nexport default month;\nexport var months = month.range;","import interval from \"./interval.js\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n}); // An optimized implementation for this simple case.\n\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;","import interval from \"./interval.js\";\nimport { durationMinute } from \"./duration.js\";\nvar utcMinute = interval(function (date) {\n date.setUTCSeconds(0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getUTCMinutes();\n});\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;","import interval from \"./interval.js\";\nimport { durationHour } from \"./duration.js\";\nvar utcHour = interval(function (date) {\n date.setUTCMinutes(0, 0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getUTCHours();\n});\nexport default utcHour;\nexport var utcHours = utcHour.range;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","import interval from \"./interval.js\";\nvar utcMonth = interval(function (date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function (start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function (date) {\n return date.getUTCMonth();\n});\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;","import interval from \"./interval.js\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n}); // An optimized implementation for this simple case.\n\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { bisector, tickStep } from \"d3-array\";\nimport { durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear } from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport { sunday as week } from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport { utcSunday as utcWeek } from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n var tickIntervals = [[second, 1, durationSecond], [second, 5, 5 * durationSecond], [second, 15, 15 * durationSecond], [second, 30, 30 * durationSecond], [minute, 1, durationMinute], [minute, 5, 5 * durationMinute], [minute, 15, 15 * durationMinute], [minute, 30, 30 * durationMinute], [hour, 1, durationHour], [hour, 3, 3 * durationHour], [hour, 6, 6 * durationHour], [hour, 12, 12 * durationHour], [day, 1, durationDay], [day, 2, 2 * durationDay], [week, 1, durationWeek], [month, 1, durationMonth], [month, 3, 3 * durationMonth], [year, 1, durationYear]];\n\n function ticks(start, stop, count) {\n var reverse = stop < start;\n\n if (reverse) {\n var _ref = [stop, start];\n start = _ref[0];\n stop = _ref[1];\n }\n\n var interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n var ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n var target = Math.abs(stop - start) / count;\n var i = bisector(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 3),\n step = _ref3[2];\n\n return step;\n }).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n\n var _tickIntervals = _slicedToArray(tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i], 2),\n t = _tickIntervals[0],\n step = _tickIntervals[1];\n\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nvar _ticker = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute),\n _ticker2 = _slicedToArray(_ticker, 2),\n utcTicks = _ticker2[0],\n utcTickInterval = _ticker2[1];\n\nvar _ticker3 = ticker(year, month, week, day, hour, minute),\n _ticker4 = _slicedToArray(_ticker3, 2),\n timeTicks = _ticker4[0],\n timeTickInterval = _ticker4[1];\n\nexport { utcTicks, utcTickInterval, timeTicks, timeTickInterval };","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n }; // These recursive directive definitions must be deferred.\n\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function (string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map(function (name, i) {\n return [name.toLowerCase(), i];\n }));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}","import { timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval } from \"d3-time\";\nimport { timeFormat } from \"d3-time-format\";\nimport continuous, { copy } from \"./continuous.js\";\nimport { initRange } from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond : minute(date) < date ? formatSecond : hour(date) < date ? formatMinute : day(date) < date ? formatHour : month(date) < date ? week(date) < date ? formatDay : formatWeek : year(date) < date ? formatMonth : formatYear)(date);\n }\n\n scale.invert = function (y) {\n return new Date(invert(y));\n };\n\n scale.domain = function (_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function (interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function (count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function (interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function () {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}","import { utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval } from \"d3-time\";\nimport { utcFormat } from \"d3-time-format\";\nimport { calendar } from \"./time.js\";\nimport { initRange } from \"./init.js\";\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { interpolate, interpolateRound } from \"d3-interpolate\";\nimport { identity } from \"./continuous.js\";\nimport { initInterpolator } from \"./init.js\";\nimport { linearish } from \"./linear.js\";\nimport { loggish } from \"./log.js\";\nimport { symlogish } from \"./symlog.js\";\nimport { powish } from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function (_) {\n var _ref, _ref2;\n\n return arguments.length ? ((_ref = _, _ref2 = _slicedToArray(_ref, 2), x0 = _ref2[0], x1 = _ref2[1], _ref), t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function (_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function (_) {\n var _ref3, _ref4;\n\n var r0, r1;\n return arguments.length ? ((_ref3 = _, _ref4 = _slicedToArray(_ref3, 2), r0 = _ref4[0], r1 = _ref4[1], _ref3), interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function (t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target.domain(source.domain()).interpolator(source.interpolator()).clamp(source.clamp()).unknown(source.unknown());\n}\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function () {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function () {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function () {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function () {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}","function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { ascending, bisect, quantile } from \"d3-array\";\nimport { identity } from \"./continuous.js\";\nimport { initInterpolator } from \"./init.js\";\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n\n var _iterator = _createForOfIteratorHelper(_),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var d = _step.value;\n if (d != null && !isNaN(d = +d)) domain.push(d);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function (_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function () {\n return domain.map(function (d, i) {\n return interpolator(i / (domain.length - 1));\n });\n };\n\n scale.quantiles = function (n) {\n return Array.from({\n length: n + 1\n }, function (_, i) {\n return quantile(domain, i / n);\n });\n };\n\n scale.copy = function () {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}","import { default as value } from \"./value.js\";\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0,\n n = values.length - 1,\n v = values[0],\n I = new Array(n < 0 ? 0 : n);\n\n while (i < n) {\n I[i] = interpolate(v, v = values[++i]);\n }\n\n return function (t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { interpolate, interpolateRound, piecewise } from \"d3-interpolate\";\nimport { identity } from \"./continuous.js\";\nimport { initInterpolator } from \"./init.js\";\nimport { linearish } from \"./linear.js\";\nimport { loggish } from \"./log.js\";\nimport { copy } from \"./sequential.js\";\nimport { symlogish } from \"./symlog.js\";\nimport { powish } from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function (_) {\n var _ref, _ref2;\n\n return arguments.length ? ((_ref = _, _ref2 = _slicedToArray(_ref, 3), x0 = _ref2[0], x1 = _ref2[1], x2 = _ref2[2], _ref), t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function (_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function (_) {\n var _ref3, _ref4;\n\n var r0, r1, r2;\n return arguments.length ? ((_ref3 = _, _ref4 = _slicedToArray(_ref3, 3), r0 = _ref4[0], r1 = _ref4[1], r2 = _ref4[2], _ref3), interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function (t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function () {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function () {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function () {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function () {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequire(obj) {\n return obj && obj.__esModule ? obj['default'] : obj;\n}\n\nvar _Motion = require('./Motion');\n\nexports.Motion = _interopRequire(_Motion);\n\nvar _StaggeredMotion = require('./StaggeredMotion');\n\nexports.StaggeredMotion = _interopRequire(_StaggeredMotion);\n\nvar _TransitionMotion = require('./TransitionMotion');\n\nexports.TransitionMotion = _interopRequire(_TransitionMotion);\n\nvar _spring = require('./spring');\n\nexports.spring = _interopRequire(_spring);\n\nvar _presets = require('./presets');\n\nexports.presets = _interopRequire(_presets);\n\nvar _stripStyle = require('./stripStyle');\n\nexports.stripStyle = _interopRequire(_stripStyle); // deprecated, dummy warning function\n\nvar _reorderKeys = require('./reorderKeys');\n\nexports.reorderKeys = _interopRequire(_reorderKeys);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _postcssValueParser = require('postcss-value-parser');\n\nvar _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);\n\nvar _parser = require('./parser');\n\nvar _reducer = require('./lib/reducer');\n\nvar _reducer2 = _interopRequireDefault(_reducer);\n\nvar _stringifier = require('./lib/stringifier');\n\nvar _stringifier2 = _interopRequireDefault(_stringifier);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n} // eslint-disable-line\n\n\nvar MATCH_CALC = /((?:\\-[a-z]+\\-)?calc)/;\n\nexports[\"default\"] = function (value) {\n var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n return (0, _postcssValueParser2[\"default\"])(value).walk(function (node) {\n // skip anything which isn't a calc() function\n if (node.type !== 'function' || !MATCH_CALC.test(node.value)) return; // stringify calc expression and produce an AST\n\n var contents = _postcssValueParser2[\"default\"].stringify(node.nodes); // skip constant() and env()\n\n\n if (contents.indexOf('constant') >= 0 || contents.indexOf('env') >= 0) return;\n\n var ast = _parser.parser.parse(contents); // reduce AST to its simplest form, that is, either to a single value\n // or a simplified calc expression\n\n\n var reducedAst = (0, _reducer2[\"default\"])(ast, precision); // stringify AST and write it back\n\n node.type = 'word';\n node.value = (0, _stringifier2[\"default\"])(node.value, reducedAst, precision);\n }, true).toString();\n};\n\nmodule.exports = exports['default'];","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/**\n * @fileOverview Reference Dot\n */\n\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n};\n\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n if (!isX || !isY) {\n return null;\n }\n\n var coordinate = getCoordinate(props);\n\n if (!coordinate) {\n return null;\n }\n\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\n\nReferenceDot.renderDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n\n return dot;\n};","import _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\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 _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n/**\n * @fileOverview Reference Line\n */\n\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar renderLine = function renderLine(option, props) {\n var line;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n\n return line;\n}; // TODO: ScaleHelper\n\n\nvar getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, props) {\n var _props$viewBox = props.viewBox,\n x = _props$viewBox.x,\n y = _props$viewBox.y,\n width = _props$viewBox.width,\n height = _props$viewBox.height,\n position = props.position;\n\n if (isFixedY) {\n var yCoord = props.y,\n orientation = props.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n\n if (isFixedX) {\n var xCoord = props.x,\n _orientation = props.xAxis.orientation;\n\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n\n if (isSegment) {\n var segment = props.segment;\n\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n\n if (ifOverflowMatches(props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n\n return _points2;\n }\n\n return null;\n};\n\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, props);\n\n if (!endPoints) {\n return null;\n }\n\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/**\n * @fileOverview Reference Line\n */\n\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/types';\n\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n\n return rectWithPoints(p1, p2);\n};\n\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n\n if (!rect && !shape) {\n return null;\n }\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\n\nReferenceArea.renderRect = function (option, props) {\n var rect;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n\n return rect;\n};","import { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine.displayName);\n var dots = findAllByType(children, ReferenceDot.displayName);\n var elements = lines.concat(dots);\n var areas = findAllByType(children, ReferenceArea.displayName);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};","function 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 _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Brush\n */\n\n\nimport React, { PureComponent, Children } from 'react';\nimport classNames from 'classnames';\nimport { scalePoint } from 'd3-scale';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/types';\n\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n\n if (!data || !data.length) {\n return {};\n }\n\n var len = data.length;\n var scale = scalePoint().domain(_range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\n\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\n\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n\n var _super = _createSuper(Brush);\n\n function Brush(props) {\n var _this;\n\n _classCallCheck(this, Brush);\n\n _this = _super.call(this, props);\n _this.leaveTimer = void 0;\n _this.travellerDragStartHandlers = void 0;\n\n _this.handleDrag = function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n };\n\n _this.handleDragEnd = function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n\n _this.detachDragEndListener();\n };\n\n _this.handleLeaveWrapper = function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n };\n\n _this.handleEnterSlideOrTraveller = function () {\n _this.setState({\n isTextActive: true\n });\n };\n\n _this.handleLeaveSlideOrTraveller = function () {\n _this.setState({\n isTextActive: false\n });\n };\n\n _this.handleSlideDragStart = function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n\n _this.attachDragEndListener();\n };\n\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props = this.props,\n gap = _this$props.gap,\n data = _this$props.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props2 = this.props,\n data = _this$props2.data,\n tickFormatter = _this$props2.tickFormatter,\n dataKey = _this$props2.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return _isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props3 = this.props,\n x = _this$props3.x,\n width = _this$props3.width,\n travellerWidth = _this$props3.travellerWidth,\n startIndex = _this$props3.startIndex,\n endIndex = _this$props3.endIndex,\n onChange = _this$props3.onChange;\n var delta = e.pageX - slideMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n onChange = _this$props4.onChange,\n gap = _this$props4.gap,\n data = _this$props4.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n\n return false;\n };\n\n this.setState((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n fill = _this$props5.fill,\n stroke = _this$props5.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n data = _this$props6.data,\n children = _this$props6.children,\n padding = _this$props6.padding;\n var chartElement = Children.only(children);\n\n if (!chartElement) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _this$props7 = this.props,\n y = _this$props7.y,\n travellerWidth = _this$props7.travellerWidth,\n height = _this$props7.height,\n traveller = _this$props7.traveller;\n var x = Math.max(travellerX, this.props.x);\n\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n height = _this$props8.height,\n stroke = _this$props8.stroke,\n travellerWidth = _this$props8.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props9 = this.props,\n startIndex = _this$props9.startIndex,\n endIndex = _this$props9.endIndex,\n y = _this$props9.y,\n height = _this$props9.height,\n travellerWidth = _this$props9.travellerWidth,\n stroke = _this$props9.stroke;\n var _this$state3 = this.state,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n className = _this$props10.className,\n children = _this$props10.children,\n x = _this$props10.x,\n y = _this$props10.y,\n width = _this$props10.width,\n height = _this$props10.height,\n alwaysShowText = _this$props10.alwaysShowText;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX,\n isTextActive = _this$state4.isTextActive,\n isSlideMoving = _this$state4.isSlideMoving,\n isTravellerMoving = _this$state4.isTravellerMoving;\n\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseMove: this.handleDrag,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(range, x) {\n var len = range.length;\n var start = 0;\n var end = len - 1;\n\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n }]);\n\n return Brush;\n}(PureComponent);\nBrush.displayName = 'Brush';\nBrush.defaultProps = {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","\"use strict\";\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = require(\"react\");\n\nfunction useActor(actor) {\n var _a = __read(react_1.useState(undefined), 2),\n current = _a[0],\n setCurrent = _a[1];\n\n var actorRef = react_1.useRef(actor);\n react_1.useEffect(function () {\n if (actor) {\n actorRef.current = actor;\n var sub_1 = actor.subscribe(setCurrent);\n return function () {\n sub_1.unsubscribe();\n };\n }\n }, [actor]);\n return [current, actorRef.current ? actorRef.current.send : function () {\n return void 0;\n }];\n}\n\nexports.useActor = useActor;","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// currently used to initiate the velocity style object to 0\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mapToZero;\n\nfunction mapToZero(obj) {\n var ret = {};\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n ret[key] = 0;\n }\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","// stepper is used a lot. Saves allocation to return the same array wrapper.\n// This is fine and danger-free against mutations because the callsite\n// immediately destructures it and gets the numbers inside without passing the\n\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stepper;\nvar reusedTuple = [0, 0];\n\nfunction stepper(secondPerFrame, x, v, destX, k, b, precision) {\n // Spring stiffness, in kg / s^2\n // for animations, destX is really spring length (spring at rest). initial\n // position is considered as the stretched/compressed position of a spring\n var Fspring = -k * (x - destX); // Damping, in kg / s\n\n var Fdamper = -b * v; // usually we put mass here, but for animation purposes, specifying mass is a\n // bit redundant. you could simply adjust k and b accordingly\n // let a = (Fspring + Fdamper) / mass;\n\n var a = Fspring + Fdamper;\n var newV = v + a * secondPerFrame;\n var newX = x + newV * secondPerFrame;\n\n if (Math.abs(newV) < precision && Math.abs(newX - destX) < precision) {\n reusedTuple[0] = destX;\n reusedTuple[1] = 0;\n return reusedTuple;\n }\n\n reusedTuple[0] = newX;\n reusedTuple[1] = newV;\n return reusedTuple;\n}\n\nmodule.exports = exports[\"default\"]; // array reference around.","// Generated by CoffeeScript 1.7.1\n(function () {\n var getNanoSeconds, hrtime, loadTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - loadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","// usage assumption: currentStyle values have already been rendered but it says\n// nothing of whether currentStyle is stale (see unreadPropStyle)\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = shouldStopAnimation;\n\nfunction shouldStopAnimation(currentStyle, style, currentVelocity) {\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n if (currentVelocity[key] !== 0) {\n return false;\n }\n\n var styleValue = typeof style[key] === 'number' ? style[key] : style[key].val; // stepper will have already taken care of rounding precision errors, so\n // won't have such thing as 0.9999 !=== 1\n\n if (currentStyle[key] !== styleValue) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports['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 */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\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}","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getMenuPlacement = getMenuPlacement;\nexports.MenuPortal = exports.menuPortalCSS = exports.LoadingMessage = exports.NoOptionsMessage = exports.loadingMessageCSS = exports.noOptionsMessageCSS = exports.MenuList = exports.menuListCSS = exports[\"default\"] = exports.MenuPlacer = exports.menuCSS = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nvar _reactDom = require(\"react-dom\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? 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}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction 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 = (0, _utils.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 = (0, _utils.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 (0, _utils.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 (0, _utils.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 (0, _utils.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 (0, _utils.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 (0, _utils.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\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 = {}, _defineProperty(_ref3, alignToControl(placement), '100%'), _defineProperty(_ref3, \"backgroundColor\", colors.neutral0), _defineProperty(_ref3, \"borderRadius\", borderRadius), _defineProperty(_ref3, \"boxShadow\", '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)'), _defineProperty(_ref3, \"marginBottom\", spacing.menuGutter), _defineProperty(_ref3, \"marginTop\", spacing.menuGutter), _defineProperty(_ref3, \"position\", 'absolute'), _defineProperty(_ref3, \"width\", '100%'), _defineProperty(_ref3, \"zIndex\", 1), _ref3;\n}; // NOTE: internal only\n\n\nexports.menuCSS = menuCSS;\n\nvar MenuPlacer = /*#__PURE__*/function (_Component) {\n _inherits(MenuPlacer, _Component);\n\n function MenuPlacer() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, MenuPlacer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(MenuPlacer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPlacement\", function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n var getPortalPlacement = _this.context.getPortalPlacement;\n if (!ref) return; // DO NOT scroll if position is fixed\n\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getUpdatedProps\", function () {\n var menuPlacement = _this.props.menuPlacement;\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n return _objectSpread({}, _this.props, {\n placement: placement,\n maxHeight: _this.state.maxHeight\n });\n });\n\n return _this;\n }\n\n _createClass(MenuPlacer, [{\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n }\n }]);\n\n return MenuPlacer;\n}(_react.Component);\n\nexports.MenuPlacer = MenuPlacer;\n\n_defineProperty(MenuPlacer, \"contextTypes\", {\n getPortalPlacement: _propTypes[\"default\"].func\n});\n\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n var cn = cx( /*#__PURE__*/(0, _emotion.css)(getStyles('menu', props)), {\n menu: true\n }, className);\n return _react[\"default\"].createElement(\"div\", _extends({\n className: cn\n }, innerProps, {\n ref: innerRef\n }), children);\n};\n\nvar _default = Menu; // ==============================\n// Menu List\n// ==============================\n\nexports[\"default\"] = _default;\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};\n\nexports.menuListCSS = menuListCSS;\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 _react[\"default\"].createElement(\"div\", {\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('menuList', props)), {\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n }, children);\n}; // ==============================\n// Menu Notices\n// ==============================\n\n\nexports.MenuList = MenuList;\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;\nexports.noOptionsMessageCSS = noOptionsMessageCSS;\nvar loadingMessageCSS = noticeCSS;\nexports.loadingMessageCSS = loadingMessageCSS;\n\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 _react[\"default\"].createElement(\"div\", _extends({\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('noOptionsMessage', props)), {\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps), children);\n};\n\nexports.NoOptionsMessage = NoOptionsMessage;\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\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 _react[\"default\"].createElement(\"div\", _extends({\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('loadingMessage', props)), {\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps), children);\n};\n\nexports.LoadingMessage = LoadingMessage;\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};\n\nexports.menuPortalCSS = menuPortalCSS;\n\nvar MenuPortal = /*#__PURE__*/function (_Component2) {\n _inherits(MenuPortal, _Component2);\n\n function MenuPortal() {\n var _getPrototypeOf3;\n\n var _this2;\n\n _classCallCheck(this, MenuPortal);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(MenuPortal)).call.apply(_getPrototypeOf3, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), \"state\", {\n placement: null\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), \"getPortalPlacement\", function (_ref7) {\n var placement = _ref7.placement;\n var initialPlacement = coercePlacement(_this2.props.menuPlacement); // avoid re-renders if the placement has not changed\n\n if (placement !== initialPlacement) {\n _this2.setState({\n placement: placement\n });\n }\n });\n\n return _this2;\n }\n\n _createClass(MenuPortal, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n return {\n getPortalPlacement: this.getPortalPlacement\n };\n } // callback for occassions where the menu must \"flip\"\n\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n appendTo = _this$props2.appendTo,\n children = _this$props2.children,\n controlElement = _this$props2.controlElement,\n menuPlacement = _this$props2.menuPlacement,\n position = _this$props2.menuPosition,\n getStyles = _this$props2.getStyles;\n var isFixed = position === 'fixed'; // bail early if required elements aren't present\n\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = (0, _utils.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 = _react[\"default\"].createElement(\"div\", {\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n (0, _emotion.css)(getStyles('menuPortal', state))\n }, children);\n\n return appendTo ? (0, _reactDom.createPortal)(menuWrapper, appendTo) : menuWrapper;\n }\n }]);\n\n return MenuPortal;\n}(_react.Component);\n\nexports.MenuPortal = MenuPortal;\n\n_defineProperty(MenuPortal, \"childContextTypes\", {\n getPortalPlacement: _propTypes[\"default\"].func\n});","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.classNames = classNames;\nexports.handleInputChange = handleInputChange;\nexports.isDocumentElement = isDocumentElement;\nexports.normalizedHeight = normalizedHeight;\nexports.getScrollTop = getScrollTop;\nexports.scrollTo = scrollTo;\nexports.getScrollParent = getScrollParent;\nexports.animatedScrollTo = animatedScrollTo;\nexports.scrollIntoView = scrollIntoView;\nexports.getBoundingClientObj = getBoundingClientObj;\nexports.toKey = toKey;\nexports.isTouchCapable = isTouchCapable;\nexports.isMobileDevice = isMobileDevice;\nexports.cleanValue = exports.emptyString = exports.noop = void 0;\n\nvar _raf = _interopRequireDefault(require(\"raf\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n} // ==============================\n// NO OP\n// ==============================\n\n\nvar noop = function noop() {};\n\nexports.noop = noop;\n\nvar emptyString = function emptyString() {\n return '';\n}; // ==============================\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\n\nexports.emptyString = emptyString;\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, cssKey, state, className) {\n var arr = [cssKey, 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\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\n\nexports.cleanValue = cleanValue;\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\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n} // Normalized Scroll Top\n// ------------------------------\n\n\nfunction normalizedHeight(el) {\n if (isDocumentElement(el)) {\n return window.innerHeight;\n }\n\n return el.clientHeight;\n} // Normalized scrollTo & scrollTop\n// ------------------------------\n\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n\n return el.scrollTop;\n}\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\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\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 (0, _raf[\"default\"])(animateScroll);\n } else {\n callback(element);\n }\n }\n\n animateScroll();\n} // Scroll Into View\n// ------------------------------\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\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// String to Key (kebabify)\n// ==============================\n\n\nfunction toKey(str) {\n return str.replace(/\\W/g, '-');\n} // ==============================\n// Touch Capability Detector\n// ==============================\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\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}","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = require(\"react\");\n\nvar _reactDom = require(\"react-dom\");\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nvar NodeResolver = /*#__PURE__*/function (_Component) {\n _inherits(NodeResolver, _Component);\n\n function NodeResolver() {\n _classCallCheck(this, NodeResolver);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(NodeResolver).apply(this, arguments));\n }\n\n _createClass(NodeResolver, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.props.innerRef((0, _reactDom.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}(_react.Component);\n\nexports[\"default\"] = NodeResolver;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LoadingIndicator = exports.loadingIndicatorCSS = exports.IndicatorSeparator = exports.indicatorSeparatorCSS = exports.ClearIndicator = exports.clearIndicatorCSS = exports.DropdownIndicator = exports.dropdownIndicatorCSS = exports.DownChevron = exports.CrossIcon = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _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// Dropdown & Clear Icons\n// ==============================\n\n\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutProperties(_ref, [\"size\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n (0, _emotion.css)({\n display: 'inline-block',\n fill: 'currentColor',\n lineHeight: 1,\n stroke: 'currentColor',\n strokeWidth: 0\n })\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return _react[\"default\"].createElement(Svg, _extends({\n size: 20\n }, props), _react[\"default\"].createElement(\"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};\n\nexports.CrossIcon = CrossIcon;\n\nvar DownChevron = function DownChevron(props) {\n return _react[\"default\"].createElement(Svg, _extends({\n size: 20\n }, props), _react[\"default\"].createElement(\"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\n\nexports.DownChevron = DownChevron;\n\nvar baseCSS = function baseCSS(_ref2) {\n var isFocused = _ref2.isFocused,\n _ref2$theme = _ref2.theme,\n baseUnit = _ref2$theme.spacing.baseUnit,\n colors = _ref2$theme.colors;\n return {\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;\nexports.dropdownIndicatorCSS = dropdownIndicatorCSS;\n\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 _react[\"default\"].createElement(\"div\", _extends({}, innerProps, {\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('dropdownIndicator', props)), {\n 'indicator': true,\n 'dropdown-indicator': true\n }, className)\n }), children || _react[\"default\"].createElement(DownChevron, null));\n};\n\nexports.DropdownIndicator = DropdownIndicator;\nvar clearIndicatorCSS = baseCSS;\nexports.clearIndicatorCSS = clearIndicatorCSS;\n\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 _react[\"default\"].createElement(\"div\", _extends({}, innerProps, {\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('clearIndicator', props)), {\n 'indicator': true,\n 'clear-indicator': true\n }, className)\n }), children || _react[\"default\"].createElement(CrossIcon, null));\n}; // ==============================\n// Separator\n// ==============================\n\n\nexports.ClearIndicator = ClearIndicator;\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref3) {\n var isDisabled = _ref3.isDisabled,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\n\nexports.indicatorSeparatorCSS = indicatorSeparatorCSS;\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 _react[\"default\"].createElement(\"span\", _extends({}, innerProps, {\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('indicatorSeparator', props)), {\n 'indicator-separator': true\n }, className)\n }));\n}; // ==============================\n// Loading\n// ==============================\n\n\nexports.IndicatorSeparator = IndicatorSeparator;\nvar keyframesName = 'react-select-loading-indicator';\nvar keyframesInjected = false;\n\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref4) {\n var isFocused = _ref4.isFocused,\n size = _ref4.size,\n _ref4$theme = _ref4.theme,\n colors = _ref4$theme.colors,\n baseUnit = _ref4$theme.spacing.baseUnit;\n return {\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\nexports.loadingIndicatorCSS = loadingIndicatorCSS;\n\nvar LoadingDot = function LoadingDot(_ref5) {\n var color = _ref5.color,\n delay = _ref5.delay,\n offset = _ref5.offset;\n return _react[\"default\"].createElement(\"span\", {\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n (0, _emotion.css)({\n animationDuration: '1s',\n animationDelay: \"\".concat(delay, \"ms\"),\n animationIterationCount: 'infinite',\n animationName: keyframesName,\n animationTimingFunction: 'ease-in-out',\n backgroundColor: color,\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : null,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n })\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 isFocused = props.isFocused,\n isRtl = props.isRtl,\n colors = props.theme.colors;\n var color = isFocused ? colors.neutral80 : colors.neutral20;\n\n if (!keyframesInjected) {\n // eslint-disable-next-line no-unused-expressions\n (0, _emotion.injectGlobal)(\"@keyframes \", keyframesName, \"{0%,80%,100%{opacity:0;}40%{opacity:1;}};\");\n keyframesInjected = true;\n }\n\n return _react[\"default\"].createElement(\"div\", _extends({}, innerProps, {\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('loadingIndicator', props)), {\n 'indicator': true,\n 'loading-indicator': true\n }, className)\n }), _react[\"default\"].createElement(LoadingDot, {\n color: color,\n delay: 0,\n offset: isRtl\n }), _react[\"default\"].createElement(LoadingDot, {\n color: color,\n delay: 160,\n offset: true\n }), _react[\"default\"].createElement(LoadingDot, {\n color: color,\n delay: 320,\n offset: !isRtl\n }));\n};\n\nexports.LoadingIndicator = LoadingIndicator;\nLoadingIndicator.defaultProps = {\n size: 4\n};","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\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 */\n\n\nfunction baseGet(object, path) {\n path = castPath(path, object);\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n\n return index && index == length ? object : undefined;\n}\n\nmodule.exports = baseGet;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n/** Used to match property names within property paths. */\n\n\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\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 */\n\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n\n var type = _typeof(value);\n\n if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n}\n\nmodule.exports = isKey;","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\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 */\n\n\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `MapCache`.\n\n\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\nmodule.exports = MapCache;","/**\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;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar Map = getNative(root, 'Map');\nmodule.exports = Map;","/**\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\n return result;\n}\n\nmodule.exports = arrayMap;","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\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 */\n\n\nvar baseEach = createBaseEach(baseForOwn);\nmodule.exports = baseEach;","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Built-in value references. */\n\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\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 */\n\nvar isArguments = baseIsArguments(function () {\n return arguments;\n}()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\nmodule.exports = isArguments;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/** Used to detect unsigned integer values. */\n\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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 */\n\nfunction isIndex(value, length) {\n var type = _typeof(value);\n\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\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 */\n\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\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 */\n\n\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;","/**\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 set.forEach(function (value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;","/**\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","/**\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","export default function (start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { range as sequence } from \"d3-array\";\nimport { initRange } from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function (i) {\n return start + step * i;\n });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function (_) {\n var _ref, _ref2;\n\n return arguments.length ? ((_ref = _, _ref2 = _slicedToArray(_ref, 2), r0 = _ref2[0], r1 = _ref2[1], _ref), r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function (_) {\n var _ref3, _ref4;\n\n return (_ref3 = _, _ref4 = _slicedToArray(_ref3, 2), r0 = _ref4[0], r1 = _ref4[1], _ref3), r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function () {\n return bandwidth;\n };\n\n scale.step = function () {\n return step;\n };\n\n scale.round = function (_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function (_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function (_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function (_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function (_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function () {\n return band(domain(), [r0, r1]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function () {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\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 * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\"use strict\";\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 _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isValidRotation = isValidRotation;\nexports.isValidScrollMode = isValidScrollMode;\nexports.isValidSpreadMode = isValidSpreadMode;\nexports.isPortraitOrientation = isPortraitOrientation;\nexports.getGlobalEventBus = getGlobalEventBus;\nexports.clamp = clamp;\nexports.getPDFFileNameFromURL = getPDFFileNameFromURL;\nexports.noContextMenuHandler = noContextMenuHandler;\nexports.parseQueryString = parseQueryString;\nexports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;\nexports.getVisibleElements = getVisibleElements;\nexports.roundToDivide = roundToDivide;\nexports.getPageSizeInches = getPageSizeInches;\nexports.approximateFraction = approximateFraction;\nexports.getOutputScale = getOutputScale;\nexports.scrollIntoView = scrollIntoView;\nexports.watchScroll = watchScroll;\nexports.binarySearchFirstItem = binarySearchFirstItem;\nexports.normalizeWheelEventDelta = normalizeWheelEventDelta;\nexports.waitOnEventOrTimeout = waitOnEventOrTimeout;\nexports.moveToEndOfArray = moveToEndOfArray;\nexports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = exports.AutoPrintRegExp = void 0;\nvar CSS_UNITS = 96.0 / 72.0;\nexports.CSS_UNITS = CSS_UNITS;\nvar DEFAULT_SCALE_VALUE = \"auto\";\nexports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;\nvar DEFAULT_SCALE = 1.0;\nexports.DEFAULT_SCALE = DEFAULT_SCALE;\nvar MIN_SCALE = 0.1;\nexports.MIN_SCALE = MIN_SCALE;\nvar MAX_SCALE = 10.0;\nexports.MAX_SCALE = MAX_SCALE;\nvar UNKNOWN_SCALE = 0;\nexports.UNKNOWN_SCALE = UNKNOWN_SCALE;\nvar MAX_AUTO_SCALE = 1.25;\nexports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;\nvar SCROLLBAR_PADDING = 40;\nexports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;\nvar VERTICAL_PADDING = 5;\nexports.VERTICAL_PADDING = VERTICAL_PADDING;\nvar PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3\n};\nexports.PresentationModeState = PresentationModeState;\nvar RendererType = {\n CANVAS: \"canvas\",\n SVG: \"svg\"\n};\nexports.RendererType = RendererType;\nvar TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_ENHANCE: 2\n};\nexports.TextLayerMode = TextLayerMode;\nvar ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0,\n HORIZONTAL: 1,\n WRAPPED: 2\n};\nexports.ScrollMode = ScrollMode;\nvar SpreadMode = {\n UNKNOWN: -1,\n NONE: 0,\n ODD: 1,\n EVEN: 2\n};\nexports.SpreadMode = SpreadMode;\nvar AutoPrintRegExp = /\\bprint\\s*\\(/;\nexports.AutoPrintRegExp = AutoPrintRegExp;\n\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n\n return text.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, function (all, name) {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\n\nvar NullL10n = {\n getLanguage: function getLanguage() {\n return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", \"en-us\");\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n getDirection: function getDirection() {\n return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", \"ltr\");\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n get: function get(property, args, fallback) {\n return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", formatL10nValue(fallback, args));\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n translate: function translate(element) {\n return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {\n return regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n }\n};\nexports.NullL10n = NullL10n;\n\nfunction getOutputScale(ctx) {\n var devicePixelRatio = window.devicePixelRatio || 1;\n var backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;\n var pixelRatio = devicePixelRatio / backingStoreRatio;\n return {\n sx: pixelRatio,\n sy: pixelRatio,\n scaled: pixelRatio !== 1\n };\n}\n\nfunction scrollIntoView(element, spot) {\n var skipOverflowHiddenElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var parent = element.offsetParent;\n\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n\n var offsetY = element.offsetTop + element.clientTop;\n var offsetX = element.offsetLeft + element.clientLeft;\n\n while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === \"hidden\") {\n if (parent.dataset._scaleY) {\n offsetY /= parent.dataset._scaleY;\n offsetX /= parent.dataset._scaleX;\n }\n\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n\n if (!parent) {\n return;\n }\n }\n\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n\n parent.scrollTop = offsetY;\n}\n\nfunction watchScroll(viewAreaElement, callback) {\n var debounceScroll = function debounceScroll(evt) {\n if (rAF) {\n return;\n }\n\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n var currentX = viewAreaElement.scrollLeft;\n var lastX = state.lastX;\n\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n\n state.lastX = currentX;\n var currentY = viewAreaElement.scrollTop;\n var lastY = state.lastY;\n\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n\n state.lastY = currentY;\n callback(state);\n });\n };\n\n var state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll\n };\n var rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, true);\n return state;\n}\n\nfunction parseQueryString(query) {\n var parts = query.split(\"&\");\n var params = Object.create(null);\n\n for (var i = 0, ii = parts.length; i < ii; ++i) {\n var param = parts[i].split(\"=\");\n var key = param[0].toLowerCase();\n var value = param.length > 1 ? param[1] : null;\n params[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n\n return params;\n}\n\nfunction binarySearchFirstItem(items, condition) {\n var minIndex = 0;\n var maxIndex = items.length - 1;\n\n if (items.length === 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n var currentIndex = minIndex + maxIndex >> 1;\n var currentItem = items[currentIndex];\n\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n\n return minIndex;\n}\n\nfunction approximateFraction(x) {\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n\n var xinv = 1 / x;\n var limit = 8;\n\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n\n var x_ = x > 1 ? xinv : x;\n var a = 0,\n b = 1,\n c = 1,\n d = 1;\n\n while (true) {\n var p = a + c,\n q = b + d;\n\n if (q > limit) {\n break;\n }\n\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n\n var result;\n\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n\n return result;\n}\n\nfunction roundToDivide(x, div) {\n var r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\n\nfunction getPageSizeInches(_ref) {\n var view = _ref.view,\n userUnit = _ref.userUnit,\n rotate = _ref.rotate;\n\n var _view = _slicedToArray(view, 4),\n x1 = _view[0],\n y1 = _view[1],\n x2 = _view[2],\n y2 = _view[3];\n\n var changeOrientation = rotate % 180 !== 0;\n var width = (x2 - x1) / 72 * userUnit;\n var height = (y2 - y1) / 72 * userUnit;\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height\n };\n}\n\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n if (index < 2) {\n return index;\n }\n\n var elt = views[index].div;\n var pageTop = elt.offsetTop + elt.clientTop;\n\n if (pageTop >= top) {\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n\n for (var i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n break;\n }\n\n index = i;\n }\n\n return index;\n}\n\nfunction getVisibleElements(scrollEl, views) {\n var sortByVisibility = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var horizontal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n var left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n\n function isElementBottomAfterViewTop(view) {\n var element = view.div;\n var elementBottom = element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n\n function isElementRightAfterViewLeft(view) {\n var element = view.div;\n var elementRight = element.offsetLeft + element.clientLeft + element.clientWidth;\n return elementRight > left;\n }\n\n var visible = [],\n numViews = views.length;\n var firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop);\n\n if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n }\n\n var lastEdge = horizontal ? right : -1;\n\n for (var i = firstVisibleElementInd; i < numViews; i++) {\n var view = views[i],\n element = view.div;\n var currentWidth = element.offsetLeft + element.clientLeft;\n var currentHeight = element.offsetTop + element.clientTop;\n var viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n var viewRight = currentWidth + viewWidth;\n var viewBottom = currentHeight + viewHeight;\n\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n\n if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {\n continue;\n }\n\n var hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n var hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n var percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0;\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view: view,\n percent: percent\n });\n }\n\n var first = visible[0],\n last = visible[visible.length - 1];\n\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n var pc = a.percent - b.percent;\n\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n\n return a.id - b.id;\n });\n }\n\n return {\n first: first,\n last: last,\n views: visible\n };\n}\n\nfunction noContextMenuHandler(evt) {\n evt.preventDefault();\n}\n\nfunction isDataSchema(url) {\n var i = 0;\n var ii = url.length;\n\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction getPDFFileNameFromURL(url) {\n var defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"document.pdf\";\n\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n\n if (isDataSchema(url)) {\n console.warn(\"getPDFFileNameFromURL: \" + 'ignoring \"data:\" URL for performance reasons.');\n return defaultFilename;\n }\n\n var reURI = /^(?:(?:[^:]+:)?\\/\\/[^\\/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n var reFilename = /[^\\/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n var splitURI = reURI.exec(url);\n var suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n\n return suggestedFilename || defaultFilename;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n var delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY);\n var angle = Math.atan2(evt.deltaY, evt.deltaX);\n\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n delta = -delta;\n }\n\n var MOUSE_DOM_DELTA_PIXEL_MODE = 0;\n var MOUSE_DOM_DELTA_LINE_MODE = 1;\n var MOUSE_PIXELS_PER_LINE = 30;\n var MOUSE_LINES_PER_PAGE = 30;\n\n if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n\n return delta;\n}\n\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isValidScrollMode(mode) {\n return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;\n}\n\nfunction isValidSpreadMode(mode) {\n return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;\n}\n\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\n\nvar WaitOnType = {\n EVENT: \"event\",\n TIMEOUT: \"timeout\"\n};\nexports.WaitOnType = WaitOnType;\n\nfunction waitOnEventOrTimeout(_ref2) {\n var target = _ref2.target,\n name = _ref2.name,\n _ref2$delay = _ref2.delay,\n delay = _ref2$delay === void 0 ? 0 : _ref2$delay;\n return new Promise(function (resolve, reject) {\n if (_typeof(target) !== \"object\" || !(name && typeof name === \"string\") || !(Number.isInteger(delay) && delay >= 0)) {\n throw new Error(\"waitOnEventOrTimeout - invalid parameters.\");\n }\n\n function handler(type) {\n if (target instanceof EventBus) {\n target._off(name, eventHandler);\n } else {\n target.removeEventListener(name, eventHandler);\n }\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n resolve(type);\n }\n\n var eventHandler = handler.bind(null, WaitOnType.EVENT);\n\n if (target instanceof EventBus) {\n target._on(name, eventHandler);\n } else {\n target.addEventListener(name, eventHandler);\n }\n\n var timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);\n var timeout = setTimeout(timeoutHandler, delay);\n });\n}\n\nvar animationStarted = new Promise(function (resolve) {\n window.requestAnimationFrame(resolve);\n});\nexports.animationStarted = animationStarted;\n\nfunction dispatchDOMEvent(eventName) {\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var details = Object.create(null);\n\n if (args && args.length > 0) {\n var obj = args[0];\n\n for (var key in obj) {\n var value = obj[key];\n\n if (key === \"source\") {\n if (value === window || value === document) {\n return;\n }\n\n continue;\n }\n\n details[key] = value;\n }\n }\n\n var event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(eventName, true, true, details);\n document.dispatchEvent(event);\n}\n\nvar EventBus = /*#__PURE__*/function () {\n function EventBus() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$dispatchToDOM = _ref3.dispatchToDOM,\n dispatchToDOM = _ref3$dispatchToDOM === void 0 ? false : _ref3$dispatchToDOM;\n\n _classCallCheck(this, EventBus);\n\n this._listeners = Object.create(null);\n this._dispatchToDOM = dispatchToDOM === true;\n\n if (dispatchToDOM) {\n console.error(\"The `eventBusDispatchToDOM` option/preference is deprecated, \" + \"add event listeners to the EventBus instance rather than the DOM.\");\n }\n }\n\n _createClass(EventBus, [{\n key: \"on\",\n value: function on(eventName, listener) {\n this._on(eventName, listener, {\n external: true\n });\n }\n }, {\n key: \"off\",\n value: function off(eventName, listener) {\n this._off(eventName, listener, {\n external: true\n });\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(eventName) {\n var eventListeners = this._listeners[eventName];\n\n if (!eventListeners || eventListeners.length === 0) {\n if (this._dispatchToDOM) {\n var _args5 = Array.prototype.slice.call(arguments, 1);\n\n dispatchDOMEvent(eventName, _args5);\n }\n\n return;\n }\n\n var args = Array.prototype.slice.call(arguments, 1);\n var externalListeners;\n eventListeners.slice(0).forEach(function (_ref4) {\n var listener = _ref4.listener,\n external = _ref4.external;\n\n if (external) {\n if (!externalListeners) {\n externalListeners = [];\n }\n\n externalListeners.push(listener);\n return;\n }\n\n listener.apply(null, args);\n });\n\n if (externalListeners) {\n externalListeners.forEach(function (listener) {\n listener.apply(null, args);\n });\n externalListeners = null;\n }\n\n if (this._dispatchToDOM) {\n dispatchDOMEvent(eventName, args);\n }\n }\n }, {\n key: \"_on\",\n value: function _on(eventName, listener) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n this._listeners[eventName] = eventListeners = [];\n }\n\n eventListeners.push({\n listener: listener,\n external: (options && options.external) === true\n });\n }\n }, {\n key: \"_off\",\n value: function _off(eventName, listener) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n return;\n }\n\n for (var i = 0, ii = eventListeners.length; i < ii; i++) {\n if (eventListeners[i].listener === listener) {\n eventListeners.splice(i, 1);\n return;\n }\n }\n }\n }]);\n\n return EventBus;\n}();\n\nexports.EventBus = EventBus;\nvar globalEventBus = null;\n\nfunction getGlobalEventBus() {\n var dispatchToDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n console.error(\"getGlobalEventBus is deprecated, use a manually created EventBus instance instead.\");\n\n if (!globalEventBus) {\n globalEventBus = new EventBus({\n dispatchToDOM: dispatchToDOM\n });\n }\n\n return globalEventBus;\n}\n\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\nvar ProgressBar = /*#__PURE__*/function () {\n function ProgressBar(id) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n height = _ref5.height,\n width = _ref5.width,\n units = _ref5.units;\n\n _classCallCheck(this, ProgressBar);\n\n this.visible = true;\n this.div = document.querySelector(id + \" .progress\");\n this.bar = this.div.parentNode;\n this.height = height || 100;\n this.width = width || 100;\n this.units = units || \"%\";\n this.div.style.height = this.height + this.units;\n this.percent = 0;\n }\n\n _createClass(ProgressBar, [{\n key: \"_updateBar\",\n value: function _updateBar() {\n if (this._indeterminate) {\n this.div.classList.add(\"indeterminate\");\n this.div.style.width = this.width + this.units;\n return;\n }\n\n this.div.classList.remove(\"indeterminate\");\n var progressSize = this.width * this._percent / 100;\n this.div.style.width = progressSize + this.units;\n }\n }, {\n key: \"percent\",\n get: function get() {\n return this._percent;\n },\n set: function set(val) {\n this._indeterminate = isNaN(val);\n this._percent = clamp(val, 0, 100);\n\n this._updateBar();\n }\n }, {\n key: \"setWidth\",\n value: function setWidth(viewer) {\n if (!viewer) {\n return;\n }\n\n var container = viewer.parentNode;\n var scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n\n if (scrollbarWidth > 0) {\n this.bar.style.width = \"calc(100% - \".concat(scrollbarWidth, \"px)\");\n }\n }\n }, {\n key: \"hide\",\n value: function hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n this.bar.classList.add(\"hidden\");\n document.body.classList.remove(\"loadingInProgress\");\n }\n }, {\n key: \"show\",\n value: function show() {\n if (this.visible) {\n return;\n }\n\n this.visible = true;\n document.body.classList.add(\"loadingInProgress\");\n this.bar.classList.remove(\"hidden\");\n }\n }]);\n\n return ProgressBar;\n}();\n\nexports.ProgressBar = ProgressBar;\n\nfunction moveToEndOfArray(arr, condition) {\n var moved = [],\n len = arr.length;\n var write = 0;\n\n for (var read = 0; read < len; ++read) {\n if (condition(arr[read])) {\n moved.push(arr[read]);\n } else {\n arr[write] = arr[read];\n ++write;\n }\n }\n\n for (var _read = 0; write < len; ++_read, ++write) {\n arr[write] = moved[_read];\n }\n}","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = function () {\n if (typeof Map !== 'undefined') {\n return Map;\n }\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\n\n\n function getIndex(arr, key) {\n var result = -1;\n arr.some(function (entry, index) {\n if (entry[0] === key) {\n result = index;\n return true;\n }\n\n return false;\n });\n return result;\n }\n\n return (\n /** @class */\n function () {\n function class_1() {\n this.__entries__ = [];\n }\n\n Object.defineProperty(class_1.prototype, \"size\", {\n /**\r\n * @returns {boolean}\r\n */\n get: function get() {\n return this.__entries__.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\n\n class_1.prototype.get = function (key) {\n var index = getIndex(this.__entries__, key);\n var entry = this.__entries__[index];\n return entry && entry[1];\n };\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.set = function (key, value) {\n var index = getIndex(this.__entries__, key);\n\n if (~index) {\n this.__entries__[index][1] = value;\n } else {\n this.__entries__.push([key, value]);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype[\"delete\"] = function (key) {\n var entries = this.__entries__;\n var index = getIndex(entries, key);\n\n if (~index) {\n entries.splice(index, 1);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.has = function (key) {\n return !!~getIndex(this.__entries__, key);\n };\n /**\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.clear = function () {\n this.__entries__.splice(0);\n };\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.forEach = function (callback, ctx) {\n if (ctx === void 0) {\n ctx = null;\n }\n\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\n var entry = _a[_i];\n callback.call(ctx, entry[1], entry[0]);\n }\n };\n\n return class_1;\n }()\n );\n}();\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\n\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document; // Returns global object of a current environment.\n\nvar global$1 = function () {\n if (typeof global !== 'undefined' && global.Math === Math) {\n return global;\n }\n\n if (typeof self !== 'undefined' && self.Math === Math) {\n return self;\n }\n\n if (typeof window !== 'undefined' && window.Math === Math) {\n return window;\n } // eslint-disable-next-line no-new-func\n\n\n return Function('return this')();\n}();\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\n\n\nvar requestAnimationFrame$1 = function () {\n if (typeof requestAnimationFrame === 'function') {\n // It's required to use a bounded function because IE sometimes throws\n // an \"Invalid calling object\" error if rAF is invoked without the global\n // object on the left hand side.\n return requestAnimationFrame.bind(global$1);\n }\n\n return function (callback) {\n return setTimeout(function () {\n return callback(Date.now());\n }, 1000 / 60);\n };\n}(); // Defines minimum timeout before adding a trailing call.\n\n\nvar trailingTimeout = 2;\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\n\nfunction throttle(callback, delay) {\n var leadingCall = false,\n trailingCall = false,\n lastCallTime = 0;\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\n\n function resolvePending() {\n if (leadingCall) {\n leadingCall = false;\n callback();\n }\n\n if (trailingCall) {\n proxy();\n }\n }\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\n\n\n function timeoutCallback() {\n requestAnimationFrame$1(resolvePending);\n }\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\n\n\n function proxy() {\n var timeStamp = Date.now();\n\n if (leadingCall) {\n // Reject immediately following calls.\n if (timeStamp - lastCallTime < trailingTimeout) {\n return;\n } // Schedule new call to be in invoked when the pending one is resolved.\n // This is important for \"transitions\" which never actually start\n // immediately so there is a chance that we might miss one if change\n // happens amids the pending invocation.\n\n\n trailingCall = true;\n } else {\n leadingCall = true;\n trailingCall = false;\n setTimeout(timeoutCallback, delay);\n }\n\n lastCallTime = timeStamp;\n }\n\n return proxy;\n} // Minimum delay before invoking the update of observers.\n\n\nvar REFRESH_DELAY = 20; // A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\n\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight']; // Check if MutationObserver is available.\n\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\n\nvar ResizeObserverController =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\n function ResizeObserverController() {\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\n this.connected_ = false;\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\n\n this.mutationEventsAdded_ = false;\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n this.mutationsObserver_ = null;\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\n\n this.observers_ = [];\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n }\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.addObserver = function (observer) {\n if (!~this.observers_.indexOf(observer)) {\n this.observers_.push(observer);\n } // Add listeners if they haven't been added yet.\n\n\n if (!this.connected_) {\n this.connect_();\n }\n };\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.removeObserver = function (observer) {\n var observers = this.observers_;\n var index = observers.indexOf(observer); // Remove observer if it's present in registry.\n\n if (~index) {\n observers.splice(index, 1);\n } // Remove listeners if controller has no connected observers.\n\n\n if (!observers.length && this.connected_) {\n this.disconnect_();\n }\n };\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.refresh = function () {\n var changesDetected = this.updateObservers_(); // Continue running updates if changes have been detected as there might\n // be future ones caused by CSS transitions.\n\n if (changesDetected) {\n this.refresh();\n }\n };\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\n\n\n ResizeObserverController.prototype.updateObservers_ = function () {\n // Collect observers that have active observations.\n var activeObservers = this.observers_.filter(function (observer) {\n return observer.gatherActive(), observer.hasActive();\n }); // Deliver notifications in a separate cycle in order to avoid any\n // collisions between observers, e.g. when multiple instances of\n // ResizeObserver are tracking the same element and the callback of one\n // of them changes content dimensions of the observed target. Sometimes\n // this may result in notifications being blocked for the rest of observers.\n\n activeObservers.forEach(function (observer) {\n return observer.broadcastActive();\n });\n return activeObservers.length > 0;\n };\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.connect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already added.\n if (!isBrowser || this.connected_) {\n return;\n } // Subscription to the \"Transitionend\" event is used as a workaround for\n // delayed transitions. This way it's possible to capture at least the\n // final state of an element.\n\n\n document.addEventListener('transitionend', this.onTransitionEnd_);\n window.addEventListener('resize', this.refresh);\n\n if (mutationObserverSupported) {\n this.mutationsObserver_ = new MutationObserver(this.refresh);\n this.mutationsObserver_.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n } else {\n document.addEventListener('DOMSubtreeModified', this.refresh);\n this.mutationEventsAdded_ = true;\n }\n\n this.connected_ = true;\n };\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.disconnect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already removed.\n if (!isBrowser || !this.connected_) {\n return;\n }\n\n document.removeEventListener('transitionend', this.onTransitionEnd_);\n window.removeEventListener('resize', this.refresh);\n\n if (this.mutationsObserver_) {\n this.mutationsObserver_.disconnect();\n }\n\n if (this.mutationEventsAdded_) {\n document.removeEventListener('DOMSubtreeModified', this.refresh);\n }\n\n this.mutationsObserver_ = null;\n this.mutationEventsAdded_ = false;\n this.connected_ = false;\n };\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\n var _b = _a.propertyName,\n propertyName = _b === void 0 ? '' : _b; // Detect whether transition may affect dimensions of an element.\n\n var isReflowProperty = transitionKeys.some(function (key) {\n return !!~propertyName.indexOf(key);\n });\n\n if (isReflowProperty) {\n this.refresh();\n }\n };\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.getInstance = function () {\n if (!this.instance_) {\n this.instance_ = new ResizeObserverController();\n }\n\n return this.instance_;\n };\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.instance_ = null;\n return ResizeObserverController;\n}();\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\n\n\nvar defineConfigurable = function defineConfigurable(target, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var key = _a[_i];\n Object.defineProperty(target, key, {\n value: props[key],\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n\n return target;\n};\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\n\n\nvar getWindowOf = function getWindowOf(target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; // Return the local global object if it's not possible extract one from\n // provided element.\n\n return ownerGlobal || global$1;\n}; // Placeholder of an empty content rectangle.\n\n\nvar emptyRect = createRectInit(0, 0, 0, 0);\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\n\nfunction toFloat(value) {\n return parseFloat(value) || 0;\n}\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\n\n\nfunction getBordersSize(styles) {\n var positions = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n positions[_i - 1] = arguments[_i];\n }\n\n return positions.reduce(function (size, position) {\n var value = styles['border-' + position + '-width'];\n return size + toFloat(value);\n }, 0);\n}\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\n\n\nfunction getPaddings(styles) {\n var positions = ['top', 'right', 'bottom', 'left'];\n var paddings = {};\n\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\n var position = positions_1[_i];\n var value = styles['padding-' + position];\n paddings[position] = toFloat(value);\n }\n\n return paddings;\n}\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getSVGContentRect(target) {\n var bbox = target.getBBox();\n return createRectInit(0, 0, bbox.width, bbox.height);\n}\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getHTMLElementContentRect(target) {\n // Client width & height properties can't be\n // used exclusively as they provide rounded values.\n var clientWidth = target.clientWidth,\n clientHeight = target.clientHeight; // By this condition we can catch all non-replaced inline, hidden and\n // detached elements. Though elements with width & height properties less\n // than 0.5 will be discarded as well.\n //\n // Without it we would need to implement separate methods for each of\n // those cases and it's not possible to perform a precise and performance\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n // gives wrong results for elements with width & height less than 0.5.\n\n if (!clientWidth && !clientHeight) {\n return emptyRect;\n }\n\n var styles = getWindowOf(target).getComputedStyle(target);\n var paddings = getPaddings(styles);\n var horizPad = paddings.left + paddings.right;\n var vertPad = paddings.top + paddings.bottom; // Computed styles of width & height are being used because they are the\n // only dimensions available to JS that contain non-rounded values. It could\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\n // affected by CSS transformations let alone paddings, borders and scroll bars.\n\n var width = toFloat(styles.width),\n height = toFloat(styles.height); // Width & height include paddings and borders when the 'border-box' box\n // model is applied (except for IE).\n\n if (styles.boxSizing === 'border-box') {\n // Following conditions are required to handle Internet Explorer which\n // doesn't include paddings and borders to computed CSS dimensions.\n //\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\n // properties then it's either IE, and thus we don't need to subtract\n // anything, or an element merely doesn't have paddings/borders styles.\n if (Math.round(width + horizPad) !== clientWidth) {\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\n }\n\n if (Math.round(height + vertPad) !== clientHeight) {\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n }\n } // Following steps can't be applied to the document's root element as its\n // client[Width/Height] properties represent viewport area of the window.\n // Besides, it's as well not necessary as the itself neither has\n // rendered scroll bars nor it can be clipped.\n\n\n if (!isDocumentElement(target)) {\n // In some browsers (only in Firefox, actually) CSS width & height\n // include scroll bars size which can be removed at this step as scroll\n // bars are the only difference between rounded dimensions + paddings\n // and \"client\" properties, though that is not always true in Chrome.\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n var horizScrollbar = Math.round(height + vertPad) - clientHeight; // Chrome has a rather weird rounding of \"client\" properties.\n // E.g. for an element with content width of 314.2px it sometimes gives\n // the client width of 315px and for the width of 314.7px it may give\n // 314px. And it doesn't happen all the time. So just ignore this delta\n // as a non-relevant.\n\n if (Math.abs(vertScrollbar) !== 1) {\n width -= vertScrollbar;\n }\n\n if (Math.abs(horizScrollbar) !== 1) {\n height -= horizScrollbar;\n }\n }\n\n return createRectInit(paddings.left, paddings.top, width, height);\n}\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nvar isSVGGraphicsElement = function () {\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n // interface.\n if (typeof SVGGraphicsElement !== 'undefined') {\n return function (target) {\n return target instanceof getWindowOf(target).SVGGraphicsElement;\n };\n } // If it's so, then check that element is at least an instance of the\n // SVGElement and that it has the \"getBBox\" method.\n // eslint-disable-next-line no-extra-parens\n\n\n return function (target) {\n return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function';\n };\n}();\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nfunction isDocumentElement(target) {\n return target === getWindowOf(target).document.documentElement;\n}\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getContentRect(target) {\n if (!isBrowser) {\n return emptyRect;\n }\n\n if (isSVGGraphicsElement(target)) {\n return getSVGContentRect(target);\n }\n\n return getHTMLElementContentRect(target);\n}\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\n\n\nfunction createReadOnlyRect(_a) {\n var x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height; // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n var rect = Object.create(Constr.prototype); // Rectangle's properties are not writable and non-enumerable.\n\n defineConfigurable(rect, {\n x: x,\n y: y,\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: height + y,\n left: x\n });\n return rect;\n}\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction createRectInit(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n}\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\n\n\nvar ResizeObservation =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\n function ResizeObservation(target) {\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\n this.broadcastWidth = 0;\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\n\n this.broadcastHeight = 0;\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n this.contentRect_ = createRectInit(0, 0, 0, 0);\n this.target = target;\n }\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObservation.prototype.isActive = function () {\n var rect = getContentRect(this.target);\n this.contentRect_ = rect;\n return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n };\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\n\n\n ResizeObservation.prototype.broadcastRect = function () {\n var rect = this.contentRect_;\n this.broadcastWidth = rect.width;\n this.broadcastHeight = rect.height;\n return rect;\n };\n\n return ResizeObservation;\n}();\n\nvar ResizeObserverEntry =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\n function ResizeObserverEntry(target, rectInit) {\n var contentRect = createReadOnlyRect(rectInit); // According to the specification following properties are not writable\n // and are also not enumerable in the native implementation.\n //\n // Property accessors are not being used as they'd require to define a\n // private WeakMap storage which may cause memory leaks in browsers that\n // don't support this type of collections.\n\n defineConfigurable(this, {\n target: target,\n contentRect: contentRect\n });\n }\n\n return ResizeObserverEntry;\n}();\n\nvar ResizeObserverSPI =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\n function ResizeObserverSPI(callback, controller, callbackCtx) {\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\n this.activeObservations_ = [];\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\n\n this.observations_ = new MapShim();\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback provided as parameter 1 is not a function.');\n }\n\n this.callback_ = callback;\n this.controller_ = controller;\n this.callbackCtx_ = callbackCtx;\n }\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.observe = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is already being observed.\n\n if (observations.has(target)) {\n return;\n }\n\n observations.set(target, new ResizeObservation(target));\n this.controller_.addObserver(this); // Force the update of observations.\n\n this.controller_.refresh();\n };\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.unobserve = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is not being observed.\n\n if (!observations.has(target)) {\n return;\n }\n\n observations[\"delete\"](target);\n\n if (!observations.size) {\n this.controller_.removeObserver(this);\n }\n };\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.disconnect = function () {\n this.clearActive();\n this.observations_.clear();\n this.controller_.removeObserver(this);\n };\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.gatherActive = function () {\n var _this = this;\n\n this.clearActive();\n this.observations_.forEach(function (observation) {\n if (observation.isActive()) {\n _this.activeObservations_.push(observation);\n }\n });\n };\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.broadcastActive = function () {\n // Do nothing if observer doesn't have active observations.\n if (!this.hasActive()) {\n return;\n }\n\n var ctx = this.callbackCtx_; // Create ResizeObserverEntry instance for every active observation.\n\n var entries = this.activeObservations_.map(function (observation) {\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n });\n this.callback_.call(ctx, entries, ctx);\n this.clearActive();\n };\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n };\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObserverSPI.prototype.hasActive = function () {\n return this.activeObservations_.length > 0;\n };\n\n return ResizeObserverSPI;\n}(); // Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\n\n\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\n\nvar ResizeObserver =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\n function ResizeObserver(callback) {\n if (!(this instanceof ResizeObserver)) {\n throw new TypeError('Cannot call a class as a function.');\n }\n\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n var controller = ResizeObserverController.getInstance();\n var observer = new ResizeObserverSPI(callback, controller, this);\n observers.set(this, observer);\n }\n\n return ResizeObserver;\n}(); // Expose public methods of ResizeObserver.\n\n\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n ResizeObserver.prototype[method] = function () {\n var _a;\n\n return (_a = observers.get(this))[method].apply(_a, arguments);\n };\n});\n\nvar index = function () {\n // Export existing implementation if available.\n if (typeof global$1.ResizeObserver !== 'undefined') {\n return global$1.ResizeObserver;\n }\n\n return ResizeObserver;\n}();\n\nexport default index;","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n/** Error message constants. */\n\n\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\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 */\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\n wait = toNumber(wait) || 0;\n\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 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; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\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 return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // 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\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\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 lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\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\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar numberTag = '[object Number]';\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\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 number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n\nfunction isNumber(value) {\n return typeof value == 'number' || isObjectLike(value) && baseGetTag(value) == numberTag;\n}\n\nmodule.exports = isNumber;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequire(obj) {\n return obj && obj.__esModule ? obj['default'] : obj;\n}\n\nvar _adapterJs = require('./adapter.js');\n\nexports['default'] = _interopRequire(_adapterJs);\nmodule.exports = exports['default'];","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ProseMirror = exports.useProseMirror = void 0;\n\nvar useProseMirror_1 = require(\"./useProseMirror\");\n\nObject.defineProperty(exports, \"useProseMirror\", {\n enumerable: true,\n get: function get() {\n return __importDefault(useProseMirror_1)[\"default\"];\n }\n});\n\nvar ProseMirror_1 = require(\"./ProseMirror\");\n\nObject.defineProperty(exports, \"ProseMirror\", {\n enumerable: true,\n get: function get() {\n return __importDefault(ProseMirror_1)[\"default\"];\n }\n});","var createCompounder = require('./_createCompounder'),\n upperFirst = require('./upperFirst');\n/**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n\n\nvar startCase = createCompounder(function (result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n});\nmodule.exports = startCase;","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function () {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n};","import ascending from \"./ascending.js\";\nexport default function (f) {\n var delta = f;\n var compare = f;\n\n if (f.length === 1) {\n delta = function delta(d, x) {\n return f(d) - x;\n };\n\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;else hi = mid;\n }\n\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;else lo = mid + 1;\n }\n\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n var i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {\n left: left,\n center: center,\n right: right\n };\n}\n\nfunction ascendingComparator(f) {\n return function (d, x) {\n return ascending(f(d), x);\n };\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequire(obj) {\n return obj && obj.__esModule ? obj['default'] : obj;\n}\n\nvar _mergePersistedStateJs = require('./mergePersistedState.js');\n\nexports.mergePersistedState = _interopRequire(_mergePersistedStateJs);\n\nvar _actionTypesJs = require('./actionTypes.js');\n\nexports.actionTypes = _interopRequire(_actionTypesJs);\n\nvar _persistStateJs = require('./persistState.js');\n\nexports['default'] = _interopRequire(_persistStateJs);","export default function () {}","function _point(that, x, y) {\n that._context.bezierCurveTo((2 * that._x0 + that._x1) / 3, (2 * that._y0 + that._y1) / 3, (that._x0 + 2 * that._x1) / 3, (that._y0 + 2 * that._y1) / 3, (that._x0 + 4 * that._x1 + x) / 6, (that._y0 + 4 * that._y1 + y) / 6);\n}\n\nexport { _point as point };\nexport function Basis(context) {\n this._context = context;\n}\nBasis.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 3:\n _point(this, this._x1, this._y1);\n\n // proceed\n\n case 2:\n this._context.lineTo(this._x1, this._y1);\n\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n\n this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);\n\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new Basis(context);\n}","import noop from \"../noop.js\";\nimport { point as _point } from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x2, this._y2);\n\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n\n this._context.closePath();\n\n break;\n }\n\n case 3:\n {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x2 = x, this._y2 = y;\n break;\n\n case 1:\n this._point = 2;\n this._x3 = x, this._y3 = y;\n break;\n\n case 2:\n this._point = 3;\n this._x4 = x, this._y4 = y;\n\n this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6);\n\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new BasisClosed(context);\n}","import { point as _point } from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n var x0 = (this._x0 + 4 * this._x1 + x) / 6,\n y0 = (this._y0 + 4 * this._y1 + y) / 6;\n this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);\n break;\n\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new BasisOpen(context);\n}","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._point) this._context.closePath();\n },\n point: function point(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);else this._point = 1, this._context.moveTo(x, y);\n }\n};\nexport default function (context) {\n return new LinearClosed(context);\n}","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n // proceed\n\n default:\n this._context.lineTo(x, y);\n\n break;\n }\n }\n};\nexport default function (context) {\n return new Linear(context);\n}","function sign(x) {\n return x < 0 ? -1 : 1;\n} // Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\n\n\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n} // Calculate a one-sided slope.\n\n\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n} // According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\n\n\nfunction _point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x1, this._y1);\n\n break;\n\n case 3:\n _point(this, this._t0, slope2(this, this._t0));\n\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n var t1 = NaN;\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n\n _point(this, slope2(this, t1 = slope3(this, x, y)), t1);\n\n break;\n\n default:\n _point(this, this._t0, t1 = slope3(this, x, y));\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n};\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function (x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function moveTo(x, y) {\n this._context.moveTo(y, x);\n },\n closePath: function closePath() {\n this._context.closePath();\n },\n lineTo: function lineTo(x, y) {\n this._context.lineTo(y, x);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._context.bezierCurveTo(y1, x1, y2, x2, y, x);\n }\n};\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function lineEnd() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || this._line !== 0 && n === 1) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function point(x, y) {\n this._x.push(+x);\n\n this._y.push(+y);\n }\n}; // See https://www.particleincell.com/2012/bezier-splines/ for derivation.\n\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n\n for (i = 1; i < n - 1; ++i) {\n a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n }\n\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n\n for (i = 1; i < n; ++i) {\n m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n }\n\n a[n - 1] = r[n - 1] / b[n - 1];\n\n for (i = n - 2; i >= 0; --i) {\n a[i] = (r[i] - a[i + 1]) / b[i];\n }\n\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n\n for (i = 0; i < n - 1; ++i) {\n b[i] = 2 * x[i + 1] - a[i + 1];\n }\n\n return [a, b];\n}\n\nexport default function (context) {\n return new Natural(context);\n}","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n // proceed\n\n default:\n {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n\n this._context.lineTo(x1, this._y);\n\n this._context.lineTo(x1, y);\n }\n\n break;\n }\n }\n\n this._x = x, this._y = y;\n }\n};\nexport default function (context) {\n return new Step(context, 0.5);\n}\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\nexport function stepAfter(context) {\n return new Step(context, 1);\n}","export function x(p) {\n return p[0];\n}\nexport function y(p) {\n return p[1];\n}","import { path } from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function (x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n x = typeof x === \"function\" ? x : x === undefined ? pointX : constant(x);\n y = typeof y === \"function\" ? y : y === undefined ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();else output.lineEnd();\n }\n\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}","import { path } from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function (x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n x0 = typeof x0 === \"function\" ? x0 : x0 === undefined ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : y0 === undefined ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : y1 === undefined ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n\n output.lineEnd();\n output.areaEnd();\n }\n }\n\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function (_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function (_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function (_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function (_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function (_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function (_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 = area.lineY0 = function () {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function () {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function () {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport _isArray from \"lodash/isArray\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Curve\n */\n\n\nimport React, { PureComponent } from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n\n var name = \"curve\".concat(_upperFirst(type));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\nexport var Curve = /*#__PURE__*/function (_PureComponent) {\n _inherits(Curve, _PureComponent);\n\n var _super = _createSuper(Curve);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n\n if (_isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(PureComponent);\nCurve.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n};","import { __assign, __extends } from \"tslib\";\nimport { captureException, showReportDialog, withScope } from '@sentry/browser';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nexport var UNKNOWN_COMPONENT = 'unknown';\nvar INITIAL_STATE = {\n componentStack: null,\n error: null,\n eventId: null\n};\n/**\n * A ErrorBoundary component that logs errors to Sentry.\n * Requires React >= 16\n */\n\nvar ErrorBoundary =\n/** @class */\nfunction (_super) {\n __extends(ErrorBoundary, _super);\n\n function ErrorBoundary() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = INITIAL_STATE;\n\n _this.resetErrorBoundary = function () {\n var onReset = _this.props.onReset;\n var _a = _this.state,\n error = _a.error,\n componentStack = _a.componentStack,\n eventId = _a.eventId;\n\n if (onReset) {\n onReset(error, componentStack, eventId);\n }\n\n _this.setState(INITIAL_STATE);\n };\n\n return _this;\n }\n\n ErrorBoundary.prototype.componentDidCatch = function (error, _a) {\n var _this = this;\n\n var componentStack = _a.componentStack;\n var _b = this.props,\n beforeCapture = _b.beforeCapture,\n onError = _b.onError,\n showDialog = _b.showDialog,\n dialogOptions = _b.dialogOptions;\n withScope(function (scope) {\n if (beforeCapture) {\n beforeCapture(scope, error, componentStack);\n }\n\n var eventId = captureException(error, {\n contexts: {\n react: {\n componentStack: componentStack\n }\n }\n });\n\n if (onError) {\n onError(error, componentStack, eventId);\n }\n\n if (showDialog) {\n showReportDialog(__assign(__assign({}, dialogOptions), {\n eventId: eventId\n }));\n } // componentDidCatch is used over getDerivedStateFromError\n // so that componentStack is accessible through state.\n\n\n _this.setState({\n error: error,\n componentStack: componentStack,\n eventId: eventId\n });\n });\n };\n\n ErrorBoundary.prototype.componentDidMount = function () {\n var onMount = this.props.onMount;\n\n if (onMount) {\n onMount();\n }\n };\n\n ErrorBoundary.prototype.componentWillUnmount = function () {\n var _a = this.state,\n error = _a.error,\n componentStack = _a.componentStack,\n eventId = _a.eventId;\n var onUnmount = this.props.onUnmount;\n\n if (onUnmount) {\n onUnmount(error, componentStack, eventId);\n }\n };\n\n ErrorBoundary.prototype.render = function () {\n var fallback = this.props.fallback;\n var _a = this.state,\n error = _a.error,\n componentStack = _a.componentStack,\n eventId = _a.eventId;\n\n if (error) {\n if (React.isValidElement(fallback)) {\n return fallback;\n }\n\n if (typeof fallback === 'function') {\n return fallback({\n error: error,\n componentStack: componentStack,\n resetError: this.resetErrorBoundary,\n eventId: eventId\n });\n } // Fail gracefully if no fallback provided\n\n\n return null;\n }\n\n return this.props.children;\n };\n\n return ErrorBoundary;\n}(React.Component); // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction withErrorBoundary(WrappedComponent, errorBoundaryOptions) {\n var componentDisplayName = WrappedComponent.displayName || WrappedComponent.name || UNKNOWN_COMPONENT;\n\n var Wrapped = function Wrapped(props) {\n return React.createElement(ErrorBoundary, __assign({}, errorBoundaryOptions), React.createElement(WrappedComponent, __assign({}, props)));\n };\n\n Wrapped.displayName = \"errorBoundary(\" + componentDisplayName + \")\"; // Copy over static methods from Wrapped component to Profiler HOC\n // See: https://reactjs.org/docs/higher-order-components.html#static-methods-must-be-copied-over\n\n hoistNonReactStatics(Wrapped, WrappedComponent);\n return Wrapped;\n}\n\nexport { ErrorBoundary, withErrorBoundary };","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = {}.propertyIsEnumerable;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = {\n noWobble: {\n stiffness: 170,\n damping: 26\n },\n // the default, if nothing provided\n gentle: {\n stiffness: 120,\n damping: 14\n },\n wobbly: {\n stiffness: 180,\n damping: 12\n },\n stiff: {\n stiffness: 210,\n damping: 20\n }\n};\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndicatorsContainer = exports.indicatorsContainerCSS = exports.ValueContainer = exports.valueContainerCSS = exports.SelectContainer = exports.containerCSS = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n direction: isRtl ? 'rtl' : null,\n pointerEvents: isDisabled ? 'none' : null,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\n\nexports.containerCSS = containerCSS;\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 _react[\"default\"].createElement(\"div\", _extends({\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('container', props)), {\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Value Container\n// ==============================\n\n\nexports.SelectContainer = SelectContainer;\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};\n\nexports.valueContainerCSS = valueContainerCSS;\n\nvar ValueContainer = /*#__PURE__*/function (_Component) {\n _inherits(ValueContainer, _Component);\n\n function ValueContainer() {\n _classCallCheck(this, ValueContainer);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ValueContainer).apply(this, arguments));\n }\n\n _createClass(ValueContainer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n cx = _this$props.cx,\n isMulti = _this$props.isMulti,\n getStyles = _this$props.getStyles,\n hasValue = _this$props.hasValue;\n return _react[\"default\"].createElement(\"div\", {\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('valueContainer', this.props)), {\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n }, children);\n }\n }]);\n\n return ValueContainer;\n}(_react.Component); // ==============================\n// Indicator Container\n// ==============================\n\n\nexports.ValueContainer = ValueContainer;\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\n\nexports.indicatorsContainerCSS = indicatorsContainerCSS;\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 _react[\"default\"].createElement(\"div\", {\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('indicatorsContainer', props)), {\n 'indicators': true\n }, className)\n }, children);\n};\n\nexports.IndicatorsContainer = IndicatorsContainer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.css = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\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 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\nexports.css = css;\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 _react[\"default\"].createElement(\"div\", _extends({\n ref: innerRef,\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('control', props)), {\n 'control': true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }, className)\n }, innerProps), children);\n};\n\nvar _default = Control;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GroupHeading = exports.groupHeadingCSS = exports.groupCSS = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? 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}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\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\nexports.groupCSS = groupCSS;\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 _react[\"default\"].createElement(\"div\", {\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('group', props)), {\n 'group': true\n }, className)\n }, _react[\"default\"].createElement(Heading, _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n cx: cx\n }), label), _react[\"default\"].createElement(\"div\", null, children));\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\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};\n\nexports.groupHeadingCSS = groupHeadingCSS;\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 _react[\"default\"].createElement(\"div\", _extends({\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('groupHeading', _objectSpread({\n theme: theme\n }, cleanProps))), {\n 'group-heading': true\n }, className)\n }, cleanProps));\n};\n\nexports.GroupHeading = GroupHeading;\nvar _default = Group;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.inputCSS = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nvar _reactInputAutosize = _interopRequireDefault(require(\"react-input-autosize\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? 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}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _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\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\nexports.inputCSS = inputCSS;\n\nvar inputStyle = function inputStyle(isHidden) {\n return {\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 _react[\"default\"].createElement(\"div\", {\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n (0, _emotion.css)(getStyles('input', _objectSpread({\n theme: theme\n }, props)))\n }, _react[\"default\"].createElement(_reactInputAutosize[\"default\"], _extends({\n className: cx(null, {\n 'input': true\n }, className),\n inputRef: innerRef,\n inputStyle: inputStyle(isHidden),\n disabled: isDisabled\n }, props)));\n};\n\nvar _default = Input;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.MultiValueRemove = exports.MultiValueLabel = exports.MultiValueContainer = exports.MultiValueGeneric = exports.multiValueRemoveCSS = exports.multiValueLabelCSS = exports.multiValueCSS = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nvar _indicators = require(\"./indicators\");\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? 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}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\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 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};\n\nexports.multiValueCSS = multiValueCSS;\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};\n\nexports.multiValueLabelCSS = multiValueLabelCSS;\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};\n\nexports.multiValueRemoveCSS = multiValueRemoveCSS;\n\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return _react[\"default\"].createElement(\"div\", innerProps, children);\n};\n\nexports.MultiValueGeneric = MultiValueGeneric;\nvar MultiValueContainer = MultiValueGeneric;\nexports.MultiValueContainer = MultiValueContainer;\nvar MultiValueLabel = MultiValueGeneric;\nexports.MultiValueLabel = MultiValueLabel;\n\nvar MultiValueRemove = /*#__PURE__*/function (_Component) {\n _inherits(MultiValueRemove, _Component);\n\n function MultiValueRemove() {\n _classCallCheck(this, MultiValueRemove);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(MultiValueRemove).apply(this, arguments));\n }\n\n _createClass(MultiValueRemove, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n innerProps = _this$props.innerProps;\n return _react[\"default\"].createElement(\"div\", innerProps, children || _react[\"default\"].createElement(_indicators.CrossIcon, {\n size: 14\n }));\n }\n }]);\n\n return MultiValueRemove;\n}(_react.Component);\n\nexports.MultiValueRemove = MultiValueRemove;\n\nvar MultiValue = /*#__PURE__*/function (_Component2) {\n _inherits(MultiValue, _Component2);\n\n function MultiValue() {\n _classCallCheck(this, MultiValue);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(MultiValue).apply(this, arguments));\n }\n\n _createClass(MultiValue, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n components = _this$props2.components,\n cx = _this$props2.cx,\n data = _this$props2.data,\n getStyles = _this$props2.getStyles,\n innerProps = _this$props2.innerProps,\n isDisabled = _this$props2.isDisabled,\n removeProps = _this$props2.removeProps,\n selectProps = _this$props2.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n\n var containerInnerProps = _objectSpread({\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('multiValue', this.props)), {\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className)\n }, innerProps);\n\n var labelInnerProps = {\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('multiValueLabel', this.props)), {\n 'multi-value__label': true\n }, className)\n };\n\n var removeInnerProps = _objectSpread({\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('multiValueRemove', this.props)), {\n 'multi-value__remove': true\n }, className)\n }, removeProps);\n\n return _react[\"default\"].createElement(Container, {\n data: data,\n innerProps: containerInnerProps,\n selectProps: selectProps\n }, _react[\"default\"].createElement(Label, {\n data: data,\n innerProps: labelInnerProps,\n selectProps: selectProps\n }, children), _react[\"default\"].createElement(Remove, {\n data: data,\n innerProps: removeInnerProps,\n selectProps: selectProps\n }));\n }\n }]);\n\n return MultiValue;\n}(_react.Component);\n\n_defineProperty(MultiValue, \"defaultProps\", {\n cropWithEllipsis: true\n});\n\nvar _default = MultiValue;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.optionCSS = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\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 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: isSelected ? colors.primary : colors.primary50\n }\n };\n};\n\nexports.optionCSS = optionCSS;\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 _react[\"default\"].createElement(\"div\", _extends({\n ref: innerRef,\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('option', props)), {\n 'option': true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className)\n }, innerProps), children);\n};\n\nvar _default = Option;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.placeholderCSS = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\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\nexports.placeholderCSS = placeholderCSS;\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 _react[\"default\"].createElement(\"div\", _extends({\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('placeholder', props)), {\n 'placeholder': true\n }, className)\n }, innerProps), children);\n};\n\nvar _default = Placeholder;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.css = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar css = 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 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\nexports.css = css;\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 _react[\"default\"].createElement(\"div\", _extends({\n className: cx( /*#__PURE__*/(0, _emotion.css)(getStyles('singleValue', props)), {\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps), children);\n};\n\nvar _default = SingleValue;\nexports[\"default\"] = _default;","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object' && global && global.Object === Object && global;\nmodule.exports = freeGlobal;","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar NAN = 0 / 0;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\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 */\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\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 (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = toNumber;","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\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 */\n\n\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n/** Used to resolve the decompiled source of functions. */\n\nvar funcToString = funcProto.toString;\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 */\n\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\n}\n\nmodule.exports = toSource;","var baseToString = require('./_baseToString');\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 */\n\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","var baseFor = require('./_baseFor'),\n keys = require('./keys');\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 */\n\n\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar root = require('./_root'),\n stubFalse = require('./stubFalse');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Built-in value references. */\n\nvar Buffer = moduleExports ? root.Buffer : undefined;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\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 */\n\nvar isBuffer = nativeIsBuffer || stubFalse;\nmodule.exports = isBuffer;","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n/* Node.js helper references. */\n\n\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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 */\n\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\nmodule.exports = isTypedArray;","/**\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;","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 * 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 */\n\n\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n} // Add methods to `Stack`.\n\n\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\nmodule.exports = Stack;","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n/** Used to compose bitmasks for value comparisons. */\n\n\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 */\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 } // Check that cyclic values are equal.\n\n\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n\n var index = -1,\n result = true,\n seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;\n stack.set(array, other);\n stack.set(other, array); // Ignore non-index properties.\n\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n\n result = false;\n break;\n } // Recursively compare arrays (susceptible to call stack limits).\n\n\n if (seen) {\n if (!arraySome(other, function (othValue, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\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 */\n\n\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n\n while (++index < length) {\n this.add(values[index]);\n }\n} // Add methods to `SetCache`.\n\n\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\nmodule.exports = SetCache;","/**\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\n return false;\n}\n\nmodule.exports = arraySome;","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;","/**\n * 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\n return array;\n}\n\nmodule.exports = arrayPush;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar Set = getNative(root, 'Set');\nmodule.exports = Set;","var isObject = require('./isObject');\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 */\n\n\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;","/**\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\n return object[key] === srcValue && (srcValue !== undefined || key in Object(object));\n };\n}\n\nmodule.exports = matchesStrictComparable;","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while (fromRight ? index-- : ++index < length) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n\n return -1;\n}\n\nmodule.exports = baseFindIndex;","var toNumber = require('./toNumber');\n/** Used as references for various `Number` constants. */\n\n\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n\n value = toNumber(value);\n\n if (value === INFINITY || value === -INFINITY) {\n var sign = value < 0 ? -1 : 1;\n return sign * MAX_INTEGER;\n }\n\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n\n\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n\n return result;\n}\n\nmodule.exports = baseFlatten;","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\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 */\n\n\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n baseEach(collection, function (value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;","var getNative = require('./_getNative');\n\nvar defineProperty = function () {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}();\n\nmodule.exports = defineProperty;","/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\";\n/** Used to compose unicode capture groups. */\n\nvar rsZWJ = \"\\\\u200d\";\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;","var isSymbol = require('./isSymbol');\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n\n\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined ? current === current && !isSymbol(current) : comparator(current, computed))) {\n var computed = current,\n result = value;\n }\n }\n\n return result;\n}\n\nmodule.exports = baseExtremum;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flip = flip;\n\nvar _convert = require(\"./convert\");\n\nvar _convert2 = _interopRequireDefault(_convert);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction reduce(node, precision) {\n if (node.type === \"MathExpression\") return reduceMathExpression(node, precision);\n if (node.type === \"Calc\") return reduce(node.value, precision);\n return node;\n}\n\nfunction isEqual(left, right) {\n return left.type === right.type && left.value === right.value;\n}\n\nfunction isValueType(type) {\n switch (type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n case 'EmValue':\n case 'ExValue':\n case 'ChValue':\n case 'RemValue':\n case 'VhValue':\n case 'VwValue':\n case 'VminValue':\n case 'VmaxValue':\n case 'PercentageValue':\n case 'Value':\n return true;\n }\n\n return false;\n}\n\nfunction convertMathExpression(node, precision) {\n var nodes = (0, _convert2[\"default\"])(node.left, node.right, precision);\n var left = reduce(nodes.left, precision);\n var right = reduce(nodes.right, precision);\n\n if (left.type === \"MathExpression\" && right.type === \"MathExpression\") {\n if (left.operator === '/' && right.operator === '*' || left.operator === '-' && right.operator === '+' || left.operator === '*' && right.operator === '/' || left.operator === '+' && right.operator === '-') {\n if (isEqual(left.right, right.right)) nodes = (0, _convert2[\"default\"])(left.left, right.left, precision);else if (isEqual(left.right, right.left)) nodes = (0, _convert2[\"default\"])(left.left, right.right, precision);\n left = reduce(nodes.left, precision);\n right = reduce(nodes.right, precision);\n }\n }\n\n node.left = left;\n node.right = right;\n return node;\n}\n\nfunction flip(operator) {\n return operator === '+' ? '-' : '+';\n}\n\nfunction flipValue(node) {\n if (isValueType(node.type)) node.value = -node.value;else if (node.type == 'MathExpression') {\n node.left = flipValue(node.left);\n node.right = flipValue(node.right);\n }\n return node;\n}\n\nfunction reduceAddSubExpression(node, precision) {\n var _node = node,\n left = _node.left,\n right = _node.right,\n op = _node.operator;\n if (left.type === 'CssVariable' || right.type === 'CssVariable') return node; // something + 0 => something\n // something - 0 => something\n\n if (right.value === 0) return left; // 0 + something => something\n\n if (left.value === 0 && op === \"+\") return right; // 0 - something => -something\n\n if (left.value === 0 && op === \"-\") return flipValue(right); // value + value\n // value - value\n\n if (left.type === right.type && isValueType(left.type)) {\n node = Object.assign({}, left);\n if (op === \"+\") node.value = left.value + right.value;else node.value = left.value - right.value;\n } // value (expr)\n\n\n if (isValueType(left.type) && (right.operator === '+' || right.operator === '-') && right.type === 'MathExpression') {\n // value + (value + something) => (value + value) + something\n // value + (value - something) => (value + value) - something\n // value - (value + something) => (value - value) - something\n // value - (value - something) => (value - value) + something\n if (left.type === right.left.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left,\n right: right.left\n }, precision);\n node.right = right.right;\n node.operator = op === '-' ? flip(right.operator) : right.operator;\n return reduce(node, precision);\n } // value + (something + value) => (value + value) + something\n // value + (something - value) => (value - value) + something\n // value - (something + value) => (value - value) - something\n // value - (something - value) => (value + value) - something\n else if (left.type === right.right.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op === '-' ? flip(right.operator) : right.operator,\n left: left,\n right: right.right\n }, precision);\n node.right = right.left;\n return reduce(node, precision);\n }\n } // (expr) value\n\n\n if (left.type === 'MathExpression' && (left.operator === '+' || left.operator === '-') && isValueType(right.type)) {\n // (value + something) + value => (value + value) + something\n // (value - something) + value => (value + value) - something\n // (value + something) - value => (value - value) + something\n // (value - something) - value => (value - value) - something\n if (right.type === left.left.type) {\n node = Object.assign({}, left);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.left,\n right: right\n }, precision);\n return reduce(node, precision);\n } // (something + value) + value => something + (value + value)\n // (something - value1) + value2 => something - (value2 - value1)\n // (something + value) - value => something + (value - value)\n // (something - value) - value => something - (value + value)\n else if (right.type === left.right.type) {\n node = Object.assign({}, left);\n\n if (left.operator === '-') {\n node.right = reduce({\n type: 'MathExpression',\n operator: op === '-' ? '+' : '-',\n left: right,\n right: left.right\n }, precision);\n node.operator = op === '-' ? '-' : '+';\n } else {\n node.right = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.right,\n right: right\n }, precision);\n }\n\n if (node.right.value < 0) {\n node.right.value *= -1;\n node.operator = node.operator === '-' ? '+' : '-';\n }\n\n return reduce(node, precision);\n }\n }\n\n return node;\n}\n\nfunction reduceDivisionExpression(node, precision) {\n if (!isValueType(node.right.type)) return node;\n if (node.right.type !== 'Value') throw new Error(\"Cannot divide by \\\"\" + node.right.unit + \"\\\", number expected\");\n if (node.right.value === 0) throw new Error('Cannot divide by zero'); // (expr) / value\n\n if (node.left.type === 'MathExpression') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value /= node.right.value;\n node.left.right.value /= node.right.value;\n return reduce(node.left, precision);\n }\n\n return node;\n } // something / value\n else if (isValueType(node.left.type)) {\n node.left.value /= node.right.value;\n return node.left;\n }\n\n return node;\n}\n\nfunction reduceMultiplicationExpression(node) {\n // (expr) * value\n if (node.left.type === 'MathExpression' && node.right.type === 'Value') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value *= node.right.value;\n node.left.right.value *= node.right.value;\n return node.left;\n }\n } // something * value\n else if (isValueType(node.left.type) && node.right.type === 'Value') {\n node.left.value *= node.right.value;\n return node.left;\n } // value * (expr)\n else if (node.left.type === 'Value' && node.right.type === 'MathExpression') {\n if (isValueType(node.right.left.type) && isValueType(node.right.right.type)) {\n node.right.left.value *= node.left.value;\n node.right.right.value *= node.left.value;\n return node.right;\n }\n } // value * something\n else if (node.left.type === 'Value' && isValueType(node.right.type)) {\n node.right.value *= node.left.value;\n return node.right;\n }\n\n return node;\n}\n\nfunction reduceMathExpression(node, precision) {\n node = convertMathExpression(node, precision);\n\n switch (node.operator) {\n case \"+\":\n case \"-\":\n return reduceAddSubExpression(node, precision);\n\n case \"/\":\n return reduceDivisionExpression(node, precision);\n\n case \"*\":\n return reduceMultiplicationExpression(node);\n }\n\n return node;\n}\n\nexports[\"default\"] = reduce;","var baseFindKey = require('./_baseFindKey'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n/**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n\n\nfunction findKey(object, predicate) {\n return baseFindKey(object, baseIteratee(predicate, 3), baseForOwn);\n}\n\nmodule.exports = findKey;","module.exports = require(\"core-js/library/fn/object/create\");","module.exports = require(\"core-js/library/fn/object/set-prototype-of\");","export default function symbolObservablePonyfill(root) {\n var result;\n var _Symbol = root.Symbol;\n\n if (typeof _Symbol === 'function') {\n if (_Symbol.observable) {\n result = _Symbol.observable;\n } else {\n result = _Symbol('observable');\n _Symbol.observable = result;\n }\n } else {\n result = '@@observable';\n }\n\n return result;\n}\n;","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\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 * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleLinkService = exports.PDFLinkService = void 0;\n\nvar _ui_utils = require(\"./ui_utils.js\");\n\nvar PDFLinkService = /*#__PURE__*/function () {\n function PDFLinkService() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n eventBus = _ref.eventBus,\n _ref$externalLinkTarg = _ref.externalLinkTarget,\n externalLinkTarget = _ref$externalLinkTarg === void 0 ? null : _ref$externalLinkTarg,\n _ref$externalLinkRel = _ref.externalLinkRel,\n externalLinkRel = _ref$externalLinkRel === void 0 ? null : _ref$externalLinkRel,\n _ref$externalLinkEnab = _ref.externalLinkEnabled,\n externalLinkEnabled = _ref$externalLinkEnab === void 0 ? true : _ref$externalLinkEnab,\n _ref$ignoreDestinatio = _ref.ignoreDestinationZoom,\n ignoreDestinationZoom = _ref$ignoreDestinatio === void 0 ? false : _ref$ignoreDestinatio;\n\n _classCallCheck(this, PDFLinkService);\n\n this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)();\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this.externalLinkEnabled = externalLinkEnabled;\n this._ignoreDestinationZoom = ignoreDestinationZoom;\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n this._pagesRefCache = null;\n }\n\n _createClass(PDFLinkService, [{\n key: \"setDocument\",\n value: function setDocument(pdfDocument) {\n var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n this._pagesRefCache = Object.create(null);\n }\n }, {\n key: \"setViewer\",\n value: function setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n }, {\n key: \"setHistory\",\n value: function setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n }, {\n key: \"pagesCount\",\n get: function get() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n }, {\n key: \"page\",\n get: function get() {\n return this.pdfViewer.currentPageNumber;\n },\n set: function set(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n }, {\n key: \"rotation\",\n get: function get() {\n return this.pdfViewer.pagesRotation;\n },\n set: function set(value) {\n this.pdfViewer.pagesRotation = value;\n }\n }, {\n key: \"navigateTo\",\n value: function navigateTo(dest) {\n var _this = this;\n\n var goToDestination = function goToDestination(_ref2) {\n var namedDest = _ref2.namedDest,\n explicitDest = _ref2.explicitDest;\n var destRef = explicitDest[0];\n var pageNumber;\n\n if (destRef instanceof Object) {\n pageNumber = _this._cachedPageNumber(destRef);\n\n if (pageNumber === null) {\n _this.pdfDocument.getPageIndex(destRef).then(function (pageIndex) {\n _this.cachePageRef(pageIndex + 1, destRef);\n\n goToDestination({\n namedDest: namedDest,\n explicitDest: explicitDest\n });\n })[\"catch\"](function () {\n console.error(\"PDFLinkService.navigateTo: \\\"\".concat(destRef, \"\\\" is not \") + \"a valid page reference, for dest=\\\"\".concat(dest, \"\\\".\"));\n });\n\n return;\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n } else {\n console.error(\"PDFLinkService.navigateTo: \\\"\".concat(destRef, \"\\\" is not \") + \"a valid destination reference, for dest=\\\"\".concat(dest, \"\\\".\"));\n return;\n }\n\n if (!pageNumber || pageNumber < 1 || pageNumber > _this.pagesCount) {\n console.error(\"PDFLinkService.navigateTo: \\\"\".concat(pageNumber, \"\\\" is not \") + \"a valid page number, for dest=\\\"\".concat(dest, \"\\\".\"));\n return;\n }\n\n if (_this.pdfHistory) {\n _this.pdfHistory.pushCurrentPosition();\n\n _this.pdfHistory.push({\n namedDest: namedDest,\n explicitDest: explicitDest,\n pageNumber: pageNumber\n });\n }\n\n _this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber,\n destArray: explicitDest,\n ignoreDestinationZoom: _this._ignoreDestinationZoom\n });\n };\n\n new Promise(function (resolve, reject) {\n if (typeof dest === \"string\") {\n _this.pdfDocument.getDestination(dest).then(function (destArray) {\n resolve({\n namedDest: dest,\n explicitDest: destArray\n });\n });\n\n return;\n }\n\n resolve({\n namedDest: \"\",\n explicitDest: dest\n });\n }).then(function (data) {\n if (!Array.isArray(data.explicitDest)) {\n console.error(\"PDFLinkService.navigateTo: \\\"\".concat(data.explicitDest, \"\\\" is\") + \" not a valid destination array, for dest=\\\"\".concat(dest, \"\\\".\"));\n return;\n }\n\n goToDestination(data);\n });\n }\n }, {\n key: \"getDestinationHash\",\n value: function getDestinationHash(dest) {\n if (typeof dest === \"string\") {\n return this.getAnchorUrl(\"#\" + escape(dest));\n }\n\n if (Array.isArray(dest)) {\n var str = JSON.stringify(dest);\n return this.getAnchorUrl(\"#\" + escape(str));\n }\n\n return this.getAnchorUrl(\"\");\n }\n }, {\n key: \"getAnchorUrl\",\n value: function getAnchorUrl(anchor) {\n return (this.baseUrl || \"\") + anchor;\n }\n }, {\n key: \"setHash\",\n value: function setHash(hash) {\n var pageNumber, dest;\n\n if (hash.includes(\"=\")) {\n var params = (0, _ui_utils.parseQueryString)(hash);\n\n if (\"search\" in params) {\n this.eventBus.dispatch(\"findfromurlhash\", {\n source: this,\n query: params[\"search\"].replace(/\"/g, \"\"),\n phraseSearch: params[\"phrase\"] === \"true\"\n });\n }\n\n if (\"nameddest\" in params) {\n this.navigateTo(params.nameddest);\n return;\n }\n\n if (\"page\" in params) {\n pageNumber = params.page | 0 || 1;\n }\n\n if (\"zoom\" in params) {\n var zoomArgs = params.zoom.split(\",\");\n var zoomArg = zoomArgs[0];\n var zoomArgNumber = parseFloat(zoomArg);\n\n if (!zoomArg.includes(\"Fit\")) {\n dest = [null, {\n name: \"XYZ\"\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];\n } else {\n if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n dest = [null, {\n name: zoomArg\n }];\n } else if (zoomArg === \"FitH\" || zoomArg === \"FitBH\" || zoomArg === \"FitV\" || zoomArg === \"FitBV\") {\n dest = [null, {\n name: zoomArg\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];\n } else if (zoomArg === \"FitR\") {\n if (zoomArgs.length !== 5) {\n console.error('PDFLinkService.setHash: Not enough parameters for \"FitR\".');\n } else {\n dest = [null, {\n name: zoomArg\n }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];\n }\n } else {\n console.error(\"PDFLinkService.setHash: \\\"\".concat(zoomArg, \"\\\" is not \") + \"a valid zoom value.\");\n }\n }\n }\n\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true\n });\n } else if (pageNumber) {\n this.page = pageNumber;\n }\n\n if (\"pagemode\" in params) {\n this.eventBus.dispatch(\"pagemode\", {\n source: this,\n mode: params.pagemode\n });\n }\n } else {\n dest = unescape(hash);\n\n try {\n dest = JSON.parse(dest);\n\n if (!Array.isArray(dest)) {\n dest = dest.toString();\n }\n } catch (ex) {}\n\n if (typeof dest === \"string\" || isValidExplicitDestination(dest)) {\n this.navigateTo(dest);\n return;\n }\n\n console.error(\"PDFLinkService.setHash: \\\"\".concat(unescape(hash), \"\\\" is not \") + \"a valid destination.\");\n }\n }\n }, {\n key: \"executeNamedAction\",\n value: function executeNamedAction(action) {\n switch (action) {\n case \"GoBack\":\n if (this.pdfHistory) {\n this.pdfHistory.back();\n }\n\n break;\n\n case \"GoForward\":\n if (this.pdfHistory) {\n this.pdfHistory.forward();\n }\n\n break;\n\n case \"NextPage\":\n if (this.page < this.pagesCount) {\n this.page++;\n }\n\n break;\n\n case \"PrevPage\":\n if (this.page > 1) {\n this.page--;\n }\n\n break;\n\n case \"LastPage\":\n this.page = this.pagesCount;\n break;\n\n case \"FirstPage\":\n this.page = 1;\n break;\n\n default:\n break;\n }\n\n this.eventBus.dispatch(\"namedaction\", {\n source: this,\n action: action\n });\n }\n }, {\n key: \"cachePageRef\",\n value: function cachePageRef(pageNum, pageRef) {\n if (!pageRef) {\n return;\n }\n\n var refStr = pageRef.gen === 0 ? \"\".concat(pageRef.num, \"R\") : \"\".concat(pageRef.num, \"R\").concat(pageRef.gen);\n this._pagesRefCache[refStr] = pageNum;\n }\n }, {\n key: \"_cachedPageNumber\",\n value: function _cachedPageNumber(pageRef) {\n var refStr = pageRef.gen === 0 ? \"\".concat(pageRef.num, \"R\") : \"\".concat(pageRef.num, \"R\").concat(pageRef.gen);\n return this._pagesRefCache && this._pagesRefCache[refStr] || null;\n }\n }, {\n key: \"isPageVisible\",\n value: function isPageVisible(pageNumber) {\n return this.pdfViewer.isPageVisible(pageNumber);\n }\n }]);\n\n return PDFLinkService;\n}();\n\nexports.PDFLinkService = PDFLinkService;\n\nfunction isValidExplicitDestination(dest) {\n if (!Array.isArray(dest)) {\n return false;\n }\n\n var destLength = dest.length;\n\n if (destLength < 2) {\n return false;\n }\n\n var page = dest[0];\n\n if (!(_typeof(page) === \"object\" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) {\n return false;\n }\n\n var zoom = dest[1];\n\n if (!(_typeof(zoom) === \"object\" && typeof zoom.name === \"string\")) {\n return false;\n }\n\n var allowNull = true;\n\n switch (zoom.name) {\n case \"XYZ\":\n if (destLength !== 5) {\n return false;\n }\n\n break;\n\n case \"Fit\":\n case \"FitB\":\n return destLength === 2;\n\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (destLength !== 3) {\n return false;\n }\n\n break;\n\n case \"FitR\":\n if (destLength !== 6) {\n return false;\n }\n\n allowNull = false;\n break;\n\n default:\n return false;\n }\n\n for (var i = 2; i < destLength; i++) {\n var param = dest[i];\n\n if (!(typeof param === \"number\" || allowNull && param === null)) {\n return false;\n }\n }\n\n return true;\n}\n\nvar SimpleLinkService = /*#__PURE__*/function () {\n function SimpleLinkService() {\n _classCallCheck(this, SimpleLinkService);\n\n this.externalLinkTarget = null;\n this.externalLinkRel = null;\n this.externalLinkEnabled = true;\n this._ignoreDestinationZoom = false;\n }\n\n _createClass(SimpleLinkService, [{\n key: \"pagesCount\",\n get: function get() {\n return 0;\n }\n }, {\n key: \"page\",\n get: function get() {\n return 0;\n },\n set: function set(value) {}\n }, {\n key: \"rotation\",\n get: function get() {\n return 0;\n },\n set: function set(value) {}\n }, {\n key: \"navigateTo\",\n value: function navigateTo(dest) {}\n }, {\n key: \"getDestinationHash\",\n value: function getDestinationHash(dest) {\n return \"#\";\n }\n }, {\n key: \"getAnchorUrl\",\n value: function getAnchorUrl(hash) {\n return \"#\";\n }\n }, {\n key: \"setHash\",\n value: function setHash(hash) {}\n }, {\n key: \"executeNamedAction\",\n value: function executeNamedAction(action) {}\n }, {\n key: \"cachePageRef\",\n value: function cachePageRef(pageNum, pageRef) {}\n }, {\n key: \"isPageVisible\",\n value: function isPageVisible(pageNumber) {\n return true;\n }\n }]);\n\n return SimpleLinkService;\n}();\n\nexports.SimpleLinkService = SimpleLinkService;","\"use strict\";\n\nexports.__esModule = true;\n\nexports[\"default\"] = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function webpackUniversalModuleDefinition(root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define([], factory);else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') exports[\"indefinite\"] = factory();else root[\"indefinite\"] = factory();\n})(window, function () {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && _typeof(value) === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) {\n __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n }\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 2);\n /******/\n }(\n /************************************************************************/\n\n /******/\n [\n /* 0 */\n\n /***/\n function (module, exports) {\n var STARTS_WITH_VOWEL = /^[aeiouAEIOU]/;\n /**\n * Array#indexOf is faster IF the word starts with \"a\" (for example),\n * but negligibly faster when you have to .toLowerCase() the word, and\n * slower if the word happens to start with (e.g.) \"u.\"\n */\n\n exports.startsWithVowel = function (word) {\n return STARTS_WITH_VOWEL.test(word);\n };\n\n exports.capitalize = function (article, opts) {\n if (opts.capitalize) {\n article = \"\".concat(article.charAt(0).toUpperCase()).concat(article.slice(1));\n }\n\n return article;\n };\n /***/\n\n },\n /* 1 */\n\n /***/\n function (module, exports) {\n exports.check = function (word, ending) {\n if (ending) {\n // If the word ends in the ending, remove it.\n var regex = new RegExp(\"\".concat(ending, \"$\"));\n word = word.replace(regex, '');\n }\n\n return exports.list.indexOf(word) > -1;\n };\n /**\n * Here follows a List of words that take irregular articles because their\n * first letter is either a consonant pronounced like a vowel (hour) or a\n * vowel proncounced like a consonant (ukelele). Note that this is not only\n * nouns because adjectives and adverbs that start with these letters could\n * also follow an article when they identify a later noun, as in \"a useless\n * tool.\"\n *\n * This is not an attempt at a complete list, but rather a collection of\n * words used in at least moderate frequency. A list of ALL irregular words\n * would be too exhaustive to compile without some sort of tool.\n * http://www.thefreedictionary.com/words-that-start-with-eu says there are\n * over 1800 words starting with \"eu\" alone.\n *\n * At least for now, this list omits proper names, as they aren't USUALLY\n * used in such a way as to require an _indefinite_ article. I can't think,\n * for example, of a case where you'd want to say \"a Eustace.\"\n */\n\n\n exports.list = [// Nouns: eu like y\n 'eunuch', 'eucalyptus', 'eugenics', 'eulogy', 'euphemism', 'euphony', 'euphoria', 'eureka', // Adjectives: eu like y\n 'euro', 'european', 'euphemistic', 'euphonic', 'euphoric', // Adverbs: eu like y\n 'euphemistically', 'euphonically', 'euphorically', // Nouns: silent h\n 'heir', 'heiress', 'herb', 'homage', 'honesty', 'honor', 'honour', 'hour', // Adjectives: silent h\n 'honest', 'honorous', // Adverbs: silent h\n 'honestly', 'hourly', // Nouns: o like w\n 'one', 'ouija', // Adjectives: o like w\n 'once', // Adverbs: o like w\n // Nouns: u like y\n 'ubiquity', 'udometer', 'ufo', 'uke', 'ukelele', 'ululate', 'unicorn', 'unicycle', 'uniform', 'unify', 'union', 'unison', 'unit', 'unity', 'universe', 'university', 'upas', 'ural', 'uranium', 'urea', 'ureter', 'urethra', 'urine', 'urologist', 'urology', 'urus', 'usage', 'use', 'user', 'usual', 'usurp', 'usury', 'utensil', 'uterus', 'utility', 'utopia', 'utricle', 'uvarovite', 'uvea', 'uvula', 'utah', 'utahn', // Adjectives: u like y\n 'ubiquitous', 'ugandan', 'ukrainian', 'unanimous', 'unicameral', 'unified', 'unique', 'unisex', 'universal', 'urinal', 'urological', 'useful', 'useless', 'usurious', 'usurped', 'utilitarian', 'utopic', // Adverbs: u like y\n 'ubiquitously', 'unanimously', 'unicamerally', 'uniquely', 'universally', 'urologically', 'usefully', 'uselessly', 'usuriously', // Nouns: y like i\n 'yttria', 'yggdrasil', 'ylem', 'yperite', 'ytterbia', 'ytterbium', 'yttrium', // Adjectives: y like i\n 'ytterbous', 'ytterbic', 'yttric', // Single letters\n 'f', 'h', 'l', 'm', 'n', 'r', 's', 'u', 'x'];\n /***/\n },\n /* 2 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var _require = __webpack_require__(0),\n capitalize = _require.capitalize;\n\n var irregulars = __webpack_require__(1);\n\n var rules = __webpack_require__(3);\n\n var indefinite = function indefinite(word) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var article;\n /**\n * I'd really prefer to use for of here, but babel converts that\n * to something using Symbol.iterator, which PhantomJS chokes on.\n */\n\n rules.some(function (rule) {\n if (rule.check(word, opts)) {\n article = rule.run(word, opts);\n return true;\n }\n });\n return handleOptions(article, opts, word);\n };\n\n var handleOptions = function handleOptions(article, opts, word) {\n article = capitalize(article, opts);\n\n if (opts.articleOnly) {\n return article;\n }\n\n return \"\".concat(article, \" \").concat(word);\n };\n\n indefinite.irregularWords = irregulars.list;\n module.exports = indefinite;\n /***/\n },\n /* 3 */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = [__webpack_require__(4), __webpack_require__(5), __webpack_require__(6)];\n /***/\n },\n /* 4 */\n\n /***/\n function (module, exports) {\n var NUMBERS = /^([0-9,]+)/;\n var EIGHT_ELEVEN_EIGHTEEN = /^(11|8|18)/;\n var ELEVEN_EIGHTEEN = /^(11|18)/;\n\n exports.check = function (word) {\n return NUMBERS.test(word);\n };\n\n exports.run = function (word, opts) {\n var number = word.toString().match(NUMBERS)[1].replace(/,/g, '');\n var article = 'a';\n\n if (EIGHT_ELEVEN_EIGHTEEN.test(number)) {\n var startsWith11Or18 = ELEVEN_EIGHTEEN.test(number); // If the number starts with 11 or 18 and is of length 4,\n // the pronunciation is ambiguous so check opts.numbers to see\n // how to render it. Otherwise, if it starts with 11 or 18\n // and has 2, 5, 8, 11, etc. digits, use 'an.' Finally, if it\n // starts with an 8, use 'an.' For everything else, use 'a.'\n\n if (startsWith11Or18 && number.length === 4) {\n article = opts.numbers === 'colloquial' ? 'an' : 'a';\n } else if (startsWith11Or18 && (number.length - 2) % 3 === 0) {\n article = 'an';\n } else {\n article = number.startsWith('8') ? 'an' : 'a';\n }\n }\n\n return article;\n };\n /***/\n\n },\n /* 5 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var _require = __webpack_require__(0),\n startsWithVowel = _require.startsWithVowel;\n\n var ACRONYM = /^[A-Z]+$/;\n var IRREGULAR_ACRONYM = /^[UFHLMNRSX]/;\n\n var isIrregularAcronym = function isIrregularAcronym(word) {\n return IRREGULAR_ACRONYM.test(word.charAt(0));\n };\n /**\n * Both = a && b\n * Neither = !a && !b\n * In the case of Booleans, this means\n * either both true or both false, so\n * we can just compare the equality of\n * a and b.\n */\n\n\n var bothOrNeither = function bothOrNeither(a, b) {\n return a === b;\n };\n /**\n * If the entirety of the first word is capital letters\n * and case insensitivity is off, it's an acronym.\n */\n\n\n exports.check = function (word, _ref) {\n var caseInsensitive = _ref.caseInsensitive;\n return caseInsensitive ? false : ACRONYM.test(word.split(' ')[0]);\n };\n\n exports.run = function (word) {\n var isIrregular = isIrregularAcronym(word);\n var initialVowel = startsWithVowel(word);\n /*\n * If it starts with U: \"a\"\n * If it starts with any other vowel: \"an\"\n * If it starts with F, H, L, M, N, R, S, or X: \"an\"\n * If it starts with any other consonant: \"a\"\n */\n\n var article = bothOrNeither(initialVowel, isIrregular) ? 'a' : 'an';\n return article;\n };\n /***/\n\n },\n /* 6 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var _require = __webpack_require__(0),\n startsWithVowel = _require.startsWithVowel;\n\n var irregulars = __webpack_require__(1);\n\n var EXTRAS = /[\\s'-]/;\n\n var getFirst = function getFirst(word) {\n return word.split(EXTRAS)[0].toLowerCase();\n };\n\n var xor = function xor(a, b) {\n return (a || b) && !(a && b);\n };\n /**\n * Try some variations on the word to determine whether it's irregular.\n * Specifically, try trimming s, then es, then ed because those are common\n * forms of plurals and past tense verbs (which can be used like adjectives).\n */\n\n\n var checkForIrregulars = function checkForIrregulars(part) {\n return [null, 's', 'es', 'ed'].reduce(function (memo, ending) {\n return memo || irregulars.check(part, ending);\n }, false);\n };\n\n exports.check = function () {\n return true;\n };\n\n exports.run = function (word, opts) {\n // Only check the first word. Also, if it's hyphenated, only\n // check the first part. Finally, if it's possessive, ignore\n // the possessive part.\n var first = getFirst(word);\n var isIrregular = checkForIrregulars(first);\n /**\n * If it starts with a vowel and isn't irregular: \"an\"\n * If it starts with a vowel and IS irregular: \"a\"\n * If it starts with a consonant and isn't irregular: \"a\"\n * If it starts with a consonant and IS irregular: \"an\"\n */\n\n var article = xor(startsWithVowel(word), isIrregular) ? 'an' : 'a';\n return article;\n };\n /***/\n\n }\n /******/\n ])\n );\n});","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar $inject_window_ResizeObserver = require('resize-observer-polyfill'),\n React = require('react'),\n reactDom = require('react-dom');\n\nfunction _interopDefaultLegacy(e) {\n return e && _typeof(e) === 'object' && 'default' in e ? e : {\n 'default': e\n };\n}\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function get() {\n return e[k];\n }\n });\n }\n });\n }\n\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar $inject_window_ResizeObserver__default = /*#__PURE__*/_interopDefaultLegacy($inject_window_ResizeObserver);\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\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***************************************************************************** */\n\n/* global Reflect, Promise */\n\n\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\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\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\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*/\n\nfunction isObject$3(value) {\n var type = _typeof(value);\n\n return value != null && (type == 'object' || type == 'function');\n}\n\nvar isObject_1 = isObject$3;\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal$1 = _typeof(commonjsGlobal) == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\nvar _freeGlobal = freeGlobal$1;\nvar freeGlobal = _freeGlobal;\n/** Detect free variable `self`. */\n\nvar freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root$2 = freeGlobal || freeSelf || Function('return this')();\nvar _root = root$2;\nvar root$1 = _root;\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 */\n\nvar now$1 = function now$1() {\n return root$1.Date.now();\n};\n\nvar now_1 = now$1;\n/** Used to match a single whitespace character. */\n\nvar reWhitespace = /\\s/;\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n\nfunction trimmedEndIndex$1(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n\n return index;\n}\n\nvar _trimmedEndIndex = trimmedEndIndex$1;\nvar trimmedEndIndex = _trimmedEndIndex;\n/** Used to match leading whitespace. */\n\nvar reTrimStart = /^\\s+/;\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n\nfunction baseTrim$1(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string;\n}\n\nvar _baseTrim = baseTrim$1;\nvar root = _root;\n/** Built-in value references. */\n\nvar Symbol$2 = root.Symbol;\nvar _Symbol = Symbol$2;\nvar Symbol$1 = _Symbol;\n/** Used for built-in method references. */\n\nvar objectProto$1 = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto$1.hasOwnProperty;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString$1 = objectProto$1.toString;\n/** Built-in value references. */\n\nvar symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;\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 */\n\nfunction getRawTag$1(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag$1),\n tag = value[symToStringTag$1];\n\n try {\n value[symToStringTag$1] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString$1.call(value);\n\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag$1] = tag;\n } else {\n delete value[symToStringTag$1];\n }\n }\n\n return result;\n}\n\nvar _getRawTag = getRawTag$1;\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\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 */\n\nfunction objectToString$1(value) {\n return nativeObjectToString.call(value);\n}\n\nvar _objectToString = objectToString$1;\nvar _Symbol2 = _Symbol,\n getRawTag = _getRawTag,\n objectToString = _objectToString;\n/** `Object#toString` result references. */\n\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol2 ? _Symbol2.toStringTag : undefined;\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 */\n\nfunction baseGetTag$1(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nvar _baseGetTag = baseGetTag$1;\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*/\n\nfunction isObjectLike$1(value) {\n return value != null && _typeof(value) == 'object';\n}\n\nvar isObjectLike_1 = isObjectLike$1;\nvar baseGetTag = _baseGetTag,\n isObjectLike = isObjectLike_1;\n/** `Object#toString` result references. */\n\nvar symbolTag = '[object Symbol]';\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 */\n\nfunction isSymbol$1(value) {\n return _typeof(value) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n}\n\nvar isSymbol_1 = isSymbol$1;\nvar baseTrim = _baseTrim,\n isObject$2 = isObject_1,\n isSymbol = isSymbol_1;\n/** Used as references for various `Number` constants. */\n\nvar NAN = 0 / 0;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\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 */\n\nfunction toNumber$1(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject$2(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject$2(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nvar toNumber_1 = toNumber$1;\nvar isObject$1 = isObject_1,\n now = now_1,\n toNumber = toNumber_1;\n/** Error message constants. */\n\nvar FUNC_ERROR_TEXT$1 = 'Expected a function';\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\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 */\n\nfunction debounce$1(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$1);\n }\n\n wait = toNumber(wait) || 0;\n\n if (isObject$1(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 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; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\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 return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // 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\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\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 lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\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\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nvar debounce_1 = debounce$1;\nvar debounce = debounce_1,\n isObject = isObject_1;\n/** Error message constants. */\n\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 */\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\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nvar throttle_1 = throttle;\n\nvar patchResizeHandler = function patchResizeHandler(resizeCallback, refreshMode, refreshRate, refreshOptions) {\n switch (refreshMode) {\n case 'debounce':\n return debounce_1(resizeCallback, refreshRate, refreshOptions);\n\n case 'throttle':\n return throttle_1(resizeCallback, refreshRate, refreshOptions);\n\n default:\n return resizeCallback;\n }\n};\n\nvar isFunction = function isFunction(fn) {\n return typeof fn === 'function';\n};\n\nvar isSSR = function isSSR() {\n return typeof window === 'undefined';\n};\n\nvar isDOMElement = function isDOMElement(element) {\n return element instanceof Element || element instanceof HTMLDocument;\n};\n\nvar createNotifier = function createNotifier(onResize, setSize, handleWidth, handleHeight) {\n return function (_a) {\n var width = _a.width,\n height = _a.height;\n setSize(function (prev) {\n if (prev.width === width && prev.height === height) {\n // skip if dimensions haven't changed\n return prev;\n }\n\n if (prev.width === width && !handleHeight || prev.height === height && !handleWidth) {\n // process `handleHeight/handleWidth` props\n return prev;\n }\n\n if (onResize && isFunction(onResize)) {\n onResize(width, height);\n }\n\n return {\n width: width,\n height: height\n };\n });\n };\n};\n\nvar ResizeDetector =\n/** @class */\nfunction (_super) {\n __extends(ResizeDetector, _super);\n\n function ResizeDetector(props) {\n var _this = _super.call(this, props) || this;\n\n _this.cancelHandler = function () {\n if (_this.resizeHandler && _this.resizeHandler.cancel) {\n // cancel debounced handler\n _this.resizeHandler.cancel();\n\n _this.resizeHandler = null;\n }\n };\n\n _this.attachObserver = function () {\n var _a = _this.props,\n targetRef = _a.targetRef,\n observerOptions = _a.observerOptions;\n\n if (isSSR()) {\n return;\n }\n\n if (targetRef && targetRef.current) {\n _this.targetRef.current = targetRef.current;\n }\n\n var element = _this.getElement();\n\n if (!element) {\n // can't find element to observe\n return;\n }\n\n if (_this.observableElement && _this.observableElement === element) {\n // element is already observed\n return;\n }\n\n _this.observableElement = element;\n\n _this.resizeObserver.observe(element, observerOptions);\n };\n\n _this.getElement = function () {\n var _a = _this.props,\n querySelector = _a.querySelector,\n targetDomEl = _a.targetDomEl;\n if (isSSR()) return null; // in case we pass a querySelector\n\n if (querySelector) return document.querySelector(querySelector); // in case we pass a DOM element\n\n if (targetDomEl && isDOMElement(targetDomEl)) return targetDomEl; // in case we pass a React ref using React.createRef()\n\n if (_this.targetRef && isDOMElement(_this.targetRef.current)) return _this.targetRef.current; // the worse case when we don't receive any information from the parent and the library doesn't add any wrappers\n // we have to use a deprecated `findDOMNode` method in order to find a DOM element to attach to\n\n var currentElement = reactDom.findDOMNode(_this);\n if (!currentElement) return null;\n\n var renderType = _this.getRenderType();\n\n switch (renderType) {\n case 'renderProp':\n return currentElement;\n\n case 'childFunction':\n return currentElement;\n\n case 'child':\n return currentElement;\n\n case 'childArray':\n return currentElement;\n\n default:\n return currentElement.parentElement;\n }\n };\n\n _this.createResizeHandler = function (entries) {\n var _a = _this.props,\n _b = _a.handleWidth,\n handleWidth = _b === void 0 ? true : _b,\n _c = _a.handleHeight,\n handleHeight = _c === void 0 ? true : _c,\n onResize = _a.onResize;\n if (!handleWidth && !handleHeight) return;\n var notifyResize = createNotifier(onResize, _this.setState.bind(_this), handleWidth, handleHeight);\n entries.forEach(function (entry) {\n var _a = entry && entry.contentRect || {},\n width = _a.width,\n height = _a.height;\n\n var shouldSetSize = !_this.skipOnMount && !isSSR();\n\n if (shouldSetSize) {\n notifyResize({\n width: width,\n height: height\n });\n }\n\n _this.skipOnMount = false;\n });\n };\n\n _this.getRenderType = function () {\n var _a = _this.props,\n render = _a.render,\n children = _a.children;\n\n if (isFunction(render)) {\n // DEPRECATED. Use `Child Function Pattern` instead\n return 'renderProp';\n }\n\n if (isFunction(children)) {\n return 'childFunction';\n }\n\n if (React.isValidElement(children)) {\n return 'child';\n }\n\n if (Array.isArray(children)) {\n // DEPRECATED. Wrap children with a single parent\n return 'childArray';\n } // DEPRECATED. Use `Child Function Pattern` instead\n\n\n return 'parent';\n };\n\n var skipOnMount = props.skipOnMount,\n refreshMode = props.refreshMode,\n _a = props.refreshRate,\n refreshRate = _a === void 0 ? 1000 : _a,\n refreshOptions = props.refreshOptions;\n _this.state = {\n width: undefined,\n height: undefined\n };\n _this.skipOnMount = skipOnMount;\n _this.targetRef = React.createRef();\n _this.observableElement = null;\n\n if (isSSR()) {\n return _this;\n }\n\n _this.resizeHandler = patchResizeHandler(_this.createResizeHandler, refreshMode, refreshRate, refreshOptions);\n _this.resizeObserver = new $inject_window_ResizeObserver__default[\"default\"](_this.resizeHandler);\n return _this;\n }\n\n ResizeDetector.prototype.componentDidMount = function () {\n this.attachObserver();\n };\n\n ResizeDetector.prototype.componentDidUpdate = function () {\n this.attachObserver();\n };\n\n ResizeDetector.prototype.componentWillUnmount = function () {\n if (isSSR()) {\n return;\n }\n\n this.resizeObserver.disconnect();\n this.cancelHandler();\n };\n\n ResizeDetector.prototype.render = function () {\n var _a = this.props,\n render = _a.render,\n children = _a.children,\n _b = _a.nodeType,\n WrapperTag = _b === void 0 ? 'div' : _b;\n var _c = this.state,\n width = _c.width,\n height = _c.height;\n var childProps = {\n width: width,\n height: height,\n targetRef: this.targetRef\n };\n var renderType = this.getRenderType();\n var typedChildren;\n\n switch (renderType) {\n case 'renderProp':\n return render && render(childProps);\n\n case 'childFunction':\n typedChildren = children;\n return typedChildren(childProps);\n\n case 'child':\n // @TODO bug prone logic\n typedChildren = children;\n\n if (typedChildren.type && typeof typedChildren.type === 'string') {\n // child is a native DOM elements such as div, span etc\n childProps.targetRef;\n\n var nativeProps = __rest(childProps, [\"targetRef\"]);\n\n return React.cloneElement(typedChildren, nativeProps);\n } // class or functional component otherwise\n\n\n return React.cloneElement(typedChildren, childProps);\n\n case 'childArray':\n typedChildren = children;\n return typedChildren.map(function (el) {\n return !!el && React.cloneElement(el, childProps);\n });\n\n default:\n return React__namespace.createElement(WrapperTag, null);\n }\n };\n\n return ResizeDetector;\n}(React.PureComponent);\n\nfunction withResizeDetector(ComponentInner, options) {\n if (options === void 0) {\n options = {};\n }\n\n var ResizeDetectorHOC =\n /** @class */\n function (_super) {\n __extends(ResizeDetectorHOC, _super);\n\n function ResizeDetectorHOC() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.ref = React.createRef();\n return _this;\n }\n\n ResizeDetectorHOC.prototype.render = function () {\n var _a = this.props,\n forwardedRef = _a.forwardedRef,\n rest = __rest(_a, [\"forwardedRef\"]);\n\n var targetRef = forwardedRef !== null && forwardedRef !== void 0 ? forwardedRef : this.ref;\n return React__namespace.createElement(ResizeDetector, _assign({}, options, {\n targetRef: targetRef\n }), React__namespace.createElement(ComponentInner, _assign({\n targetRef: targetRef\n }, rest)));\n };\n\n return ResizeDetectorHOC;\n }(React.Component);\n\n function forwardRefWrapper(props, ref) {\n return React__namespace.createElement(ResizeDetectorHOC, _assign({}, props, {\n forwardedRef: ref\n }));\n }\n\n var name = ComponentInner.displayName || ComponentInner.name;\n forwardRefWrapper.displayName = \"withResizeDetector(\".concat(name, \")\");\n return React.forwardRef(forwardRefWrapper);\n}\n\nvar useEnhancedEffect = isSSR() ? React.useEffect : React.useLayoutEffect;\n\nfunction useResizeDetector(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _a = props.skipOnMount,\n skipOnMount = _a === void 0 ? false : _a,\n refreshMode = props.refreshMode,\n _b = props.refreshRate,\n refreshRate = _b === void 0 ? 1000 : _b,\n refreshOptions = props.refreshOptions,\n _c = props.handleWidth,\n handleWidth = _c === void 0 ? true : _c,\n _d = props.handleHeight,\n handleHeight = _d === void 0 ? true : _d,\n targetRef = props.targetRef,\n observerOptions = props.observerOptions,\n onResize = props.onResize;\n var skipResize = React.useRef(skipOnMount);\n var localRef = React.useRef(null);\n var ref = targetRef !== null && targetRef !== void 0 ? targetRef : localRef;\n var resizeHandler = React.useRef();\n\n var _e = React.useState({\n width: undefined,\n height: undefined\n }),\n size = _e[0],\n setSize = _e[1];\n\n useEnhancedEffect(function () {\n if (isSSR()) {\n return;\n }\n\n var notifyResize = createNotifier(onResize, setSize, handleWidth, handleHeight);\n\n var resizeCallback = function resizeCallback(entries) {\n if (!handleWidth && !handleHeight) return;\n entries.forEach(function (entry) {\n var _a = entry && entry.contentRect || {},\n width = _a.width,\n height = _a.height;\n\n var shouldSetSize = !skipResize.current && !isSSR();\n\n if (shouldSetSize) {\n notifyResize({\n width: width,\n height: height\n });\n }\n\n skipResize.current = false;\n });\n };\n\n resizeHandler.current = patchResizeHandler(resizeCallback, refreshMode, refreshRate, refreshOptions);\n var resizeObserver = new $inject_window_ResizeObserver__default[\"default\"](resizeHandler.current);\n\n if (ref.current) {\n // Something wrong with typings here...\n resizeObserver.observe(ref.current, observerOptions);\n }\n\n return function () {\n resizeObserver.disconnect();\n var patchedResizeHandler = resizeHandler.current;\n\n if (patchedResizeHandler && patchedResizeHandler.cancel) {\n patchedResizeHandler.cancel();\n }\n };\n }, [refreshMode, refreshRate, refreshOptions, handleWidth, handleHeight, onResize, observerOptions, ref.current]);\n return _assign({\n ref: ref\n }, size);\n}\n\nexports[\"default\"] = ResizeDetector;\nexports.useResizeDetector = useResizeDetector;\nexports.withResizeDetector = withResizeDetector;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport _every from \"lodash/every\";\nimport _find from \"lodash/find\";\nimport _isFunction from \"lodash/isFunction\";\nimport _throttle from \"lodash/throttle\";\nimport _sortBy from \"lodash/sortBy\";\nimport _get from \"lodash/get\";\nimport _range from \"lodash/range\";\nimport _isNil from \"lodash/isNil\";\nimport _isBoolean from \"lodash/isBoolean\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { Sector } from '../shape/Sector';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle, Rectangle } from '../shape/Rectangle';\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex, validateWidthHeight, isChildrenEqual, renderByOrder, getReactEventByType } from '../util/ReactUtils';\nimport { CartesianAxis } from '../cartesian/CartesianAxis';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset, calculateChartCoordinate } from '../util/DOMUtils';\nimport { getAnyElementOfObject, hasDuplicate, uniqueId, isNumber, findEntryInArray } from '../util/DataUtils';\nimport { calculateActiveTickIndex, getMainColorOfGraphicItem, getBarSizeList, getBarPosition, appendOffsetOfLegend, getLegendProps, combineEventHandlers, getTicksOfAxis, getCoordinatesOfGrid, getStackedDataOfItem, parseErrorBarsOfAxis, getBandSizeOfAxis, getStackGroupsByAxisId, isCategoricalAxis, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey, parseSpecifiedDomain, parseDomainOfCategoryAxis, getTooltipItem } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { filterProps, adaptEventHandlers } from '../util/types';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n}; // use legacy isFinite only if there is a problem (aka IE)\n// eslint-disable-next-line no-restricted-globals\n\nvar isFinit = Number.isFinite ? Number.isFinite : isFinite;\nvar defer = // eslint-disable-next-line no-nested-ternary\ntypeof requestAnimationFrame === 'function' ? requestAnimationFrame : typeof setImmediate === 'function' ? setImmediate : setTimeout;\nvar deferClear = // eslint-disable-next-line no-nested-ternary\ntypeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : typeof clearImmediate === 'function' ? clearImmediate : clearTimeout;\n\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n\n return rangeObj.radius;\n};\n\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n\n return originCoordinate;\n};\n\nvar getDisplayedData = function getDisplayedData(data, _ref, item) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n\n return result;\n }, []);\n\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\n};\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\n\n\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n } // get data by activeIndex when the axis don't allow duplicated category\n\n\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n\n if (hide) {\n return result;\n }\n\n var data = child.props.data;\n var payload;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n\n if (!payload) {\n return result;\n }\n\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\n\n\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n\n return null;\n};\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType); // Eliminate duplicated axes\n\n var axisMap = axes.reduce(function (result, child) {\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks;\n var axisId = child.props[axisIdKey];\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n\n if (!result[axisId]) {\n var domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is catrgorical axis\n var duplicate = hasDuplicate(domain);\n\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale\n\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || _isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !_isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), dataKey, axisType);\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), type, true);\n }\n\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n\n if (child.props.domain) {\n domain = parseSpecifiedDomain(child.props.domain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && child.props.domain) {\n var axisDomain = child.props.domain;\n var isDomainValidate = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n\n if (isDomainValidate) {\n domain = axisDomain;\n }\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: child.props.domain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1; // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n var domain;\n\n if (isCategorical) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(Axis.defaultProps.domain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number'), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: _get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: Axis.defaultProps.domain,\n isCategorical: isCategorical,\n layout: layout // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\"); // Get all the instance of Axis\n\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n\n return axisMap;\n};\n\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: _sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\n\n\nvar createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush.displayName);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = brushItem && brushItem.props && brushItem.props.endIndex || props.data && props.data.length - 1 || 0;\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !_isNil(defaultShowTooltip) ? defaultShowTooltip : false\n };\n};\n\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\n\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * graphicalItems The instances of item\n * xAxisMap The configuration of x-axis\n * yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox the boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\n\n\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush.displayName);\n var legendItem = findChildByType(children, Legend.displayName);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, _get(result, \"\".concat(orientation)) + entry.height));\n }\n\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n\n var brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n\n if (legendItem && prevLegendBBox) {\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n};\n\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _class, _temp;\n\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _objectSpread6;\n\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n var axis = axisMap && axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, entry.axisType, axis), _defineProperty(_objectSpread6, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread6));\n }, {});\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis; // 如果是bar,计算bar的位置\n\n\n var maxBarSize = _isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n\n var composedFn = item && item.type && item.type.getComposedData;\n\n if (composedFn) {\n var _objectSpread7;\n\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, (_objectSpread7 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread7, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread7, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread7, \"animationId\", updateId), _objectSpread7)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n\n\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n\n var _super = _createSuper(CategoricalChartWrapper); // todo join specific chart propTypes\n\n\n function CategoricalChartWrapper(_props) {\n var _this;\n\n _classCallCheck(this, CategoricalChartWrapper);\n\n _this = _super.call(this, _props);\n _this.uniqueChartId = void 0;\n _this.clipPathId = void 0;\n _this.legendInstance = void 0;\n _this.deferId = void 0;\n _this.container = void 0;\n\n _this.clearDeferId = function () {\n if (!_isNil(_this.deferId) && deferClear) {\n deferClear(_this.deferId);\n }\n\n _this.deferId = null;\n };\n\n _this.handleLegendBBoxUpdate = function (box) {\n if (box && _this.legendInstance) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n };\n\n _this.handleReceiveSyncEvent = function (cId, chartId, data) {\n var syncId = _this.props.syncId;\n\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n _this.clearDeferId();\n\n _this.deferId = defer && defer(_this.applySyncEvent.bind(_assertThisInitialized(_this), data));\n }\n };\n\n _this.handleBrushChange = function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex; // Only trigger changes if the extents of the brush have actually changed\n\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(nextState, e);\n }\n }\n };\n\n _this.triggeredAfterMouseMove = function (e) {\n var onMouseMove = _this.props.onMouseMove;\n\n var mouse = _this.getMouseInfo(e);\n\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n };\n\n _this.handleItemMouseEnter = function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n };\n\n _this.handleItemMouseLeave = function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n };\n\n _this.handleMouseMove = function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n\n _this.triggeredAfterMouseMove(e);\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n\n _this.cancelThrottledTriggerAfterMouseMove();\n };\n\n _this.handleOuterEvent = function (e) {\n var eventName = getReactEventByType(e);\n\n var event = _get(_this.props, \"\".concat(eventName));\n\n if (eventName && _isFunction(event)) {\n var mouse;\n\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n\n var handler = event;\n handler(mouse, e);\n }\n };\n\n _this.handleClick = function (e) {\n var onClick = _this.props.onClick;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onClick)) {\n onClick(nextState, e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n var onMouseDown = _this.props.onMouseDown;\n\n if (_isFunction(onMouseDown)) {\n var mouse = _this.getMouseInfo(e);\n\n onMouseDown(mouse, e);\n }\n };\n\n _this.handleMouseUp = function (e) {\n var onMouseUp = _this.props.onMouseUp;\n\n if (_isFunction(onMouseUp)) {\n var mouse = _this.getMouseInfo(e);\n\n onMouseUp(mouse, e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchStart = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchEnd = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n _this.verticalCoordinatesGenerator = function (_ref10) {\n var xAxis = _ref10.xAxis,\n width = _ref10.width,\n height = _ref10.height,\n offset = _ref10.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width);\n };\n\n _this.horizontalCoordinatesGenerator = function (_ref11) {\n var yAxis = _ref11.yAxis,\n width = _ref11.width,\n height = _ref11.height,\n offset = _ref11.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height);\n };\n\n _this.axesTicksGenerator = function (axis) {\n return getTicksOfAxis(axis, true);\n };\n\n _this.renderCursor = function (element) {\n var _this$state2 = _this.state,\n isTooltipActive = _this$state2.isTooltipActive,\n activeCoordinate = _this$state2.activeCoordinate,\n activePayload = _this$state2.activePayload,\n offset = _this$state2.offset,\n activeTooltipIndex = _this$state2.activeTooltipIndex;\n\n var tooltipEventType = _this.getTooltipEventType();\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _this$getCursorPoints = _this.getCursorPoints(),\n cx = _this$getCursorPoints.cx,\n cy = _this$getCursorPoints.cy,\n radius = _this$getCursorPoints.radius,\n startAngle = _this$getCursorPoints.startAngle,\n endAngle = _this$getCursorPoints.endAngle;\n\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: _this.getCursorPoints()\n };\n cursorComp = Curve;\n }\n\n var key = element.key || '_recharts-cursor';\n\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n };\n\n _this.renderPolarAxis = function (element, displayName, index) {\n var axisType = _get(element, 'type.axisType');\n\n var axisMap = _get(_this.state, \"\".concat(axisType, \"Map\"));\n\n var axisOption = axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n };\n\n _this.renderXAxis = function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderYAxis = function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderGrid = function (element) {\n var _this$state3 = _this.state,\n xAxisMap = _this$state3.xAxisMap,\n yAxisMap = _this$state3.yAxisMap,\n offset = _this$state3.offset;\n var _this$props = _this.props,\n width = _this$props.width,\n height = _this$props.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, isFinit);\n });\n\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n };\n\n _this.renderPolarGrid = function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: _isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: _isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n };\n\n _this.renderLegend = function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n\n if (!props) {\n return null;\n }\n\n var item = props.item,\n otherProps = _objectWithoutProperties(props, [\"item\"]);\n\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this.legendInstance = legend;\n },\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n };\n\n _this.renderTooltip = function () {\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate\n });\n };\n\n _this.renderBrush = function (element) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n data = _this$props3.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId; // TODO: update brush when children update\n\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, null, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n };\n\n _this.renderReferenceElement = function (element, displayName, index) {\n if (!element) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n };\n\n _this.renderActivePoints = function (_ref12) {\n var item = _ref12.item,\n activePoint = _ref12.activePoint,\n basePoint = _ref12.basePoint,\n childIndex = _ref12.childIndex,\n isRange = _ref12.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot)), adaptEventHandlers(activeDot));\n\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n\n return result;\n };\n\n _this.renderGraphicChild = function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n\n if (!item) {\n return null;\n }\n\n var tooltipEventType = _this.getTooltipEventType();\n\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n var itemEvents = {};\n\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onCLick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, null, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onMouseEnter)\n };\n }\n\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n\n if (hasActive) {\n var activePoint, basePoint;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n\n if (!_isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n }\n\n if (isRange) {\n return [graphicalItem, null, null];\n }\n\n return [graphicalItem, null];\n };\n\n _this.renderCustomized = function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n };\n\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n\n _this.state = {};\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // add syncId\n if (_isNil(prevProps.syncId) && !_isNil(this.props.syncId)) {\n this.addListener();\n } // remove syncId\n\n\n if (!_isNil(prevProps.syncId) && _isNil(this.props.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDeferId();\n\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\n\n this.cancelThrottledTriggerAfterMouseMove();\n }\n }, {\n key: \"cancelThrottledTriggerAfterMouseMove\",\n value: function cancelThrottledTriggerAfterMouseMove() {\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip.displayName);\n\n if (tooltipItem && _isBoolean(tooltipItem.props.shared)) {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n\n return defaultTooltipEventType;\n }\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n\n if (!rangeObj) {\n return null;\n }\n\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n\n return null;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state10 = this.state,\n activeCoordinate = _this$state10.activeCoordinate,\n offset = _this$state10.offset,\n tooltipAxisBandSize = _this$state10.tooltipAxisBandSize;\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n }\n }, {\n key: \"getCursorPoints\",\n value: function getCursorPoints() {\n var layout = this.props.layout;\n var _this$state11 = this.state,\n activeCoordinate = _this$state11.activeCoordinate,\n offset = _this$state11.offset;\n var x1, y1, x2, y2;\n\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_isNil(activeCoordinate.cx) || !_isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n var _cx = activeCoordinate.cx,\n _cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(_cx, _cy, radius, startAngle);\n var endPoint = polarToCartesian(_cx, _cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: _cx,\n cy: _cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n }\n\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n return isInRange ? {\n x: x,\n y: y\n } : null;\n }\n\n var _this$state12 = this.state,\n angleAxisMap = _this$state12.angleAxisMap,\n radiusAxisMap = _this$state12.radiusAxisMap;\n\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\n\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var tooltipEvents = {};\n\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n /* eslint-disable no-underscore-dangle */\n\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n\n if (!_isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"applySyncEvent\",\n value: function applySyncEvent(data) {\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n syncMethod = _this$props4.syncMethod;\n var updateId = this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n\n if (!_isNil(data.dataStartIndex) || !_isNil(data.dataEndIndex)) {\n this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, this.state)));\n } else if (!_isNil(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state13 = this.state,\n offset = _this$state13.offset,\n tooltipTicks = _this$state13.tooltipTicks;\n\n if (!offset) {\n return;\n }\n\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }); // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n\n\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(this.state, this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n this.setState(data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n\n return null;\n }\n }, {\n key: \"renderAxis\",\n value:\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: \"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap, _this$state$xAxisMap$;\n\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 ? void 0 : (_this$state$xAxisMap$ = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap$ === void 0 ? void 0 : _this$state$xAxisMap$.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap, _this$state$yAxisMap$;\n\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 ? void 0 : (_this$state$yAxisMap$ = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap$ === void 0 ? void 0 : _this$state$yAxisMap$.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n if (!validateWidthHeight(this)) {\n return null;\n }\n\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n others = _objectWithoutProperties(_this$props6, [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\"]);\n\n var attrs = filterProps(others);\n var map = {\n CartesianGrid: {\n handler: this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: this.renderReferenceElement\n },\n ReferenceLine: {\n handler: this.renderReferenceElement\n },\n ReferenceDot: {\n handler: this.renderReferenceElement\n },\n XAxis: {\n handler: this.renderXAxis\n },\n YAxis: {\n handler: this.renderYAxis\n },\n Brush: {\n handler: this.renderBrush,\n once: true\n },\n Bar: {\n handler: this.renderGraphicChild\n },\n Line: {\n handler: this.renderGraphicChild\n },\n Area: {\n handler: this.renderGraphicChild\n },\n Radar: {\n handler: this.renderGraphicChild\n },\n RadialBar: {\n handler: this.renderGraphicChild\n },\n Scatter: {\n handler: this.renderGraphicChild\n },\n Pie: {\n handler: this.renderGraphicChild\n },\n Funnel: {\n handler: this.renderGraphicChild\n },\n Tooltip: {\n handler: this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: this.renderPolarAxis\n },\n Customized: {\n handler: this.renderCustomized\n }\n }; // The \"compact\" mode is mainly used as the panorama within Brush\n\n if (compact) {\n return /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map));\n }\n\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }]);\n\n return CategoricalChartWrapper;\n }(Component), _class.displayName = chartName, _class.defaultProps = _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps), _class.getDerivedStateFromProps = function (nextProps, prevState) {\n var data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n\n if (_isNil(prevState.updateId)) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps); // Fixes https://github.com/recharts/recharts/issues/2143\n\n\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n // update configuration in chilren\n var hasGlobalData = !_isNil(data);\n var newUpdateId = hasGlobalData ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId\n }), prevState)), {}, {\n prevChildren: children\n });\n }\n\n return null;\n }, _class.renderActiveDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }, _temp;\n};","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\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 */\n\n\nvar find = createFind(findIndex);\nmodule.exports = find;","var debounce = require('./debounce'),\n isObject = require('./isObject');\n/** Error message constants. */\n\n\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 */\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\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar boolTag = '[object Boolean]';\n/**\n * Checks if `value` is classified as a boolean primitive or 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 boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n\nfunction isBoolean(value) {\n return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag;\n}\n\nmodule.exports = isBoolean;","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.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 flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n\n\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three 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 iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n\n\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.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 the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n\n\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n baseForOwn(object, function (value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global[\"fast-equals\"] = {}));\n})(this, function (exports) {\n 'use strict';\n\n var HAS_WEAKSET_SUPPORT = typeof WeakSet === 'function';\n var keys = Object.keys;\n /**\r\n * are the values passed strictly equal or both NaN\r\n *\r\n * @param a the value to compare against\r\n * @param b the value to test\r\n * @returns are the values equal by the SameValueZero principle\r\n */\n\n function sameValueZeroEqual(a, b) {\n return a === b || a !== a && b !== b;\n }\n /**\r\n * is the value a plain object\r\n *\r\n * @param value the value to test\r\n * @returns is the value a plain object\r\n */\n\n\n function isPlainObject(value) {\n return value.constructor === Object || value.constructor == null;\n }\n /**\r\n * is the value promise-like (meaning it is thenable)\r\n *\r\n * @param value the value to test\r\n * @returns is the value promise-like\r\n */\n\n\n function isPromiseLike(value) {\n return !!value && typeof value.then === 'function';\n }\n /**\r\n * is the value passed a react element\r\n *\r\n * @param value the value to test\r\n * @returns is the value a react element\r\n */\n\n\n function isReactElement(value) {\n return !!(value && value.$$typeof);\n }\n /**\r\n * in cases where WeakSet is not supported, creates a new custom\r\n * object that mimics the necessary API aspects for cache purposes\r\n *\r\n * @returns the new cache object\r\n */\n\n\n function getNewCacheFallback() {\n var values = [];\n return {\n add: function add(value) {\n values.push(value);\n },\n has: function has(value) {\n return values.indexOf(value) !== -1;\n }\n };\n }\n /**\r\n * get a new cache object to prevent circular references\r\n *\r\n * @returns the new cache object\r\n */\n\n\n var getNewCache = function (canUseWeakMap) {\n if (canUseWeakMap) {\n return function _getNewCache() {\n return new WeakSet();\n };\n }\n\n return getNewCacheFallback;\n }(HAS_WEAKSET_SUPPORT);\n /**\r\n * create a custom isEqual handler specific to circular objects\r\n *\r\n * @param [isEqual] the isEqual comparator to use instead of isDeepEqual\r\n * @returns the method to create the `isEqual` function\r\n */\n\n\n function createCircularEqualCreator(isEqual) {\n return function createCircularEqual(comparator) {\n var _comparator = isEqual || comparator;\n\n return function circularEqual(a, b, cache) {\n if (cache === void 0) {\n cache = getNewCache();\n }\n\n var isCacheableA = !!a && _typeof(a) === 'object';\n var isCacheableB = !!b && _typeof(b) === 'object';\n\n if (isCacheableA || isCacheableB) {\n var hasA = isCacheableA && cache.has(a);\n var hasB = isCacheableB && cache.has(b);\n\n if (hasA || hasB) {\n return hasA && hasB;\n }\n\n if (isCacheableA) {\n cache.add(a);\n }\n\n if (isCacheableB) {\n cache.add(b);\n }\n }\n\n return _comparator(a, b, cache);\n };\n };\n }\n /**\r\n * are the arrays equal in value\r\n *\r\n * @param a the array to test\r\n * @param b the array to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta object to pass through\r\n * @returns are the arrays equal\r\n */\n\n\n function areArraysEqual(a, b, isEqual, meta) {\n var index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n while (index-- > 0) {\n if (!isEqual(a[index], b[index], meta)) {\n return false;\n }\n }\n\n return true;\n }\n /**\r\n * are the maps equal in value\r\n *\r\n * @param a the map to test\r\n * @param b the map to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta map to pass through\r\n * @returns are the maps equal\r\n */\n\n\n function areMapsEqual(a, b, isEqual, meta) {\n var isValueEqual = a.size === b.size;\n\n if (isValueEqual && a.size) {\n var matchedIndices_1 = {};\n a.forEach(function (aValue, aKey) {\n if (isValueEqual) {\n var hasMatch_1 = false;\n var matchIndex_1 = 0;\n b.forEach(function (bValue, bKey) {\n if (!hasMatch_1 && !matchedIndices_1[matchIndex_1]) {\n hasMatch_1 = isEqual(aKey, bKey, meta) && isEqual(aValue, bValue, meta);\n\n if (hasMatch_1) {\n matchedIndices_1[matchIndex_1] = true;\n }\n }\n\n matchIndex_1++;\n });\n isValueEqual = hasMatch_1;\n }\n });\n }\n\n return isValueEqual;\n }\n\n var OWNER = '_owner';\n var hasOwnProperty = Function.prototype.bind.call(Function.prototype.call, Object.prototype.hasOwnProperty);\n /**\r\n * are the objects equal in value\r\n *\r\n * @param a the object to test\r\n * @param b the object to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta object to pass through\r\n * @returns are the objects equal\r\n */\n\n function areObjectsEqual(a, b, isEqual, meta) {\n var keysA = keys(a);\n var index = keysA.length;\n\n if (keys(b).length !== index) {\n return false;\n }\n\n if (index) {\n var key = void 0;\n\n while (index-- > 0) {\n key = keysA[index];\n\n if (key === OWNER) {\n var reactElementA = isReactElement(a);\n var reactElementB = isReactElement(b);\n\n if ((reactElementA || reactElementB) && reactElementA !== reactElementB) {\n return false;\n }\n }\n\n if (!hasOwnProperty(b, key) || !isEqual(a[key], b[key], meta)) {\n return false;\n }\n }\n }\n\n return true;\n }\n /**\r\n * are the regExps equal in value\r\n *\r\n * @param a the regExp to test\r\n * @param b the regExp to test agains\r\n * @returns are the regExps equal\r\n */\n\n\n function areRegExpsEqual(a, b) {\n return a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.unicode === b.unicode && a.sticky === b.sticky && a.lastIndex === b.lastIndex;\n }\n /**\r\n * are the sets equal in value\r\n *\r\n * @param a the set to test\r\n * @param b the set to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta set to pass through\r\n * @returns are the sets equal\r\n */\n\n\n function areSetsEqual(a, b, isEqual, meta) {\n var isValueEqual = a.size === b.size;\n\n if (isValueEqual && a.size) {\n var matchedIndices_2 = {};\n a.forEach(function (aValue) {\n if (isValueEqual) {\n var hasMatch_2 = false;\n var matchIndex_2 = 0;\n b.forEach(function (bValue) {\n if (!hasMatch_2 && !matchedIndices_2[matchIndex_2]) {\n hasMatch_2 = isEqual(aValue, bValue, meta);\n\n if (hasMatch_2) {\n matchedIndices_2[matchIndex_2] = true;\n }\n }\n\n matchIndex_2++;\n });\n isValueEqual = hasMatch_2;\n }\n });\n }\n\n return isValueEqual;\n }\n\n var HAS_MAP_SUPPORT = typeof Map === 'function';\n var HAS_SET_SUPPORT = typeof Set === 'function';\n\n function createComparator(createIsEqual) {\n var isEqual =\n /* eslint-disable no-use-before-define */\n typeof createIsEqual === 'function' ? createIsEqual(comparator) : comparator;\n /* eslint-enable */\n\n /**\r\n * compare the value of the two objects and return true if they are equivalent in values\r\n *\r\n * @param a the value to test against\r\n * @param b the value to test\r\n * @param [meta] an optional meta object that is passed through to all equality test calls\r\n * @returns are a and b equivalent in value\r\n */\n\n function comparator(a, b, meta) {\n if (a === b) {\n return true;\n }\n\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n if (isPlainObject(a) && isPlainObject(b)) {\n return areObjectsEqual(a, b, isEqual, meta);\n }\n\n var aShape = Array.isArray(a);\n var bShape = Array.isArray(b);\n\n if (aShape || bShape) {\n return aShape === bShape && areArraysEqual(a, b, isEqual, meta);\n }\n\n aShape = a instanceof Date;\n bShape = b instanceof Date;\n\n if (aShape || bShape) {\n return aShape === bShape && sameValueZeroEqual(a.getTime(), b.getTime());\n }\n\n aShape = a instanceof RegExp;\n bShape = b instanceof RegExp;\n\n if (aShape || bShape) {\n return aShape === bShape && areRegExpsEqual(a, b);\n }\n\n if (isPromiseLike(a) || isPromiseLike(b)) {\n return a === b;\n }\n\n if (HAS_MAP_SUPPORT) {\n aShape = a instanceof Map;\n bShape = b instanceof Map;\n\n if (aShape || bShape) {\n return aShape === bShape && areMapsEqual(a, b, isEqual, meta);\n }\n }\n\n if (HAS_SET_SUPPORT) {\n aShape = a instanceof Set;\n bShape = b instanceof Set;\n\n if (aShape || bShape) {\n return aShape === bShape && areSetsEqual(a, b, isEqual, meta);\n }\n }\n\n return areObjectsEqual(a, b, isEqual, meta);\n }\n\n return a !== a && b !== b;\n }\n\n return comparator;\n }\n\n var deepEqual = createComparator();\n var shallowEqual = createComparator(function () {\n return sameValueZeroEqual;\n });\n var circularDeepEqual = createComparator(createCircularEqualCreator());\n var circularShallowEqual = createComparator(createCircularEqualCreator(sameValueZeroEqual));\n exports.circularDeepEqual = circularDeepEqual;\n exports.circularShallowEqual = circularShallowEqual;\n exports.createCustomEqual = createComparator;\n exports.deepEqual = deepEqual;\n exports.sameValueZeroEqual = sameValueZeroEqual;\n exports.shallowEqual = shallowEqual;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Cross\n */\n\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var Cross = /*#__PURE__*/function (_PureComponent) {\n _inherits(Cross, _PureComponent);\n\n var _super = _createSuper(Cross);\n\n function Cross() {\n _classCallCheck(this, Cross);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Cross, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n top = _this$props.top,\n left = _this$props.left,\n className = _this$props.className;\n\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-cross', className),\n d: Cross.getPath(x, y, width, height, top, left)\n }));\n }\n }], [{\n key: \"getPath\",\n value: function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n }\n }]);\n\n return Cross;\n}(PureComponent);\nCross.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Sector\n */\n\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\n\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle); // The coordinate of point which is tangent to the circle\n\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line\n\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\n\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle); // When the angle of sector equals to 360, star point and end point coincide\n\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n\n return path;\n};\n\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n\n return path;\n};\n\nexport var Sector = /*#__PURE__*/function (_PureComponent) {\n _inherits(Sector, _PureComponent);\n\n var _super = _createSuper(Sector);\n\n function Sector() {\n _classCallCheck(this, Sector);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Sector, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n innerRadius = _this$props.innerRadius,\n outerRadius = _this$props.outerRadius,\n cornerRadius = _this$props.cornerRadius,\n forceCornerRadius = _this$props.forceCornerRadius,\n cornerIsExternal = _this$props.cornerIsExternal,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n className = _this$props.className;\n\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n\n var layerClass = classNames('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: path\n }));\n }\n }]);\n\n return Sector;\n}(PureComponent);\nSector.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};","'use strict';\n\nvar has = Object.prototype.hasOwnProperty,\n prefix = '~';\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\n\nfunction Events() {} //\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//\n\n\nif (Object.create) {\n Events.prototype = Object.create(null); //\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\n if (!new Events().__proto__) prefix = false;\n}\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\n\n\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\n\n\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once),\n evt = prefix ? prefix + event : event;\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);else emitter._events[evt] = [emitter._events[evt], listener];\n return emitter;\n}\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\n\n\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();else delete emitter._events[evt];\n}\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\n\n\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\n\n\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = [],\n events,\n name;\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 * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\n\n\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event,\n handlers = this._events[evt];\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\n\n\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event,\n listeners = this._events[evt];\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\n\n\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return false;\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:\n return listeners.fn.call(listeners.context), true;\n\n case 2:\n return listeners.fn.call(listeners.context, a1), true;\n\n case 3:\n return listeners.fn.call(listeners.context, a1, a2), true;\n\n case 4:\n return listeners.fn.call(listeners.context, a1, a2, a3), true;\n\n case 5:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n\n case 6:\n 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:\n listeners[i].fn.call(listeners[i].context);\n break;\n\n case 2:\n listeners[i].fn.call(listeners[i].context, a1);\n break;\n\n case 3:\n listeners[i].fn.call(listeners[i].context, a1, a2);\n break;\n\n case 4:\n listeners[i].fn.call(listeners[i].context, a1, a2, a3);\n break;\n\n default:\n if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\n\n\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\n\n\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\n\n\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return this;\n\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {\n events.push(listeners[i]);\n }\n } //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n\n\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;else clearEvent(this, evt);\n }\n\n return this;\n};\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\n\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n}; //\n// Alias methods names because people roll like that.\n//\n\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on; //\n// Expose the prefix.\n//\n\nEventEmitter.prefixed = prefix; //\n// Allow `EventEmitter` to be imported as module namespace.\n//\n\nEventEmitter.EventEmitter = EventEmitter; //\n// Expose the module.\n//\n\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n/** Error message constants. */\n\n\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\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 */\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\n wait = toNumber(wait) || 0;\n\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 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; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\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 return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // 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\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\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 lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;","'use strict';\n\nexports.__esModule = true;\n\nfunction createThunkMiddleware(extraArgument) {\n return function (_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n if (typeof action === 'function') {\n return action(dispatch, getState, extraArgument);\n }\n\n return next(action);\n };\n };\n };\n}\n\nvar thunk = createThunkMiddleware();\nthunk.withExtraArgument = createThunkMiddleware;\nexports['default'] = thunk;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _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\nexports.getSubset = getSubset;\nexports['default'] = filter;\n\nfunction hasValue(value) {\n return !!value || value === 0 || value === false;\n}\n/**\n * @description\n * getSubset returns an object with the same structure as the original object passed in, but contains\n * only the specified paths and only if those paths have \"value\" (truth-y values, 0 or false).\n *\n * @param {Object} obj The object from which to create a subset.\n * @param {String[]} paths An array of paths e.g. ['deeply.nested.key'], that should be included in the subset.\n *\n * @returns {Object} An object that contains only the specified paths if they hold something of value.\n */\n\n\nfunction getSubset(obj, paths) {\n if (!paths) return obj;\n var subset = {};\n paths.forEach(function (path) {\n var keys = path.split('.');\n var length = keys.length;\n var lastIndex = length - 1;\n var index = 0;\n var value = obj;\n var nested = subset; // Retrieve value specified by path\n\n while (value && index < length) {\n value = value[keys[index++]];\n } // Add to subset if the specified path is defined and hasValue\n\n\n if (index === length && hasValue(value)) {\n keys.forEach(function (key, i) {\n if (i === lastIndex) {\n nested[key] = value;\n } else if (!nested[key]) {\n nested[key] = {};\n }\n\n nested = nested[key];\n });\n }\n });\n return subset;\n}\n\nfunction filter(paths) {\n var finalPaths = typeof paths === 'string' ? [paths] : paths;\n return function (storage) {\n return _extends({}, storage, {\n put: function put(key, state, callback) {\n storage.put(key, getSubset(state, finalPaths), callback);\n }\n });\n };\n}","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar compose = require('redux').compose;\n\nexports.__esModule = true;\nexports.composeWithDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\n if (arguments.length === 0) return undefined;\n if (_typeof(arguments[0]) === 'object') return compose;\n return compose.apply(null, arguments);\n};\nexports.devToolsEnhancer = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function () {\n return function (noop) {\n return noop;\n };\n};","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl();\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n\n return new Hsl(h, s, l, o.opacity);\n}\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\n}\nexport default function (values) {\n var n = values.length - 1;\n return function (t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","export default (function (x) {\n return function () {\n return x;\n };\n});","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function (a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function (colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i,\n color;\n\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function (t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);","import { basis } from \"./basis.js\";\nexport default function (values) {\n var n = values.length;\n return function (t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","export default function (a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function (t) {\n for (i = 0; i < n; ++i) {\n c[i] = a[i] * (1 - t) + b[i] * t;\n }\n\n return c;\n };\n}\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}","import value from \"./value.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) {\n x[i] = value(a[i], b[i]);\n }\n\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n\n return c;\n };\n}","export default function (a, b) {\n var d = new Date();\n return a = +a, b = +b, function (t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport value from \"./value.js\";\nexport default function (a, b) {\n var i = {},\n c = {},\n k;\n if (a === null || _typeof(a) !== \"object\") a = {};\n if (b === null || _typeof(b) !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n\n return c;\n };\n}","import number from \"./number.js\";\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function () {\n return b;\n };\n}\n\nfunction one(b) {\n return function (t) {\n return b(t) + \"\";\n };\n}\n\nexport default function (a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { color } from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport { genericArray } from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n var t = _typeof(b),\n c;\n\n return b == null || t === \"boolean\" ? constant(b) : (t === \"number\" ? number : t === \"string\" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object : number)(a, b);\n}","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\nexport default function (start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n var r0 = Math.round(start / step),\n r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n\n while (++i < n) {\n ticks[i] = (r0 + i) * step;\n }\n } else {\n step = -step;\n\n var _r = Math.round(start * step),\n _r2 = Math.round(stop * step);\n\n if (_r / step < start) ++_r;\n if (_r2 / step > stop) --_r2;\n ticks = new Array(n = _r2 - _r + 1);\n\n while (++i < n) {\n ticks[i] = (_r + i) / step;\n }\n }\n\n if (reverse) ticks.reverse();\n return ticks;\n}\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}","/**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\nfunction baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function (value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n}\n\nmodule.exports = baseFindKey;","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _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\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n function CopyToClipboard() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\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(CopyToClipboard)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, [\"text\", \"onCopy\", \"options\", \"children\"]);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return _react[\"default\"].cloneElement(elem, _objectSpread({}, props, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n};\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n\n if (!options) {\n options = {};\n }\n\n debug = options.debug || false;\n\n try {\n reselectPrevious = deselectCurrent();\n range = document.createRange();\n selection = document.getSelection();\n mark = document.createElement(\"span\");\n mark.textContent = text; // reset user styles for span element\n\n mark.style.all = \"unset\"; // prevents scrolling to the end of the page\n\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\"; // used to preserve spaces and line breaks\n\n mark.style.whiteSpace = \"pre\"; // do not inherit user-select (it may be `none`)\n\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function (e) {\n e.stopPropagation();\n\n if (options.format) {\n e.preventDefault();\n\n if (typeof e.clipboardData === \"undefined\") {\n // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"];\n window.clipboardData.setData(format, text);\n } else {\n // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n document.body.appendChild(mark);\n range.selectNodeContents(mark);\n selection.addRange(range);\n var successful = document.execCommand(\"copy\");\n\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;","module.exports = function () {\n var selection = document.getSelection();\n\n if (!selection.rangeCount) {\n return function () {};\n }\n\n var active = document.activeElement;\n var ranges = [];\n\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) {\n // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' && selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function (range) {\n selection.addRange(range);\n });\n }\n\n active && active.focus();\n };\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = require(\"react\");\n\nvar prosemirror_state_1 = require(\"prosemirror-state\");\n\nfunction useProseMirror(config) {\n return react_1.useState(function () {\n return prosemirror_state_1.EditorState.create(config);\n });\n}\n\nexports[\"default\"] = useProseMirror;","\"use strict\";\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = __importStar(require(\"react\"));\n\nvar prosemirror_view_1 = require(\"prosemirror-view\");\n\nexports[\"default\"] = react_1.forwardRef(function ProseMirror(props, ref) {\n var _a, _b;\n\n var root = react_1.useRef(null);\n var initialProps = react_1.useRef(props);\n var viewRef = react_1.useRef(null); // If this is a non-initial render, update the editor view with\n // the React render.\n // - First update editor state using `EditorView#updateState()`.\n // - Then update other props using `EditorView#setProps()`.\n // If we update state with other props together using\n // `setProps()`, scroll-into-view will not occur due to:\n // https://github.com/ProseMirror/prosemirror-view/blob/13b046a834b489530a98dd362fa55703e52e076d/src/index.js#L183-L195\n\n var state = props.state,\n restProps = __rest(props, [\"state\"]);\n\n (_a = viewRef.current) === null || _a === void 0 ? void 0 : _a.updateState(state);\n (_b = viewRef.current) === null || _b === void 0 ? void 0 : _b.setProps(buildProps(restProps));\n react_1.useEffect(function () {\n // Bootstrap the editor on first render. Note: running\n // non-initial renders inside `useEffect` produced glitchy\n // behavior.\n var view = new prosemirror_view_1.EditorView(root.current, Object.assign({\n state: initialProps.current.state\n }, buildProps(initialProps.current)));\n viewRef.current = view;\n return function () {\n view.destroy();\n };\n }, []);\n react_1.useImperativeHandle(ref, function () {\n return {\n get view() {\n return viewRef.current;\n }\n\n };\n });\n return react_1[\"default\"].createElement(\"div\", {\n ref: root,\n style: props.style,\n className: props.className\n });\n\n function buildProps(props) {\n return Object.assign(Object.assign({}, props), {\n dispatchTransaction: function dispatchTransaction(transaction) {\n // `dispatchTransaction` takes precedence.\n if (props.dispatchTransaction) {\n props.dispatchTransaction(transaction);\n } else if (props.onChange) {\n props.onChange(viewRef.current.state.apply(transaction));\n }\n }\n });\n }\n});","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\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","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\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","'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","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 toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\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","// 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","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","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: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = true;\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","exports.f = Object.getOwnPropertySymbols;\n","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\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","// 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","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\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","// 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 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 document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\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 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","/**\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexports.__esModule = true;\n\nvar _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\nvar _createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nvar Motion = function (_React$Component) {\n _inherits(Motion, _React$Component);\n\n _createClass(Motion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyle: _propTypes2['default'].objectOf(_propTypes2['default'].number),\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired,\n children: _propTypes2['default'].func.isRequired,\n onRest: _propTypes2['default'].func\n },\n enumerable: true\n }]);\n\n function Motion(props) {\n var _this = this;\n\n _classCallCheck(this, Motion);\n\n _React$Component.call(this, props);\n\n this.wasAnimating = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyle = null;\n\n this.clearUnreadPropStyle = function (destStyle) {\n var dirty = false;\n var _state = _this.state;\n var currentStyle = _state.currentStyle;\n var currentVelocity = _state.currentVelocity;\n var lastIdealStyle = _state.lastIdealStyle;\n var lastIdealVelocity = _state.lastIdealVelocity;\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyle = _extends({}, currentStyle);\n currentVelocity = _extends({}, currentVelocity);\n lastIdealStyle = _extends({}, lastIdealStyle);\n lastIdealVelocity = _extends({}, lastIdealVelocity);\n }\n\n currentStyle[key] = styleValue;\n currentVelocity[key] = 0;\n lastIdealStyle[key] = styleValue;\n lastIdealVelocity[key] = 0;\n }\n }\n\n if (dirty) {\n _this.setState({\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: lastIdealStyle,\n lastIdealVelocity: lastIdealVelocity\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n // check if we need to animate in the first place\n var propsStyle = _this.props.style;\n\n if (_shouldStopAnimation2['default'](_this.state.currentStyle, propsStyle, _this.state.currentVelocity)) {\n if (_this.wasAnimating && _this.props.onRest) {\n _this.props.onRest();\n } // no need to cancel animationID here; shouldn't have any in flight\n\n\n _this.animationID = null;\n _this.wasAnimating = false;\n _this.accumulatedTime = 0;\n return;\n }\n\n _this.wasAnimating = true;\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n\n for (var key in propsStyle) {\n if (!Object.prototype.hasOwnProperty.call(propsStyle, key)) {\n continue;\n }\n\n var styleValue = propsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyle[key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocity[key];\n\n for (var i = 0; i < framesToCatchUp; i++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyle: newCurrentStyle,\n currentVelocity: newCurrentVelocity,\n lastIdealStyle: newLastIdealStyle,\n lastIdealVelocity: newLastIdealVelocity\n });\n\n _this.unreadPropStyle = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n Motion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyle = _props.defaultStyle;\n var style = _props.style;\n\n var currentStyle = defaultStyle || _stripStyle2['default'](style);\n\n var currentVelocity = _mapToZero2['default'](currentStyle);\n\n return {\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: currentStyle,\n lastIdealVelocity: currentVelocity\n };\n }; // it's possible that currentStyle's value is stale: if props is immediately\n // changed from 0 to 400 to spring(0) again, the async currentStyle is still\n // at 0 (didn't have time to tick and interpolate even once). If we naively\n // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n // In reality currentStyle should be 400\n\n\n Motion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n Motion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyle != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyle);\n }\n\n this.unreadPropStyle = props.style;\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n Motion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n Motion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyle);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return Motion;\n}(_react2['default'].Component);\n\nexports['default'] = Motion;\nmodule.exports = exports['default']; // after checking for unreadPropStyle != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","/**\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexports.__esModule = true;\n\nvar _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\nvar _createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nfunction shouldStopAnimationAll(currentStyles, styles, currentVelocities) {\n for (var i = 0; i < currentStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], styles[i], currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nvar StaggeredMotion = function (_React$Component) {\n _inherits(StaggeredMotion, _React$Component);\n\n _createClass(StaggeredMotion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].objectOf(_propTypes2['default'].number)),\n styles: _propTypes2['default'].func.isRequired,\n children: _propTypes2['default'].func.isRequired\n },\n enumerable: true\n }]);\n\n function StaggeredMotion(props) {\n var _this = this;\n\n _classCallCheck(this, StaggeredMotion);\n\n _React$Component.call(this, props);\n\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _state = _this.state;\n var currentStyles = _state.currentStyles;\n var currentVelocities = _state.currentVelocities;\n var lastIdealStyles = _state.lastIdealStyles;\n var lastIdealVelocities = _state.lastIdealVelocities;\n var someDirty = false;\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i];\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n someDirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n }\n }\n }\n\n if (someDirty) {\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n var destStyles = _this.props.styles(_this.state.lastIdealStyles); // check if we need to animate in the first place\n\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n\n for (var i = 0; i < destStyles.length; i++) {\n var destStyle = destStyles[i];\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyles[i][key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n StaggeredMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var currentStyles = defaultStyles || styles().map(_stripStyle2['default']);\n var currentVelocities = currentStyles.map(function (currentStyle) {\n return _mapToZero2['default'](currentStyle);\n });\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: currentStyles,\n lastIdealVelocities: currentVelocities\n };\n };\n\n StaggeredMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n StaggeredMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n this.unreadPropStyles = props.styles(this.state.lastIdealStyles);\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n StaggeredMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n StaggeredMotion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return StaggeredMotion;\n}(_react2['default'].Component);\n\nexports['default'] = StaggeredMotion;\nmodule.exports = exports['default']; // it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400\n// after checking for unreadPropStyles != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexports.__esModule = true;\n\nvar _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\nvar _createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _mergeDiff = require('./mergeDiff');\n\nvar _mergeDiff2 = _interopRequireDefault(_mergeDiff);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60; // the children function & (potential) styles function asks as param an\n// Array, where each TransitionPlainStyle is of the format\n// {key: string, data?: any, style: PlainStyle}. However, the way we keep\n// internal states doesn't contain such a data structure (check the state and\n// TransitionMotionState). So when children function and others ask for such\n// data we need to generate them on the fly by combining mergedPropsStyles and\n// currentStyles/lastIdealStyles\n\nfunction rehydrateStyles(mergedPropsStyles, unreadPropStyles, plainStyles) {\n // Copy the value to a `const` so that Flow understands that the const won't\n // change and will be non-nullable in the callback below.\n var cUnreadPropStyles = unreadPropStyles;\n\n if (cUnreadPropStyles == null) {\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n }\n\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n for (var j = 0; j < cUnreadPropStyles.length; j++) {\n if (cUnreadPropStyles[j].key === mergedPropsStyle.key) {\n return {\n key: cUnreadPropStyles[j].key,\n data: cUnreadPropStyles[j].data,\n style: plainStyles[i]\n };\n }\n }\n\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n}\n\nfunction shouldStopAnimationAll(currentStyles, destStyles, currentVelocities, mergedPropsStyles) {\n if (mergedPropsStyles.length !== destStyles.length) {\n return false;\n }\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (mergedPropsStyles[i].key !== destStyles[i].key) {\n return false;\n }\n } // we have the invariant that mergedPropsStyles and\n // currentStyles/currentVelocities/last* are synced in terms of cells, see\n // mergeAndSync comment for more info\n\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], destStyles[i].style, currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n} // core key merging logic\n// things to do: say previously merged style is {a, b}, dest style (prop) is {b,\n// c}, previous current (interpolating) style is {a, b}\n// **invariant**: current[i] corresponds to merged[i] in terms of key\n// steps:\n// turn merged style into {a?, b, c}\n// add c, value of c is destStyles.c\n// maybe remove a, aka call willLeave(a), then merged is either {b, c} or {a, b, c}\n// turn current (interpolating) style from {a, b} into {a?, b, c}\n// maybe remove a\n// certainly add c, value of c is willEnter(c)\n// loop over merged and construct new current\n// dest doesn't change, that's owner's\n\n\nfunction mergeAndSync(willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldLastIdealStyles, oldLastIdealVelocities) {\n var newMergedPropsStyles = _mergeDiff2['default'](oldMergedPropsStyles, destStyles, function (oldIndex, oldMergedPropsStyle) {\n var leavingStyle = willLeave(oldMergedPropsStyle);\n\n if (leavingStyle == null) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n if (_shouldStopAnimation2['default'](oldCurrentStyles[oldIndex], leavingStyle, oldCurrentVelocities[oldIndex])) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n return {\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data,\n style: leavingStyle\n };\n });\n\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyleCell = newMergedPropsStyles[i];\n var foundOldIndex = null;\n\n for (var j = 0; j < oldMergedPropsStyles.length; j++) {\n if (oldMergedPropsStyles[j].key === newMergedPropsStyleCell.key) {\n foundOldIndex = j;\n break;\n }\n } // TODO: key search code\n\n\n if (foundOldIndex == null) {\n var plainStyle = willEnter(newMergedPropsStyleCell);\n newCurrentStyles[i] = plainStyle;\n newLastIdealStyles[i] = plainStyle;\n\n var velocity = _mapToZero2['default'](newMergedPropsStyleCell.style);\n\n newCurrentVelocities[i] = velocity;\n newLastIdealVelocities[i] = velocity;\n } else {\n newCurrentStyles[i] = oldCurrentStyles[foundOldIndex];\n newLastIdealStyles[i] = oldLastIdealStyles[foundOldIndex];\n newCurrentVelocities[i] = oldCurrentVelocities[foundOldIndex];\n newLastIdealVelocities[i] = oldLastIdealVelocities[foundOldIndex];\n }\n }\n\n return [newMergedPropsStyles, newCurrentStyles, newCurrentVelocities, newLastIdealStyles, newLastIdealVelocities];\n}\n\nvar TransitionMotion = function (_React$Component) {\n _inherits(TransitionMotion, _React$Component);\n\n _createClass(TransitionMotion, null, [{\n key: 'propTypes',\n value: {\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].number).isRequired\n })),\n styles: _propTypes2['default'].oneOfType([_propTypes2['default'].func, _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired\n }))]).isRequired,\n children: _propTypes2['default'].func.isRequired,\n willEnter: _propTypes2['default'].func,\n willLeave: _propTypes2['default'].func,\n didLeave: _propTypes2['default'].func\n },\n enumerable: true\n }, {\n key: 'defaultProps',\n value: {\n willEnter: function willEnter(styleThatEntered) {\n return _stripStyle2['default'](styleThatEntered.style);\n },\n // recall: returning null makes the current unmounting TransitionStyle\n // disappear immediately\n willLeave: function willLeave() {\n return null;\n },\n didLeave: function didLeave() {}\n },\n enumerable: true\n }]);\n\n function TransitionMotion(props) {\n var _this = this;\n\n _classCallCheck(this, TransitionMotion);\n\n _React$Component.call(this, props);\n\n this.unmounting = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _mergeAndSync = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, unreadPropStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var mergedPropsStyles = _mergeAndSync[0];\n var currentStyles = _mergeAndSync[1];\n var currentVelocities = _mergeAndSync[2];\n var lastIdealStyles = _mergeAndSync[3];\n var lastIdealVelocities = _mergeAndSync[4];\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i].style;\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n mergedPropsStyles[i] = {\n key: mergedPropsStyles[i].key,\n data: mergedPropsStyles[i].data,\n style: _extends({}, mergedPropsStyles[i].style)\n };\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n mergedPropsStyles[i].style[key] = styleValue;\n }\n }\n } // unlike the other 2 components, we can't detect staleness and optionally\n // opt out of setState here. each style object's data might contain new\n // stuff we're not/cannot compare\n\n\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n mergedPropsStyles: mergedPropsStyles,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n };\n\n this.startAnimationIfNecessary = function () {\n if (_this.unmounting) {\n return;\n } // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n\n\n _this.animationID = _raf2['default'](function (timestamp) {\n // https://github.com/chenglou/react-motion/pull/420\n // > if execution passes the conditional if (this.unmounting), then\n // executes async defaultRaf and after that component unmounts and after\n // that the callback of defaultRaf is called, then setState will be called\n // on unmounted component.\n if (_this.unmounting) {\n return;\n }\n\n var propStyles = _this.props.styles;\n var destStyles = typeof propStyles === 'function' ? propStyles(rehydrateStyles(_this.state.mergedPropsStyles, _this.unreadPropStyles, _this.state.lastIdealStyles)) : propStyles; // check if we need to animate in the first place\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities, _this.state.mergedPropsStyles)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n\n var _mergeAndSync2 = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, destStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var newMergedPropsStyles = _mergeAndSync2[0];\n var newCurrentStyles = _mergeAndSync2[1];\n var newCurrentVelocities = _mergeAndSync2[2];\n var newLastIdealStyles = _mergeAndSync2[3];\n var newLastIdealVelocities = _mergeAndSync2[4];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyle = newMergedPropsStyles[i].style;\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in newMergedPropsStyle) {\n if (!Object.prototype.hasOwnProperty.call(newMergedPropsStyle, key)) {\n continue;\n }\n\n var styleValue = newMergedPropsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = newLastIdealStyles[i][key];\n var newLastIdealVelocityValue = newLastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities,\n mergedPropsStyles: newMergedPropsStyles\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n TransitionMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var willEnter = _props.willEnter;\n var willLeave = _props.willLeave;\n var didLeave = _props.didLeave;\n var destStyles = typeof styles === 'function' ? styles(defaultStyles) : styles; // this is special. for the first time around, we don't have a comparison\n // between last (no last) and current merged props. we'll compute last so:\n // say default is {a, b} and styles (dest style) is {b, c}, we'll\n // fabricate last as {a, b}\n\n var oldMergedPropsStyles = undefined;\n\n if (defaultStyles == null) {\n oldMergedPropsStyles = destStyles;\n } else {\n oldMergedPropsStyles = defaultStyles.map(function (defaultStyleCell) {\n // TODO: key search code\n for (var i = 0; i < destStyles.length; i++) {\n if (destStyles[i].key === defaultStyleCell.key) {\n return destStyles[i];\n }\n }\n\n return defaultStyleCell;\n });\n }\n\n var oldCurrentStyles = defaultStyles == null ? destStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n });\n var oldCurrentVelocities = defaultStyles == null ? destStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n });\n\n var _mergeAndSync3 = mergeAndSync( // Because this is an old-style createReactClass component, Flow doesn't\n // understand that the willEnter and willLeave props have default values\n // and will always be present.\n willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldCurrentStyles, // oldLastIdealStyles really\n oldCurrentVelocities);\n\n var mergedPropsStyles = _mergeAndSync3[0];\n var currentStyles = _mergeAndSync3[1];\n var currentVelocities = _mergeAndSync3[2];\n var lastIdealStyles = _mergeAndSync3[3];\n var lastIdealVelocities = _mergeAndSync3[4]; // oldLastIdealVelocities really\n\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities,\n mergedPropsStyles: mergedPropsStyles\n };\n }; // after checking for unreadPropStyles != null, we manually go set the\n // non-interpolating values (those that are a number, without a spring\n // config)\n\n\n TransitionMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n TransitionMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n this.unreadPropStyles = styles(rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.lastIdealStyles));\n } else {\n this.unreadPropStyles = styles;\n }\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n TransitionMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unmounting = true;\n\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n TransitionMotion.prototype.render = function render() {\n var hydratedStyles = rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.currentStyles);\n var renderedChildren = this.props.children(hydratedStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return TransitionMotion;\n}(_react2['default'].Component);\n\nexports['default'] = TransitionMotion;\nmodule.exports = exports['default']; // list of styles, each containing interpolating values. Part of what's passed\n// to children function. Notice that this is\n// Array, without the wrapper that is {key: ...,\n// data: ... style: ActualInterpolatingStyleObject}. Only mergedPropsStyles\n// contains the key & data info (so that we only have a single source of truth\n// for these, and to save space). Check the comment for `rehydrateStyles` to\n// see how we regenerate the entirety of what's passed to children function\n// the array that keeps track of currently rendered stuff! Including stuff\n// that you've unmounted but that's still animating. This is where it lives\n// it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400","// core keys merging algorithm. If previous render's keys are [a, b], and the\n// next render's [c, b, d], what's the final merged keys and ordering?\n// - c and a must both be before b\n// - b before d\n// - ordering between a and c ambiguous\n// this reduces to merging two partially ordered lists (e.g. lists where not\n// every item has a definite ordering, like comparing a and c above). For the\n// ambiguous ordering we deterministically choose to place the next render's\n// item after the previous'; so c after a\n// this is called a topological sorting. Except the existing algorithms don't\n// work well with js bc of the amount of allocation, and isn't optimized for our\n// current use-case bc the runtime is linear in terms of edges (see wiki for\n// meaning), which is huge when two lists have many common elements\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mergeDiff;\n\nfunction mergeDiff(prev, next, onRemove) {\n // bookkeeping for easier access of a key's index below. This is 2 allocations +\n // potentially triggering chrome hash map mode for objs (so it might be faster\n var prevKeyIndex = {};\n\n for (var i = 0; i < prev.length; i++) {\n prevKeyIndex[prev[i].key] = i;\n }\n\n var nextKeyIndex = {};\n\n for (var i = 0; i < next.length; i++) {\n nextKeyIndex[next[i].key] = i;\n } // first, an overly elaborate way of merging prev and next, eliminating\n // duplicates (in terms of keys). If there's dupe, keep the item in next).\n // This way of writing it saves allocations\n\n\n var ret = [];\n\n for (var i = 0; i < next.length; i++) {\n ret[i] = next[i];\n }\n\n for (var i = 0; i < prev.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(nextKeyIndex, prev[i].key)) {\n // this is called my TM's `mergeAndSync`, which calls willLeave. We don't\n // merge in keys that the user desires to kill\n var fill = onRemove(i, prev[i]);\n\n if (fill != null) {\n ret.push(fill);\n }\n }\n } // now all the items all present. Core sorting logic to have the right order\n\n\n return ret.sort(function (a, b) {\n var nextOrderA = nextKeyIndex[a.key];\n var nextOrderB = nextKeyIndex[b.key];\n var prevOrderA = prevKeyIndex[a.key];\n var prevOrderB = prevKeyIndex[b.key];\n\n if (nextOrderA != null && nextOrderB != null) {\n // both keys in next\n return nextKeyIndex[a.key] - nextKeyIndex[b.key];\n } else if (prevOrderA != null && prevOrderB != null) {\n // both keys in prev\n return prevKeyIndex[a.key] - prevKeyIndex[b.key];\n } else if (nextOrderA != null) {\n // key a in next, key b in prev\n // how to determine the order between a and b? We find a \"pivot\" (term\n // abuse), a key present in both prev and next, that is sandwiched between\n // a and b. In the context of our above example, if we're comparing a and\n // d, b's (the only) pivot\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderA < nextKeyIndex[pivot] && prevOrderB > prevKeyIndex[pivot]) {\n return -1;\n } else if (nextOrderA > nextKeyIndex[pivot] && prevOrderB < prevKeyIndex[pivot]) {\n return 1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return 1;\n } // prevOrderA, nextOrderB\n\n\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderB < nextKeyIndex[pivot] && prevOrderA > prevKeyIndex[pivot]) {\n return 1;\n } else if (nextOrderB > nextKeyIndex[pivot] && prevOrderA < prevKeyIndex[pivot]) {\n return -1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return -1;\n });\n}\n\nmodule.exports = exports['default']; // to loop through and find a key's index each time), but I no longer care","'use strict';\n\nexports.__esModule = true;\n\nvar _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\nexports['default'] = spring;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _presets = require('./presets');\n\nvar _presets2 = _interopRequireDefault(_presets);\n\nvar defaultConfig = _extends({}, _presets2['default'].noWobble, {\n precision: 0.01\n});\n\nfunction spring(val, config) {\n return _extends({}, defaultConfig, config, {\n val: val\n });\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = reorderKeys;\nvar hasWarned = false;\n\nfunction reorderKeys() {\n if (process.env.NODE_ENV === 'development') {\n if (!hasWarned) {\n hasWarned = true;\n console.error('`reorderKeys` has been removed, since it is no longer needed for TransitionMotion\\'s new styles array API.');\n }\n }\n}\n\nmodule.exports = exports['default'];","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar isArray = require('isarray');\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\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 */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\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 ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\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\n that.length = length;\n }\n\n return that;\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\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\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 * 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 **/\n\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\n if (typeof Symbol !== 'undefined' && Symbol.species && 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\n if (size <= 0) {\n return createBuffer(that, size);\n }\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' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\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\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\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 */\n\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 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\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\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\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' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\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 ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\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 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\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\n if (length === undefined) {\n length = 0;\n\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\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\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\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\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 } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\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} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\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\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\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\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\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\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\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\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\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\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\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\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}; // 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\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\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\n byteOffset = +byteOffset; // Coerce to Number.\n\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 } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\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\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\n if (Buffer.TYPED_ARRAY_SUPPORT && 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\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\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\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\n if (dir) {\n var foundIndex = -1;\n\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\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\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\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\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\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\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\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; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\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 var loweredCase = false;\n\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 var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 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\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\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\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\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} // 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\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, 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\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\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\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 var newBuf;\n\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\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\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 var val = this[offset];\n var mul = 1;\n var i = 0;\n\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\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\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 return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | 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 var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\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 var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\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 return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | 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\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\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\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\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\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)) >>> (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\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\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\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\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\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\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\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\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\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\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\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\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\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\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\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\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\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\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\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\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\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\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}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\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; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\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'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\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(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\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\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\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 } // Invalid ranges are not set to a default, so can range check early.\n\n\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 if (!val) val = 0;\n var i;\n\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) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\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, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\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); // is surrogate component\n\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 } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\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; // encode utf8\n\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(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\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\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\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\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","'use strict';\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\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 } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\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 var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | 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 = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | 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] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\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\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\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 } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n\n return parts.join('');\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 i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\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\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\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 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\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\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\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\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 define(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 = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(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 define(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 define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(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, in modern engines\n // we can explicitly access globalThis. In older engines 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 if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","/**\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.defaultProps = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _memoizeOne = _interopRequireDefault(require(\"memoize-one\"));\n\nvar _Menu = require(\"./components/Menu\");\n\nvar _reactFastCompare = _interopRequireDefault(require(\"./internal/react-fast-compare\"));\n\nvar _filters = require(\"./filters\");\n\nvar _index = require(\"./internal/index\");\n\nvar _index2 = require(\"./accessibility/index\");\n\nvar _utils = require(\"./utils\");\n\nvar _builtins = require(\"./builtins\");\n\nvar _index3 = require(\"./components/index\");\n\nvar _styles = require(\"./styles\");\n\nvar _theme = require(\"./theme\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? 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}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _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\nvar defaultProps = {\n backspaceRemovesValue: true,\n blurInputOnSelect: (0, _utils.isTouchCapable)(),\n captureMenuScroll: !(0, _utils.isTouchCapable)(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: (0, _filters.createFilter)(),\n formatGroupLabel: _builtins.formatGroupLabel,\n getOptionLabel: _builtins.getOptionLabel,\n getOptionValue: _builtins.getOptionValue,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: _builtins.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: !(0, _utils.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};\nexports.defaultProps = defaultProps;\nvar instanceId = 1;\n\nvar Select = /*#__PURE__*/function (_Component) {\n _inherits(Select, _Component); // Misc. Instance Properties\n // ------------------------------\n // TODO\n // Refs\n // ------------------------------\n // Lifecycle\n // ------------------------------\n\n\n function Select(_props) {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Select).call(this, _props));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n ariaLiveSelection: '',\n ariaLiveContext: '',\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n isComposing: false,\n menuOptions: {\n render: [],\n focusable: []\n },\n selectValue: []\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"blockOptionHover\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"clearFocusValueOnUpdate\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"commonProps\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"components\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"hasGroups\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"initialTouchX\", 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"initialTouchY\", 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"inputIsHiddenAfterUpdate\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"instancePrefix\", '');\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"openAfterFocus\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scrollToFocusedOptionOnUpdate\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"userIsDragging\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"controlRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getControlRef\", function (ref) {\n _this.controlRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"focusedOptionRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getFocusedOptionRef\", function (ref) {\n _this.focusedOptionRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"menuListRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getMenuListRef\", function (ref) {\n _this.menuListRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"inputRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getInputRef\", function (ref) {\n _this.inputRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cacheComponents\", function (components) {\n _this.components = (0, _index3.defaultComponents)({\n components: components\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"focus\", _this.focusInput);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"blur\", _this.blurInput);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onChange\", function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n onChange(newValue, _objectSpread({}, actionMeta, {\n name: name\n }));\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setValue\", function (newValue) {\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set-value';\n var option = arguments.length > 2 ? arguments[2] : undefined;\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti;\n\n _this.onInputChange('', {\n action: 'set-value'\n });\n\n if (closeMenuOnSelect) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } // when the select value should change, we should reset focusedValue\n\n\n _this.clearFocusValueOnUpdate = true;\n\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"selectOption\", function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti;\n\n if (isMulti) {\n var selectValue = _this.state.selectValue;\n\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 _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 }\n } else {\n _this.setValue(newValue, 'select-option');\n\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n }\n\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"removeValue\", function (removedValue) {\n var selectValue = _this.state.selectValue;\n\n var candidate = _this.getOptionValue(removedValue);\n\n _this.onChange(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n }), {\n action: 'remove-value',\n removedValue: removedValue\n });\n\n _this.announceAriaLiveSelection({\n event: 'remove-value',\n context: {\n value: removedValue ? _this.getOptionLabel(removedValue) : ''\n }\n });\n\n _this.focusInput();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"clearValue\", function () {\n var isMulti = _this.props.isMulti;\n\n _this.onChange(isMulti ? [] : null, {\n action: 'clear'\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popValue\", function () {\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n\n _this.announceAriaLiveSelection({\n event: 'pop-value',\n context: {\n value: lastSelectedValue ? _this.getOptionLabel(lastSelectedValue) : ''\n }\n });\n\n _this.onChange(selectValue.slice(0, selectValue.length - 1), {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOptionLabel\", function (data) {\n return _this.props.getOptionLabel(data);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOptionValue\", function (data) {\n return _this.props.getOptionValue(data);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getStyles\", function (key, props) {\n var base = _styles.defaultStyles[key](props);\n\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getElementId\", function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getActiveDescendentId\", function () {\n var menuIsOpen = _this.props.menuIsOpen;\n var _this$state = _this.state,\n menuOptions = _this$state.menuOptions,\n focusedOption = _this$state.focusedOption;\n if (!focusedOption || !menuIsOpen) return undefined;\n var index = menuOptions.focusable.indexOf(focusedOption);\n var option = menuOptions.render[index];\n return option && option.key;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"announceAriaLiveSelection\", function (_ref2) {\n var event = _ref2.event,\n context = _ref2.context;\n\n _this.setState({\n ariaLiveSelection: (0, _index2.valueEventAriaMessage)(event, context)\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"announceAriaLiveContext\", function (_ref3) {\n var event = _ref3.event,\n context = _ref3.context;\n\n _this.setState({\n ariaLiveContext: (0, _index2.instructionsAriaMessage)(event, _objectSpread({}, context, {\n label: _this.props['aria-label']\n }))\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuMouseDown\", function (event) {\n if (event.button !== 0) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n _this.focusInput();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuMouseMove\", function (event) {\n _this.blockOptionHover = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onControlMouseDown\", function (event) {\n var openMenuOnClick = _this.props.openMenuOnClick;\n\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if (event.currentTarget.tagName !== 'INPUT') {\n _this.onMenuClose();\n }\n }\n\n if (event.currentTarget.tagName !== 'INPUT') {\n event.preventDefault();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onDropdownIndicatorMouseDown\", function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n\n _this.focusInput();\n\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n\n event.preventDefault();\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onClearIndicatorMouseDown\", function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n _this.clearValue();\n\n event.stopPropagation();\n _this.openAfterFocus = false;\n setTimeout(function () {\n return _this.focusInput();\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onScroll\", function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && (0, _utils.isDocumentElement)(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onCompositionStart\", function () {\n _this.setState({\n isComposing: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onCompositionEnd\", function () {\n _this.setState({\n isComposing: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchStart\", function (_ref4) {\n var touches = _ref4.touches;\n var touch = touches.item(0);\n\n if (!touch) {\n return;\n }\n\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchMove\", function (_ref5) {\n var touches = _ref5.touches;\n var touch = touches.item(0);\n\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchEnd\", function (event) {\n if (_this.userIsDragging) return; // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n } // reset move vars\n\n\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onControlTouchEnd\", function (event) {\n if (_this.userIsDragging) return;\n\n _this.onControlMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onClearIndicatorTouchEnd\", function (event) {\n if (_this.userIsDragging) return;\n\n _this.onClearIndicatorMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onDropdownIndicatorTouchEnd\", function (event) {\n if (_this.userIsDragging) return;\n\n _this.onDropdownIndicatorMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleInputChange\", function (event) {\n var inputValue = event.currentTarget.value;\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange(inputValue, {\n action: 'input-change'\n });\n\n _this.onMenuOpen();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onInputFocus\", function (event) {\n var _this$props5 = _this.props,\n isSearchable = _this$props5.isSearchable,\n isMulti = _this$props5.isMulti;\n\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n\n _this.setState({\n isFocused: true\n });\n\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n\n _this.openAfterFocus = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onInputBlur\", function (event) {\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n\n return;\n }\n\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n\n _this.onInputChange('', {\n action: 'input-blur'\n });\n\n _this.onMenuClose();\n\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onOptionHover\", function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n\n _this.setState({\n focusedOption: focusedOption\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"shouldHideSelectedOptions\", function () {\n var _this$props6 = _this.props,\n hideSelectedOptions = _this$props6.hideSelectedOptions,\n isMulti = _this$props6.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onKeyDown\", function (event) {\n var _this$props7 = _this.props,\n isMulti = _this$props7.isMulti,\n backspaceRemovesValue = _this$props7.backspaceRemovesValue,\n escapeClearsValue = _this$props7.escapeClearsValue,\n inputValue = _this$props7.inputValue,\n isClearable = _this$props7.isClearable,\n isDisabled = _this$props7.isDisabled,\n menuIsOpen = _this$props7.menuIsOpen,\n onKeyDown = _this$props7.onKeyDown,\n tabSelectsValue = _this$props7.tabSelectsValue,\n openMenuOnFocus = _this$props7.openMenuOnFocus;\n var _this$state2 = _this.state,\n isComposing = _this$state2.isComposing,\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 (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 (menuIsOpen) {\n if (!focusedOption) return;\n if (isComposing) return;\n\n _this.selectOption(focusedOption);\n\n break;\n }\n\n return;\n\n case 'Escape':\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange('', {\n action: 'menu-close'\n });\n\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n\n break;\n\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n\n if (!menuIsOpen) {\n _this.openMenu('first');\n\n break;\n }\n\n if (!focusedOption) return;\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n\n break;\n\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n\n break;\n\n case 'PageUp':\n if (!menuIsOpen) return;\n\n _this.focusOption('pageup');\n\n break;\n\n case 'PageDown':\n if (!menuIsOpen) return;\n\n _this.focusOption('pagedown');\n\n break;\n\n case 'Home':\n if (!menuIsOpen) return;\n\n _this.focusOption('first');\n\n break;\n\n case 'End':\n if (!menuIsOpen) return;\n\n _this.focusOption('last');\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n });\n\n var value = _props.value;\n _this.cacheComponents = (0, _memoizeOne[\"default\"])(_this.cacheComponents, _reactFastCompare[\"default\"]).bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n _this.cacheComponents(_props.components);\n\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n\n var _selectValue = (0, _utils.cleanValue)(value);\n\n var _menuOptions = _this.buildMenuOptions(_props, _selectValue);\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: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props8 = this.props,\n options = _this$props8.options,\n value = _this$props8.value,\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.inputValue !== inputValue) {\n var selectValue = (0, _utils.cleanValue)(nextProps.value);\n var menuOptions = this.buildMenuOptions(nextProps, selectValue);\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 (0, _utils.scrollIntoView)(this.menuListRef, this.focusedOptionRef);\n }\n\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n }\n }, {\n key: \"onMenuOpen\",\n // ==============================\n // Consumer Handlers\n // ==============================\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n var _this$props10 = this.props,\n isSearchable = _this$props10.isSearchable,\n isMulti = _this$props10.isMulti;\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n this.onInputChange('', {\n action: 'menu-close'\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n } // ==============================\n // Methods\n // ==============================\n\n }, {\n key: \"focusInput\",\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: \"blurInput\",\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n } // aliased for consumers\n\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this$state3 = this.state,\n menuOptions = _this$state3.menuOptions,\n selectValue = _this$state3.selectValue,\n isFocused = _this$state3.isFocused;\n var isMulti = this.props.isMulti;\n var openAtIndex = focusOption === 'first' ? 0 : menuOptions.focusable.length - 1;\n\n if (!isMulti) {\n var selectedIndex = menuOptions.focusable.indexOf(selectValue[0]);\n\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n } // only scroll if the menu isn't already open\n\n\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.inputIsHiddenAfterUpdate = false;\n this.onMenuOpen();\n this.setState({\n focusedValue: null,\n focusedOption: menuOptions.focusable[openAtIndex]\n });\n this.announceAriaLiveContext({\n event: 'menu'\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$props11 = this.props,\n isMulti = _this$props11.isMulti,\n isSearchable = _this$props11.isSearchable;\n var _this$state4 = this.state,\n selectValue = _this$state4.selectValue,\n focusedValue = _this$state4.focusedValue; // Only multiselects support value focusing\n\n if (!isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n\n if (!focusedValue) {\n focusedIndex = -1;\n this.announceAriaLiveContext({\n event: 'value'\n });\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n\n break;\n\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n\n break;\n }\n\n if (nextFocus === -1) {\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n }\n\n this.setState({\n inputIsHidden: nextFocus === -1 ? false : true,\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 }\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 _theme.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(_theme.defaultTheme);\n } // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n\n\n return _objectSpread({}, _theme.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 = _utils.classNames.bind(null, classNamePrefix);\n\n return {\n cx: cx,\n clearValue: clearValue,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n setValue: setValue,\n selectProps: props,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"getNextFocusedValue\",\n value: function getNextFocusedValue(nextSelectValue) {\n if (this.clearFocusValueOnUpdate) {\n this.clearFocusValueOnUpdate = false;\n return null;\n }\n\n var _this$state6 = this.state,\n focusedValue = _this$state6.focusedValue,\n lastSelectValue = _this$state6.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n\n return null;\n }\n }, {\n key: \"getNextFocusedOption\",\n value: function getNextFocusedOption(options) {\n var lastFocusedOption = this.state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.state.menuOptions.render.length;\n }\n }, {\n key: \"countOptions\",\n value: function countOptions() {\n return this.state.menuOptions.focusable.length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props12 = this.props,\n isClearable = _this$props12.isClearable,\n isMulti = _this$props12.isMulti; // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return typeof this.props.isOptionDisabled === 'function' ? this.props.isOptionDisabled(option, selectValue) : false;\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n var _this2 = this;\n\n if (selectValue.indexOf(option) > -1) return true;\n\n if (typeof this.props.isOptionSelected === 'function') {\n return this.props.isOptionSelected(option, selectValue);\n }\n\n var candidate = this.getOptionValue(option);\n return selectValue.some(function (i) {\n return _this2.getOptionValue(i) === candidate;\n });\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return this.props.filterOption ? this.props.filterOption(option, inputValue) : true;\n }\n }, {\n key: \"formatOptionLabel\",\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var inputValue = this.props.inputValue;\n var selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: inputValue,\n selectValue: selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n } // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: \"startListeningComposition\",\n // ==============================\n // Composition Handlers\n // ==============================\n value: function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: \"stopListeningComposition\",\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: \"startListeningToTouch\",\n // ==============================\n // Touch Handlers\n // ==============================\n value: function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: \"stopListeningToTouch\",\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n }, {\n key: \"buildMenuOptions\",\n // ==============================\n // Menu Options\n // ==============================\n value: function buildMenuOptions(props, selectValue) {\n var _this3 = this;\n\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue,\n options = props.options;\n\n var toOption = function toOption(option, id) {\n var isDisabled = _this3.isOptionDisabled(option, selectValue);\n\n var isSelected = _this3.isOptionSelected(option, selectValue);\n\n var label = _this3.getOptionLabel(option);\n\n var value = _this3.getOptionValue(option);\n\n if (_this3.shouldHideSelectedOptions() && isSelected || !_this3.filterOption({\n label: label,\n value: value,\n data: option\n }, inputValue)) {\n return;\n }\n\n var onHover = isDisabled ? undefined : function () {\n return _this3.onOptionHover(option);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this3.selectOption(option);\n };\n var optionId = \"\".concat(_this3.getElementId('option'), \"-\").concat(id);\n return {\n innerProps: {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n },\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: 'option',\n value: value\n };\n };\n\n return options.reduce(function (acc, item, itemIndex) {\n if (item.options) {\n // TODO needs a tidier implementation\n if (!_this3.hasGroups) _this3.hasGroups = true;\n var items = item.options;\n var children = items.map(function (child, i) {\n var option = toOption(child, \"\".concat(itemIndex, \"-\").concat(i));\n if (option && !option.isDisabled) acc.focusable.push(child);\n return option;\n }).filter(Boolean);\n\n if (children.length) {\n var groupId = \"\".concat(_this3.getElementId('group'), \"-\").concat(itemIndex);\n acc.render.push({\n type: 'group',\n key: groupId,\n data: item,\n options: children\n });\n }\n } else {\n var option = toOption(item, \"\".concat(itemIndex));\n\n if (option) {\n acc.render.push(option);\n if (!option.isDisabled) acc.focusable.push(item);\n }\n }\n\n return acc;\n }, {\n render: [],\n focusable: []\n });\n } // ==============================\n // Renderers\n // ==============================\n\n }, {\n key: \"constructAriaLiveMessage\",\n value: function constructAriaLiveMessage() {\n var _this$state7 = this.state,\n ariaLiveContext = _this$state7.ariaLiveContext,\n selectValue = _this$state7.selectValue,\n focusedValue = _this$state7.focusedValue,\n focusedOption = _this$state7.focusedOption;\n var _this$props13 = this.props,\n options = _this$props13.options,\n menuIsOpen = _this$props13.menuIsOpen,\n inputValue = _this$props13.inputValue,\n screenReaderStatus = _this$props13.screenReaderStatus; // An aria live message representing the currently focused value in the select.\n\n var focusedValueMsg = focusedValue ? (0, _index2.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 ? (0, _index2.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 = (0, _index2.resultsAriaMessage)({\n inputValue: inputValue,\n screenReaderMessage: screenReaderStatus({\n count: this.countOptions()\n })\n });\n return \"\".concat(focusedValueMsg, \" \").concat(focusedOptionMsg, \" \").concat(resultsMsg, \" \").concat(ariaLiveContext);\n }\n }, {\n key: \"renderInput\",\n value: function renderInput() {\n var _this$props14 = this.props,\n isDisabled = _this$props14.isDisabled,\n isSearchable = _this$props14.isSearchable,\n inputId = _this$props14.inputId,\n inputValue = _this$props14.inputValue,\n tabIndex = _this$props14.tabIndex;\n var Input = this.components.Input;\n var inputIsHidden = this.state.inputIsHidden;\n var id = inputId || this.getElementId('input');\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return _react[\"default\"].createElement(_index.DummyInput, {\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: _utils.noop,\n onFocus: this.onInputFocus,\n readOnly: true,\n disabled: isDisabled,\n tabIndex: tabIndex,\n value: \"\"\n });\n } // aria attributes makes the JSX \"noisy\", separated for clarity\n\n\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n var _this$commonProps = this.commonProps,\n cx = _this$commonProps.cx,\n theme = _this$commonProps.theme,\n selectProps = _this$commonProps.selectProps;\n return _react[\"default\"].createElement(Input, _extends({\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n cx: cx,\n getStyles: this.getStyles,\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n selectProps: selectProps,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n theme: theme,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this4 = this;\n\n var _this$components = this.components,\n MultiValue = _this$components.MultiValue,\n MultiValueContainer = _this$components.MultiValueContainer,\n MultiValueLabel = _this$components.MultiValueLabel,\n MultiValueRemove = _this$components.MultiValueRemove,\n SingleValue = _this$components.SingleValue,\n Placeholder = _this$components.Placeholder;\n var commonProps = this.commonProps;\n var _this$props15 = this.props,\n controlShouldRenderValue = _this$props15.controlShouldRenderValue,\n isDisabled = _this$props15.isDisabled,\n isMulti = _this$props15.isMulti,\n inputValue = _this$props15.inputValue,\n placeholder = _this$props15.placeholder;\n var _this$state8 = this.state,\n selectValue = _this$state8.selectValue,\n focusedValue = _this$state8.focusedValue,\n isFocused = _this$state8.isFocused;\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : _react[\"default\"].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) {\n var isFocused = opt === focusedValue;\n return _react[\"default\"].createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isFocused,\n isDisabled: isDisabled,\n key: _this4.getOptionValue(opt),\n removeProps: {\n onClick: function onClick() {\n return _this4.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this4.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }), _this4.formatOptionLabel(opt, 'value'));\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return _react[\"default\"].createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var ClearIndicator = this.components.ClearIndicator;\n var commonProps = this.commonProps;\n var _this$props16 = this.props,\n isDisabled = _this$props16.isDisabled,\n isLoading = _this$props16.isLoading;\n var isFocused = this.state.isFocused;\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return _react[\"default\"].createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var LoadingIndicator = this.components.LoadingIndicator;\n var commonProps = this.commonProps;\n var _this$props17 = this.props,\n isDisabled = _this$props17.isDisabled,\n isLoading = _this$props17.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return _react[\"default\"].createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderIndicatorSeparator\",\n value: function renderIndicatorSeparator() {\n var _this$components2 = this.components,\n DropdownIndicator = _this$components2.DropdownIndicator,\n IndicatorSeparator = _this$components2.IndicatorSeparator; // separator doesn't make sense without the dropdown indicator\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return _react[\"default\"].createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var DropdownIndicator = this.components.DropdownIndicator;\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return _react[\"default\"].createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this5 = this;\n\n var _this$components3 = this.components,\n Group = _this$components3.Group,\n GroupHeading = _this$components3.GroupHeading,\n Menu = _this$components3.Menu,\n MenuList = _this$components3.MenuList,\n MenuPortal = _this$components3.MenuPortal,\n LoadingMessage = _this$components3.LoadingMessage,\n NoOptionsMessage = _this$components3.NoOptionsMessage,\n Option = _this$components3.Option;\n var commonProps = this.commonProps;\n var _this$state9 = this.state,\n focusedOption = _this$state9.focusedOption,\n menuOptions = _this$state9.menuOptions;\n var _this$props18 = this.props,\n captureMenuScroll = _this$props18.captureMenuScroll,\n inputValue = _this$props18.inputValue,\n isLoading = _this$props18.isLoading,\n loadingMessage = _this$props18.loadingMessage,\n minMenuHeight = _this$props18.minMenuHeight,\n maxMenuHeight = _this$props18.maxMenuHeight,\n menuIsOpen = _this$props18.menuIsOpen,\n menuPlacement = _this$props18.menuPlacement,\n menuPosition = _this$props18.menuPosition,\n menuPortalTarget = _this$props18.menuPortalTarget,\n menuShouldBlockScroll = _this$props18.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props18.menuShouldScrollIntoView,\n noOptionsMessage = _this$props18.noOptionsMessage,\n onMenuScrollToTop = _this$props18.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props18.onMenuScrollToBottom;\n if (!menuIsOpen) return null; // TODO: Internal Option Type here\n\n var render = function render(props) {\n // for performance, the menu options in state aren't changed when the\n // focused option changes so we calculate additional props based on that\n var isFocused = focusedOption === props.data;\n props.innerRef = isFocused ? _this5.getFocusedOptionRef : undefined;\n return _react[\"default\"].createElement(Option, _extends({}, commonProps, props, {\n isFocused: isFocused\n }), _this5.formatOptionLabel(props.data, 'menu'));\n };\n\n var menuUI;\n\n if (this.hasOptions()) {\n menuUI = menuOptions.render.map(function (item) {\n if (item.type === 'group') {\n var type = item.type,\n group = _objectWithoutProperties(item, [\"type\"]);\n\n var headingId = \"\".concat(item.key, \"-heading\");\n return _react[\"default\"].createElement(Group, _extends({}, commonProps, group, {\n Heading: GroupHeading,\n headingProps: {\n id: headingId\n },\n label: _this5.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option);\n }));\n } else if (item.type === 'option') {\n return render(item);\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = _react[\"default\"].createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n\n if (_message === null) return null;\n menuUI = _react[\"default\"].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\n var menuElement = _react[\"default\"].createElement(_Menu.MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref6) {\n var ref = _ref6.ref,\n _ref6$placerProps = _ref6.placerProps,\n placement = _ref6$placerProps.placement,\n maxHeight = _ref6$placerProps.maxHeight;\n return _react[\"default\"].createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this5.onMenuMouseDown,\n onMouseMove: _this5.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }), _react[\"default\"].createElement(_index.ScrollCaptor, {\n isEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom\n }, _react[\"default\"].createElement(_index.ScrollBlock, {\n isEnabled: menuShouldBlockScroll\n }, _react[\"default\"].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\n return menuPortalTarget || menuPosition === 'fixed' ? _react[\"default\"].createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this6 = this;\n\n var _this$props19 = this.props,\n delimiter = _this$props19.delimiter,\n isDisabled = _this$props19.isDisabled,\n isMulti = _this$props19.isMulti,\n name = _this$props19.name;\n var selectValue = this.state.selectValue;\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this6.getOptionValue(opt);\n }).join(delimiter);\n return _react[\"default\"].createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return _react[\"default\"].createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this6.getOptionValue(opt)\n });\n }) : _react[\"default\"].createElement(\"input\", {\n name: name,\n type: \"hidden\"\n });\n return _react[\"default\"].createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n\n return _react[\"default\"].createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n if (!this.state.isFocused) return null;\n return _react[\"default\"].createElement(_index.A11yText, {\n \"aria-live\": \"assertive\"\n }, _react[\"default\"].createElement(\"p\", {\n id: \"aria-selection-event\"\n }, \"\\xA0\", this.state.ariaLiveSelection), _react[\"default\"].createElement(\"p\", {\n id: \"aria-context\"\n }, \"\\xA0\", this.constructAriaLiveMessage()));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$components4 = this.components,\n Control = _this$components4.Control,\n IndicatorsContainer = _this$components4.IndicatorsContainer,\n SelectContainer = _this$components4.SelectContainer,\n ValueContainer = _this$components4.ValueContainer;\n var _this$props20 = this.props,\n className = _this$props20.className,\n id = _this$props20.id,\n isDisabled = _this$props20.isDisabled,\n menuIsOpen = _this$props20.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return _react[\"default\"].createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), _react[\"default\"].createElement(Control, _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), _react[\"default\"].createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), _react[\"default\"].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}(_react.Component);\n\nexports[\"default\"] = Select;\n\n_defineProperty(Select, \"defaultProps\", defaultProps);","'use strict';\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exportedEqual;\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA != arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length) {\n return false;\n }\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n } // end fast-deep-equal\n // Custom handling for React\n\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n } // fast-deep-equal index.js 2.0.1\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nfunction exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n}\n\n;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createFilter = void 0;\n\nvar _diacritics = require(\"./diacritics\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? 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}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\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 = (0, _diacritics.stripDiacritics)(input);\n candidate = (0, _diacritics.stripDiacritics)(candidate);\n }\n\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nexports.createFilter = createFilter;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.stripDiacritics = void 0;\nvar diacritics = [{\n base: 'A',\n letters: /[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]/g\n}, {\n base: 'AA',\n letters: /[\\uA732]/g\n}, {\n base: 'AE',\n letters: /[\\u00C6\\u01FC\\u01E2]/g\n}, {\n base: 'AO',\n letters: /[\\uA734]/g\n}, {\n base: 'AU',\n letters: /[\\uA736]/g\n}, {\n base: 'AV',\n letters: /[\\uA738\\uA73A]/g\n}, {\n base: 'AY',\n letters: /[\\uA73C]/g\n}, {\n base: 'B',\n letters: /[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]/g\n}, {\n base: 'C',\n letters: /[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]/g\n}, {\n base: 'D',\n letters: /[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]/g\n}, {\n base: 'DZ',\n letters: /[\\u01F1\\u01C4]/g\n}, {\n base: 'Dz',\n letters: /[\\u01F2\\u01C5]/g\n}, {\n base: 'E',\n letters: /[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]/g\n}, {\n base: 'F',\n letters: /[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]/g\n}, {\n base: 'G',\n letters: /[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]/g\n}, {\n base: 'H',\n letters: /[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]/g\n}, {\n base: 'I',\n letters: /[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]/g\n}, {\n base: 'J',\n letters: /[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]/g\n}, {\n base: 'K',\n letters: /[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]/g\n}, {\n base: 'L',\n letters: /[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]/g\n}, {\n base: 'LJ',\n letters: /[\\u01C7]/g\n}, {\n base: 'Lj',\n letters: /[\\u01C8]/g\n}, {\n base: 'M',\n letters: /[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]/g\n}, {\n base: 'N',\n letters: /[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]/g\n}, {\n base: 'NJ',\n letters: /[\\u01CA]/g\n}, {\n base: 'Nj',\n letters: /[\\u01CB]/g\n}, {\n base: 'O',\n letters: /[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]/g\n}, {\n base: 'OI',\n letters: /[\\u01A2]/g\n}, {\n base: 'OO',\n letters: /[\\uA74E]/g\n}, {\n base: 'OU',\n letters: /[\\u0222]/g\n}, {\n base: 'P',\n letters: /[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]/g\n}, {\n base: 'Q',\n letters: /[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]/g\n}, {\n base: 'R',\n letters: /[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]/g\n}, {\n base: 'S',\n letters: /[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]/g\n}, {\n base: 'T',\n letters: /[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]/g\n}, {\n base: 'TZ',\n letters: /[\\uA728]/g\n}, {\n base: 'U',\n letters: /[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]/g\n}, {\n base: 'V',\n letters: /[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]/g\n}, {\n base: 'VY',\n letters: /[\\uA760]/g\n}, {\n base: 'W',\n letters: /[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]/g\n}, {\n base: 'X',\n letters: /[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]/g\n}, {\n base: 'Y',\n letters: /[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]/g\n}, {\n base: 'Z',\n letters: /[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]/g\n}, {\n base: 'a',\n letters: /[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]/g\n}, {\n base: 'aa',\n letters: /[\\uA733]/g\n}, {\n base: 'ae',\n letters: /[\\u00E6\\u01FD\\u01E3]/g\n}, {\n base: 'ao',\n letters: /[\\uA735]/g\n}, {\n base: 'au',\n letters: /[\\uA737]/g\n}, {\n base: 'av',\n letters: /[\\uA739\\uA73B]/g\n}, {\n base: 'ay',\n letters: /[\\uA73D]/g\n}, {\n base: 'b',\n letters: /[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]/g\n}, {\n base: 'c',\n letters: /[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]/g\n}, {\n base: 'd',\n letters: /[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]/g\n}, {\n base: 'dz',\n letters: /[\\u01F3\\u01C6]/g\n}, {\n base: 'e',\n letters: /[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]/g\n}, {\n base: 'f',\n letters: /[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]/g\n}, {\n base: 'g',\n letters: /[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]/g\n}, {\n base: 'h',\n letters: /[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]/g\n}, {\n base: 'hv',\n letters: /[\\u0195]/g\n}, {\n base: 'i',\n letters: /[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]/g\n}, {\n base: 'j',\n letters: /[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]/g\n}, {\n base: 'k',\n letters: /[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]/g\n}, {\n base: 'l',\n letters: /[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]/g\n}, {\n base: 'lj',\n letters: /[\\u01C9]/g\n}, {\n base: 'm',\n letters: /[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]/g\n}, {\n base: 'n',\n letters: /[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]/g\n}, {\n base: 'nj',\n letters: /[\\u01CC]/g\n}, {\n base: 'o',\n letters: /[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]/g\n}, {\n base: 'oi',\n letters: /[\\u01A3]/g\n}, {\n base: 'ou',\n letters: /[\\u0223]/g\n}, {\n base: 'oo',\n letters: /[\\uA74F]/g\n}, {\n base: 'p',\n letters: /[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]/g\n}, {\n base: 'q',\n letters: /[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]/g\n}, {\n base: 'r',\n letters: /[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]/g\n}, {\n base: 's',\n letters: /[\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]/g\n}, {\n base: 't',\n letters: /[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]/g\n}, {\n base: 'tz',\n letters: /[\\uA729]/g\n}, {\n base: 'u',\n letters: /[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]/g\n}, {\n base: 'v',\n letters: /[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]/g\n}, {\n base: 'vy',\n letters: /[\\uA761]/g\n}, {\n base: 'w',\n letters: /[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]/g\n}, {\n base: 'x',\n letters: /[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]/g\n}, {\n base: 'y',\n letters: /[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]/g\n}, {\n base: 'z',\n letters: /[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]/g\n}];\n\nvar stripDiacritics = function stripDiacritics(str) {\n for (var i = 0; i < diacritics.length; i++) {\n str = str.replace(diacritics[i].letters, diacritics[i].base);\n }\n\n return str;\n};\n\nexports.stripDiacritics = stripDiacritics;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"A11yText\", {\n enumerable: true,\n get: function get() {\n return _A11yText[\"default\"];\n }\n});\nObject.defineProperty(exports, \"DummyInput\", {\n enumerable: true,\n get: function get() {\n return _DummyInput[\"default\"];\n }\n});\nObject.defineProperty(exports, \"NodeResolver\", {\n enumerable: true,\n get: function get() {\n return _NodeResolver[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ScrollBlock\", {\n enumerable: true,\n get: function get() {\n return _ScrollBlock[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ScrollCaptor\", {\n enumerable: true,\n get: function get() {\n return _ScrollCaptor[\"default\"];\n }\n});\n\nvar _A11yText = _interopRequireDefault(require(\"./A11yText\"));\n\nvar _DummyInput = _interopRequireDefault(require(\"./DummyInput\"));\n\nvar _NodeResolver = _interopRequireDefault(require(\"./NodeResolver\"));\n\nvar _ScrollBlock = _interopRequireDefault(require(\"./ScrollBlock\"));\n\nvar _ScrollCaptor = _interopRequireDefault(require(\"./ScrollCaptor\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\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 _emotion = require(\"emotion\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n} // Assistive text to describe visual elements. Hidden for sighted users.\n\n\nvar A11yText = function A11yText(props) {\n return _react[\"default\"].createElement(\"span\", _extends({\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n (0, _emotion.css)({\n zIndex: 9999,\n border: 0,\n clip: 'rect(1px, 1px, 1px, 1px)',\n height: 1,\n width: 1,\n position: 'absolute',\n overflow: 'hidden',\n padding: 0,\n whiteSpace: 'nowrap',\n backgroundColor: 'red',\n color: 'blue'\n })\n }, props));\n};\n\nvar _default = A11yText;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nvar DummyInput = /*#__PURE__*/function (_Component) {\n _inherits(DummyInput, _Component);\n\n function DummyInput() {\n _classCallCheck(this, DummyInput);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(DummyInput).apply(this, arguments));\n }\n\n _createClass(DummyInput, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n inProp = _this$props[\"in\"],\n out = _this$props.out,\n onExited = _this$props.onExited,\n appear = _this$props.appear,\n enter = _this$props.enter,\n exit = _this$props.exit,\n innerRef = _this$props.innerRef,\n emotion = _this$props.emotion,\n props = _objectWithoutProperties(_this$props, [\"in\", \"out\", \"onExited\", \"appear\", \"enter\", \"exit\", \"innerRef\", \"emotion\"]);\n\n return _react[\"default\"].createElement(\"input\", _extends({\n ref: innerRef\n }, props, {\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n (0, _emotion.css)({\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 })\n }));\n }\n }]);\n\n return DummyInput;\n}(_react.Component);\n\nexports[\"default\"] = DummyInput;","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _emotion = require(\"emotion\");\n\nvar _NodeResolver = _interopRequireDefault(require(\"./NodeResolver\"));\n\nvar _index = _interopRequireDefault(require(\"./ScrollLock/index\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _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} // 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\n\n\nvar ScrollBlock = /*#__PURE__*/function (_PureComponent) {\n _inherits(ScrollBlock, _PureComponent);\n\n function ScrollBlock() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ScrollBlock);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ScrollBlock)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n touchScrollTarget: null\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getScrollTarget\", function (ref) {\n if (ref === _this.state.touchScrollTarget) return;\n\n _this.setState({\n touchScrollTarget: ref\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"blurSelectInput\", function () {\n if (document.activeElement) {\n document.activeElement.blur();\n }\n });\n\n return _this;\n }\n\n _createClass(ScrollBlock, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n isEnabled = _this$props.isEnabled;\n var touchScrollTarget = this.state.touchScrollTarget; // bail early if not enabled\n\n if (!isEnabled) return children;\n /*\n * Div\n * ------------------------------\n * blocks scrolling on non-body elements behind the menu\n * NodeResolver\n * ------------------------------\n * we need a reference to the scrollable element to \"unlock\" scroll on\n * mobile devices\n * ScrollLock\n * ------------------------------\n * actually does the scroll locking\n */\n\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", {\n onClick: this.blurSelectInput,\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n (0, _emotion.css)({\n position: 'fixed',\n left: 0,\n bottom: 0,\n right: 0,\n top: 0\n })\n }), _react[\"default\"].createElement(_NodeResolver[\"default\"], {\n innerRef: this.getScrollTarget\n }, children), touchScrollTarget ? _react[\"default\"].createElement(_index[\"default\"], {\n touchScrollTarget: touchScrollTarget\n }) : null);\n }\n }]);\n\n return ScrollBlock;\n}(_react.PureComponent);\n\nexports[\"default\"] = ScrollBlock;","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = require(\"react\");\n\nvar _constants = require(\"./constants\");\n\nvar _utils = require(\"./utils\");\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _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\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\n\nvar ScrollLock = /*#__PURE__*/function (_Component) {\n _inherits(ScrollLock, _Component);\n\n function ScrollLock() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ScrollLock);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ScrollLock)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"originalStyles\", {});\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"listenerOptions\", {\n capture: false,\n passive: false\n });\n\n return _this;\n }\n\n _createClass(ScrollLock, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!canUseDOM) return;\n var _this$props = this.props,\n accountForScrollbars = _this$props.accountForScrollbars,\n touchScrollTarget = _this$props.touchScrollTarget;\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n _constants.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(_constants.LOCK_STYLES).forEach(function (key) {\n var val = _constants.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 && (0, _utils.isTouchDevice)()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', _utils.preventTouchMove, this.listenerOptions); // Allow scroll on provided target\n\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', _utils.preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.addEventListener('touchmove', _utils.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 _constants.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 && (0, _utils.isTouchDevice)()) {\n target.removeEventListener('touchmove', _utils.preventTouchMove, this.listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', _utils.preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', _utils.allowTouchMove, this.listenerOptions);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return ScrollLock;\n}(_react.Component);\n\nexports[\"default\"] = ScrollLock;\n\n_defineProperty(ScrollLock, \"defaultProps\", {\n accountForScrollbars: true\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOCK_STYLES = exports.STYLE_KEYS = void 0;\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nexports.STYLE_KEYS = STYLE_KEYS;\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};\nexports.LOCK_STYLES = LOCK_STYLES;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.preventTouchMove = preventTouchMove;\nexports.allowTouchMove = allowTouchMove;\nexports.preventInertiaScroll = preventInertiaScroll;\nexports.isTouchDevice = isTouchDevice;\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\n\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\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\n\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _NodeResolver = _interopRequireDefault(require(\"./NodeResolver\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _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\nvar ScrollCaptor = /*#__PURE__*/function (_Component) {\n _inherits(ScrollCaptor, _Component);\n\n function ScrollCaptor() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ScrollCaptor);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ScrollCaptor)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isBottom\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isTop\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scrollTarget\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"touchStart\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cancelScroll\", function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEventDelta\", function (event, delta) {\n var _this$props = _this.props,\n onBottomArrive = _this$props.onBottomArrive,\n onBottomLeave = _this$props.onBottomLeave,\n onTopArrive = _this$props.onTopArrive,\n onTopLeave = _this$props.onTopLeave;\n var _this$scrollTarget = _this.scrollTarget,\n scrollTop = _this$scrollTarget.scrollTop,\n scrollHeight = _this$scrollTarget.scrollHeight,\n clientHeight = _this$scrollTarget.clientHeight;\n var target = _this.scrollTarget;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false; // reset bottom/top flags\n\n if (availableScroll > delta && _this.isBottom) {\n if (onBottomLeave) onBottomLeave(event);\n _this.isBottom = false;\n }\n\n if (isDeltaPositive && _this.isTop) {\n if (onTopLeave) onTopLeave(event);\n _this.isTop = false;\n } // bottom limit\n\n\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !_this.isBottom) {\n onBottomArrive(event);\n }\n\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n _this.isBottom = true; // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !_this.isTop) {\n onTopArrive(event);\n }\n\n target.scrollTop = 0;\n shouldCancelScroll = true;\n _this.isTop = true;\n } // cancel scroll\n\n\n if (shouldCancelScroll) {\n _this.cancelScroll(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onWheel\", function (event) {\n _this.handleEventDelta(event, event.deltaY);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchStart\", function (event) {\n // set touch start so we can calculate touchmove delta\n _this.touchStart = event.changedTouches[0].clientY;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchMove\", function (event) {\n var deltaY = _this.touchStart - event.changedTouches[0].clientY;\n\n _this.handleEventDelta(event, deltaY);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getScrollTarget\", function (ref) {\n _this.scrollTarget = ref;\n });\n\n return _this;\n }\n\n _createClass(ScrollCaptor, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListening(this.scrollTarget);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListening(this.scrollTarget);\n }\n }, {\n key: \"startListening\",\n value: function startListening(el) {\n // bail early if no scroll available\n if (!el) return;\n if (el.scrollHeight <= el.clientHeight) 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 // bail early if no scroll available\n if (el.scrollHeight <= el.clientHeight) return; // all the if statements are to appease Flow 😢\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', this.onWheel, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', this.onTouchStart, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return _react[\"default\"].createElement(_NodeResolver[\"default\"], {\n innerRef: this.getScrollTarget\n }, this.props.children);\n }\n }]);\n\n return ScrollCaptor;\n}(_react.Component);\n\nvar ScrollCaptorSwitch = /*#__PURE__*/function (_Component2) {\n _inherits(ScrollCaptorSwitch, _Component2);\n\n function ScrollCaptorSwitch() {\n _classCallCheck(this, ScrollCaptorSwitch);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ScrollCaptorSwitch).apply(this, arguments));\n }\n\n _createClass(ScrollCaptorSwitch, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n isEnabled = _this$props2.isEnabled,\n props = _objectWithoutProperties(_this$props2, [\"isEnabled\"]);\n\n return isEnabled ? _react[\"default\"].createElement(ScrollCaptor, props) : this.props.children;\n }\n }]);\n\n return ScrollCaptorSwitch;\n}(_react.Component);\n\nexports[\"default\"] = ScrollCaptorSwitch;\n\n_defineProperty(ScrollCaptorSwitch, \"defaultProps\", {\n isEnabled: true\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resultsAriaMessage = exports.optionFocusAriaMessage = exports.valueFocusAriaMessage = exports.valueEventAriaMessage = exports.instructionsAriaMessage = void 0;\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\n switch (event) {\n case 'menu':\n return 'Use Up and Down to choose options, 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};\n\nexports.instructionsAriaMessage = instructionsAriaMessage;\n\nvar valueEventAriaMessage = function valueEventAriaMessage(event, context) {\n var value = context.value;\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 \"option \".concat(value, \", selected.\");\n }\n};\n\nexports.valueEventAriaMessage = valueEventAriaMessage;\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};\n\nexports.valueFocusAriaMessage = valueFocusAriaMessage;\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(options.indexOf(focusedOption) + 1, \" of \").concat(options.length, \".\");\n};\n\nexports.optionFocusAriaMessage = optionFocusAriaMessage;\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\nexports.resultsAriaMessage = resultsAriaMessage;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isOptionDisabled = exports.getOptionValue = exports.getOptionLabel = exports.formatGroupLabel = void 0;\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\n\nexports.formatGroupLabel = formatGroupLabel;\n\nvar getOptionLabel = function getOptionLabel(option) {\n return option.label;\n};\n\nexports.getOptionLabel = getOptionLabel;\n\nvar getOptionValue = function getOptionValue(option) {\n return option.value;\n};\n\nexports.getOptionValue = getOptionValue;\n\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nexports.isOptionDisabled = isOptionDisabled;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultComponents = exports.components = void 0;\n\nvar _containers = require(\"./containers\");\n\nvar _indicators = require(\"./indicators\");\n\nvar _Control = _interopRequireDefault(require(\"./Control\"));\n\nvar _Group = _interopRequireWildcard(require(\"./Group\"));\n\nvar _Input = _interopRequireDefault(require(\"./Input\"));\n\nvar _Menu = _interopRequireWildcard(require(\"./Menu\"));\n\nvar _MultiValue = _interopRequireWildcard(require(\"./MultiValue\"));\n\nvar _Option = _interopRequireDefault(require(\"./Option\"));\n\nvar _Placeholder = _interopRequireDefault(require(\"./Placeholder\"));\n\nvar _SingleValue = _interopRequireDefault(require(\"./SingleValue\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? 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}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar components = {\n ClearIndicator: _indicators.ClearIndicator,\n Control: _Control[\"default\"],\n DropdownIndicator: _indicators.DropdownIndicator,\n DownChevron: _indicators.DownChevron,\n CrossIcon: _indicators.CrossIcon,\n Group: _Group[\"default\"],\n GroupHeading: _Group.GroupHeading,\n IndicatorsContainer: _containers.IndicatorsContainer,\n IndicatorSeparator: _indicators.IndicatorSeparator,\n Input: _Input[\"default\"],\n LoadingIndicator: _indicators.LoadingIndicator,\n Menu: _Menu[\"default\"],\n MenuList: _Menu.MenuList,\n MenuPortal: _Menu.MenuPortal,\n LoadingMessage: _Menu.LoadingMessage,\n NoOptionsMessage: _Menu.NoOptionsMessage,\n MultiValue: _MultiValue[\"default\"],\n MultiValueContainer: _MultiValue.MultiValueContainer,\n MultiValueLabel: _MultiValue.MultiValueLabel,\n MultiValueRemove: _MultiValue.MultiValueRemove,\n Option: _Option[\"default\"],\n Placeholder: _Placeholder[\"default\"],\n SelectContainer: _containers.SelectContainer,\n SingleValue: _SingleValue[\"default\"],\n ValueContainer: _containers.ValueContainer\n};\nexports.components = components;\n\nvar defaultComponents = function defaultComponents(props) {\n return _objectSpread({}, components, props.components);\n};\n\nexports.defaultComponents = defaultComponents;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeStyles = mergeStyles;\nexports.defaultStyles = void 0;\n\nvar _containers = require(\"./components/containers\");\n\nvar _Control = require(\"./components/Control\");\n\nvar _Group = require(\"./components/Group\");\n\nvar _indicators = require(\"./components/indicators\");\n\nvar _Input = require(\"./components/Input\");\n\nvar _Placeholder = require(\"./components/Placeholder\");\n\nvar _Option = require(\"./components/Option\");\n\nvar _Menu = require(\"./components/Menu\");\n\nvar _SingleValue = require(\"./components/SingleValue\");\n\nvar _MultiValue = require(\"./components/MultiValue\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? 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}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar defaultStyles = {\n clearIndicator: _indicators.clearIndicatorCSS,\n container: _containers.containerCSS,\n control: _Control.css,\n dropdownIndicator: _indicators.dropdownIndicatorCSS,\n group: _Group.groupCSS,\n groupHeading: _Group.groupHeadingCSS,\n indicatorsContainer: _containers.indicatorsContainerCSS,\n indicatorSeparator: _indicators.indicatorSeparatorCSS,\n input: _Input.inputCSS,\n loadingIndicator: _indicators.loadingIndicatorCSS,\n loadingMessage: _Menu.loadingMessageCSS,\n menu: _Menu.menuCSS,\n menuList: _Menu.menuListCSS,\n menuPortal: _Menu.menuPortalCSS,\n multiValue: _MultiValue.multiValueCSS,\n multiValueLabel: _MultiValue.multiValueLabelCSS,\n multiValueRemove: _MultiValue.multiValueRemoveCSS,\n noOptionsMessage: _Menu.noOptionsMessageCSS,\n option: _Option.optionCSS,\n placeholder: _Placeholder.placeholderCSS,\n singleValue: _SingleValue.css,\n valueContainer: _containers.valueContainerCSS\n}; // Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nexports.defaultStyles = defaultStyles;\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; // initialize with source styles\n\n var styles = _objectSpread({}, source); // massage in target styles\n\n\n Object.keys(target).forEach(function (key) {\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultTheme = exports.spacing = exports.colors = void 0;\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};\nexports.colors = colors;\nvar borderRadius = 4;\nvar baseUnit = 4;\n/* Used to calculate consistent margin/padding on elements */\n\nvar controlHeight = 38;\n/* The minimum height of the control */\n\nvar menuGutter = baseUnit * 2;\n/* The amount of space between the control and menu */\n\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nexports.spacing = spacing;\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\nexports.defaultTheme = defaultTheme;","\"use strict\";\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.defaultProps = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _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\nvar defaultProps = {\n defaultInputValue: '',\n defaultMenuIsOpen: false,\n defaultValue: null\n};\nexports.defaultProps = defaultProps;\n\nvar manageState = function manageState(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(StateManager, _Component);\n\n function StateManager() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, StateManager);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(StateManager)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"select\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n inputValue: _this.props.inputValue !== undefined ? _this.props.inputValue : _this.props.defaultInputValue,\n menuIsOpen: _this.props.menuIsOpen !== undefined ? _this.props.menuIsOpen : _this.props.defaultMenuIsOpen,\n value: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onChange\", function (value, actionMeta) {\n _this.callProp('onChange', value, actionMeta);\n\n _this.setState({\n value: value\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onInputChange\", function (value, actionMeta) {\n // TODO: for backwards compatibility, we allow the prop to return a new\n // value, but now inputValue is a controllable prop we probably shouldn't\n var newValue = _this.callProp('onInputChange', value, actionMeta);\n\n _this.setState({\n inputValue: newValue !== undefined ? newValue : value\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuOpen\", function () {\n _this.callProp('onMenuOpen');\n\n _this.setState({\n menuIsOpen: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuClose\", function () {\n _this.callProp('onMenuClose');\n\n _this.setState({\n menuIsOpen: false\n });\n });\n\n return _this;\n }\n\n _createClass(StateManager, [{\n key: \"focus\",\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.select.blur();\n } // FIXME: untyped flow code, return any\n\n }, {\n key: \"getProp\",\n value: function getProp(key) {\n return this.props[key] !== undefined ? this.props[key] : this.state[key];\n } // FIXME: untyped flow code, return any\n\n }, {\n key: \"callProp\",\n value: function callProp(name) {\n if (typeof this.props[name] === 'function') {\n var _this$props;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$props = this.props)[name].apply(_this$props, args);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n defaultInputValue = _this$props2.defaultInputValue,\n defaultMenuIsOpen = _this$props2.defaultMenuIsOpen,\n defaultValue = _this$props2.defaultValue,\n props = _objectWithoutProperties(_this$props2, [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\"]);\n\n return _react[\"default\"].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 }(_react.Component), _defineProperty(_class, \"defaultProps\", defaultProps), _temp;\n};\n\nvar _default = manageState;\nexports[\"default\"] = _default;","var baseIndexOf = require('./_baseIndexOf');\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n\n\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n\n return index;\n}\n\nmodule.exports = charsEndIndex;","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n\n return -1;\n}\n\nmodule.exports = strictIndexOf;","var baseIndexOf = require('./_baseIndexOf');\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n\n\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n\n return index;\n}\n\nmodule.exports = charsStartIndex;","var root = require('./_root');\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 */\n\n\nvar now = function now() {\n return root.Date.now();\n};\n\nmodule.exports = now;","var trimmedEndIndex = require('./_trimmedEndIndex');\n/** Used to match leading whitespace. */\n\n\nvar reTrimStart = /^\\s+/;\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n\nfunction baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string;\n}\n\nmodule.exports = baseTrim;","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n\n return index;\n}\n\nmodule.exports = trimmedEndIndex;","var _Symbol = require('./_Symbol');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\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 */\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\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\n}\n\nmodule.exports = getRawTag;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\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 */\n\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;","var memoizeCapped = require('./_memoizeCapped');\n/** Used to match property names within property paths. */\n\n\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n/** Used to match backslashes in property paths. */\n\nvar reEscapeChar = /\\\\(\\\\)?/g;\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 */\n\nvar stringToPath = memoizeCapped(function (string) {\n var result = [];\n\n if (string.charCodeAt(0) === 46\n /* . */\n ) {\n result.push('');\n }\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});\nmodule.exports = stringToPath;","var memoize = require('./memoize');\n/** Used as the maximum memoize cache size. */\n\n\nvar MAX_MEMOIZE_SIZE = 500;\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 */\n\nfunction memoizeCapped(func) {\n var result = memoize(func, function (key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n\n return key;\n });\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;","var MapCache = require('./_MapCache');\n/** Error message constants. */\n\n\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 */\n\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || resolver != null && typeof resolver != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n var memoized = function memoized() {\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\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n\n memoized.cache = new (memoize.Cache || MapCache)();\n return memoized;\n} // Expose `MapCache`.\n\n\nmemoize.Cache = MapCache;\nmodule.exports = memoize;","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n\n\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\n };\n}\n\nmodule.exports = mapCacheClear;","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `Hash`.\n\n\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\nmodule.exports = Hash;","var nativeCreate = require('./_nativeCreate');\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n\n\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n\n\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n/** Used to detect host constructors (Safari). */\n\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n/** Used for built-in method references. */\n\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n/** Used to resolve the decompiled source of functions. */\n\nvar funcToString = funcProto.toString;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Used to detect if a method is native. */\n\nvar reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\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 */\n\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;","var coreJsData = require('./_coreJsData');\n/** Used to detect methods masquerading as native. */\n\n\nvar maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\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 */\n\n\nfunction isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\n\nmodule.exports = isMasked;","var root = require('./_root');\n/** Used to detect overreaching core-js shims. */\n\n\nvar coreJsData = root['__core-js_shared__'];\nmodule.exports = coreJsData;","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;","var nativeCreate = require('./_nativeCreate');\n/** Used to stand-in for `undefined` hash values. */\n\n\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\n\nfunction hashGet(key) {\n var data = this.__data__;\n\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;","var nativeCreate = require('./_nativeCreate');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\n\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;","var nativeCreate = require('./_nativeCreate');\n/** Used to stand-in for `undefined` hash values. */\n\n\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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 */\n\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;","var assocIndexOf = require('./_assocIndexOf');\n/** Used for built-in method references. */\n\n\nvar arrayProto = Array.prototype;\n/** Built-in value references. */\n\nvar splice = arrayProto.splice;\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 */\n\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n\n var lastIndex = data.length - 1;\n\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;","var assocIndexOf = require('./_assocIndexOf');\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 */\n\n\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;","var assocIndexOf = require('./_assocIndexOf');\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 */\n\n\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;","var assocIndexOf = require('./_assocIndexOf');\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 */\n\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\n return this;\n}\n\nmodule.exports = listCacheSet;","var getMapData = require('./_getMapData');\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 */\n\n\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * 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\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n}\n\nmodule.exports = isKeyable;","var getMapData = require('./_getMapData');\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 */\n\n\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;","var getMapData = require('./_getMapData');\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 */\n\n\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;","var getMapData = require('./_getMapData');\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 */\n\n\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;","var _Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar INFINITY = 1 / 0;\n/** Used to convert symbols to primitives and strings. */\n\nvar symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\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 */\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\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n\nmodule.exports = baseToString;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a `;\n\n return (\n \n \n \n \n \n \n );\n}\n\nexport default AccountJobBoardEmbed;\n","import React, { useState } from \"react\";\nimport { Route, Redirect, NavLink, Link, Switch } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport { removeHttpPrefix } from \"@shared/lib/utils\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport NavItem from \"@ats/src/components/shared/NavItem\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport UnsavedChangesGuard from \"@ats/src/components/shared/UnsavedChangesGuard\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\n// import Original from \"./Original\";\nimport AccountJobBoardBranding from \"./AccountJobBoardBranding\";\nimport AccountJobBoardSeo from \"./AccountJobBoardSeo\";\nimport AccountJobBoardNavigation from \"./AccountJobBoardNavigation\";\nimport AccountJobBoardContent from \"./AccountJobBoardContent\";\nimport AccountJobBoardCustomDomain from \"./AccountJobBoardCustomDomain\";\nimport AccountJobBoardEmbed from \"./AccountJobBoardEmbed\";\n\nimport { FeatureFlipper } from \"@ats/src/components/shared/FeatureFlipper\";\n\nimport { useAuthorization } from \"@ats/src/components/shared/AuthorizationManager\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\nimport { getTimestamp } from \"@shared/queryHooks/useOrganization\";\n\nfunction AccountJobBoardContainer(props) {\n window.logger(\n \"%c[AccountJobBoardContainer] RENDER\",\n \"background: #EFDDEF; color: #1976D2\",\n props,\n );\n const { match } = props;\n\n const [isDirty, setIsDirty] = useState(false);\n const isAuthorized = useAuthorization();\n const authorized = isAuthorized({ adminOnly: true });\n\n const { currentOrganization } = useCurrentSession();\n\n if (!authorized) {\n return null;\n }\n\n if (currentOrganization == undefined) {\n return ;\n }\n\n // After the loading to ensure it exists\n const { stripeSubscriptionInGoodStanding } = currentOrganization;\n\n const viewLink = () => {\n if (stripeSubscriptionInGoodStanding) {\n return (\n \n \n \n {removeHttpPrefix(currentOrganization?.careersPageUrl)}\n \n \n );\n } else {\n return (\n \n \n \n \n );\n }\n };\n\n const handleClickOnViewPreview = () => {\n getTimestamp().then((data) => {\n window.logger(\"%c[AccountJobBoard] handleClickOnViewPreview getTimestamp\", \"color: #1976D2\", {\n data,\n });\n window.open(`${currentOrganization?.careersPageUrl}/preview/${data.timestamp}`, \"_blank\");\n });\n };\n\n return (\n <>\n \n \n \n \n \n \n \n \n\n {/* */}\n \n \n {/* */}\n \n\n \n \n Job board\n {viewLink()}\n \n \n\n {\n window.logger(\n \"%c[AccountJobBoardContainer] UnsavedChangesGuard navigate\",\n \"color: #1976D2\",\n pathname,\n );\n setIsDirty(false);\n props.history.push(pathname);\n }}\n />\n\n \n \n {/* (\n \n )}\n /> */}\n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n \n \n \n \n \n );\n}\n\nexport default AccountJobBoardContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div`\n label: AccountJobBoardContainer;\n display: flex;\n height: 100%;\n`;\n\nStyled.Sidebar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountJobBoardContainer_Sidebar;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n border-right: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n width: 40vw;\n flex-shrink: 0;\n\n ${t.mq[\"lg\"]} {\n width: 33.333%;\n flex-shrink: 1;\n }\n `;\n});\n\nStyled.List = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobStagesContainer_List;\n margin-top: 0.375rem;\n `;\n});\n\nStyled.Content = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountJobBoardContainer_Content;\n height: 100%;\n overflow-y: auto;\n position: relative;\n width: 100vw;\n flex-shrink: 0;\n\n ${t.mq[\"lg\"]} {\n width: 66.666%;\n flex-shrink: 1;\n }\n `;\n});\n\nStyled.Link = styled(Link)((props) => {\n const t: any = props.theme;\n return css`\n label: AccountJobBoard_Link;\n ${[t.text.medium]};\n &:hover {\n text-decoration: underline;\n }\n `;\n});\n\nStyled.Name = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: AccountJobBoardContainer_Name;\n display: flex;\n align-items: center;\n overflow: hidden;\n div {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n svg {\n ${t.mr(2)}\n flex-shrink: 0;\n }\n `;\n});\n\nStyled.Divider = styled.hr((props) => {\n const t: any = props.theme;\n return css`\n label: AccountJobBoardContainer_Divider;\n ${[t.mb(0)]}\n margin-top: 2.25rem;\n width: 100%;\n border: 0;\n `;\n});\n\nStyled.Preview = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupContainer_Preview;\n ${[t.px(4)]}\n `;\n});\n\nStyled.PreviewTitle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountJobBoardContainer_PreviewTitle;\n ${[t.text.xs, t.text.bold, t.mb(2)]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n `;\n});\n\nStyled.PreviewLink = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountJobBoardContainer_PreviewLink;\n ${[t.text.xs, t.h(6), t.mb(\"px\")]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1.4;\n display: flex;\n align-items: center;\n overflow: hidden;\n svg {\n ${t.mr(2)}\n flex-shrink: 0;\n }\n div,\n a,\n button {\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n text-align: start;\n cursor: pointer;\n padding: 0;\n appearance: none;\n outline: none;\n background: transparent;\n border: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n button:hover,\n button:focus,\n a:hover {\n text-decoration: underline;\n }\n `;\n});\n","import { useMutation, useQueryClient } from \"react-query\";\nimport { apiPost, apiPut, apiDelete } from \"@shared/queryHooks/api\";\n\nconst createJobCategory = async (variables) => {\n return await apiPost({ path: \"/job_categories\", variables });\n};\n\nconst updateJobCategory = async (variables) => {\n return await apiPut({ path: `/job_categories/${variables.id}`, variables });\n};\n\nconst deleteJobCategory = async (variables) => {\n return await apiDelete({ path: `/job_categories/${variables.id}`, variables });\n};\n\nexport function useCreateJobCategory() {\n const queryClient = useQueryClient();\n return useMutation(createJobCategory, {\n // Notice the second argument is the variables object that the `mutate` function receives\n // onSuccess: (data, variables) => {\n // queryClient.setQueryData([\"jobCategory\", { id: variables.id }], data);\n // },\n // Error\n // onError: (data, variables) => {\n // window.logger(\n // \"%c[useJobCategory] handle error when creating Job Category\",\n // \"background-color: #19F6D2\",\n // {\n // data,\n // variables,\n // },\n // );\n // },\n // After success or failure, refetch the jobCategories query\n onSettled: () => {\n queryClient.invalidateQueries(\"jobCategories\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useUpdateJobCategory() {\n const queryClient = useQueryClient();\n return useMutation(updateJobCategory, {\n onSettled: () => {\n queryClient.invalidateQueries(\"jobCategories\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useDeleteJobCategory() {\n const queryClient = useQueryClient();\n return useMutation(deleteJobCategory, {\n onSettled: () => {\n queryClient.invalidateQueries(\"jobCategories\");\n },\n // throwOnError: true,\n });\n}\n","import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\n\nimport { useCreateJobCategory, useUpdateJobCategory } from \"@shared/queryHooks/useJobCategory\";\n\nimport { validateJobCategory } from \"@shared/lib/validateWithYup\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\ntype Props = {\n onCancel: () => void;\n // history: any;\n isEditing: boolean;\n category: { id; name; jobsCount };\n};\n\nfunction JobCategoryModal(props: Props) {\n const { isEditing, onCancel, category } = props;\n const { dismissModalWithAnimation } = useModalContext();\n\n const {\n mutate: createJobCategory,\n error: errorOnCreate,\n isLoading: isLoadingCreate,\n } = useCreateJobCategory();\n const {\n mutate: updateJobCategory,\n error: errorOnUpdate,\n isLoading: isLoadingUpdate,\n } = useUpdateJobCategory();\n const [categoryName, setCategoryName] = useState(props.category.name || \"\");\n const [errors, setErrors] = useState([]);\n const [isDirty, setIsDirty] = useState(false);\n\n const handleChangeCategory = (_, value) => {\n setCategoryName(value);\n setErrors([]);\n setIsDirty(true);\n };\n\n // window.logger(\"%c[JobCategoryModal] render\", \"color: #1976D2\", {\n // props,\n // errorOnCreate,\n // errorOnUpdate,\n // });\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n const [isValid, validationErrors] = await validateJobCategory({ categoryName });\n\n if (isValid) {\n isEditing ? handleUpdate() : handleCreate();\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleCreate = async () => {\n try {\n await createJobCategory({ name: categoryName });\n // jobCategory was successfully created\n // onCancel(); // this closes the modal\n dismissModalWithAnimation(() => onCancel);\n } catch (error) {\n // Uh oh, something went wrong\n // window.logger(\"%c[JobCategoryModal] handle error when CREATE Job Category\", \"color: #FF7602\", {\n // error: error.response.data,\n // });\n if (error.response && error.response.data) {\n setErrors(error.response.data.errors);\n }\n }\n };\n\n const handleUpdate = async () => {\n try {\n await updateJobCategory({ id: category.id, name: categoryName });\n // jobCategory was successfully updated\n // onCancel(); // this closes the modal\n dismissModalWithAnimation(() => onCancel);\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"%c[JobCategoryModal] error when updating Job Category\", \"color: #FF7602\", {\n error,\n });\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n const submitButton = (\n \n \n {isEditing ? \"Update category\" : \"Create category\"}\n \n \n \n );\n\n const editMessage =\n Number(category.jobsCount) > 0\n ? `This category name will be updated for the ${category.jobsCount} active job${Number(category.jobsCount) === 1 ? \" that is\" : \"s that are\"\n } currently using it.`\n : `There are no active jobs that currently use this category.`;\n\n return (\n dismissModalWithAnimation(() => onCancel)}\n hasUnsavedChanges={isDirty}\n >\n \n {isEditing ? editMessage : \"Enter a name for the new job category.\"}\n \n \n \n \n \n );\n}\n\nexport default JobCategoryModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: JobCategoryModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobCategoryModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import _Object$assign from \"@babel/runtime-corejs2/core-js/object/assign\";\nexport default function _extends() {\n _extends = _Object$assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\n\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\n\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\n\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\n\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\n\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };","var simpleIsEqual = function simpleIsEqual(a, b) {\n return a === b;\n};\n\nfunction index(resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = simpleIsEqual;\n }\n\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n var isNewArgEqualToLast = function isNewArgEqualToLast(newArg, index) {\n return isEqual(newArg, lastArgs[index], index);\n };\n\n var result = function result() {\n for (var _len = arguments.length, newArgs = new Array(_len), _key = 0; _key < _len; _key++) {\n newArgs[_key] = arguments[_key];\n }\n\n if (calledOnce && lastThis === this && newArgs.length === lastArgs.length && newArgs.every(isNewArgEqualToLast)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n };\n\n return result;\n}\n\nexport default index;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport $$observable from 'symbol-observable';\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\n\nfunction isPlainObject(obj) {\n if (_typeof(obj) !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (_typeof(observer) !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\n\n\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (_typeof(actionCreators) !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : _typeof(actionCreators)) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\n\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;","import _Object$setPrototypeOf from \"@babel/runtime-corejs2/core-js/object/set-prototype-of\";\nexport 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 _Object$create from \"@babel/runtime-corejs2/core-js/object/create\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = _Object$create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","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.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import PropTypes from 'prop-types';\nexport var subscriptionShape = PropTypes.shape({\n trySubscribe: PropTypes.func.isRequired,\n tryUnsubscribe: PropTypes.func.isRequired,\n notifyNestedSubs: PropTypes.func.isRequired,\n isSubscribed: PropTypes.func.isRequired\n});\nexport var storeShape = PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n});","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React, { Component, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { storeShape, subscriptionShape } from '../utils/PropTypes';\nimport warning from '../utils/warning';\nvar prefixUnsafeLifecycleMethods = typeof React.forwardRef !== \"undefined\";\nvar didWarnAboutReceivingStore = false;\n\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n\n didWarnAboutReceivingStore = true;\n warning(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reduxjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nexport function createProvider(storeKey) {\n var _Provider$childContex;\n\n if (storeKey === void 0) {\n storeKey = 'store';\n }\n\n var subscriptionKey = storeKey + \"Subscription\";\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[storeKey] = this[storeKey], _ref[subscriptionKey] = null, _ref;\n };\n\n function Provider(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this[storeKey] = props.store;\n return _this;\n }\n\n _proto.render = function render() {\n return Children.only(this.props.children);\n };\n\n return Provider;\n }(Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Use UNSAFE_ event name where supported\n var eventName = prefixUnsafeLifecycleMethods ? 'UNSAFE_componentWillReceiveProps' : 'componentWillReceiveProps';\n\n Provider.prototype[eventName] = function (nextProps) {\n if (this[storeKey] !== nextProps.store) {\n warnAboutReceivingStore();\n }\n };\n }\n\n Provider.propTypes = {\n store: storeShape.isRequired,\n children: PropTypes.element.isRequired\n };\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[storeKey] = storeShape.isRequired, _Provider$childContex[subscriptionKey] = subscriptionShape, _Provider$childContex);\n return Provider;\n}\nexport default createProvider();","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}","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}","// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\nvar CLEARED = null;\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n // the current/next pattern is copied from redux's createStore code.\n // TODO: refactor+expose that code to be reusable here?\n var current = [];\n var next = [];\n return {\n clear: function clear() {\n next = CLEARED;\n current = CLEARED;\n },\n notify: function notify() {\n var listeners = current = next;\n\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n },\n get: function get() {\n return next;\n },\n subscribe: function subscribe(listener) {\n var isSubscribed = true;\n if (next === current) next = current.slice();\n next.push(listener);\n return function unsubscribe() {\n if (!isSubscribed || current === CLEARED) return;\n isSubscribed = false;\n if (next === current) next = current.slice();\n next.splice(next.indexOf(listener), 1);\n };\n }\n };\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(store, parentSub, onStateChange) {\n this.store = store;\n this.parentSub = parentSub;\n this.onStateChange = onStateChange;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.onStateChange) : this.store.subscribe(this.onStateChange);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from 'invariant';\nimport React, { Component, createElement } from 'react';\nimport { isValidElementType } from 'react-is';\nimport Subscription from '../utils/Subscription';\nimport { storeShape, subscriptionShape } from '../utils/PropTypes';\nvar prefixUnsafeLifecycleMethods = typeof React.forwardRef !== \"undefined\";\nvar hotReloadingVersion = 0;\nvar dummyState = {};\n\nfunction noop() {}\n\nfunction makeSelectorStateful(sourceSelector, store) {\n // wrap the selector in an object that tracks its results between runs.\n var selector = {\n run: function runComponentSelector(props) {\n try {\n var nextProps = sourceSelector(store.getState(), props);\n\n if (nextProps !== selector.props || selector.error) {\n selector.shouldComponentUpdate = true;\n selector.props = nextProps;\n selector.error = null;\n }\n } catch (error) {\n selector.shouldComponentUpdate = true;\n selector.error = error;\n }\n }\n };\n return selector;\n}\n\nexport default function connectAdvanced(\n/*\n selectorFactory is a func that is responsible for returning the selector function used to\n compute new props from state, props, and dispatch. For example:\n export default connectAdvanced((dispatch, options) => (state, props) => ({\n thing: state.things[props.thingId],\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n }))(YourComponent)\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n props. Do not use connectAdvanced directly without memoizing results between calls to your\n selector, otherwise the Connect component will re-render on every state or props change.\n*/\nselectorFactory, // options object:\n_ref) {\n var _contextTypes, _childContextTypes;\n\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\"]);\n\n var subscriptionKey = storeKey + 'Subscription';\n var version = hotReloadingVersion++;\n var contextTypes = (_contextTypes = {}, _contextTypes[storeKey] = storeShape, _contextTypes[subscriptionKey] = subscriptionShape, _contextTypes);\n var childContextTypes = (_childContextTypes = {}, _childContextTypes[subscriptionKey] = subscriptionShape, _childContextTypes);\n return function wrapWithConnect(WrappedComponent) {\n invariant(isValidElementType(WrappedComponent), \"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + JSON.stringify(WrappedComponent)));\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n withRef: withRef,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent // TODO Actually fix our use of componentWillReceiveProps\n\n /* eslint-disable react/no-deprecated */\n\n });\n\n var Connect = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Connect, _Component);\n\n function Connect(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.version = version;\n _this.state = {};\n _this.renderCount = 0;\n _this.store = props[storeKey] || context[storeKey];\n _this.propsMode = Boolean(props[storeKey]);\n _this.setWrappedInstance = _this.setWrappedInstance.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n invariant(_this.store, \"Could not find \\\"\" + storeKey + \"\\\" in either the context or props of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + (\"or explicitly pass \\\"\" + storeKey + \"\\\" as a prop to \\\"\" + displayName + \"\\\".\"));\n\n _this.initSelector();\n\n _this.initSubscription();\n\n return _this;\n }\n\n var _proto = Connect.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref3; // If this component received store from props, its subscription should be transparent\n // to any descendants receiving store+subscription from context; it passes along\n // subscription passed to it. Otherwise, it shadows the parent subscription, which allows\n // Connect to control ordering of notifications to flow top-down.\n\n\n var subscription = this.propsMode ? null : this.subscription;\n return _ref3 = {}, _ref3[subscriptionKey] = subscription || this.context[subscriptionKey], _ref3;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n if (!shouldHandleStateChanges) return; // componentWillMount fires during server side rendering, but componentDidMount and\n // componentWillUnmount do not. Because of this, trySubscribe happens during ...didMount.\n // Otherwise, unsubscription would never take place during SSR, causing a memory leak.\n // To handle the case where a child component may have triggered a state change by\n // dispatching an action in its componentWillMount, we have to re-run the select and maybe\n // re-render.\n\n this.subscription.trySubscribe();\n this.selector.run(this.props);\n if (this.selector.shouldComponentUpdate) this.forceUpdate();\n }; // Note: this is renamed below to the UNSAFE_ version in React >=16.3.0\n\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n this.selector.run(nextProps);\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate() {\n return this.selector.shouldComponentUpdate;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.subscription) this.subscription.tryUnsubscribe();\n this.subscription = null;\n this.notifyNestedSubs = noop;\n this.store = null;\n this.selector.run = noop;\n this.selector.shouldComponentUpdate = false;\n };\n\n _proto.getWrappedInstance = function getWrappedInstance() {\n invariant(withRef, \"To access the wrapped instance, you need to specify \" + (\"{ withRef: true } in the options argument of the \" + methodName + \"() call.\"));\n return this.wrappedInstance;\n };\n\n _proto.setWrappedInstance = function setWrappedInstance(ref) {\n this.wrappedInstance = ref;\n };\n\n _proto.initSelector = function initSelector() {\n var sourceSelector = selectorFactory(this.store.dispatch, selectorFactoryOptions);\n this.selector = makeSelectorStateful(sourceSelector, this.store);\n this.selector.run(this.props);\n };\n\n _proto.initSubscription = function initSubscription() {\n if (!shouldHandleStateChanges) return; // parentSub's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var parentSub = (this.propsMode ? this.props : this.context)[subscriptionKey];\n this.subscription = new Subscription(this.store, parentSub, this.onStateChange.bind(this)); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `this.subscription` will then be null. An\n // extra null check every change can be avoided by copying the method onto `this` and then\n // replacing it with a no-op on unmount. This can probably be avoided if Subscription's\n // listeners logic is changed to not call listeners that have been unsubscribed in the\n // middle of the notification loop.\n\n this.notifyNestedSubs = this.subscription.notifyNestedSubs.bind(this.subscription);\n };\n\n _proto.onStateChange = function onStateChange() {\n this.selector.run(this.props);\n\n if (!this.selector.shouldComponentUpdate) {\n this.notifyNestedSubs();\n } else {\n this.componentDidUpdate = this.notifyNestedSubsOnComponentDidUpdate;\n this.setState(dummyState);\n }\n };\n\n _proto.notifyNestedSubsOnComponentDidUpdate = function notifyNestedSubsOnComponentDidUpdate() {\n // `componentDidUpdate` is conditionally implemented when `onStateChange` determines it\n // needs to notify nested subs. Once called, it unimplements itself until further state\n // changes occur. Doing it this way vs having a permanent `componentDidUpdate` that does\n // a boolean check every time avoids an extra method call most of the time, resulting\n // in some perf boost.\n this.componentDidUpdate = undefined;\n this.notifyNestedSubs();\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.subscription) && this.subscription.isSubscribed();\n };\n\n _proto.addExtraProps = function addExtraProps(props) {\n if (!withRef && !renderCountProp && !(this.propsMode && this.subscription)) return props; // make a shallow copy so that fields added don't leak to the original selector.\n // this is especially important for 'ref' since that's a reference back to the component\n // instance. a singleton memoized selector would then be holding a reference to the\n // instance, preventing the instance from being garbage collected, and that would be bad\n\n var withExtras = _extends({}, props);\n\n if (withRef) withExtras.ref = this.setWrappedInstance;\n if (renderCountProp) withExtras[renderCountProp] = this.renderCount++;\n if (this.propsMode && this.subscription) withExtras[subscriptionKey] = this.subscription;\n return withExtras;\n };\n\n _proto.render = function render() {\n var selector = this.selector;\n selector.shouldComponentUpdate = false;\n\n if (selector.error) {\n throw selector.error;\n } else {\n return createElement(WrappedComponent, this.addExtraProps(selector.props));\n }\n };\n\n return Connect;\n }(Component);\n\n if (prefixUnsafeLifecycleMethods) {\n // Use UNSAFE_ event name where supported\n Connect.prototype.UNSAFE_componentWillReceiveProps = Connect.prototype.componentWillReceiveProps;\n delete Connect.prototype.componentWillReceiveProps;\n }\n /* eslint-enable react/no-deprecated */\n\n\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n Connect.childContextTypes = childContextTypes;\n Connect.contextTypes = contextTypes;\n Connect.propTypes = contextTypes;\n\n if (process.env.NODE_ENV !== 'production') {\n // Use UNSAFE_ event name where supported\n var eventName = prefixUnsafeLifecycleMethods ? 'UNSAFE_componentWillUpdate' : 'componentWillUpdate';\n\n Connect.prototype[eventName] = function componentWillUpdate() {\n var _this2 = this; // We are hot reloading!\n\n\n if (this.version !== version) {\n this.version = version;\n this.initSelector(); // If any connected descendants don't hot reload (and resubscribe in the process), their\n // listeners will be lost when we unsubscribe. Unfortunately, by copying over all\n // listeners, this does mean that the old versions of connected descendants will still be\n // notified of state changes; however, their onStateChange function is a no-op so this\n // isn't a huge deal.\n\n var oldListeners = [];\n\n if (this.subscription) {\n oldListeners = this.subscription.listeners.get();\n this.subscription.tryUnsubscribe();\n }\n\n this.initSubscription();\n\n if (shouldHandleStateChanges) {\n this.subscription.trySubscribe();\n oldListeners.forEach(function (listener) {\n return _this2.subscription.listeners.subscribe(listener);\n });\n }\n }\n };\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (_typeof(objA) !== 'object' || objA === null || _typeof(objB) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n// \n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n// \n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n// \n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n// \n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n// \n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { bindActionCreators } from 'redux';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && _typeof(mapDispatchToProps) === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"]);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\n connect is a facade over connectAdvanced. It turns its args into a compatible\n selectorFactory, which has the signature:\n\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n \n connect passes its args to connectAdvanced as options, which will in turn pass them to\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\n selectorFactory returns a final props selector from its mapStateToProps,\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n mergePropsFactories, and pure args.\n\n The resulting final props selector is called by the Connect component instance whenever\n it receives new props or store state.\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + _typeof(arg) + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"]);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default createConnect();","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _extends from '@babel/runtime-corejs2/helpers/esm/extends';\nimport invariant from 'tiny-invariant';\nimport { getRect, getBox, withScroll, createBox, calculateBox } from 'css-box-model';\nimport _Object$keys from '@babel/runtime-corejs2/core-js/object/keys';\nimport memoizeOne from 'memoize-one';\nimport { applyMiddleware, createStore, compose, bindActionCreators } from 'redux';\nimport _Object$assign from '@babel/runtime-corejs2/core-js/object/assign';\nimport rafSchd from 'raf-schd';\nimport _inheritsLoose from '@babel/runtime-corejs2/helpers/esm/inheritsLoose';\nimport React, { PureComponent, Component, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Motion, spring } from 'react-motion';\nvar vertical = {\n direction: 'vertical',\n line: 'y',\n crossAxisLine: 'x',\n start: 'top',\n end: 'bottom',\n size: 'height',\n crossAxisStart: 'left',\n crossAxisEnd: 'right',\n crossAxisSize: 'width'\n};\nvar horizontal = {\n direction: 'horizontal',\n line: 'x',\n crossAxisLine: 'y',\n start: 'left',\n end: 'right',\n size: 'width',\n crossAxisStart: 'top',\n crossAxisEnd: 'bottom',\n crossAxisSize: 'height'\n};\nvar origin = {\n x: 0,\n y: 0\n};\n\nvar add = function add(point1, point2) {\n return {\n x: point1.x + point2.x,\n y: point1.y + point2.y\n };\n};\n\nvar subtract = function subtract(point1, point2) {\n return {\n x: point1.x - point2.x,\n y: point1.y - point2.y\n };\n};\n\nvar isEqual = function isEqual(point1, point2) {\n return point1.x === point2.x && point1.y === point2.y;\n};\n\nvar negate = function negate(point) {\n return {\n x: point.x !== 0 ? -point.x : 0,\n y: point.y !== 0 ? -point.y : 0\n };\n};\n\nvar absolute = function absolute(point) {\n return {\n x: Math.abs(point.x),\n y: Math.abs(point.y)\n };\n};\n\nvar patch = function patch(line, value, otherValue) {\n var _ref;\n\n if (otherValue === void 0) {\n otherValue = 0;\n }\n\n return _ref = {}, _ref[line] = value, _ref[line === 'x' ? 'y' : 'x'] = otherValue, _ref;\n};\n\nvar distance = function distance(point1, point2) {\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n};\n\nvar closest = function closest(target, points) {\n return Math.min.apply(Math, points.map(function (point) {\n return distance(target, point);\n }));\n};\n\nvar apply = function apply(fn) {\n return function (point) {\n return {\n x: fn(point.x),\n y: fn(point.y)\n };\n };\n};\n\nvar offsetByPosition = function offsetByPosition(spacing, point) {\n return {\n top: spacing.top + point.y,\n left: spacing.left + point.x,\n bottom: spacing.bottom + point.y,\n right: spacing.right + point.x\n };\n};\n\nvar expandByPosition = function expandByPosition(spacing, position) {\n return {\n top: spacing.top - position.y,\n left: spacing.left - position.x,\n right: spacing.right + position.x,\n bottom: spacing.bottom + position.y\n };\n};\n\nvar getCorners = function getCorners(spacing) {\n return [{\n x: spacing.left,\n y: spacing.top\n }, {\n x: spacing.right,\n y: spacing.top\n }, {\n x: spacing.left,\n y: spacing.bottom\n }, {\n x: spacing.right,\n y: spacing.bottom\n }];\n};\n\nvar getMaxScroll = function getMaxScroll(_ref) {\n var scrollHeight = _ref.scrollHeight,\n scrollWidth = _ref.scrollWidth,\n height = _ref.height,\n width = _ref.width;\n var maxScroll = subtract({\n x: scrollWidth,\n y: scrollHeight\n }, {\n x: width,\n y: height\n });\n var adjustedMaxScroll = {\n x: Math.max(0, maxScroll.x),\n y: Math.max(0, maxScroll.y)\n };\n return adjustedMaxScroll;\n};\n\nvar clip = function clip(frame, subject) {\n var result = getRect({\n top: Math.max(subject.top, frame.top),\n right: Math.min(subject.right, frame.right),\n bottom: Math.min(subject.bottom, frame.bottom),\n left: Math.max(subject.left, frame.left)\n });\n\n if (result.width <= 0 || result.height <= 0) {\n return null;\n }\n\n return result;\n};\n\nvar getDroppableDimension = function getDroppableDimension(_ref) {\n var descriptor = _ref.descriptor,\n isEnabled = _ref.isEnabled,\n direction = _ref.direction,\n client = _ref.client,\n page = _ref.page,\n closest$$1 = _ref.closest;\n\n var scrollable = function () {\n if (!closest$$1) {\n return null;\n }\n\n var maxScroll = getMaxScroll({\n scrollHeight: closest$$1.scrollHeight,\n scrollWidth: closest$$1.scrollWidth,\n height: closest$$1.client.paddingBox.height,\n width: closest$$1.client.paddingBox.width\n });\n return {\n framePageMarginBox: closest$$1.page.marginBox,\n shouldClipSubject: closest$$1.shouldClipSubject,\n scroll: {\n initial: closest$$1.scroll,\n current: closest$$1.scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n }();\n\n var subjectPageMarginBox = page.marginBox;\n var clippedPageMarginBox = scrollable && scrollable.shouldClipSubject ? clip(scrollable.framePageMarginBox, subjectPageMarginBox) : subjectPageMarginBox;\n var viewport = {\n closestScrollable: scrollable,\n subjectPageMarginBox: subjectPageMarginBox,\n clippedPageMarginBox: clippedPageMarginBox\n };\n var dimension = {\n descriptor: descriptor,\n axis: direction === 'vertical' ? vertical : horizontal,\n isEnabled: isEnabled,\n client: client,\n page: page,\n viewport: viewport\n };\n return dimension;\n};\n\nvar scrollDroppable = function scrollDroppable(droppable, newScroll) {\n !droppable.viewport.closestScrollable ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var scrollable = droppable.viewport.closestScrollable;\n var framePageMarginBox = scrollable.framePageMarginBox;\n var scrollDiff = subtract(newScroll, scrollable.scroll.initial);\n var scrollDisplacement = negate(scrollDiff);\n var closestScrollable = {\n framePageMarginBox: scrollable.framePageMarginBox,\n shouldClipSubject: scrollable.shouldClipSubject,\n scroll: {\n initial: scrollable.scroll.initial,\n current: newScroll,\n diff: {\n value: scrollDiff,\n displacement: scrollDisplacement\n },\n max: scrollable.scroll.max\n }\n };\n var displacedSubject = offsetByPosition(droppable.viewport.subjectPageMarginBox, scrollDisplacement);\n var clippedPageMarginBox = closestScrollable.shouldClipSubject ? clip(framePageMarginBox, displacedSubject) : getRect(displacedSubject);\n var viewport = {\n closestScrollable: closestScrollable,\n subjectPageMarginBox: droppable.viewport.subjectPageMarginBox,\n clippedPageMarginBox: clippedPageMarginBox\n };\n\n var result = _extends({}, droppable, {\n viewport: viewport\n });\n\n return result;\n};\n\nvar toDroppableMap = memoizeOne(function (droppables) {\n return droppables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDraggableMap = memoizeOne(function (draggables) {\n return draggables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDroppableList = memoizeOne(function (droppables) {\n return _Object$keys(droppables).map(function (id) {\n return droppables[id];\n });\n});\nvar toDraggableList = memoizeOne(function (draggables) {\n return _Object$keys(draggables).map(function (id) {\n return draggables[id];\n });\n});\nvar getDraggablesInsideDroppable = memoizeOne(function (droppable, draggables) {\n return toDraggableList(draggables).filter(function (draggable) {\n return droppable.descriptor.id === draggable.descriptor.droppableId;\n }).sort(function (a, b) {\n return a.descriptor.index - b.descriptor.index;\n });\n});\n\nvar isWithin = function isWithin(lowerBound, upperBound) {\n return function (value) {\n return value <= upperBound && value >= lowerBound;\n };\n};\n\nvar isPositionInFrame = function isPositionInFrame(frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (point) {\n return isWithinVertical(point.y) && isWithinVertical(point.y) && isWithinHorizontal(point.x) && isWithinHorizontal(point.x);\n };\n};\n\nvar getRequiredGrowth = memoizeOne(function (draggable, draggables, droppable) {\n var getResult = function getResult(existingSpace) {\n var requiredSpace = draggable.page.marginBox[droppable.axis.size];\n\n if (requiredSpace <= existingSpace) {\n return null;\n }\n\n var requiredGrowth = patch(droppable.axis.line, requiredSpace - existingSpace);\n return requiredGrowth;\n };\n\n var dimensions = getDraggablesInsideDroppable(droppable, draggables);\n\n if (!dimensions.length) {\n var _existingSpace = droppable.page.marginBox[droppable.axis.size];\n return getResult(_existingSpace);\n }\n\n var endOfDraggables = dimensions[dimensions.length - 1].page.marginBox[droppable.axis.end];\n var endOfDroppable = droppable.page.marginBox[droppable.axis.end];\n var existingSpace = endOfDroppable - endOfDraggables;\n return getResult(existingSpace);\n});\nvar getWithGrowth = memoizeOne(function (area, growth) {\n return getRect(expandByPosition(area, growth));\n});\n\nvar getClippedRectWithPlaceholder = function getClippedRectWithPlaceholder(_ref) {\n var draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppable = _ref.droppable,\n previousDroppableOverId = _ref.previousDroppableOverId;\n var isHome = draggable.descriptor.droppableId === droppable.descriptor.id;\n var wasOver = Boolean(previousDroppableOverId && previousDroppableOverId === droppable.descriptor.id);\n var clippedPageMarginBox = droppable.viewport.clippedPageMarginBox;\n\n if (!clippedPageMarginBox) {\n return clippedPageMarginBox;\n }\n\n if (isHome || !wasOver) {\n return clippedPageMarginBox;\n }\n\n var requiredGrowth = getRequiredGrowth(draggable, draggables, droppable);\n\n if (!requiredGrowth) {\n return clippedPageMarginBox;\n }\n\n var subjectWithGrowth = getWithGrowth(clippedPageMarginBox, requiredGrowth);\n var closestScrollable = droppable.viewport.closestScrollable;\n\n if (!closestScrollable) {\n return subjectWithGrowth;\n }\n\n if (!closestScrollable.shouldClipSubject) {\n return subjectWithGrowth;\n }\n\n return clip(closestScrollable.framePageMarginBox, subjectWithGrowth);\n};\n\nvar getDroppableOver = function getDroppableOver(_ref2) {\n var target = _ref2.target,\n draggable = _ref2.draggable,\n draggables = _ref2.draggables,\n droppables = _ref2.droppables,\n previousDroppableOverId = _ref2.previousDroppableOverId;\n var maybe = toDroppableList(droppables).filter(function (droppable) {\n return droppable.isEnabled;\n }).find(function (droppable) {\n var withPlaceholder = getClippedRectWithPlaceholder({\n draggable: draggable,\n draggables: draggables,\n droppable: droppable,\n previousDroppableOverId: previousDroppableOverId\n });\n\n if (!withPlaceholder) {\n return false;\n }\n\n return isPositionInFrame(withPlaceholder)(target);\n });\n return maybe ? maybe.descriptor.id : null;\n};\n\nvar noMovement = {\n displaced: [],\n amount: origin,\n isBeyondStartPosition: false\n};\nvar noImpact = {\n movement: noMovement,\n direction: null,\n destination: null\n};\nvar getDisplacementMap = memoizeOne(function (displaced) {\n return displaced.reduce(function (map, displacement) {\n map[displacement.draggableId] = displacement;\n return map;\n }, {});\n});\n\nvar isPartiallyVisibleThroughFrame = function isPartiallyVisibleThroughFrame(frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n\n if (isContained) {\n return true;\n }\n\n var isPartiallyVisibleVertically = isWithinVertical(subject.top) || isWithinVertical(subject.bottom);\n var isPartiallyVisibleHorizontally = isWithinHorizontal(subject.left) || isWithinHorizontal(subject.right);\n var isPartiallyContained = isPartiallyVisibleVertically && isPartiallyVisibleHorizontally;\n\n if (isPartiallyContained) {\n return true;\n }\n\n var isBiggerVertically = subject.top < frame.top && subject.bottom > frame.bottom;\n var isBiggerHorizontally = subject.left < frame.left && subject.right > frame.right;\n var isTargetBiggerThanFrame = isBiggerVertically && isBiggerHorizontally;\n\n if (isTargetBiggerThanFrame) {\n return true;\n }\n\n var isTargetBiggerOnOneAxis = isBiggerVertically && isPartiallyVisibleHorizontally || isBiggerHorizontally && isPartiallyVisibleVertically;\n return isTargetBiggerOnOneAxis;\n };\n};\n\nvar isTotallyVisibleThroughFrame = function isTotallyVisibleThroughFrame(frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n return isContained;\n };\n};\n\nvar isVisible = function isVisible(_ref) {\n var target = _ref.target,\n destination = _ref.destination,\n viewport = _ref.viewport,\n isVisibleThroughFrameFn = _ref.isVisibleThroughFrameFn;\n var displacement = destination.viewport.closestScrollable ? destination.viewport.closestScrollable.scroll.diff.displacement : origin;\n var withDisplacement = offsetByPosition(target, displacement);\n\n if (!destination.viewport.clippedPageMarginBox) {\n return false;\n }\n\n var isVisibleInDroppable = isVisibleThroughFrameFn(destination.viewport.clippedPageMarginBox)(withDisplacement);\n var isVisibleInViewport = isVisibleThroughFrameFn(viewport)(withDisplacement);\n return isVisibleInDroppable && isVisibleInViewport;\n};\n\nvar isPartiallyVisible = function isPartiallyVisible(_ref2) {\n var target = _ref2.target,\n destination = _ref2.destination,\n viewport = _ref2.viewport;\n return isVisible({\n target: target,\n destination: destination,\n viewport: viewport,\n isVisibleThroughFrameFn: isPartiallyVisibleThroughFrame\n });\n};\n\nvar isTotallyVisible = function isTotallyVisible(_ref3) {\n var target = _ref3.target,\n destination = _ref3.destination,\n viewport = _ref3.viewport;\n return isVisible({\n target: target,\n destination: destination,\n viewport: viewport,\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrame\n });\n};\n\nvar getDisplacement = function getDisplacement(_ref) {\n var draggable = _ref.draggable,\n destination = _ref.destination,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport;\n var id = draggable.descriptor.id;\n var map = getDisplacementMap(previousImpact.movement.displaced);\n var isVisible = isPartiallyVisible({\n target: draggable.page.marginBox,\n destination: destination,\n viewport: viewport\n });\n\n var shouldAnimate = function () {\n if (!isVisible) {\n return false;\n }\n\n var previous = map[id];\n\n if (!previous) {\n return true;\n }\n\n return previous.shouldAnimate;\n }();\n\n var displacement = {\n draggableId: id,\n isVisible: isVisible,\n shouldAnimate: shouldAnimate\n };\n return displacement;\n};\n\nvar withDroppableScroll = function withDroppableScroll(droppable, point) {\n var closestScrollable = droppable.viewport.closestScrollable;\n\n if (!closestScrollable) {\n return point;\n }\n\n return add(point, closestScrollable.scroll.diff.value);\n};\n\nvar inHomeList = function inHomeList(_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n draggable = _ref.draggable,\n home = _ref.home,\n insideHome = _ref.insideHome,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport;\n var axis = home.axis;\n var originalCenter = draggable.page.borderBox.center;\n var currentCenter = withDroppableScroll(home, pageBorderBoxCenter);\n var isBeyondStartPosition = currentCenter[axis.line] - originalCenter[axis.line] > 0;\n var amount = patch(axis.line, draggable.client.marginBox[axis.size]);\n var displaced = insideHome.filter(function (child) {\n if (child === draggable) {\n return false;\n }\n\n var borderBox = child.page.borderBox;\n\n if (isBeyondStartPosition) {\n if (borderBox.center[axis.line] < originalCenter[axis.line]) {\n return false;\n }\n\n return currentCenter[axis.line] > borderBox[axis.start];\n }\n\n if (originalCenter[axis.line] < borderBox.center[axis.line]) {\n return false;\n }\n\n return currentCenter[axis.line] < borderBox[axis.end];\n }).map(function (dimension) {\n return getDisplacement({\n draggable: dimension,\n destination: home,\n previousImpact: previousImpact,\n viewport: viewport.frame\n });\n });\n var ordered = isBeyondStartPosition ? displaced.reverse() : displaced;\n\n var index = function () {\n var startIndex = draggable.descriptor.index;\n var length = ordered.length;\n\n if (!length) {\n return startIndex;\n }\n\n if (isBeyondStartPosition) {\n return startIndex + length;\n }\n\n return startIndex - length;\n }();\n\n var movement = {\n amount: amount,\n displaced: ordered,\n isBeyondStartPosition: isBeyondStartPosition\n };\n var impact = {\n movement: movement,\n direction: axis.direction,\n destination: {\n droppableId: home.descriptor.id,\n index: index\n }\n };\n return impact;\n};\n\nvar inForeignList = function inForeignList(_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n draggable = _ref.draggable,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport;\n var axis = destination.axis;\n var currentCenter = withDroppableScroll(destination, pageBorderBoxCenter);\n var displaced = insideDestination.filter(function (child) {\n var threshold = child.page.borderBox[axis.end];\n return threshold > currentCenter[axis.line];\n }).map(function (dimension) {\n return getDisplacement({\n draggable: dimension,\n destination: destination,\n previousImpact: previousImpact,\n viewport: viewport.frame\n });\n });\n var newIndex = insideDestination.length - displaced.length;\n var movement = {\n amount: patch(axis.line, draggable.page.marginBox[axis.size]),\n displaced: displaced,\n isBeyondStartPosition: false\n };\n var impact = {\n movement: movement,\n direction: axis.direction,\n destination: {\n droppableId: destination.descriptor.id,\n index: newIndex\n }\n };\n return impact;\n};\n\nvar getDragImpact = function getDragImpact(_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport;\n var previousDroppableOverId = previousImpact.destination && previousImpact.destination.droppableId;\n var destinationId = getDroppableOver({\n target: pageBorderBoxCenter,\n draggable: draggable,\n draggables: draggables,\n droppables: droppables,\n previousDroppableOverId: previousDroppableOverId\n });\n\n if (!destinationId) {\n return noImpact;\n }\n\n var destination = droppables[destinationId];\n\n if (!destination.isEnabled) {\n return noImpact;\n }\n\n var home = droppables[draggable.descriptor.droppableId];\n var isWithinHomeDroppable = home.descriptor.id === destinationId;\n var insideDestination = getDraggablesInsideDroppable(destination, draggables);\n\n if (isWithinHomeDroppable) {\n return inHomeList({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n home: home,\n insideHome: insideDestination,\n previousImpact: previousImpact || noImpact,\n viewport: viewport\n });\n }\n\n return inForeignList({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n destination: destination,\n insideDestination: insideDestination,\n previousImpact: previousImpact || noImpact,\n viewport: viewport\n });\n};\n\nvar getHomeLocation = function getHomeLocation(critical) {\n return {\n index: critical.draggable.index,\n droppableId: critical.droppable.id\n };\n};\n\nvar getSafeClipped = function getSafeClipped(droppable) {\n var rect = droppable.viewport.clippedPageMarginBox;\n !rect ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get clipped area from droppable') : invariant(false) : void 0;\n return rect;\n};\n\nvar getBestCrossAxisDroppable = function getBestCrossAxisDroppable(_ref) {\n var isMovingForward = _ref.isMovingForward,\n pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n source = _ref.source,\n droppables = _ref.droppables,\n viewport = _ref.viewport;\n var sourceClipped = source.viewport.clippedPageMarginBox;\n\n if (!sourceClipped) {\n return null;\n }\n\n var axis = source.axis;\n var isBetweenSourceClipped = isWithin(sourceClipped[axis.start], sourceClipped[axis.end]);\n var candidates = toDroppableList(droppables).filter(function (droppable) {\n return droppable !== source;\n }).filter(function (droppable) {\n return droppable.isEnabled;\n }).filter(function (droppable) {\n var clippedPageMarginBox = droppable.viewport.clippedPageMarginBox;\n\n if (!clippedPageMarginBox) {\n return false;\n }\n\n return isPartiallyVisibleThroughFrame(viewport.frame)(clippedPageMarginBox);\n }).filter(function (droppable) {\n var targetClipped = getSafeClipped(droppable);\n\n if (isMovingForward) {\n return sourceClipped[axis.crossAxisEnd] < targetClipped[axis.crossAxisEnd];\n }\n\n return targetClipped[axis.crossAxisStart] < sourceClipped[axis.crossAxisStart];\n }).filter(function (droppable) {\n var targetClipped = getSafeClipped(droppable);\n var isBetweenDestinationClipped = isWithin(targetClipped[axis.start], targetClipped[axis.end]);\n return isBetweenSourceClipped(targetClipped[axis.start]) || isBetweenSourceClipped(targetClipped[axis.end]) || isBetweenDestinationClipped(sourceClipped[axis.start]) || isBetweenDestinationClipped(sourceClipped[axis.end]);\n }).sort(function (a, b) {\n var first = getSafeClipped(a)[axis.crossAxisStart];\n var second = getSafeClipped(b)[axis.crossAxisStart];\n\n if (isMovingForward) {\n return first - second;\n }\n\n return second - first;\n }).filter(function (droppable, index, array) {\n return getSafeClipped(droppable)[axis.crossAxisStart] === getSafeClipped(array[0])[axis.crossAxisStart];\n });\n\n if (!candidates.length) {\n return null;\n }\n\n if (candidates.length === 1) {\n return candidates[0];\n }\n\n var contains = candidates.filter(function (droppable) {\n var isWithinDroppable = isWithin(getSafeClipped(droppable)[axis.start], getSafeClipped(droppable)[axis.end]);\n return isWithinDroppable(pageBorderBoxCenter[axis.line]);\n });\n\n if (contains.length === 1) {\n return contains[0];\n }\n\n if (contains.length > 1) {\n return contains.sort(function (a, b) {\n return getSafeClipped(a)[axis.start] - getSafeClipped(b)[axis.start];\n })[0];\n }\n\n return candidates.sort(function (a, b) {\n var first = closest(pageBorderBoxCenter, getCorners(getSafeClipped(a)));\n var second = closest(pageBorderBoxCenter, getCorners(getSafeClipped(b)));\n\n if (first !== second) {\n return first - second;\n }\n\n return getSafeClipped(a)[axis.start] - getSafeClipped(b)[axis.start];\n })[0];\n};\n\nvar withDroppableDisplacement = function withDroppableDisplacement(droppable, point) {\n var closestScrollable = droppable.viewport.closestScrollable;\n\n if (!closestScrollable) {\n return point;\n }\n\n return add(point, closestScrollable.scroll.diff.displacement);\n};\n\nvar getClosestDraggable = function getClosestDraggable(_ref) {\n var axis = _ref.axis,\n viewport = _ref.viewport,\n pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination;\n\n if (!insideDestination.length) {\n return null;\n }\n\n var result = insideDestination.filter(function (draggable) {\n return isTotallyVisible({\n target: draggable.page.borderBox,\n destination: destination,\n viewport: viewport.frame\n });\n }).sort(function (a, b) {\n var distanceToA = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, a.page.borderBox.center));\n var distanceToB = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, b.page.borderBox.center));\n\n if (distanceToA < distanceToB) {\n return -1;\n }\n\n if (distanceToB < distanceToA) {\n return 1;\n }\n\n return a.page.borderBox[axis.start] - b.page.borderBox[axis.start];\n });\n return result.length ? result[0] : null;\n};\n\nvar moveToEdge = function moveToEdge(_ref) {\n var source = _ref.source,\n sourceEdge = _ref.sourceEdge,\n destination = _ref.destination,\n destinationEdge = _ref.destinationEdge,\n destinationAxis = _ref.destinationAxis;\n\n var getCorner = function getCorner(area) {\n return patch(destinationAxis.line, area[destinationAxis[destinationEdge]], area[destinationAxis.crossAxisStart]);\n };\n\n var corner = getCorner(destination);\n var centerDiff = absolute(subtract(source.center, getCorner(source)));\n var signed = patch(destinationAxis.line, (sourceEdge === 'end' ? -1 : 1) * centerDiff[destinationAxis.line], centerDiff[destinationAxis.crossAxisLine]);\n return add(corner, signed);\n};\n\nvar toHomeList = function toHomeList(_ref) {\n var amount = _ref.amount,\n homeIndex = _ref.homeIndex,\n movingRelativeTo = _ref.movingRelativeTo,\n insideDestination = _ref.insideDestination,\n draggable = _ref.draggable,\n destination = _ref.destination,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport;\n var axis = destination.axis;\n var targetIndex = insideDestination.indexOf(movingRelativeTo);\n !(targetIndex !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unable to find target in destination droppable') : invariant(false) : void 0;\n\n if (targetIndex === homeIndex) {\n var _newCenter = draggable.page.borderBox.center;\n var _newImpact = {\n movement: {\n displaced: [],\n amount: amount,\n isBeyondStartPosition: false\n },\n direction: destination.axis.direction,\n destination: {\n droppableId: destination.descriptor.id,\n index: homeIndex\n }\n };\n return {\n pageBorderBoxCenter: withDroppableDisplacement(destination, _newCenter),\n impact: _newImpact\n };\n }\n\n var isMovingPastOriginalIndex = targetIndex > homeIndex;\n var edge = isMovingPastOriginalIndex ? 'end' : 'start';\n var newCenter = moveToEdge({\n source: draggable.page.borderBox,\n sourceEdge: edge,\n destination: isMovingPastOriginalIndex ? movingRelativeTo.page.borderBox : movingRelativeTo.page.marginBox,\n destinationEdge: edge,\n destinationAxis: axis\n });\n\n var modified = function () {\n if (!isMovingPastOriginalIndex) {\n return insideDestination.slice(targetIndex, homeIndex);\n }\n\n var from = homeIndex + 1;\n var to = targetIndex + 1;\n return insideDestination.slice(from, to).reverse();\n }();\n\n var displaced = modified.map(function (dimension) {\n return getDisplacement({\n draggable: dimension,\n destination: destination,\n previousImpact: previousImpact,\n viewport: viewport.frame\n });\n });\n var newImpact = {\n movement: {\n displaced: displaced,\n amount: amount,\n isBeyondStartPosition: isMovingPastOriginalIndex\n },\n direction: axis.direction,\n destination: {\n droppableId: destination.descriptor.id,\n index: targetIndex\n }\n };\n return {\n pageBorderBoxCenter: withDroppableDisplacement(destination, newCenter),\n impact: newImpact\n };\n};\n\nvar toForeignList = function toForeignList(_ref) {\n var amount = _ref.amount,\n pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n movingRelativeTo = _ref.movingRelativeTo,\n insideDestination = _ref.insideDestination,\n draggable = _ref.draggable,\n destination = _ref.destination,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport;\n var axis = destination.axis;\n var isGoingBeforeTarget = Boolean(movingRelativeTo && pageBorderBoxCenter[destination.axis.line] < movingRelativeTo.page.borderBox.center[destination.axis.line]);\n\n if (!movingRelativeTo) {\n var _newCenter = moveToEdge({\n source: draggable.page.borderBox,\n sourceEdge: 'start',\n destination: destination.page.contentBox,\n destinationEdge: 'start',\n destinationAxis: axis\n });\n\n var _newImpact = {\n movement: {\n displaced: [],\n amount: amount,\n isBeyondStartPosition: false\n },\n direction: axis.direction,\n destination: {\n droppableId: destination.descriptor.id,\n index: 0\n }\n };\n return {\n pageBorderBoxCenter: withDroppableDisplacement(destination, _newCenter),\n impact: _newImpact\n };\n }\n\n var targetIndex = insideDestination.indexOf(movingRelativeTo);\n !(targetIndex !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'The target was not found within its droppable') : invariant(false) : void 0;\n var proposedIndex = isGoingBeforeTarget ? targetIndex : targetIndex + 1;\n var newCenter = moveToEdge({\n source: draggable.page.borderBox,\n sourceEdge: 'start',\n destination: movingRelativeTo.page.marginBox,\n destinationEdge: isGoingBeforeTarget ? 'start' : 'end',\n destinationAxis: axis\n });\n var displaced = insideDestination.slice(proposedIndex, insideDestination.length).map(function (dimension) {\n return getDisplacement({\n draggable: dimension,\n destination: destination,\n viewport: viewport.frame,\n previousImpact: previousImpact\n });\n });\n var newImpact = {\n movement: {\n displaced: displaced,\n amount: amount,\n isBeyondStartPosition: false\n },\n direction: axis.direction,\n destination: {\n droppableId: destination.descriptor.id,\n index: proposedIndex\n }\n };\n return {\n pageBorderBoxCenter: withDroppableDisplacement(destination, newCenter),\n impact: newImpact\n };\n};\n\nvar moveToNewDroppable = function moveToNewDroppable(_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n draggable = _ref.draggable,\n movingRelativeTo = _ref.movingRelativeTo,\n home = _ref.home,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport;\n var amount = patch(destination.axis.line, draggable.client.marginBox[destination.axis.size]);\n\n if (destination.descriptor.id === draggable.descriptor.droppableId) {\n !movingRelativeTo ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'There will always be a target in the original list') : invariant(false) : void 0;\n return toHomeList({\n amount: amount,\n homeIndex: home.index,\n movingRelativeTo: movingRelativeTo,\n insideDestination: insideDestination,\n draggable: draggable,\n destination: destination,\n previousImpact: previousImpact,\n viewport: viewport\n });\n }\n\n return toForeignList({\n amount: amount,\n pageBorderBoxCenter: pageBorderBoxCenter,\n movingRelativeTo: movingRelativeTo,\n insideDestination: insideDestination,\n draggable: draggable,\n destination: destination,\n previousImpact: previousImpact,\n viewport: viewport\n });\n};\n\nvar moveCrossAxis = function moveCrossAxis(_ref) {\n var isMovingForward = _ref.isMovingForward,\n pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n draggableId = _ref.draggableId,\n droppableId = _ref.droppableId,\n home = _ref.home,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport;\n var draggable = draggables[draggableId];\n var source = droppables[droppableId];\n var destination = getBestCrossAxisDroppable({\n isMovingForward: isMovingForward,\n pageBorderBoxCenter: pageBorderBoxCenter,\n source: source,\n droppables: droppables,\n viewport: viewport\n });\n\n if (!destination) {\n return null;\n }\n\n var insideDestination = getDraggablesInsideDroppable(destination, draggables);\n var movingRelativeTo = getClosestDraggable({\n axis: destination.axis,\n pageBorderBoxCenter: pageBorderBoxCenter,\n destination: destination,\n insideDestination: insideDestination,\n viewport: viewport\n });\n\n if (insideDestination.length && !movingRelativeTo) {\n return null;\n }\n\n return moveToNewDroppable({\n pageBorderBoxCenter: pageBorderBoxCenter,\n destination: destination,\n draggable: draggable,\n movingRelativeTo: movingRelativeTo,\n insideDestination: insideDestination,\n home: home,\n previousImpact: previousImpact || noImpact,\n viewport: viewport\n });\n};\n\nvar isTotallyVisibleInNewLocation = function isTotallyVisibleInNewLocation(_ref) {\n var draggable = _ref.draggable,\n destination = _ref.destination,\n newPageBorderBoxCenter = _ref.newPageBorderBoxCenter,\n viewport = _ref.viewport;\n var diff = subtract(newPageBorderBoxCenter, draggable.page.borderBox.center);\n var shifted = offsetByPosition(draggable.page.borderBox, diff);\n return isTotallyVisible({\n target: shifted,\n destination: destination,\n viewport: viewport\n });\n};\n\nvar withFirstAdded = function withFirstAdded(_ref) {\n var add = _ref.add,\n previousImpact = _ref.previousImpact,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n viewport = _ref.viewport;\n var newDisplacement = {\n draggableId: add,\n isVisible: true,\n shouldAnimate: true\n };\n var added = [newDisplacement].concat(previousImpact.movement.displaced);\n var withUpdatedVisibility = added.map(function (current) {\n if (current === newDisplacement) {\n return current;\n }\n\n var updated = getDisplacement({\n draggable: draggables[current.draggableId],\n destination: droppable,\n previousImpact: previousImpact,\n viewport: viewport.frame\n });\n return updated;\n });\n return withUpdatedVisibility;\n};\n\nvar forceVisibleDisplacement = function forceVisibleDisplacement(current) {\n if (current.isVisible) {\n return current;\n }\n\n return {\n draggableId: current.draggableId,\n isVisible: true,\n shouldAnimate: false\n };\n};\n\nvar withFirstRemoved = function withFirstRemoved(_ref2) {\n var dragging = _ref2.dragging,\n isVisibleInNewLocation = _ref2.isVisibleInNewLocation,\n previousImpact = _ref2.previousImpact,\n droppable = _ref2.droppable,\n draggables = _ref2.draggables;\n var last = previousImpact.movement.displaced;\n !last.length ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot remove displacement from empty list') : invariant(false) : void 0;\n var withFirstRestored = last.slice(1, last.length);\n\n if (!withFirstRestored.length) {\n return withFirstRestored;\n }\n\n if (isVisibleInNewLocation) {\n return withFirstRestored;\n }\n\n var axis = droppable.axis;\n var sizeOfRestored = draggables[last[0].draggableId].page.marginBox[axis.size];\n var sizeOfDragging = draggables[dragging].page.marginBox[axis.size];\n var buffer = sizeOfRestored + sizeOfDragging;\n var withUpdatedVisibility = withFirstRestored.map(function (displacement, index) {\n if (index === 0) {\n return forceVisibleDisplacement(displacement);\n }\n\n if (buffer > 0) {\n var current = draggables[displacement.draggableId];\n var size = current.page.marginBox[axis.size];\n buffer -= size;\n return forceVisibleDisplacement(displacement);\n }\n\n return {\n draggableId: displacement.draggableId,\n isVisible: false,\n shouldAnimate: false\n };\n });\n return withUpdatedVisibility;\n};\n\nvar inHomeList$1 = function inHomeList$1(_ref) {\n var isMovingForward = _ref.isMovingForward,\n draggableId = _ref.draggableId,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n previousImpact = _ref.previousImpact,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n viewport = _ref.viewport;\n var location = previousImpact.destination;\n !location ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot move to next index in home list when there is no previous destination') : invariant(false) : void 0;\n var draggable = draggables[draggableId];\n var axis = droppable.axis;\n var insideDroppable = getDraggablesInsideDroppable(droppable, draggables);\n var startIndex = draggable.descriptor.index;\n var currentIndex = location.index;\n var proposedIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1;\n\n if (proposedIndex > insideDroppable.length - 1) {\n return null;\n }\n\n if (proposedIndex < 0) {\n return null;\n }\n\n var destination = insideDroppable[proposedIndex];\n var isMovingTowardStart = isMovingForward && proposedIndex <= startIndex || !isMovingForward && proposedIndex >= startIndex;\n\n var edge = function () {\n if (!isMovingTowardStart) {\n return isMovingForward ? 'end' : 'start';\n }\n\n return isMovingForward ? 'start' : 'end';\n }();\n\n var newPageBorderBoxCenter = moveToEdge({\n source: draggable.page.borderBox,\n sourceEdge: edge,\n destination: destination.page.borderBox,\n destinationEdge: edge,\n destinationAxis: droppable.axis\n });\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: droppable,\n newPageBorderBoxCenter: newPageBorderBoxCenter,\n viewport: viewport.frame\n });\n var displaced = isMovingTowardStart ? withFirstRemoved({\n dragging: draggableId,\n isVisibleInNewLocation: isVisibleInNewLocation,\n previousImpact: previousImpact,\n droppable: droppable,\n draggables: draggables\n }) : withFirstAdded({\n add: destination.descriptor.id,\n previousImpact: previousImpact,\n droppable: droppable,\n draggables: draggables,\n viewport: viewport\n });\n var newImpact = {\n movement: {\n displaced: displaced,\n amount: patch(axis.line, draggable.page.marginBox[axis.size]),\n isBeyondStartPosition: proposedIndex > startIndex\n },\n destination: {\n droppableId: droppable.descriptor.id,\n index: proposedIndex\n },\n direction: droppable.axis.direction\n };\n\n if (isVisibleInNewLocation) {\n return {\n pageBorderBoxCenter: withDroppableDisplacement(droppable, newPageBorderBoxCenter),\n impact: newImpact,\n scrollJumpRequest: null\n };\n }\n\n var distance$$1 = subtract(newPageBorderBoxCenter, previousPageBorderBoxCenter);\n var distanceWithScroll = withDroppableDisplacement(droppable, distance$$1);\n return {\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n impact: newImpact,\n scrollJumpRequest: distanceWithScroll\n };\n};\n\nvar inForeignList$1 = function inForeignList$1(_ref) {\n var isMovingForward = _ref.isMovingForward,\n draggableId = _ref.draggableId,\n previousImpact = _ref.previousImpact,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n viewport = _ref.viewport;\n !previousImpact.destination ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot move to next index where there is no previous destination') : invariant(false) : void 0;\n var location = previousImpact.destination;\n var draggable = draggables[draggableId];\n var axis = droppable.axis;\n var insideForeignDroppable = getDraggablesInsideDroppable(droppable, draggables);\n var currentIndex = location.index;\n var proposedIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1;\n var lastIndex = insideForeignDroppable.length - 1;\n\n if (proposedIndex > insideForeignDroppable.length) {\n return null;\n }\n\n if (proposedIndex < 0) {\n return null;\n }\n\n var movingRelativeTo = insideForeignDroppable[Math.min(proposedIndex, lastIndex)];\n var isMovingPastLastIndex = proposedIndex > lastIndex;\n var sourceEdge = 'start';\n\n var destinationEdge = function () {\n if (isMovingPastLastIndex) {\n return 'end';\n }\n\n return 'start';\n }();\n\n var newPageBorderBoxCenter = moveToEdge({\n source: draggable.page.borderBox,\n sourceEdge: sourceEdge,\n destination: movingRelativeTo.page.marginBox,\n destinationEdge: destinationEdge,\n destinationAxis: droppable.axis\n });\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: droppable,\n newPageBorderBoxCenter: newPageBorderBoxCenter,\n viewport: viewport.frame\n });\n\n var displaced = function () {\n if (isMovingForward) {\n return withFirstRemoved({\n dragging: draggableId,\n isVisibleInNewLocation: isVisibleInNewLocation,\n previousImpact: previousImpact,\n droppable: droppable,\n draggables: draggables\n });\n }\n\n return withFirstAdded({\n add: movingRelativeTo.descriptor.id,\n previousImpact: previousImpact,\n droppable: droppable,\n draggables: draggables,\n viewport: viewport\n });\n }();\n\n var newImpact = {\n movement: {\n displaced: displaced,\n amount: patch(axis.line, draggable.page.marginBox[axis.size]),\n isBeyondStartPosition: false\n },\n destination: {\n droppableId: droppable.descriptor.id,\n index: proposedIndex\n },\n direction: droppable.axis.direction\n };\n\n if (isVisibleInNewLocation) {\n return {\n pageBorderBoxCenter: withDroppableDisplacement(droppable, newPageBorderBoxCenter),\n impact: newImpact,\n scrollJumpRequest: null\n };\n }\n\n var distanceMoving = subtract(newPageBorderBoxCenter, previousPageBorderBoxCenter);\n var distanceWithScroll = withDroppableDisplacement(droppable, distanceMoving);\n return {\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n impact: newImpact,\n scrollJumpRequest: distanceWithScroll\n };\n};\n\nvar moveToNextIndex = function moveToNextIndex(args) {\n var draggableId = args.draggableId,\n draggables = args.draggables,\n droppable = args.droppable;\n var draggable = draggables[draggableId];\n var isInHomeList = draggable.descriptor.droppableId === droppable.descriptor.id;\n\n if (!droppable.isEnabled) {\n return null;\n }\n\n if (isInHomeList) {\n return inHomeList$1(args);\n }\n\n return inForeignList$1(args);\n};\n\nvar getClientSelection = function getClientSelection(pageBorderBoxCenter, currentScroll) {\n return subtract(pageBorderBoxCenter, currentScroll);\n};\n\nvar moveInDirection = function moveInDirection(_ref) {\n var state = _ref.state,\n type = _ref.type;\n\n var _ref2 = function () {\n if (state.impact.destination) {\n return {\n droppable: state.dimensions.droppables[state.impact.destination.droppableId],\n isMainAxisMovementAllowed: true\n };\n }\n\n return {\n droppable: state.dimensions.droppables[state.critical.droppable.id],\n isMainAxisMovementAllowed: false\n };\n }(),\n droppable = _ref2.droppable,\n isMainAxisMovementAllowed = _ref2.isMainAxisMovementAllowed;\n\n var direction = droppable.axis.direction;\n var isMovingOnMainAxis = direction === 'vertical' && (type === 'MOVE_UP' || type === 'MOVE_DOWN') || direction === 'horizontal' && (type === 'MOVE_LEFT' || type === 'MOVE_RIGHT');\n\n if (isMovingOnMainAxis && !isMainAxisMovementAllowed) {\n return null;\n }\n\n var isMovingForward = type === 'MOVE_DOWN' || type === 'MOVE_RIGHT';\n\n if (isMovingOnMainAxis) {\n var _result = moveToNextIndex({\n isMovingForward: isMovingForward,\n draggableId: state.critical.draggable.id,\n droppable: droppable,\n draggables: state.dimensions.draggables,\n previousPageBorderBoxCenter: state.current.page.borderBoxCenter,\n previousImpact: state.impact,\n viewport: state.viewport\n });\n\n if (!_result) {\n return null;\n }\n\n return {\n impact: _result.impact,\n clientSelection: getClientSelection(_result.pageBorderBoxCenter, state.viewport.scroll.current),\n scrollJumpRequest: _result.scrollJumpRequest\n };\n }\n\n var home = getHomeLocation(state.critical);\n var result = moveCrossAxis({\n isMovingForward: isMovingForward,\n pageBorderBoxCenter: state.current.page.borderBoxCenter,\n draggableId: state.critical.draggable.id,\n droppableId: droppable.descriptor.id,\n home: home,\n draggables: state.dimensions.draggables,\n droppables: state.dimensions.droppables,\n previousImpact: state.impact,\n viewport: state.viewport\n });\n\n if (!result) {\n return null;\n }\n\n return {\n clientSelection: getClientSelection(result.pageBorderBoxCenter, state.viewport.scroll.current),\n impact: result.impact,\n scrollJumpRequest: null\n };\n};\n\nvar scrollViewport = function scrollViewport(viewport, newScroll) {\n var diff = subtract(newScroll, viewport.scroll.initial);\n var displacement = negate(diff);\n var frame = getRect({\n top: newScroll.y,\n bottom: newScroll.y + viewport.frame.height,\n left: newScroll.x,\n right: newScroll.x + viewport.frame.width\n });\n var updated = {\n frame: frame,\n scroll: {\n initial: viewport.scroll.initial,\n max: viewport.scroll.max,\n current: newScroll,\n diff: {\n value: diff,\n displacement: displacement\n }\n }\n };\n return updated;\n};\n\nvar getHomeImpact = function getHomeImpact(critical, dimensions) {\n var home = dimensions.droppables[critical.droppable.id];\n var axis = home.axis;\n var draggable = dimensions.draggables[critical.draggable.id];\n return {\n movement: {\n displaced: [],\n isBeyondStartPosition: false,\n amount: patch(axis.line, draggable.client.marginBox[axis.size])\n },\n direction: axis.direction,\n destination: getHomeLocation(critical)\n };\n};\n\nvar getPageItemPositions = function getPageItemPositions(client, windowScroll) {\n return {\n selection: add(client.selection, windowScroll),\n borderBoxCenter: add(client.borderBoxCenter, windowScroll),\n offset: add(client.offset, windowScroll)\n };\n};\n\nfunction isMovementAllowed(state) {\n return state.phase === 'DRAGGING' || state.phase === 'COLLECTING';\n}\n\nvar idle = {\n phase: 'IDLE'\n};\nvar preparing = {\n phase: 'PREPARING'\n};\n\nvar moveWithPositionUpdates = function moveWithPositionUpdates(_ref) {\n var state = _ref.state,\n clientSelection = _ref.clientSelection,\n shouldAnimate = _ref.shouldAnimate,\n viewport = _ref.viewport,\n impact = _ref.impact,\n scrollJumpRequest = _ref.scrollJumpRequest;\n var newViewport = viewport || state.viewport;\n var currentWindowScroll = newViewport.scroll.current;\n\n var client = function () {\n var offset = subtract(clientSelection, state.initial.client.selection);\n return {\n offset: offset,\n selection: clientSelection,\n borderBoxCenter: add(state.initial.client.borderBoxCenter, offset)\n };\n }();\n\n var page = getPageItemPositions(client, currentWindowScroll);\n var current = {\n client: client,\n page: page\n };\n\n if (state.phase === 'COLLECTING') {\n return _extends({\n phase: 'COLLECTING'\n }, state, {\n current: current\n });\n }\n\n var newImpact = impact || getDragImpact({\n pageBorderBoxCenter: page.borderBoxCenter,\n draggable: state.dimensions.draggables[state.critical.draggable.id],\n draggables: state.dimensions.draggables,\n droppables: state.dimensions.droppables,\n previousImpact: state.impact,\n viewport: newViewport\n });\n\n var result = _extends({}, state, {\n current: current,\n shouldAnimate: shouldAnimate,\n impact: newImpact,\n scrollJumpRequest: scrollJumpRequest || null,\n viewport: newViewport\n });\n\n return result;\n};\n\nvar reducer = function reducer(state, action) {\n if (state === void 0) {\n state = idle;\n }\n\n if (action.type === 'CLEAN') {\n return idle;\n }\n\n if (action.type === 'PREPARE') {\n return preparing;\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n !(state.phase === 'PREPARING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'INITIAL_PUBLISH must come after a PREPARING phase') : invariant(false) : void 0;\n var _action$payload = action.payload,\n critical = _action$payload.critical,\n client = _action$payload.client,\n viewport = _action$payload.viewport,\n dimensions = _action$payload.dimensions,\n autoScrollMode = _action$payload.autoScrollMode;\n var initial = {\n client: client,\n page: {\n selection: add(client.selection, viewport.scroll.initial),\n borderBoxCenter: add(client.selection, viewport.scroll.initial),\n offset: origin\n }\n };\n var result = {\n phase: 'DRAGGING',\n isDragging: true,\n critical: critical,\n autoScrollMode: autoScrollMode,\n dimensions: dimensions,\n initial: initial,\n current: initial,\n impact: getHomeImpact(critical, dimensions),\n viewport: viewport,\n scrollJumpRequest: null,\n shouldAnimate: false\n };\n return result;\n }\n\n if (action.type === 'COLLECTION_STARTING') {\n var _extends2;\n\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Collection cannot start from phase \" + state.phase) : invariant(false) : void 0;\n\n var _result = _extends({\n phase: 'COLLECTING'\n }, state, (_extends2 = {}, _extends2[\"phase\"] = 'COLLECTING', _extends2));\n\n return _result;\n }\n\n if (action.type === 'PUBLISH') {\n !(state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unexpected \" + action.type + \" received in phase \" + state.phase) : invariant(false) : void 0;\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"Dynamic additions and removals of Draggable and Droppable components\\n is currently not supported. But will be soon!\") : invariant(false);\n }\n\n if (action.type === 'MOVE') {\n if (state.phase === 'PREPARING') {\n return state;\n }\n\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload2 = action.payload,\n _client = _action$payload2.client,\n shouldAnimate = _action$payload2.shouldAnimate;\n\n if (state.shouldAnimate === shouldAnimate && isEqual(_client, state.current.client.selection)) {\n return state;\n }\n\n var impact = state.autoScrollMode === 'JUMP' ? state.impact : null;\n return moveWithPositionUpdates({\n state: state,\n clientSelection: _client,\n impact: impact,\n shouldAnimate: shouldAnimate\n });\n }\n\n if (action.type === 'UPDATE_DROPPABLE_SCROLL') {\n var _extends3, _extends4;\n\n if (state.phase === 'PREPARING') {\n return state;\n }\n\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload3 = action.payload,\n id = _action$payload3.id,\n offset = _action$payload3.offset;\n var target = state.dimensions.droppables[id];\n\n if (!target) {\n return state;\n }\n\n var updated = scrollDroppable(target, offset);\n\n var _dimensions = _extends({}, state.dimensions, {\n droppables: _extends({}, state.dimensions.droppables, (_extends3 = {}, _extends3[id] = updated, _extends3))\n });\n\n var _impact = function () {\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n\n if (state.autoScrollMode === 'JUMP') {\n return state.impact;\n }\n\n return getDragImpact({\n pageBorderBoxCenter: state.current.page.borderBoxCenter,\n draggable: _dimensions.draggables[state.critical.draggable.id],\n draggables: _dimensions.draggables,\n droppables: _dimensions.droppables,\n previousImpact: state.impact,\n viewport: state.viewport\n });\n }();\n\n return _extends({\n phase: 'DRAGGING'\n }, state, (_extends4 = {}, _extends4[\"phase\"] = state.phase, _extends4.impact = _impact, _extends4.dimensions = _dimensions, _extends4.scrollJumpRequest = null, _extends4));\n }\n\n if (action.type === 'UPDATE_DROPPABLE_IS_ENABLED') {\n var _extends5, _extends6;\n\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Attempting to move in an unsupported phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload4 = action.payload,\n _id = _action$payload4.id,\n isEnabled = _action$payload4.isEnabled;\n var _target = state.dimensions.droppables[_id];\n !_target ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find Droppable[id: \" + _id + \"] to toggle its enabled state\") : invariant(false) : void 0;\n !(_target.isEnabled !== isEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Trying to set droppable isEnabled to \" + String(isEnabled) + \"\\n but it is already \" + String(_target.isEnabled)) : invariant(false) : void 0;\n\n var _updated = _extends({}, _target, {\n isEnabled: isEnabled\n });\n\n var _dimensions2 = _extends({}, state.dimensions, {\n droppables: _extends({}, state.dimensions.droppables, (_extends5 = {}, _extends5[_id] = _updated, _extends5))\n });\n\n var _impact2 = getDragImpact({\n pageBorderBoxCenter: state.current.page.borderBoxCenter,\n draggable: _dimensions2.draggables[state.critical.draggable.id],\n draggables: _dimensions2.draggables,\n droppables: _dimensions2.droppables,\n previousImpact: state.impact,\n viewport: state.viewport\n });\n\n return _extends({\n phase: 'DRAGGING'\n }, state, (_extends6 = {}, _extends6[\"phase\"] = state.phase, _extends6.impact = _impact2, _extends6.dimensions = _dimensions2, _extends6));\n }\n\n if (action.type === 'MOVE_BY_WINDOW_SCROLL') {\n if (state.phase === 'PREPARING') {\n return state;\n }\n\n if (state.phase === 'DROP_PENDING' || state.phase === 'DROP_ANIMATING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot move by window in phase \" + state.phase) : invariant(false) : void 0;\n var newScroll = action.payload.scroll;\n\n if (isEqual(state.viewport.scroll.current, newScroll)) {\n return state;\n }\n\n var isJumpScrolling = state.autoScrollMode === 'JUMP';\n\n var _impact3 = isJumpScrolling ? state.impact : null;\n\n var _viewport = scrollViewport(state.viewport, newScroll);\n\n return moveWithPositionUpdates({\n state: state,\n clientSelection: state.current.client.selection,\n viewport: _viewport,\n shouldAnimate: false,\n impact: _impact3\n });\n }\n\n if (action.type === 'UPDATE_VIEWPORT_MAX_SCROLL') {\n var _extends7;\n\n !state.isDragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot update the max viewport scroll if not dragging') : invariant(false) : void 0;\n var existing = state.viewport;\n\n var _viewport2 = _extends({}, existing, {\n scroll: _extends({}, existing.scroll, {\n max: action.payload\n })\n });\n\n return _extends({\n phase: 'DRAGGING'\n }, state, (_extends7 = {}, _extends7[\"phase\"] = state.phase, _extends7.viewport = _viewport2, _extends7));\n }\n\n if (action.type === 'MOVE_UP' || action.type === 'MOVE_DOWN' || action.type === 'MOVE_LEFT' || action.type === 'MOVE_RIGHT') {\n if (state.phase === 'PREPARING') {\n return state;\n }\n\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" received while not in DRAGGING phase\") : invariant(false) : void 0;\n\n var _result2 = moveInDirection({\n state: state,\n type: action.type\n });\n\n if (!_result2) {\n return state;\n }\n\n return moveWithPositionUpdates({\n state: state,\n impact: _result2.impact,\n clientSelection: _result2.clientSelection,\n shouldAnimate: true,\n scrollJumpRequest: _result2.scrollJumpRequest\n });\n }\n\n if (action.type === 'DROP_PENDING') {\n var _extends8;\n\n var reason = action.payload.reason;\n !(state.phase === 'COLLECTING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only move into the DROP_PENDING phase from the COLLECTING phase') : invariant(false) : void 0;\n\n var newState = _extends({\n phase: 'DROP_PENDING'\n }, state, (_extends8 = {}, _extends8[\"phase\"] = 'DROP_PENDING', _extends8.isWaiting = true, _extends8.reason = reason, _extends8));\n\n return newState;\n }\n\n if (action.type === 'DROP_ANIMATE') {\n var pending = action.payload;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot animate drop from phase \" + state.phase) : invariant(false) : void 0;\n var _result3 = {\n phase: 'DROP_ANIMATING',\n pending: pending,\n dimensions: state.dimensions\n };\n return _result3;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n return idle;\n }\n\n return state;\n};\n\nvar lift = function lift(args) {\n return {\n type: 'LIFT',\n payload: args\n };\n};\n\nvar initialPublish = function initialPublish(args) {\n return {\n type: 'INITIAL_PUBLISH',\n payload: args\n };\n};\n\nvar publish = function publish(args) {\n return {\n type: 'PUBLISH',\n payload: args\n };\n};\n\nvar collectionStarting = function collectionStarting() {\n return {\n type: 'COLLECTION_STARTING',\n payload: null\n };\n};\n\nvar updateDroppableScroll = function updateDroppableScroll(args) {\n return {\n type: 'UPDATE_DROPPABLE_SCROLL',\n payload: args\n };\n};\n\nvar updateDroppableIsEnabled = function updateDroppableIsEnabled(args) {\n return {\n type: 'UPDATE_DROPPABLE_IS_ENABLED',\n payload: args\n };\n};\n\nvar move = function move(args) {\n return {\n type: 'MOVE',\n payload: args\n };\n};\n\nvar moveByWindowScroll = function moveByWindowScroll(args) {\n return {\n type: 'MOVE_BY_WINDOW_SCROLL',\n payload: args\n };\n};\n\nvar updateViewportMaxScroll = function updateViewportMaxScroll(max) {\n return {\n type: 'UPDATE_VIEWPORT_MAX_SCROLL',\n payload: max\n };\n};\n\nvar moveUp = function moveUp() {\n return {\n type: 'MOVE_UP',\n payload: null\n };\n};\n\nvar moveDown = function moveDown() {\n return {\n type: 'MOVE_DOWN',\n payload: null\n };\n};\n\nvar moveRight = function moveRight() {\n return {\n type: 'MOVE_RIGHT',\n payload: null\n };\n};\n\nvar moveLeft = function moveLeft() {\n return {\n type: 'MOVE_LEFT',\n payload: null\n };\n};\n\nvar clean = function clean() {\n return {\n type: 'CLEAN',\n payload: null\n };\n};\n\nvar prepare = function prepare() {\n return {\n type: 'PREPARE',\n payload: null\n };\n};\n\nvar animateDrop = function animateDrop(pending) {\n return {\n type: 'DROP_ANIMATE',\n payload: pending\n };\n};\n\nvar completeDrop = function completeDrop(result) {\n return {\n type: 'DROP_COMPLETE',\n payload: result\n };\n};\n\nvar drop = function drop(args) {\n return {\n type: 'DROP',\n payload: args\n };\n};\n\nvar dropPending = function dropPending(args) {\n return {\n type: 'DROP_PENDING',\n payload: args\n };\n};\n\nvar dropAnimationFinished = function dropAnimationFinished() {\n return {\n type: 'DROP_ANIMATION_FINISHED',\n payload: null\n };\n};\n\nvar lift$1 = function lift$1(getMarshal) {\n var timeoutId = null;\n\n var tryAbortCriticalCollection = function tryAbortCriticalCollection() {\n if (timeoutId == null) {\n return;\n }\n\n clearTimeout(timeoutId);\n timeoutId = null;\n };\n\n return function (_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type === 'CLEAN') {\n tryAbortCriticalCollection();\n next(action);\n return;\n }\n\n if (action.type !== 'LIFT') {\n next(action);\n return;\n }\n\n !!timeoutId ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'There should not be a pending complete lift phase when a lift action is fired') : invariant(false) : void 0;\n var marshal = getMarshal();\n var _action$payload = action.payload,\n id = _action$payload.id,\n client = _action$payload.client,\n autoScrollMode = _action$payload.autoScrollMode,\n viewport = _action$payload.viewport;\n var initial = getState();\n\n if (initial.phase === 'DROP_ANIMATING') {\n dispatch(completeDrop(initial.pending.result));\n }\n\n var postFlushState = getState();\n !(postFlushState.phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Incorrect phase to start a drag') : invariant(false) : void 0;\n dispatch(prepare());\n timeoutId = setTimeout(function () {\n timeoutId = null;\n var state = getState();\n !(state.phase === 'PREPARING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid phase for completing lift') : invariant(false) : void 0;\n var scrollOptions = {\n shouldPublishImmediately: autoScrollMode === 'JUMP'\n };\n var request = {\n draggableId: id,\n scrollOptions: scrollOptions\n };\n\n var _marshal$startPublish = marshal.startPublishing(request, viewport.scroll.current),\n critical = _marshal$startPublish.critical,\n dimensions = _marshal$startPublish.dimensions;\n\n dispatch(initialPublish({\n critical: critical,\n dimensions: dimensions,\n client: client,\n autoScrollMode: autoScrollMode,\n viewport: viewport\n }));\n });\n };\n };\n };\n};\n\nvar style = function style(marshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n marshal.dragging();\n }\n\n if (action.type === 'COLLECTION_STARTING') {\n marshal.collecting();\n }\n\n if (action.type === 'PUBLISH') {\n marshal.dragging();\n }\n\n if (action.type === 'DROP_ANIMATE') {\n marshal.dropping(action.payload.result.reason);\n }\n\n if (action.type === 'CLEAN' || action.type === 'DROP_COMPLETE') {\n marshal.resting();\n }\n\n next(action);\n };\n };\n };\n};\n\nvar getNewHomeClientBorderBoxCenter = function getNewHomeClientBorderBoxCenter(_ref) {\n var movement = _ref.movement,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n destination = _ref.destination;\n var originalCenter = draggable.client.borderBox.center;\n\n if (destination == null) {\n return originalCenter;\n }\n\n var displaced = movement.displaced,\n isBeyondStartPosition = movement.isBeyondStartPosition;\n var axis = destination.axis;\n var isWithinHomeDroppable = destination.descriptor.id === draggable.descriptor.droppableId;\n\n if (isWithinHomeDroppable && !displaced.length) {\n return originalCenter;\n }\n\n var draggablesInDestination = getDraggablesInsideDroppable(destination, draggables);\n\n var movingRelativeTo = function () {\n if (isWithinHomeDroppable) {\n return draggables[displaced[0].draggableId].client.borderBox;\n }\n\n if (displaced.length) {\n return draggables[displaced[0].draggableId].client.borderBox;\n }\n\n if (draggablesInDestination.length) {\n return draggablesInDestination[draggablesInDestination.length - 1].client.marginBox;\n }\n\n return destination.client.contentBox;\n }();\n\n var _ref2 = function () {\n if (isWithinHomeDroppable) {\n if (isBeyondStartPosition) {\n return {\n sourceEdge: 'end',\n destinationEdge: 'end'\n };\n }\n\n return {\n sourceEdge: 'start',\n destinationEdge: 'start'\n };\n }\n\n if (!displaced.length && draggablesInDestination.length) {\n return {\n sourceEdge: 'start',\n destinationEdge: 'end'\n };\n }\n\n return {\n sourceEdge: 'start',\n destinationEdge: 'start'\n };\n }(),\n sourceEdge = _ref2.sourceEdge,\n destinationEdge = _ref2.destinationEdge;\n\n var source = draggable.client.borderBox;\n var targetCenter = moveToEdge({\n source: source,\n sourceEdge: sourceEdge,\n destination: movingRelativeTo,\n destinationEdge: destinationEdge,\n destinationAxis: axis\n });\n return targetCenter;\n};\n\nvar getScrollDisplacement = function getScrollDisplacement(droppable, viewport) {\n return withDroppableDisplacement(droppable, viewport.scroll.diff.displacement);\n};\n\nvar drop$1 = function drop$1(_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP') {\n next(action);\n return;\n }\n\n var state = getState();\n var reason = action.payload.reason;\n\n if (state.phase === 'COLLECTING') {\n dispatch(dropPending({\n reason: reason\n }));\n return;\n }\n\n if (state.phase === 'PREPARING') {\n dispatch(clean());\n return;\n }\n\n if (state.phase === 'IDLE') {\n return;\n }\n\n var isWaitingForDrop = state.phase === 'DROP_PENDING' && state.isWaiting;\n !!isWaitingForDrop ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A DROP action occurred while DROP_PENDING and still waiting') : invariant(false) : void 0;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot drop in phase: \" + state.phase) : invariant(false) : void 0;\n var critical = state.critical;\n var dimensions = state.dimensions;\n var impact = reason === 'DROP' ? state.impact : noImpact;\n var home = dimensions.droppables[state.critical.droppable.id];\n var draggable = dimensions.draggables[state.critical.draggable.id];\n var droppable = impact && impact.destination ? dimensions.droppables[impact.destination.droppableId] : null;\n var source = {\n index: critical.draggable.index,\n droppableId: critical.droppable.id\n };\n var destination = reason === 'DROP' ? impact.destination : null;\n var result = {\n draggableId: draggable.descriptor.id,\n type: home.descriptor.type,\n source: source,\n destination: destination,\n reason: reason\n };\n\n var clientOffset = function () {\n if (reason === 'CANCEL') {\n return origin;\n }\n\n var newBorderBoxClientCenter = getNewHomeClientBorderBoxCenter({\n movement: impact.movement,\n draggable: draggable,\n draggables: dimensions.draggables,\n destination: droppable\n });\n return subtract(newBorderBoxClientCenter, draggable.client.borderBox.center);\n }();\n\n var newHomeOffset = add(clientOffset, getScrollDisplacement(droppable || home, state.viewport));\n var isAnimationRequired = !isEqual(state.current.client.offset, newHomeOffset);\n var pending = {\n newHomeOffset: newHomeOffset,\n result: result,\n impact: impact\n };\n\n if (isAnimationRequired) {\n dispatch(animateDrop(pending));\n return;\n }\n\n dispatch(completeDrop(result));\n };\n };\n};\n\nvar onDragStart = function onDragStart(start) {\n return \"\\n You have lifted an item in position \" + (start.source.index + 1) + \".\\n Use the arrow keys to move, space bar to drop, and escape to cancel.\\n\";\n};\n\nvar onDragUpdate = function onDragUpdate(update) {\n if (!update.destination) {\n return 'You are currently not dragging over a droppable area';\n }\n\n if (update.source.droppableId === update.destination.droppableId) {\n return \"You have moved the item to position \" + (update.destination.index + 1);\n }\n\n return \"\\n You have moved the item from list \" + update.source.droppableId + \" in position \" + (update.source.index + 1) + \"\\n to list \" + update.destination.droppableId + \" in position \" + (update.destination.index + 1) + \"\\n \";\n};\n\nvar onDragEnd = function onDragEnd(result) {\n if (result.reason === 'CANCEL') {\n return \"\\n Movement cancelled.\\n The item has returned to its starting position of \" + (result.source.index + 1) + \"\\n \";\n }\n\n if (!result.destination) {\n return \"\\n The item has been dropped while not over a droppable location.\\n The item has returned to its starting position of \" + (result.source.index + 1) + \"\\n \";\n }\n\n if (result.source.droppableId === result.destination.droppableId) {\n if (result.source.index === result.destination.index) {\n return \"\\n You have dropped the item.\\n It has been dropped on its starting position of \" + (result.source.index + 1) + \"\\n \";\n }\n\n return \"\\n You have dropped the item.\\n It has moved from position \" + (result.source.index + 1) + \" to \" + (result.destination.index + 1) + \"\\n \";\n }\n\n return \"\\n You have dropped the item.\\n It has moved from position \" + (result.source.index + 1) + \" in list \" + result.source.droppableId + \"\\n to position \" + (result.destination.index + 1) + \" in list \" + result.destination.droppableId + \"\\n \";\n};\n\nvar preset = {\n onDragStart: onDragStart,\n onDragUpdate: onDragUpdate,\n onDragEnd: onDragEnd\n};\nvar records = {};\nvar flag = '__react-beautiful-dnd-debug-timings-hook__';\n\nvar isTimingsEnabled = function isTimingsEnabled() {\n return Boolean(window[flag]);\n};\n\nvar start = function start(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!isTimingsEnabled()) {\n return;\n }\n\n var now = performance.now();\n records[key] = now;\n }\n};\n\nvar finish = function finish(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!isTimingsEnabled()) {\n return;\n }\n\n var now = performance.now();\n var previous = records[key];\n !previous ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'cannot finish timing as no previous time found') : invariant(false) : void 0;\n var result = now - previous;\n var rounded = result.toFixed(2);\n\n var style = function () {\n if (result < 12) {\n return {\n textColor: 'green',\n symbol: '✅'\n };\n }\n\n if (result < 40) {\n return {\n textColor: 'orange',\n symbol: '⚠️'\n };\n }\n\n return {\n textColor: 'red',\n symbol: '❌'\n };\n }();\n\n console.log(style.symbol + \" %cTiming %c\" + rounded + \" %cms %c\" + key, 'color: blue; font-weight: bold; ', \"color: \" + style.textColor + \"; font-size: 1.1em;\", 'color: grey;', 'color: purple; font-weight: bold;');\n }\n};\n\nvar withTimings = function withTimings(key, fn) {\n start(key);\n fn();\n finish(key);\n};\n\nvar areLocationsEqual = function areLocationsEqual(first, second) {\n if (first == null && second == null) {\n return true;\n }\n\n if (first == null || second == null) {\n return false;\n }\n\n return first.droppableId === second.droppableId && first.index === second.index;\n};\n\nvar isCriticalEqual = function isCriticalEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n var isDraggableEqual = first.draggable.id === second.draggable.id && first.draggable.droppableId === second.draggable.droppableId && first.draggable.type === second.draggable.type && first.draggable.index === second.draggable.index;\n var isDroppableEqual = first.droppable.id === second.droppable.id && first.droppable.type === second.droppable.type;\n return isDraggableEqual && isDroppableEqual;\n};\n\nvar getExpiringAnnounce = function getExpiringAnnounce(announce) {\n var wasCalled = false;\n var isExpired = false;\n setTimeout(function () {\n isExpired = true;\n });\n\n var result = function result(message) {\n if (wasCalled) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Announcement already made. Not making a second announcement');\n }\n\n return;\n }\n\n if (isExpired) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"\\n Announcements cannot be made asynchronously.\\n Default message has already been announced.\\n \");\n }\n\n return;\n }\n\n wasCalled = true;\n announce(message);\n };\n\n result.wasCalled = function () {\n return wasCalled;\n };\n\n return result;\n};\n\nvar getDragStart = function getDragStart(critical) {\n return {\n draggableId: critical.draggable.id,\n type: critical.droppable.type,\n source: {\n droppableId: critical.droppable.id,\n index: critical.draggable.index\n }\n };\n};\n\nvar hooks = function hooks(getHooks, announce) {\n var execute = function execute(hook, data, getDefaultMessage) {\n if (!hook) {\n announce(getDefaultMessage(data));\n return;\n }\n\n var willExpire = getExpiringAnnounce(announce);\n var provided = {\n announce: willExpire\n };\n hook(data, provided);\n\n if (!willExpire.wasCalled()) {\n announce(getDefaultMessage(data));\n }\n };\n\n var publisher = function () {\n var lastLocation = null;\n var lastCritical = null;\n var _isDragStartPublished = false;\n\n var beforeStart = function beforeStart(critical) {\n !!_isDragStartPublished ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeDragStart', function () {\n var fn = getHooks().onBeforeDragStart;\n\n if (fn) {\n fn(getDragStart(critical));\n }\n });\n };\n\n var start$$1 = function start$$1(critical) {\n !!_isDragStartPublished ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n var data = getDragStart(critical);\n lastCritical = critical;\n lastLocation = data.source;\n _isDragStartPublished = true;\n withTimings('onDragStart', function () {\n return execute(getHooks().onDragStart, data, preset.onDragStart);\n });\n };\n\n var move = function move(critical, location) {\n !(_isDragStartPublished && lastCritical) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragMove when onDragStart has not been called') : invariant(false) : void 0;\n var hasCriticalChanged = !isCriticalEqual(critical, lastCritical);\n\n if (hasCriticalChanged) {\n lastCritical = critical;\n }\n\n var hasLocationChanged = !areLocationsEqual(lastLocation, location);\n\n if (hasLocationChanged) {\n lastLocation = location;\n }\n\n if (!hasCriticalChanged && !hasLocationChanged) {\n return;\n }\n\n var data = _extends({}, getDragStart(critical), {\n destination: location\n });\n\n withTimings('onDragUpdate', function () {\n return execute(getHooks().onDragUpdate, data, preset.onDragUpdate);\n });\n };\n\n var drop = function drop(result) {\n !_isDragStartPublished ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragEnd when there is no matching onDragStart') : invariant(false) : void 0;\n _isDragStartPublished = false;\n lastLocation = null;\n lastCritical = null;\n withTimings('onDragEnd', function () {\n return execute(getHooks().onDragEnd, result, preset.onDragEnd);\n });\n };\n\n var abort = function abort() {\n !(_isDragStartPublished && lastCritical) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot cancel when onDragStart not fired') : invariant(false) : void 0;\n\n var result = _extends({}, getDragStart(lastCritical), {\n destination: null,\n reason: 'CANCEL'\n });\n\n drop(result);\n };\n\n return {\n beforeStart: beforeStart,\n start: start$$1,\n move: move,\n drop: drop,\n abort: abort,\n isDragStartPublished: function isDragStartPublished() {\n return _isDragStartPublished;\n }\n };\n }();\n\n return function (store) {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n var critical = action.payload.critical;\n publisher.beforeStart(critical);\n next(action);\n publisher.start(critical);\n return;\n }\n\n next(action);\n\n if (action.type === 'DROP_COMPLETE') {\n var result = action.payload;\n publisher.drop(result);\n return;\n }\n\n if (action.type === 'CLEAN') {\n if (publisher.isDragStartPublished()) {\n publisher.abort();\n }\n\n return;\n }\n\n if (!publisher.isDragStartPublished()) {\n return;\n }\n\n var state = store.getState();\n\n if (state.phase === 'DRAGGING') {\n publisher.move(state.critical, state.impact.destination);\n }\n };\n };\n };\n};\n\nvar dropAnimationFinish = function dropAnimationFinish(store) {\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP_ANIMATION_FINISHED') {\n next(action);\n return;\n }\n\n var state = store.getState();\n !(state.phase === 'DROP_ANIMATING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot finish a drop animating when no drop is occurring') : invariant(false) : void 0;\n store.dispatch(completeDrop(state.pending.result));\n };\n };\n};\n\nvar dimensionMarshalStopper = function dimensionMarshalStopper(getMarshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'DROP_COMPLETE' || action.type === 'CLEAN' || action.type === 'DROP_ANIMATE') {\n var marshal = getMarshal();\n marshal.stopPublishing();\n }\n\n next(action);\n };\n };\n };\n};\n\nvar shouldCancel = function shouldCancel(action) {\n return action.type === 'CANCEL' || action.type === 'DROP_ANIMATE' || action.type === 'DROP' || action.type === 'DROP_COMPLETE' || action.type === 'COLLECTION_STARTING';\n};\n\nvar autoScroll = function autoScroll(getScroller) {\n return function (store) {\n return function (next) {\n return function (action) {\n if (shouldCancel(action)) {\n getScroller().cancel();\n next(action);\n return;\n }\n\n next(action);\n var state = store.getState();\n\n if (state.phase !== 'DRAGGING') {\n return;\n }\n\n if (state.autoScrollMode === 'FLUID') {\n getScroller().fluidScroll(state);\n return;\n }\n\n if (!state.scrollJumpRequest) {\n return;\n }\n\n getScroller().jumpScroll(state);\n };\n };\n };\n};\n\nvar shouldCheckOnAction = function shouldCheckOnAction(action) {\n return action.type === 'MOVE' || action.type === 'MOVE_UP' || action.type === 'MOVE_RIGHT' || action.type === 'MOVE_DOWN' || action.type === 'MOVE_LEFT' || action.type === 'MOVE_BY_WINDOW_SCROLL';\n};\n\nvar hasDroppableOverChanged = function hasDroppableOverChanged(previous, current) {\n if (!previous) {\n return Boolean(current);\n }\n\n if (!current) {\n return Boolean(previous);\n }\n\n return previous.droppableId !== current.droppableId;\n};\n\nvar getNewMaxScroll = function getNewMaxScroll(previous, current, action) {\n if (!shouldCheckOnAction(action)) {\n return null;\n }\n\n if (!isMovementAllowed(previous) || !isMovementAllowed(current)) {\n return null;\n }\n\n if (!hasDroppableOverChanged(previous.impact.destination, current.impact.destination)) {\n return null;\n }\n\n var viewport = current.viewport;\n var doc = document.documentElement;\n !doc ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find document.documentElement') : invariant(false) : void 0;\n var maxScroll = getMaxScroll({\n scrollHeight: doc.scrollHeight,\n scrollWidth: doc.scrollWidth,\n width: viewport.frame.width,\n height: viewport.frame.height\n });\n\n if (isEqual(maxScroll, viewport.scroll.max)) {\n return null;\n }\n\n return maxScroll;\n};\n\nvar maxScrollUpdater = function maxScrollUpdater(store) {\n return function (next) {\n return function (action) {\n var previous = store.getState();\n next(action);\n var current = store.getState();\n var maxScroll = getNewMaxScroll(previous, current, action);\n\n if (maxScroll) {\n next(updateViewportMaxScroll(maxScroll));\n }\n };\n };\n};\n\nvar composeEnhancers = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : compose;\n\nvar createStore$1 = function createStore$1(_ref) {\n var getDimensionMarshal = _ref.getDimensionMarshal,\n styleMarshal = _ref.styleMarshal,\n getHooks = _ref.getHooks,\n announce = _ref.announce,\n getScroller = _ref.getScroller;\n return createStore(reducer, composeEnhancers(applyMiddleware(style(styleMarshal), dimensionMarshalStopper(getDimensionMarshal), lift$1(getDimensionMarshal), drop$1, dropAnimationFinish, maxScrollUpdater, autoScroll(getScroller), hooks(getHooks, announce))));\n};\n\nvar getEmptyMap = function getEmptyMap() {\n return {\n draggables: {},\n droppables: {}\n };\n};\n\nvar timingKey = 'Publish collection from DOM';\n\nvar createPublisher = function createPublisher(_ref) {\n var getProvided = _ref.getProvided,\n callbacks = _ref.callbacks;\n\n var advancedUsageWarning = function () {\n if (process.env.NODE_ENV === 'production') {\n return function () {};\n }\n\n var hasAnnounced = false;\n return function () {\n if (hasAnnounced) {\n return;\n }\n\n hasAnnounced = true;\n\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n console.warn(\"\\n Advanced usage warning: you are adding or removing a dimension during a drag\\n This an advanced feature used to support dynamic interactions such as lazy loading lists.\\n\\n Keep in mind the following restrictions:\\n\\n - Draggable's can only be added to Droppable's that are scroll containers\\n - Adding a Droppable cannot impact the placement of other Droppables\\n (it cannot push a Droppable on the page)\\n\\n (This warning will be stripped in production builds)\\n \".trim());\n };\n }();\n\n var additions = getEmptyMap();\n var removals = getEmptyMap();\n var frameId = null;\n\n var reset = function reset() {\n additions = getEmptyMap();\n removals = getEmptyMap();\n };\n\n var collect = function collect() {\n advancedUsageWarning();\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n callbacks.collectionStarting();\n start(timingKey);\n\n var _getProvided = getProvided(),\n entries = _getProvided.entries,\n collection = _getProvided.collection;\n\n var windowScroll = collection.initialWindowScroll;\n\n var draggables = _Object$keys(additions.draggables).map(function (id) {\n return entries.draggables[id].getDimension(windowScroll);\n });\n\n var droppables = _Object$keys(additions.droppables).map(function (id) {\n return entries.droppables[id].callbacks.getDimensionAndWatchScroll(windowScroll, collection.scrollOptions);\n });\n\n var result = {\n additions: {\n draggables: draggables,\n droppables: droppables\n },\n removals: {\n draggables: _Object$keys(removals.draggables),\n droppables: _Object$keys(removals.droppables)\n }\n };\n reset();\n finish(timingKey);\n callbacks.publish(result);\n });\n };\n\n var addDraggable = function addDraggable(id) {\n additions.draggables[id] = true;\n\n if (removals.draggables[id]) {\n delete removals.draggables[id];\n }\n\n collect();\n };\n\n var removeDraggable = function removeDraggable(id) {\n removals.draggables[id] = true;\n\n if (additions.draggables[id]) {\n delete additions.draggables[id];\n }\n\n collect();\n };\n\n var addDroppable = function addDroppable(id) {\n additions.droppables[id] = true;\n\n if (removals.droppables[id]) {\n delete removals.droppables[id];\n }\n\n collect();\n };\n\n var removeDroppable = function removeDroppable(id) {\n removals.droppables[id] = true;\n\n if (additions.droppables[id]) {\n delete additions.droppables[id];\n }\n\n collect();\n };\n\n var stop = function stop() {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n reset();\n };\n\n return {\n addDraggable: addDraggable,\n removeDraggable: removeDraggable,\n addDroppable: addDroppable,\n removeDroppable: removeDroppable,\n stop: stop\n };\n};\n\nvar createDimensionMarshal = function createDimensionMarshal(callbacks) {\n var entries = {\n droppables: {},\n draggables: {}\n };\n var collection = null;\n var publisher = createPublisher({\n callbacks: {\n publish: callbacks.publish,\n collectionStarting: callbacks.collectionStarting\n },\n getProvided: function getProvided() {\n !collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get scroll options when there is no collection') : invariant(false) : void 0;\n return {\n entries: entries,\n collection: collection\n };\n }\n });\n\n var registerDraggable = function registerDraggable(descriptor, getDimension) {\n var entry = {\n descriptor: descriptor,\n getDimension: getDimension\n };\n entries.draggables[descriptor.id] = entry;\n\n if (!collection) {\n return;\n }\n\n if (collection.critical.draggable.type !== descriptor.type) {\n return;\n }\n\n publisher.addDraggable(descriptor.id);\n };\n\n var updateDraggable = function updateDraggable(previous, descriptor, getDimension) {\n !entries.draggables[previous.id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot update draggable registration as no previous registration was found') : invariant(false) : void 0;\n delete entries.draggables[previous.id];\n var entry = {\n descriptor: descriptor,\n getDimension: getDimension\n };\n entries.draggables[descriptor.id] = entry;\n };\n\n var unregisterDraggable = function unregisterDraggable(descriptor) {\n var entry = entries.draggables[descriptor.id];\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot unregister Draggable with id \" + descriptor.id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (entry.descriptor !== descriptor) {\n return;\n }\n\n delete entries.draggables[descriptor.id];\n\n if (!collection) {\n return;\n }\n\n !(collection.critical.draggable.id !== descriptor.id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot remove the dragging item during a drag') : invariant(false) : void 0;\n\n if (descriptor.type !== collection.critical.draggable.type) {\n return;\n }\n\n publisher.removeDraggable(descriptor.id);\n };\n\n var registerDroppable = function registerDroppable(descriptor, droppableCallbacks) {\n var id = descriptor.id;\n entries.droppables[id] = {\n descriptor: descriptor,\n callbacks: droppableCallbacks\n };\n\n if (!collection) {\n return;\n }\n\n if (descriptor.type !== collection.critical.droppable.type) {\n return;\n }\n\n publisher.addDroppable(id);\n };\n\n var updateDroppable = function updateDroppable(previous, descriptor, droppableCallbacks) {\n !entries.droppables[previous.id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot update droppable registration as no previous registration was found') : invariant(false) : void 0;\n delete entries.droppables[previous.id];\n var entry = {\n descriptor: descriptor,\n callbacks: droppableCallbacks\n };\n entries.droppables[descriptor.id] = entry;\n\n if (collection) {\n process.env.NODE_ENV !== \"production\" ? invariant(false, 'You are not able to update the id or type of a droppable during a drag') : invariant(false);\n }\n };\n\n var unregisterDroppable = function unregisterDroppable(descriptor) {\n var entry = entries.droppables[descriptor.id];\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot unregister Droppable with id \" + descriptor.id + \" as as it is not registered\") : invariant(false) : void 0;\n\n if (entry.descriptor !== descriptor) {\n return;\n }\n\n delete entries.droppables[descriptor.id];\n\n if (!collection) {\n return;\n }\n\n !(collection.critical.droppable.id !== descriptor.id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot remove the home Droppable during a drag') : invariant(false) : void 0;\n\n if (collection.critical.droppable.type !== descriptor.type) {\n return;\n }\n\n publisher.removeDroppable(descriptor.id);\n };\n\n var updateDroppableIsEnabled = function updateDroppableIsEnabled(id, isEnabled) {\n !entries.droppables[id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update the scroll on Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (!collection) {\n return;\n }\n\n callbacks.updateDroppableIsEnabled({\n id: id,\n isEnabled: isEnabled\n });\n };\n\n var updateDroppableScroll = function updateDroppableScroll(id, newScroll) {\n !entries.droppables[id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update the scroll on Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (!collection) {\n return;\n }\n\n callbacks.updateDroppableScroll({\n id: id,\n offset: newScroll\n });\n };\n\n var scrollDroppable = function scrollDroppable(id, change) {\n var entry = entries.droppables[id];\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot scroll Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (!collection) {\n return;\n }\n\n entry.callbacks.scroll(change);\n };\n\n var getInitialPublish = function getInitialPublish(args) {\n var critical = args.critical,\n scrollOptions = args.scrollOptions,\n windowScroll = args.initialWindowScroll;\n var timingKey = 'Initial collection from DOM';\n start(timingKey);\n var home = critical.droppable;\n\n var droppables = _Object$keys(entries.droppables).map(function (id) {\n return entries.droppables[id];\n }).filter(function (entry) {\n return entry.descriptor.type === home.type;\n }).map(function (entry) {\n return entry.callbacks.getDimensionAndWatchScroll(windowScroll, scrollOptions);\n }).reduce(function (previous, dimension) {\n previous[dimension.descriptor.id] = dimension;\n return previous;\n }, {});\n\n var draggables = _Object$keys(entries.draggables).map(function (id) {\n return entries.draggables[id];\n }).filter(function (entry) {\n return entry.descriptor.type === critical.draggable.type;\n }).map(function (entry) {\n return entry.getDimension(windowScroll);\n }).reduce(function (previous, dimension) {\n previous[dimension.descriptor.id] = dimension;\n return previous;\n }, {});\n\n finish(timingKey);\n var dimensions = {\n draggables: draggables,\n droppables: droppables\n };\n var result = {\n dimensions: dimensions,\n critical: critical\n };\n return result;\n };\n\n var stopPublishing = function stopPublishing() {\n if (!collection) {\n return;\n }\n\n publisher.stop();\n var home = collection.critical.droppable;\n\n _Object$keys(entries.droppables).filter(function (id) {\n return entries.droppables[id].descriptor.type === home.type;\n }).forEach(function (id) {\n return entries.droppables[id].callbacks.unwatchScroll();\n });\n\n collection = null;\n };\n\n var startPublishing = function startPublishing(request, windowScroll) {\n !!collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start capturing critical dimensions as there is already a collection') : invariant(false) : void 0;\n var entry = entries.draggables[request.draggableId];\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find critical draggable entry') : invariant(false) : void 0;\n var home = entries.droppables[entry.descriptor.droppableId];\n !home ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find critical droppable entry') : invariant(false) : void 0;\n var critical = {\n draggable: entry.descriptor,\n droppable: home.descriptor\n };\n collection = {\n scrollOptions: request.scrollOptions,\n critical: critical,\n initialWindowScroll: windowScroll\n };\n return getInitialPublish(collection);\n };\n\n var marshal = {\n registerDraggable: registerDraggable,\n updateDraggable: updateDraggable,\n unregisterDraggable: unregisterDraggable,\n registerDroppable: registerDroppable,\n updateDroppable: updateDroppable,\n unregisterDroppable: unregisterDroppable,\n updateDroppableIsEnabled: updateDroppableIsEnabled,\n scrollDroppable: scrollDroppable,\n updateDroppableScroll: updateDroppableScroll,\n startPublishing: startPublishing,\n stopPublishing: stopPublishing\n };\n return marshal;\n};\n\nvar physics = function () {\n var base = {\n stiffness: 1000,\n damping: 60,\n precision: 0.99\n };\n\n var standard = _extends({}, base);\n\n var fast = _extends({}, base, {\n stiffness: base.stiffness * 2\n });\n\n return {\n standard: standard,\n fast: fast\n };\n}();\n\nvar css = {\n outOfTheWay: 'transform 0.2s cubic-bezier(0.2, 0, 0, 1)'\n};\nvar prefix = 'data-react-beautiful-dnd';\nvar dragHandle = prefix + \"-drag-handle\";\nvar draggable = prefix + \"-draggable\";\nvar droppable = prefix + \"-droppable\";\n\nvar getStyles = function getStyles(styleContext) {\n var dragHandleSelector = \"[\" + dragHandle + \"=\\\"\" + styleContext + \"\\\"]\";\n var draggableSelector = \"[\" + draggable + \"=\\\"\" + styleContext + \"\\\"]\";\n var droppableSelector = \"[\" + droppable + \"=\\\"\" + styleContext + \"\\\"]\";\n var dragHandleStyles = {\n base: \"\\n \" + dragHandleSelector + \" {\\n -webkit-touch-callout: none;\\n -webkit-tap-highlight-color: rgba(0,0,0,0);\\n touch-action: manipulation;\\n }\\n \",\n grabCursor: \"\\n \" + dragHandleSelector + \" {\\n cursor: -webkit-grab;\\n cursor: grab;\\n }\\n \",\n blockPointerEvents: \"\\n \" + dragHandleSelector + \" {\\n pointer-events: none;\\n }\\n \"\n };\n var draggableStyles = {\n animateMovement: \"\\n \" + draggableSelector + \" {\\n transition: \" + css.outOfTheWay + \";\\n }\\n \"\n };\n var droppableStyles = {\n base: \"\\n \" + droppableSelector + \" {\\n overflow-anchor: none;\\n }\\n \"\n };\n var bodyStyles = {\n whileActiveDragging: \"\\n body {\\n cursor: grabbing;\\n cursor: -webkit-grabbing;\\n user-select: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n }\\n \"\n };\n var base = [dragHandleStyles.base, droppableStyles.base];\n var resting = base.concat([dragHandleStyles.grabCursor]);\n var collecting = base.concat([dragHandleStyles.blockPointerEvents, bodyStyles.whileActiveDragging]);\n var dragging = collecting.concat([draggableStyles.animateMovement]);\n var dropAnimating = base.concat([dragHandleStyles.grabCursor, draggableStyles.animateMovement]);\n var userCancel = base.concat([draggableStyles.animateMovement]);\n return {\n resting: resting.join(''),\n dragging: dragging.join(''),\n dropAnimating: dropAnimating.join(''),\n collecting: collecting.join(''),\n userCancel: userCancel.join('')\n };\n};\n\nvar count = 0;\n\nvar resetStyleContext = function resetStyleContext() {\n count = 0;\n};\n\nvar getHead = function getHead() {\n var head = document.querySelector('head');\n !head ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find the head to append a style to') : invariant(false) : void 0;\n return head;\n};\n\nvar createStyleMarshal = function createStyleMarshal() {\n var context = \"\" + count++;\n var styles = getStyles(context);\n var el = null;\n var setStyle = memoizeOne(function (proposed) {\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set style of style tag if not mounted') : invariant(false) : void 0;\n el.innerHTML = proposed;\n });\n\n var mount = function mount() {\n !!el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Style marshal already mounted') : invariant(false) : void 0;\n el = document.createElement('style');\n el.type = 'text/css';\n el.setAttribute(prefix, context);\n getHead().appendChild(el);\n setStyle(styles.resting);\n };\n\n var collecting = function collecting() {\n return setStyle(styles.collecting);\n };\n\n var dragging = function dragging() {\n return setStyle(styles.dragging);\n };\n\n var dropping = function dropping(reason) {\n if (reason === 'DROP') {\n setStyle(styles.dropAnimating);\n return;\n }\n\n setStyle(styles.userCancel);\n };\n\n var resting = function resting() {\n return setStyle(styles.resting);\n };\n\n var unmount = function unmount() {\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot unmount style marshal as it is already unmounted') : invariant(false) : void 0;\n getHead().removeChild(el);\n el = null;\n };\n\n var marshal = {\n collecting: collecting,\n dragging: dragging,\n dropping: dropping,\n resting: resting,\n styleContext: context,\n mount: mount,\n unmount: unmount\n };\n return marshal;\n};\n\nvar canStartDrag = function canStartDrag(state, id) {\n if (state.phase === 'IDLE') {\n return true;\n }\n\n if (state.phase !== 'DROP_ANIMATING') {\n return false;\n }\n\n if (state.pending.result.draggableId === id) {\n return false;\n }\n\n return state.pending.result.reason === 'DROP';\n};\n\nvar scrollWindow = function scrollWindow(change) {\n window.scrollBy(change.x, change.y);\n};\n\nvar count$1 = 0;\nvar visuallyHidden = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n margin: '-1px',\n border: '0',\n padding: '0',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n 'clip-path': 'inset(100%)'\n};\n\nvar getBody = function getBody() {\n !document.body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Announcer cannot find document.body') : invariant(false) : void 0;\n return document.body;\n};\n\nvar createAnnouncer = function createAnnouncer() {\n var id = \"react-beautiful-dnd-announcement-\" + count$1++;\n var el = null;\n\n var announce = function announce(message) {\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot announce to unmounted node') : invariant(false) : void 0;\n el.textContent = message;\n };\n\n var mount = function mount() {\n !!el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Announcer already mounted') : invariant(false) : void 0;\n el = document.createElement('div');\n el.id = id;\n el.setAttribute('aria-live', 'assertive');\n el.setAttribute('role', 'log');\n el.setAttribute('aria-atomic', 'true');\n\n _Object$assign(el.style, visuallyHidden);\n\n getBody().appendChild(el);\n };\n\n var unmount = function unmount() {\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Will not unmount annoucer as it is already unmounted') : invariant(false) : void 0;\n getBody().removeChild(el);\n el = null;\n };\n\n var announcer = {\n announce: announce,\n id: id,\n mount: mount,\n unmount: unmount\n };\n return announcer;\n};\n\nvar getScrollableDroppables = memoizeOne(function (droppables) {\n return toDroppableList(droppables).filter(function (droppable) {\n if (!droppable.isEnabled) {\n return false;\n }\n\n if (!droppable.viewport.closestScrollable) {\n return false;\n }\n\n return true;\n });\n});\n\nvar getScrollableDroppableOver = function getScrollableDroppableOver(target, droppables) {\n var maybe = getScrollableDroppables(droppables).find(function (droppable) {\n !droppable.viewport.closestScrollable ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid result') : invariant(false) : void 0;\n return isPositionInFrame(droppable.viewport.closestScrollable.framePageMarginBox)(target);\n });\n return maybe;\n};\n\nvar getBestScrollableDroppable = function getBestScrollableDroppable(_ref) {\n var center = _ref.center,\n destination = _ref.destination,\n droppables = _ref.droppables;\n\n if (destination) {\n var _dimension = droppables[destination.droppableId];\n\n if (!_dimension.viewport.closestScrollable) {\n return null;\n }\n\n return _dimension;\n }\n\n var dimension = getScrollableDroppableOver(center, droppables);\n return dimension;\n};\n\nvar smallestSigned = apply(function (value) {\n if (value === 0) {\n return 0;\n }\n\n return value > 0 ? 1 : -1;\n});\n\nvar getOverlap = function () {\n var getRemainder = function getRemainder(target, max) {\n if (target < 0) {\n return target;\n }\n\n if (target > max) {\n return target - max;\n }\n\n return 0;\n };\n\n return function (_ref) {\n var current = _ref.current,\n max = _ref.max,\n change = _ref.change;\n var targetScroll = add(current, change);\n var overlap = {\n x: getRemainder(targetScroll.x, max.x),\n y: getRemainder(targetScroll.y, max.y)\n };\n\n if (isEqual(overlap, origin)) {\n return null;\n }\n\n return overlap;\n };\n}();\n\nvar canPartiallyScroll = function canPartiallyScroll(_ref2) {\n var rawMax = _ref2.max,\n current = _ref2.current,\n change = _ref2.change;\n var max = {\n x: Math.max(current.x, rawMax.x),\n y: Math.max(current.y, rawMax.y)\n };\n var smallestChange = smallestSigned(change);\n var overlap = getOverlap({\n max: max,\n current: current,\n change: smallestChange\n });\n\n if (!overlap) {\n return true;\n }\n\n if (smallestChange.x !== 0 && overlap.x === 0) {\n return true;\n }\n\n if (smallestChange.y !== 0 && overlap.y === 0) {\n return true;\n }\n\n return false;\n};\n\nvar canScrollWindow = function canScrollWindow(viewport, change) {\n return canPartiallyScroll({\n current: viewport.scroll.current,\n max: viewport.scroll.max,\n change: change\n });\n};\n\nvar getWindowOverlap = function getWindowOverlap(viewport, change) {\n if (!canScrollWindow(viewport, change)) {\n return null;\n }\n\n var max = viewport.scroll.max;\n var current = viewport.scroll.current;\n return getOverlap({\n current: current,\n max: max,\n change: change\n });\n};\n\nvar canScrollDroppable = function canScrollDroppable(droppable, change) {\n var closest$$1 = droppable.viewport.closestScrollable;\n\n if (!closest$$1) {\n return false;\n }\n\n return canPartiallyScroll({\n current: closest$$1.scroll.current,\n max: closest$$1.scroll.max,\n change: change\n });\n};\n\nvar getDroppableOverlap = function getDroppableOverlap(droppable, change) {\n var closest$$1 = droppable.viewport.closestScrollable;\n\n if (!closest$$1) {\n return null;\n }\n\n if (!canScrollDroppable(droppable, change)) {\n return null;\n }\n\n return getOverlap({\n current: closest$$1.scroll.current,\n max: closest$$1.scroll.max,\n change: change\n });\n};\n\nvar config = {\n startFrom: 0.25,\n maxSpeedAt: 0.05,\n maxScrollSpeed: 28,\n ease: function ease(percentage) {\n return Math.pow(percentage, 2);\n }\n};\nvar clean$1 = apply(function (value) {\n return value === 0 ? 0 : value;\n});\n\nvar getPixelThresholds = function getPixelThresholds(container, axis) {\n var startFrom = container[axis.size] * config.startFrom;\n var maxSpeedAt = container[axis.size] * config.maxSpeedAt;\n var accelerationPlane = startFrom - maxSpeedAt;\n var thresholds = {\n startFrom: startFrom,\n maxSpeedAt: maxSpeedAt,\n accelerationPlane: accelerationPlane\n };\n return thresholds;\n};\n\nvar getSpeed = function getSpeed(distance$$1, thresholds) {\n if (distance$$1 >= thresholds.startFrom) {\n return 0;\n }\n\n if (distance$$1 <= thresholds.maxSpeedAt) {\n return config.maxScrollSpeed;\n }\n\n var distancePastStart = thresholds.startFrom - distance$$1;\n var percentage = distancePastStart / thresholds.accelerationPlane;\n var transformed = config.ease(percentage);\n var speed = config.maxScrollSpeed * transformed;\n return speed;\n};\n\nvar adjustForSizeLimits = function adjustForSizeLimits(_ref) {\n var container = _ref.container,\n subject = _ref.subject,\n proposedScroll = _ref.proposedScroll;\n var isTooBigVertically = subject.height > container.height;\n var isTooBigHorizontally = subject.width > container.width;\n\n if (!isTooBigHorizontally && !isTooBigVertically) {\n return proposedScroll;\n }\n\n if (isTooBigHorizontally && isTooBigVertically) {\n return null;\n }\n\n return {\n x: isTooBigHorizontally ? 0 : proposedScroll.x,\n y: isTooBigVertically ? 0 : proposedScroll.y\n };\n};\n\nvar getRequiredScroll = function getRequiredScroll(_ref2) {\n var container = _ref2.container,\n subject = _ref2.subject,\n center = _ref2.center;\n var distance$$1 = {\n top: center.y - container.top,\n right: container.right - center.x,\n bottom: container.bottom - center.y,\n left: center.x - container.left\n };\n\n var y = function () {\n var thresholds = getPixelThresholds(container, vertical);\n var isCloserToBottom = distance$$1.bottom < distance$$1.top;\n\n if (isCloserToBottom) {\n return getSpeed(distance$$1.bottom, thresholds);\n }\n\n return -1 * getSpeed(distance$$1.top, thresholds);\n }();\n\n var x = function () {\n var thresholds = getPixelThresholds(container, horizontal);\n var isCloserToRight = distance$$1.right < distance$$1.left;\n\n if (isCloserToRight) {\n return getSpeed(distance$$1.right, thresholds);\n }\n\n return -1 * getSpeed(distance$$1.left, thresholds);\n }();\n\n var required = clean$1({\n x: x,\n y: y\n });\n\n if (isEqual(required, origin)) {\n return null;\n }\n\n var limited = adjustForSizeLimits({\n container: container,\n subject: subject,\n proposedScroll: required\n });\n\n if (!limited) {\n return null;\n }\n\n return isEqual(limited, origin) ? null : limited;\n};\n\nvar withPlaceholder = function withPlaceholder(droppable, draggable) {\n var closest$$1 = droppable.viewport.closestScrollable;\n\n if (!closest$$1) {\n return null;\n }\n\n var isOverHome = droppable.descriptor.id === draggable.descriptor.droppableId;\n var max = closest$$1.scroll.max;\n var current = closest$$1.scroll.current;\n\n if (isOverHome) {\n return {\n max: max,\n current: current\n };\n }\n\n var spaceForPlaceholder = patch(droppable.axis.line, draggable.placeholder.client.borderBox[droppable.axis.size]);\n var newMax = add(max, spaceForPlaceholder);\n var newCurrent = {\n x: Math.min(current.x, newMax.x),\n y: Math.min(current.y, newMax.y)\n };\n return {\n max: newMax,\n current: newCurrent\n };\n};\n\nvar createFluidScroller = function createFluidScroller(_ref3) {\n var scrollWindow = _ref3.scrollWindow,\n scrollDroppable = _ref3.scrollDroppable;\n var scheduleWindowScroll = rafSchd(scrollWindow);\n var scheduleDroppableScroll = rafSchd(scrollDroppable);\n\n var scroller = function scroller(state) {\n var center = state.current.page.borderBoxCenter;\n var draggable = state.dimensions.draggables[state.critical.draggable.id];\n var subject = draggable.page.marginBox;\n var viewport = state.viewport;\n var requiredWindowScroll = getRequiredScroll({\n container: viewport.frame,\n subject: subject,\n center: center\n });\n\n if (requiredWindowScroll && canScrollWindow(viewport, requiredWindowScroll)) {\n scheduleWindowScroll(requiredWindowScroll);\n return;\n }\n\n var droppable = getBestScrollableDroppable({\n center: center,\n destination: state.impact.destination,\n droppables: state.dimensions.droppables\n });\n\n if (!droppable) {\n return;\n }\n\n var closestScrollable = droppable.viewport.closestScrollable;\n\n if (!closestScrollable) {\n return;\n }\n\n var requiredFrameScroll = getRequiredScroll({\n container: closestScrollable.framePageMarginBox,\n subject: subject,\n center: center\n });\n\n if (!requiredFrameScroll) {\n return;\n }\n\n var result = withPlaceholder(droppable, draggable);\n\n if (!result) {\n return;\n }\n\n var closest$$1 = droppable.viewport.closestScrollable;\n\n if (!closest$$1) {\n return;\n }\n\n var canScrollDroppable$$1 = canPartiallyScroll({\n current: result.current,\n max: result.max,\n change: requiredFrameScroll\n });\n\n if (canScrollDroppable$$1) {\n scheduleDroppableScroll(droppable.descriptor.id, requiredFrameScroll);\n }\n };\n\n scroller.cancel = function () {\n scheduleWindowScroll.cancel();\n scheduleDroppableScroll.cancel();\n };\n\n return scroller;\n};\n\nvar createJumpScroller = function createJumpScroller(_ref) {\n var move = _ref.move,\n scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow;\n\n var moveByOffset = function moveByOffset(state, offset) {\n var client = add(state.current.client.selection, offset);\n move({\n client: client,\n shouldAnimate: true\n });\n };\n\n var scrollDroppableAsMuchAsItCan = function scrollDroppableAsMuchAsItCan(droppable, change) {\n if (!canScrollDroppable(droppable, change)) {\n return change;\n }\n\n var overlap = getDroppableOverlap(droppable, change);\n\n if (!overlap) {\n scrollDroppable(droppable.descriptor.id, change);\n return null;\n }\n\n var whatTheDroppableCanScroll = subtract(change, overlap);\n scrollDroppable(droppable.descriptor.id, whatTheDroppableCanScroll);\n var remainder = subtract(change, whatTheDroppableCanScroll);\n return remainder;\n };\n\n var scrollWindowAsMuchAsItCan = function scrollWindowAsMuchAsItCan(viewport, change) {\n if (!canScrollWindow(viewport, change)) {\n return change;\n }\n\n var overlap = getWindowOverlap(viewport, change);\n\n if (!overlap) {\n scrollWindow(change);\n return null;\n }\n\n var whatTheWindowCanScroll = subtract(change, overlap);\n scrollWindow(whatTheWindowCanScroll);\n var remainder = subtract(change, whatTheWindowCanScroll);\n return remainder;\n };\n\n var jumpScroller = function jumpScroller(state) {\n var request = state.scrollJumpRequest;\n\n if (!request) {\n return;\n }\n\n var destination = state.impact.destination;\n !destination ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot perform a jump scroll when there is no destination') : invariant(false) : void 0;\n var droppableRemainder = scrollDroppableAsMuchAsItCan(state.dimensions.droppables[destination.droppableId], request);\n\n if (!droppableRemainder) {\n return;\n }\n\n var viewport = state.viewport;\n var windowRemainder = scrollWindowAsMuchAsItCan(viewport, droppableRemainder);\n\n if (!windowRemainder) {\n return;\n }\n\n moveByOffset(state, windowRemainder);\n };\n\n return jumpScroller;\n};\n\nvar createAutoScroller = function createAutoScroller(_ref) {\n var scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow,\n move = _ref.move;\n var fluidScroll = createFluidScroller({\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n var jumpScroll = createJumpScroller({\n move: move,\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n var marshal = {\n cancel: fluidScroll.cancel,\n fluidScroll: fluidScroll,\n jumpScroll: jumpScroll\n };\n return marshal;\n};\n\nvar prefix$1 = function prefix(key) {\n return \"private-react-beautiful-dnd-key-do-not-use-\" + key;\n};\n\nvar storeKey = prefix$1('store');\nvar droppableIdKey = prefix$1('droppable-id');\nvar droppableTypeKey = prefix$1('droppable-type');\nvar dimensionMarshalKey = prefix$1('dimension-marshal');\nvar styleContextKey = prefix$1('style-context');\nvar canLiftContextKey = prefix$1('can-lift');\n\nvar _DragDropContext$chil;\n\nvar resetServerContext = function resetServerContext() {\n resetStyleContext();\n};\n\nvar printFatalDevError = function printFatalDevError(error) {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n console.warn(\"\\n An error has occurred while a drag is occurring.\\n Any existing drag will be cancelled.\\n\\n Raw error:\\n \");\n console.error(error);\n};\n\nvar DragDropContext = function (_React$Component) {\n _inheritsLoose(DragDropContext, _React$Component);\n\n function DragDropContext(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n _this.store = void 0;\n _this.dimensionMarshal = void 0;\n _this.styleMarshal = void 0;\n _this.autoScroller = void 0;\n _this.announcer = void 0;\n _this.unsubscribe = void 0;\n\n _this.canLift = function (id) {\n return canStartDrag(_this.store.getState(), id);\n };\n\n _this.onFatalError = function (error) {\n printFatalDevError(error);\n\n var state = _this.store.getState();\n\n if (state.phase !== 'IDLE') {\n _this.store.dispatch(clean());\n }\n };\n\n _this.onWindowError = function (error) {\n return _this.onFatalError(error);\n };\n\n _this.announcer = createAnnouncer();\n _this.styleMarshal = createStyleMarshal();\n _this.store = createStore$1({\n getDimensionMarshal: function getDimensionMarshal() {\n return _this.dimensionMarshal;\n },\n styleMarshal: _this.styleMarshal,\n getHooks: function getHooks() {\n return {\n onBeforeDragStart: _this.props.onBeforeDragStart,\n onDragStart: _this.props.onDragStart,\n onDragEnd: _this.props.onDragEnd,\n onDragUpdate: _this.props.onDragUpdate\n };\n },\n announce: _this.announcer.announce,\n getScroller: function getScroller() {\n return _this.autoScroller;\n }\n });\n var callbacks = bindActionCreators({\n collectionStarting: collectionStarting,\n publish: publish,\n updateDroppableScroll: updateDroppableScroll,\n updateDroppableIsEnabled: updateDroppableIsEnabled\n }, _this.store.dispatch);\n _this.dimensionMarshal = createDimensionMarshal(callbacks);\n _this.autoScroller = createAutoScroller(_extends({\n scrollWindow: scrollWindow,\n scrollDroppable: _this.dimensionMarshal.scrollDroppable\n }, bindActionCreators({\n move: move\n }, _this.store.dispatch)));\n return _this;\n }\n\n var _proto = DragDropContext.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[storeKey] = this.store, _ref[dimensionMarshalKey] = this.dimensionMarshal, _ref[styleContextKey] = this.styleMarshal.styleContext, _ref[canLiftContextKey] = this.canLift, _ref;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener('error', this.onWindowError);\n this.styleMarshal.mount();\n this.announcer.mount();\n };\n\n _proto.componentDidCatch = function componentDidCatch(error) {\n this.onFatalError(error);\n\n if (error.message.indexOf('Invariant failed') !== -1) {\n this.setState({});\n return;\n }\n\n throw error;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener('error', this.onWindowError);\n var state = this.store.getState();\n\n if (state.phase !== 'IDLE') {\n this.store.dispatch(clean());\n }\n\n this.styleMarshal.unmount();\n this.announcer.unmount();\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return DragDropContext;\n}(React.Component);\n\nDragDropContext.childContextTypes = (_DragDropContext$chil = {}, _DragDropContext$chil[storeKey] = PropTypes.shape({\n dispatch: PropTypes.func.isRequired,\n subscribe: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n}).isRequired, _DragDropContext$chil[dimensionMarshalKey] = PropTypes.object.isRequired, _DragDropContext$chil[styleContextKey] = PropTypes.string.isRequired, _DragDropContext$chil[canLiftContextKey] = PropTypes.func.isRequired, _DragDropContext$chil);\n\nvar isScrollable = function isScrollable() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return values.some(function (value) {\n return value === 'auto' || value === 'scroll';\n });\n};\n\nvar isElementScrollable = function isElementScrollable(el) {\n var style = window.getComputedStyle(el);\n return isScrollable(style.overflow, style.overflowY, style.overflowX);\n};\n\nvar getClosestScrollable = function getClosestScrollable(el) {\n if (el == null) {\n return null;\n }\n\n if (!isElementScrollable(el)) {\n return getClosestScrollable(el.parentElement);\n }\n\n return el;\n};\n\nvar _DroppableDimensionPu;\n\nvar getScroll = function getScroll(el) {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n };\n};\n\nvar checkForNestedScrollContainers = function checkForNestedScrollContainers(scrollable) {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n if (!scrollable) {\n return;\n }\n\n var anotherScrollParent = getClosestScrollable(scrollable.parentElement);\n\n if (!anotherScrollParent) {\n return;\n }\n\n console.warn(\"\\n Droppable: unsupported nested scroll container detected.\\n A Droppable can only have one scroll parent (which can be itself)\\n Nested scroll containers are currently not supported.\\n\\n We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131\\n \");\n};\n\nvar listenerOptions = {\n passive: true\n};\n\nvar DroppableDimensionPublisher = function (_React$Component) {\n _inheritsLoose(DroppableDimensionPublisher, _React$Component);\n\n function DroppableDimensionPublisher(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n _this.watchingScroll = null;\n _this.callbacks = void 0;\n _this.publishedDescriptor = null;\n\n _this.getClosestScroll = function () {\n if (!_this.watchingScroll) {\n return origin;\n }\n\n return getScroll(_this.watchingScroll.closestScrollable);\n };\n\n _this.memoizedUpdateScroll = memoizeOne(function (x, y) {\n !_this.publishedDescriptor ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot update scroll on unpublished droppable') : invariant(false) : void 0;\n var newScroll = {\n x: x,\n y: y\n };\n var marshal = _this.context[dimensionMarshalKey];\n marshal.updateDroppableScroll(_this.publishedDescriptor.id, newScroll);\n });\n\n _this.updateScroll = function () {\n var offset = _this.getClosestScroll();\n\n _this.memoizedUpdateScroll(offset.x, offset.y);\n };\n\n _this.scheduleScrollUpdate = rafSchd(_this.updateScroll);\n\n _this.onClosestScroll = function () {\n !_this.watchingScroll ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find scroll options while scrolling') : invariant(false) : void 0;\n var options = _this.watchingScroll.options;\n\n if (options.shouldPublishImmediately) {\n _this.updateScroll();\n\n return;\n }\n\n _this.scheduleScrollUpdate();\n };\n\n _this.scroll = function (change) {\n !_this.watchingScroll ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll a droppable with no closest scrollable') : invariant(false) : void 0;\n var closestScrollable = _this.watchingScroll.closestScrollable;\n closestScrollable.scrollTop += change.y;\n closestScrollable.scrollLeft += change.x;\n };\n\n _this.watchScroll = function (closestScrollable, options) {\n !!_this.watchingScroll ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Droppable cannot watch scroll as it is already watching scroll') : invariant(false) : void 0;\n\n if (!closestScrollable) {\n return;\n }\n\n _this.watchingScroll = {\n options: options,\n closestScrollable: closestScrollable\n };\n closestScrollable.addEventListener('scroll', _this.onClosestScroll, listenerOptions);\n };\n\n _this.unwatchScroll = function () {\n var watching = _this.watchingScroll;\n\n if (!watching) {\n return;\n }\n\n _this.scheduleScrollUpdate.cancel();\n\n watching.closestScrollable.removeEventListener('scroll', _this.onClosestScroll, listenerOptions);\n _this.watchingScroll = null;\n };\n\n _this.getMemoizedDescriptor = memoizeOne(function (id, type) {\n return {\n id: id,\n type: type\n };\n });\n\n _this.publish = function () {\n var marshal = _this.context[dimensionMarshalKey];\n\n var descriptor = _this.getMemoizedDescriptor(_this.props.droppableId, _this.props.type);\n\n if (!_this.publishedDescriptor) {\n marshal.registerDroppable(descriptor, _this.callbacks);\n _this.publishedDescriptor = descriptor;\n return;\n }\n\n if (_this.publishedDescriptor === descriptor) {\n return;\n }\n\n marshal.updateDroppable(_this.publishedDescriptor, descriptor, _this.callbacks);\n _this.publishedDescriptor = descriptor;\n };\n\n _this.unpublish = function () {\n !_this.publishedDescriptor ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot unpublish descriptor when none is published') : invariant(false) : void 0;\n var marshal = _this.context[dimensionMarshalKey];\n marshal.unregisterDroppable(_this.publishedDescriptor);\n _this.publishedDescriptor = null;\n };\n\n _this.getDimensionAndWatchScroll = function (windowScroll, options) {\n var _this$props = _this.props,\n direction = _this$props.direction,\n ignoreContainerClipping = _this$props.ignoreContainerClipping,\n isDropDisabled = _this$props.isDropDisabled,\n getDroppableRef = _this$props.getDroppableRef;\n var targetRef = getDroppableRef();\n var descriptor = _this.publishedDescriptor;\n !targetRef ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot calculate a dimension when not attached to the DOM') : invariant(false) : void 0;\n !descriptor ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get dimension for unpublished droppable') : invariant(false) : void 0;\n var scrollableRef = getClosestScrollable(targetRef);\n checkForNestedScrollContainers(scrollableRef);\n\n _this.watchScroll(scrollableRef, options);\n\n var client = function () {\n var base = getBox(targetRef);\n\n if (!scrollableRef) {\n return base;\n }\n\n if (targetRef !== scrollableRef) {\n return base;\n }\n\n var top = base.paddingBox.top - scrollableRef.scrollTop;\n var left = base.paddingBox.left - scrollableRef.scrollLeft;\n var bottom = top + scrollableRef.scrollHeight;\n var right = left + scrollableRef.scrollWidth;\n var paddingBox = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n var borderBox = {\n top: paddingBox.top - base.border.top,\n right: paddingBox.right + base.border.right,\n bottom: paddingBox.bottom + base.border.bottom,\n left: paddingBox.left - base.border.left\n };\n return createBox({\n borderBox: borderBox,\n margin: base.margin,\n border: base.border,\n padding: base.padding\n });\n }();\n\n var page = withScroll(client, windowScroll);\n\n var closest$$1 = function () {\n if (!scrollableRef) {\n return null;\n }\n\n var frameClient = getBox(scrollableRef);\n return {\n client: frameClient,\n page: withScroll(frameClient),\n scrollHeight: scrollableRef.scrollHeight,\n scrollWidth: scrollableRef.scrollWidth,\n scroll: getScroll(scrollableRef),\n shouldClipSubject: !ignoreContainerClipping\n };\n }();\n\n return getDroppableDimension({\n descriptor: descriptor,\n isEnabled: !isDropDisabled,\n direction: direction,\n client: client,\n page: page,\n closest: closest$$1\n });\n };\n\n var callbacks = {\n getDimensionAndWatchScroll: _this.getDimensionAndWatchScroll,\n unwatchScroll: _this.unwatchScroll,\n scroll: _this.scroll\n };\n _this.callbacks = callbacks;\n return _this;\n }\n\n var _proto = DroppableDimensionPublisher.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.publish();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n this.publish();\n\n if (this.props.isDropDisabled === prevProps.isDropDisabled) {\n return;\n }\n\n var marshal = this.context[dimensionMarshalKey];\n marshal.updateDroppableIsEnabled(this.props.droppableId, !this.props.isDropDisabled);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.watchingScroll) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Unmounting droppable while it was watching scroll');\n }\n\n this.unwatchScroll();\n }\n\n this.unpublish();\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return DroppableDimensionPublisher;\n}(React.Component);\n\nDroppableDimensionPublisher.contextTypes = (_DroppableDimensionPu = {}, _DroppableDimensionPu[dimensionMarshalKey] = PropTypes.object.isRequired, _DroppableDimensionPu);\n\nvar Placeholder = function (_PureComponent) {\n _inheritsLoose(Placeholder, _PureComponent);\n\n function Placeholder() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n var _proto = Placeholder.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) {\n this.props.onMount();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) {\n this.props.onUnmount();\n }\n };\n\n _proto.render = function render() {\n var placeholder = this.props.placeholder;\n var client = placeholder.client,\n display = placeholder.display,\n tagName = placeholder.tagName;\n var style = {\n display: display,\n boxSizing: 'border-box',\n width: client.borderBox.width,\n height: client.borderBox.height,\n marginTop: client.margin.top,\n marginRight: client.margin.right,\n marginBottom: client.margin.bottom,\n marginLeft: client.margin.left,\n flexShrink: '0',\n flexGrow: '0',\n pointerEvents: 'none'\n };\n return React.createElement(tagName, {\n style: style\n });\n };\n\n return Placeholder;\n}(PureComponent);\n\nvar throwIfRefIsInvalid = function throwIfRefIsInvalid(ref) {\n !(ref && ref instanceof HTMLElement) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n provided.innerRef has not been provided with a HTMLElement.\\n\\n You can find a guide on using the innerRef callback functions at:\\n https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/using-inner-ref.md\\n \") : invariant(false) : void 0;\n};\n\nvar _Droppable$contextTyp, _Droppable$childConte;\n\nvar Droppable = function (_Component) {\n _inheritsLoose(Droppable, _Component);\n\n function Droppable(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.styleContext = void 0;\n _this.ref = null;\n _this.isPlaceholderMounted = false;\n\n _this.onPlaceholderMount = function () {\n _this.isPlaceholderMounted = true;\n };\n\n _this.onPlaceholderUnmount = function () {\n _this.isPlaceholderMounted = false;\n };\n\n _this.setRef = function (ref) {\n if (ref === null) {\n return;\n }\n\n if (ref === _this.ref) {\n return;\n }\n\n _this.ref = ref;\n throwIfRefIsInvalid(ref);\n };\n\n _this.getDroppableRef = function () {\n return _this.ref;\n };\n\n _this.styleContext = context[styleContextKey];\n return _this;\n }\n\n var _proto = Droppable.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _value;\n\n var value = (_value = {}, _value[droppableIdKey] = this.props.droppableId, _value[droppableTypeKey] = this.props.type, _value);\n return value;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n throwIfRefIsInvalid(this.ref);\n this.warnIfPlaceholderNotMounted();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.warnIfPlaceholderNotMounted();\n };\n\n _proto.warnIfPlaceholderNotMounted = function warnIfPlaceholderNotMounted() {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n if (!this.props.placeholder) {\n return;\n }\n\n if (this.isPlaceholderMounted) {\n return;\n }\n\n console.warn(\"\\n Droppable setup issue: DroppableProvided > placeholder could not be found.\\n Please be sure to add the {provided.placeholder} Node as a child of your Droppable\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd#1-provided-droppableprovided\\n \");\n };\n\n _proto.getPlaceholder = function getPlaceholder() {\n if (!this.props.placeholder) {\n return null;\n }\n\n return React.createElement(Placeholder, {\n placeholder: this.props.placeholder,\n onMount: this.onPlaceholderMount,\n onUnmount: this.onPlaceholderUnmount\n });\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n direction = _this$props.direction,\n droppableId = _this$props.droppableId,\n ignoreContainerClipping = _this$props.ignoreContainerClipping,\n isDraggingOver = _this$props.isDraggingOver,\n isDropDisabled = _this$props.isDropDisabled,\n draggingOverWith = _this$props.draggingOverWith,\n type = _this$props.type;\n var provided = {\n innerRef: this.setRef,\n placeholder: this.getPlaceholder(),\n droppableProps: {\n 'data-react-beautiful-dnd-droppable': this.styleContext\n }\n };\n var snapshot = {\n isDraggingOver: isDraggingOver,\n draggingOverWith: draggingOverWith\n };\n return React.createElement(DroppableDimensionPublisher, {\n droppableId: droppableId,\n type: type,\n direction: direction,\n ignoreContainerClipping: ignoreContainerClipping,\n isDropDisabled: isDropDisabled,\n getDroppableRef: this.getDroppableRef\n }, children(provided, snapshot));\n };\n\n return Droppable;\n}(Component);\n\nDroppable.contextTypes = (_Droppable$contextTyp = {}, _Droppable$contextTyp[styleContextKey] = PropTypes.string.isRequired, _Droppable$contextTyp);\nDroppable.childContextTypes = (_Droppable$childConte = {}, _Droppable$childConte[droppableIdKey] = PropTypes.string.isRequired, _Droppable$childConte[droppableTypeKey] = PropTypes.string.isRequired, _Droppable$childConte);\n\nvar isStrictEqual = function isStrictEqual(a, b) {\n return a === b;\n};\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var getIsDraggingOver = function getIsDraggingOver(id, destination) {\n if (!destination) {\n return false;\n }\n\n return destination.droppableId === id;\n };\n\n var shouldUsePlaceholder = function shouldUsePlaceholder(id, descriptor, destination) {\n if (!destination) {\n return false;\n }\n\n if (id === descriptor.droppableId) {\n return false;\n }\n\n return id === destination.droppableId;\n };\n\n var getMapProps = memoizeOne(function (isDraggingOver, draggingOverWith, placeholder) {\n return {\n isDraggingOver: isDraggingOver,\n draggingOverWith: draggingOverWith,\n placeholder: placeholder\n };\n });\n\n var getDefault = function getDefault() {\n return getMapProps(false, null, null);\n };\n\n var selector = function selector(state, ownProps) {\n if (ownProps.isDropDisabled) {\n return getDefault();\n }\n\n var id = ownProps.droppableId;\n\n if (state.isDragging) {\n var destination = state.impact.destination;\n var isDraggingOver = getIsDraggingOver(id, destination);\n var draggableId = state.critical.draggable.id;\n var draggingOverWith = isDraggingOver ? draggableId : null;\n var draggable = state.dimensions.draggables[draggableId];\n var placeholder = shouldUsePlaceholder(id, draggable.descriptor, destination) ? draggable.placeholder : null;\n return getMapProps(isDraggingOver, draggingOverWith, placeholder);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var _destination = state.pending.impact.destination;\n\n var _isDraggingOver = getIsDraggingOver(id, _destination);\n\n var _draggableId = state.pending.result.draggableId;\n\n var _draggingOverWith = _isDraggingOver ? _draggableId : null;\n\n var _draggable = state.dimensions.draggables[_draggableId];\n\n var _placeholder = shouldUsePlaceholder(id, _draggable.descriptor, _destination) ? _draggable.placeholder : null;\n\n return getMapProps(_isDraggingOver, _draggingOverWith, _placeholder);\n }\n\n return getDefault();\n };\n\n return selector;\n};\n\nvar connectedDroppable = connect(makeMapStateToProps, null, null, {\n storeKey: storeKey,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Droppable);\nconnectedDroppable.defaultProps = {\n type: 'DEFAULT',\n isDropDisabled: false,\n direction: 'vertical',\n ignoreContainerClipping: false\n};\n\nvar _DraggableDimensionPu;\n\nvar DraggableDimensionPublisher = function (_Component) {\n _inheritsLoose(DraggableDimensionPublisher, _Component);\n\n function DraggableDimensionPublisher() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.publishedDescriptor = null;\n _this.getMemoizedDescriptor = memoizeOne(function (id, index, droppableId, type) {\n return {\n id: id,\n index: index,\n droppableId: droppableId,\n type: type\n };\n });\n\n _this.publish = function () {\n var marshal = _this.context[dimensionMarshalKey];\n\n var descriptor = _this.getMemoizedDescriptor(_this.props.draggableId, _this.props.index, _this.props.droppableId, _this.props.type);\n\n if (!_this.publishedDescriptor) {\n marshal.registerDraggable(descriptor, _this.getDimension);\n _this.publishedDescriptor = descriptor;\n return;\n }\n\n if (descriptor === _this.publishedDescriptor) {\n return;\n }\n\n marshal.updateDraggable(_this.publishedDescriptor, descriptor, _this.getDimension);\n _this.publishedDescriptor = descriptor;\n };\n\n _this.unpublish = function () {\n !_this.publishedDescriptor ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot unpublish descriptor when none is published') : invariant(false) : void 0;\n var marshal = _this.context[dimensionMarshalKey];\n marshal.unregisterDraggable(_this.publishedDescriptor);\n _this.publishedDescriptor = null;\n };\n\n _this.getDimension = function (windowScroll) {\n var targetRef = _this.props.getDraggableRef();\n\n var descriptor = _this.publishedDescriptor;\n !targetRef ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'DraggableDimensionPublisher cannot calculate a dimension when not attached to the DOM') : invariant(false) : void 0;\n !descriptor ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get dimension for unpublished draggable') : invariant(false) : void 0;\n var computedStyles = window.getComputedStyle(targetRef);\n var borderBox = targetRef.getBoundingClientRect();\n var client = calculateBox(borderBox, computedStyles);\n var page = withScroll(client, windowScroll);\n var placeholder = {\n client: client,\n tagName: targetRef.tagName.toLowerCase(),\n display: computedStyles.display\n };\n var dimension = {\n descriptor: descriptor,\n placeholder: placeholder,\n client: client,\n page: page\n };\n return dimension;\n };\n\n return _this;\n }\n\n var _proto = DraggableDimensionPublisher.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.publish();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.publish();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unpublish();\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return DraggableDimensionPublisher;\n}(Component);\n\nDraggableDimensionPublisher.contextTypes = (_DraggableDimensionPu = {}, _DraggableDimensionPu[dimensionMarshalKey] = PropTypes.object.isRequired, _DraggableDimensionPu);\n\nvar DoubleRenderBlocker = function (_React$Component) {\n _inheritsLoose(DoubleRenderBlocker, _React$Component);\n\n function DoubleRenderBlocker() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DoubleRenderBlocker.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n if (isEqual(origin, nextProps.change)) {\n return true;\n }\n\n if (isEqual(this.props.change, nextProps.change)) {\n return false;\n }\n\n return true;\n };\n\n _proto.render = function render() {\n return this.props.children(this.props.change);\n };\n\n return DoubleRenderBlocker;\n}(React.Component);\n\nvar Moveable = function (_Component) {\n _inheritsLoose(Moveable, _Component);\n\n function Moveable() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto2 = Moveable.prototype;\n\n _proto2.getFinal = function getFinal() {\n var destination = this.props.destination;\n var speed = this.props.speed;\n\n if (speed === 'INSTANT') {\n return destination;\n }\n\n var config = speed === 'FAST' ? physics.fast : physics.standard;\n return {\n x: spring(destination.x, config),\n y: spring(destination.y, config)\n };\n };\n\n _proto2.render = function render() {\n var _this = this;\n\n var _final = this.getFinal();\n\n return React.createElement(Motion, {\n defaultStyle: origin,\n style: _final,\n onRest: this.props.onMoveEnd\n }, function (current) {\n var _this$props = _this.props,\n speed = _this$props.speed,\n destination = _this$props.destination,\n children = _this$props.children;\n var target = speed === 'INSTANT' ? destination : current;\n return React.createElement(DoubleRenderBlocker, {\n change: target\n }, children);\n });\n };\n\n return Moveable;\n}(Component);\n\nMoveable.defaultProps = {\n destination: origin\n};\n\nvar getWindowFromRef = function getWindowFromRef(ref) {\n return ref ? ref.ownerDocument.defaultView : window;\n};\n\nvar selector = \"[\" + dragHandle + \"]\";\n\nvar isSVG = function isSVG(el) {\n if (typeof SVGElement === 'undefined') {\n return false;\n }\n\n return el instanceof SVGElement;\n};\n\nvar throwIfSVG = function throwIfSVG(el) {\n !!isSVG(el) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"A drag handle cannot be an SVGElement: it has inconsistent focus support.\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/tree/master/docs/guides/dragging-svgs.md\") : invariant(false) : void 0;\n};\n\nvar getDragHandleRef = function getDragHandleRef(draggableRef) {\n if (draggableRef.hasAttribute(dragHandle)) {\n throwIfSVG(draggableRef);\n return draggableRef;\n }\n\n var el = draggableRef.querySelector(selector);\n throwIfSVG(draggableRef);\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n Cannot find drag handle element inside of Draggable.\\n Please be sure to apply the {...provided.dragHandleProps} to your Draggable\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd#draggable\\n \") : invariant(false) : void 0;\n !(el instanceof HTMLElement) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A drag handle must be a HTMLElement') : invariant(false) : void 0;\n return el;\n};\n\nvar retainingFocusFor = null;\nvar listenerOptions$1 = {\n capture: true\n};\n\nvar clearRetentionOnFocusChange = function () {\n var isBound = false;\n\n var bind = function bind() {\n if (isBound) {\n return;\n }\n\n isBound = true;\n window.addEventListener('focus', onWindowFocusChange, listenerOptions$1);\n };\n\n var unbind = function unbind() {\n if (!isBound) {\n return;\n }\n\n isBound = false;\n window.removeEventListener('focus', onWindowFocusChange, listenerOptions$1);\n };\n\n var onWindowFocusChange = function onWindowFocusChange() {\n unbind();\n retainingFocusFor = null;\n };\n\n var result = function result() {\n return bind();\n };\n\n result.cancel = function () {\n return unbind();\n };\n\n return result;\n}();\n\nvar retain = function retain(id) {\n retainingFocusFor = id;\n clearRetentionOnFocusChange();\n};\n\nvar tryRestoreFocus = function tryRestoreFocus(id, draggableRef) {\n if (!retainingFocusFor) {\n return;\n }\n\n if (id !== retainingFocusFor) {\n return;\n }\n\n retainingFocusFor = null;\n clearRetentionOnFocusChange.cancel();\n var dragHandleRef = getDragHandleRef(draggableRef);\n\n if (!dragHandleRef) {\n console.warn('Could not find drag handle in the DOM to focus on it');\n return;\n }\n\n dragHandleRef.focus();\n};\n\nvar retainer = {\n retain: retain,\n tryRestoreFocus: tryRestoreFocus\n};\nvar interactiveTagNames = {\n input: true,\n button: true,\n textarea: true,\n select: true,\n option: true,\n optgroup: true,\n video: true,\n audio: true\n};\n\nvar isAnInteractiveElement = function isAnInteractiveElement(parent, current) {\n if (current == null) {\n return false;\n }\n\n var hasAnInteractiveTag = Boolean(interactiveTagNames[current.tagName.toLowerCase()]);\n\n if (hasAnInteractiveTag) {\n return true;\n }\n\n var attribute = current.getAttribute('contenteditable');\n\n if (attribute === 'true' || attribute === '') {\n return true;\n }\n\n if (current === parent) {\n return false;\n }\n\n return isAnInteractiveElement(parent, current.parentElement);\n};\n\nvar shouldAllowDraggingFromTarget = function shouldAllowDraggingFromTarget(event, props) {\n if (props.canDragInteractiveElements) {\n return true;\n }\n\n var target = event.target,\n currentTarget = event.currentTarget;\n\n if (!(target instanceof Element) || !(currentTarget instanceof Element)) {\n return true;\n }\n\n return !isAnInteractiveElement(currentTarget, target);\n};\n\nvar createScheduler = function createScheduler(callbacks) {\n var memoizedMove = memoizeOne(function (x, y) {\n var point = {\n x: x,\n y: y\n };\n callbacks.onMove(point);\n });\n var move = rafSchd(function (point) {\n return memoizedMove(point.x, point.y);\n });\n var moveUp = rafSchd(callbacks.onMoveUp);\n var moveDown = rafSchd(callbacks.onMoveDown);\n var moveRight = rafSchd(callbacks.onMoveRight);\n var moveLeft = rafSchd(callbacks.onMoveLeft);\n var windowScrollMove = rafSchd(callbacks.onWindowScroll);\n\n var cancel = function cancel() {\n move.cancel();\n moveUp.cancel();\n moveDown.cancel();\n moveRight.cancel();\n moveLeft.cancel();\n windowScrollMove.cancel();\n };\n\n return {\n move: move,\n moveUp: moveUp,\n moveDown: moveDown,\n moveRight: moveRight,\n moveLeft: moveLeft,\n windowScrollMove: windowScrollMove,\n cancel: cancel\n };\n};\n\nvar sloppyClickThreshold = 5;\n\nvar isSloppyClickThresholdExceeded = function isSloppyClickThresholdExceeded(original, current) {\n return Math.abs(current.x - original.x) >= sloppyClickThreshold || Math.abs(current.y - original.y) >= sloppyClickThreshold;\n};\n\nvar tab = 9;\nvar enter = 13;\nvar escape = 27;\nvar space = 32;\nvar pageUp = 33;\nvar pageDown = 34;\nvar end = 35;\nvar home = 36;\nvar arrowLeft = 37;\nvar arrowUp = 38;\nvar arrowRight = 39;\nvar arrowDown = 40;\n\nvar _preventedKeys;\n\nvar preventedKeys = (_preventedKeys = {}, _preventedKeys[enter] = true, _preventedKeys[tab] = true, _preventedKeys);\n\nvar preventStandardKeyEvents = function preventStandardKeyEvents(event) {\n if (preventedKeys[event.keyCode]) {\n event.preventDefault();\n }\n};\n\nvar getOptions = function getOptions(shared, fromBinding) {\n return _extends({}, shared, fromBinding);\n};\n\nvar bindEvents = function bindEvents(el, bindings, sharedOptions) {\n bindings.forEach(function (binding) {\n var options = getOptions(sharedOptions, binding.options);\n el.addEventListener(binding.eventName, binding.fn, options);\n });\n};\n\nvar unbindEvents = function unbindEvents(el, bindings, sharedOptions) {\n bindings.forEach(function (binding) {\n var options = getOptions(sharedOptions, binding.options);\n el.removeEventListener(binding.eventName, binding.fn, options);\n });\n};\n\nvar sharedOptions = {\n capture: true\n};\n\nvar createPostDragEventPreventer = function createPostDragEventPreventer(getWindow) {\n var isBound = false;\n\n var bind = function bind() {\n if (isBound) {\n return;\n }\n\n isBound = true;\n bindEvents(getWindow(), pointerEvents, sharedOptions);\n };\n\n var unbind = function unbind() {\n if (!isBound) {\n return;\n }\n\n isBound = false;\n unbindEvents(getWindow(), pointerEvents, sharedOptions);\n };\n\n var pointerEvents = [{\n eventName: 'click',\n fn: function fn(event) {\n event.preventDefault();\n unbind();\n }\n }, {\n eventName: 'mousedown',\n fn: unbind\n }, {\n eventName: 'touchstart',\n fn: unbind\n }];\n\n var preventNext = function preventNext() {\n if (isBound) {\n unbind();\n }\n\n bind();\n };\n\n var preventer = {\n preventNext: preventNext,\n abort: unbind\n };\n return preventer;\n};\n\nvar createEventMarshal = function createEventMarshal() {\n var isMouseDownHandled = false;\n\n var handle = function handle() {\n !!isMouseDownHandled ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot handle mouse down as it is already handled') : invariant(false) : void 0;\n isMouseDownHandled = true;\n };\n\n var isHandled = function isHandled() {\n return isMouseDownHandled;\n };\n\n var reset = function reset() {\n isMouseDownHandled = false;\n };\n\n return {\n handle: handle,\n isHandled: isHandled,\n reset: reset\n };\n};\n\nvar supportedEventName = function () {\n var base = 'visibilitychange';\n\n if (typeof document === 'undefined') {\n return base;\n }\n\n var candidates = [base, \"ms\" + base, \"webkit\" + base, \"moz\" + base, \"o\" + base];\n var supported = candidates.find(function (eventName) {\n return \"on\" + eventName in document;\n });\n return supported || base;\n}();\n\nvar primaryButton = 0;\n\nvar noop = function noop() {};\n\nvar mouseDownMarshal = createEventMarshal();\n\nvar createMouseSensor = function createMouseSensor(_ref) {\n var callbacks = _ref.callbacks,\n getWindow = _ref.getWindow,\n canStartCapturing = _ref.canStartCapturing;\n var state = {\n isDragging: false,\n pending: null\n };\n\n var setState = function setState(newState) {\n state = newState;\n };\n\n var isDragging = function isDragging() {\n return state.isDragging;\n };\n\n var isCapturing = function isCapturing() {\n return Boolean(state.pending || state.isDragging);\n };\n\n var schedule = createScheduler(callbacks);\n var postDragEventPreventer = createPostDragEventPreventer(getWindow);\n\n var startDragging = function startDragging(fn) {\n if (fn === void 0) {\n fn = noop;\n }\n\n setState({\n pending: null,\n isDragging: true\n });\n fn();\n };\n\n var stopDragging = function stopDragging(fn, shouldBlockClick) {\n if (fn === void 0) {\n fn = noop;\n }\n\n if (shouldBlockClick === void 0) {\n shouldBlockClick = true;\n }\n\n schedule.cancel();\n unbindWindowEvents();\n mouseDownMarshal.reset();\n\n if (shouldBlockClick) {\n postDragEventPreventer.preventNext();\n }\n\n setState({\n isDragging: false,\n pending: null\n });\n fn();\n };\n\n var startPendingDrag = function startPendingDrag(point) {\n setState({\n pending: point,\n isDragging: false\n });\n bindWindowEvents();\n };\n\n var stopPendingDrag = function stopPendingDrag() {\n stopDragging(noop, false);\n };\n\n var kill = function kill(fn) {\n if (fn === void 0) {\n fn = noop;\n }\n\n if (state.pending) {\n stopPendingDrag();\n return;\n }\n\n stopDragging(fn);\n };\n\n var unmount = function unmount() {\n kill();\n postDragEventPreventer.abort();\n };\n\n var cancel = function cancel() {\n kill(callbacks.onCancel);\n };\n\n var windowBindings = [{\n eventName: 'mousemove',\n fn: function fn(event) {\n var button = event.button,\n clientX = event.clientX,\n clientY = event.clientY;\n\n if (button !== primaryButton) {\n return;\n }\n\n var point = {\n x: clientX,\n y: clientY\n };\n\n if (state.isDragging) {\n event.preventDefault();\n schedule.move(point);\n return;\n }\n\n if (!state.pending) {\n kill();\n process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected there to be a pending drag') : invariant(false);\n }\n\n if (!isSloppyClickThresholdExceeded(state.pending, point)) {\n return;\n }\n\n event.preventDefault();\n startDragging(function () {\n return callbacks.onLift({\n clientSelection: point,\n autoScrollMode: 'FLUID'\n });\n });\n }\n }, {\n eventName: 'mouseup',\n fn: function fn(event) {\n if (state.pending) {\n stopPendingDrag();\n return;\n }\n\n event.preventDefault();\n stopDragging(callbacks.onDrop);\n }\n }, {\n eventName: 'mousedown',\n fn: function fn(event) {\n if (state.isDragging) {\n event.preventDefault();\n }\n\n stopDragging(callbacks.onCancel);\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n if (!state.isDragging) {\n cancel();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn() {\n if (state.pending) {\n stopPendingDrag();\n return;\n }\n\n schedule.windowScrollMove();\n }\n }, {\n eventName: 'webkitmouseforcechanged',\n fn: function fn(event) {\n if (event.webkitForce == null || MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN == null) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('handling a mouse force changed event when it is not supported');\n }\n\n return;\n }\n\n var forcePressThreshold = MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN;\n var isForcePressing = event.webkitForce >= forcePressThreshold;\n\n if (isForcePressing) {\n cancel();\n }\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n\n var bindWindowEvents = function bindWindowEvents() {\n var win = getWindow();\n bindEvents(win, windowBindings, {\n capture: true\n });\n };\n\n var unbindWindowEvents = function unbindWindowEvents() {\n var win = getWindow();\n unbindEvents(win, windowBindings, {\n capture: true\n });\n };\n\n var onMouseDown = function onMouseDown(event) {\n if (mouseDownMarshal.isHandled()) {\n return;\n }\n\n !!isCapturing() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not be able to perform a mouse down while a drag or pending drag is occurring') : invariant(false) : void 0;\n\n if (!canStartCapturing(event)) {\n return;\n }\n\n if (event.button !== primaryButton) {\n return;\n }\n\n if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) {\n return;\n }\n\n mouseDownMarshal.handle();\n event.preventDefault();\n var point = {\n x: event.clientX,\n y: event.clientY\n };\n startPendingDrag(point);\n };\n\n var sensor = {\n onMouseDown: onMouseDown,\n kill: kill,\n isCapturing: isCapturing,\n isDragging: isDragging,\n unmount: unmount\n };\n return sensor;\n};\n\nvar getBorderBoxCenterPosition = function getBorderBoxCenterPosition(el) {\n return getRect(el.getBoundingClientRect()).center;\n};\n\nvar _scrollJumpKeys;\n\nvar scrollJumpKeys = (_scrollJumpKeys = {}, _scrollJumpKeys[pageDown] = true, _scrollJumpKeys[pageUp] = true, _scrollJumpKeys[home] = true, _scrollJumpKeys[end] = true, _scrollJumpKeys);\n\nvar noop$1 = function noop() {};\n\nvar createKeyboardSensor = function createKeyboardSensor(_ref) {\n var callbacks = _ref.callbacks,\n getWindow = _ref.getWindow,\n getDraggableRef = _ref.getDraggableRef,\n canStartCapturing = _ref.canStartCapturing;\n var state = {\n isDragging: false\n };\n\n var setState = function setState(newState) {\n state = newState;\n };\n\n var startDragging = function startDragging(fn) {\n if (fn === void 0) {\n fn = noop$1;\n }\n\n setState({\n isDragging: true\n });\n bindWindowEvents();\n fn();\n };\n\n var stopDragging = function stopDragging(fn) {\n if (fn === void 0) {\n fn = noop$1;\n }\n\n schedule.cancel();\n unbindWindowEvents();\n setState({\n isDragging: false\n });\n fn();\n };\n\n var kill = function kill() {\n return stopDragging();\n };\n\n var cancel = function cancel() {\n stopDragging(callbacks.onCancel);\n };\n\n var isDragging = function isDragging() {\n return state.isDragging;\n };\n\n var schedule = createScheduler(callbacks);\n\n var onKeyDown = function onKeyDown(event) {\n if (!isDragging()) {\n if (event.defaultPrevented) {\n return;\n }\n\n if (!canStartCapturing(event)) {\n return;\n }\n\n if (event.keyCode !== space) {\n return;\n }\n\n var ref = getDraggableRef();\n !ref ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start a keyboard drag without a draggable ref') : invariant(false) : void 0;\n var center = getBorderBoxCenterPosition(ref);\n event.preventDefault();\n startDragging(function () {\n return callbacks.onLift({\n clientSelection: center,\n autoScrollMode: 'JUMP'\n });\n });\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n if (event.keyCode === space) {\n event.preventDefault();\n stopDragging(callbacks.onDrop);\n return;\n }\n\n if (event.keyCode === arrowDown) {\n event.preventDefault();\n schedule.moveDown();\n return;\n }\n\n if (event.keyCode === arrowUp) {\n event.preventDefault();\n schedule.moveUp();\n return;\n }\n\n if (event.keyCode === arrowRight) {\n event.preventDefault();\n schedule.moveRight();\n return;\n }\n\n if (event.keyCode === arrowLeft) {\n event.preventDefault();\n schedule.moveLeft();\n return;\n }\n\n if (scrollJumpKeys[event.keyCode]) {\n event.preventDefault();\n return;\n }\n\n preventStandardKeyEvents(event);\n };\n\n var windowBindings = [{\n eventName: 'mousedown',\n fn: cancel\n }, {\n eventName: 'mouseup',\n fn: cancel\n }, {\n eventName: 'click',\n fn: cancel\n }, {\n eventName: 'touchstart',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'wheel',\n fn: cancel\n }, {\n eventName: 'scroll',\n options: {\n capture: false\n },\n fn: callbacks.onWindowScroll\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n\n var bindWindowEvents = function bindWindowEvents() {\n bindEvents(getWindow(), windowBindings, {\n capture: true\n });\n };\n\n var unbindWindowEvents = function unbindWindowEvents() {\n unbindEvents(getWindow(), windowBindings, {\n capture: true\n });\n };\n\n var sensor = {\n onKeyDown: onKeyDown,\n kill: kill,\n isDragging: isDragging,\n isCapturing: isDragging,\n unmount: kill\n };\n return sensor;\n};\n\nvar timeForLongPress = 150;\nvar forcePressThreshold = 0.15;\nvar touchStartMarshal = createEventMarshal();\n\nvar noop$2 = function noop() {};\n\nvar webkitHack = function () {\n var stub = {\n preventTouchMove: noop$2,\n releaseTouchMove: noop$2\n };\n\n if (typeof window === 'undefined') {\n return stub;\n }\n\n if (!('ontouchstart' in window)) {\n return stub;\n }\n\n var isBlocking = false;\n window.addEventListener('touchmove', function (event) {\n if (!isBlocking) {\n return;\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n event.preventDefault();\n }, {\n passive: false,\n capture: false\n });\n\n var preventTouchMove = function preventTouchMove() {\n isBlocking = true;\n };\n\n var releaseTouchMove = function releaseTouchMove() {\n isBlocking = false;\n };\n\n return {\n preventTouchMove: preventTouchMove,\n releaseTouchMove: releaseTouchMove\n };\n}();\n\nvar initial = {\n isDragging: false,\n pending: null,\n hasMoved: false,\n longPressTimerId: null\n};\n\nvar createTouchSensor = function createTouchSensor(_ref) {\n var callbacks = _ref.callbacks,\n getWindow = _ref.getWindow,\n canStartCapturing = _ref.canStartCapturing;\n var state = initial;\n\n var setState = function setState(partial) {\n state = _extends({}, state, partial);\n };\n\n var isDragging = function isDragging() {\n return state.isDragging;\n };\n\n var isCapturing = function isCapturing() {\n return Boolean(state.pending || state.isDragging || state.longPressTimerId);\n };\n\n var schedule = createScheduler(callbacks);\n var postDragEventPreventer = createPostDragEventPreventer(getWindow);\n\n var startDragging = function startDragging() {\n var pending = state.pending;\n\n if (!pending) {\n kill();\n process.env.NODE_ENV !== \"production\" ? invariant(false, 'cannot start a touch drag without a pending position') : invariant(false);\n }\n\n setState({\n isDragging: true,\n hasMoved: false,\n pending: null,\n longPressTimerId: null\n });\n callbacks.onLift({\n clientSelection: pending,\n autoScrollMode: 'FLUID'\n });\n };\n\n var stopDragging = function stopDragging(fn) {\n if (fn === void 0) {\n fn = noop$2;\n }\n\n schedule.cancel();\n touchStartMarshal.reset();\n webkitHack.releaseTouchMove();\n unbindWindowEvents();\n postDragEventPreventer.preventNext();\n setState(initial);\n fn();\n };\n\n var startPendingDrag = function startPendingDrag(event) {\n var touch = event.touches[0];\n var clientX = touch.clientX,\n clientY = touch.clientY;\n var point = {\n x: clientX,\n y: clientY\n };\n var longPressTimerId = setTimeout(startDragging, timeForLongPress);\n setState({\n longPressTimerId: longPressTimerId,\n pending: point,\n isDragging: false,\n hasMoved: false\n });\n bindWindowEvents();\n };\n\n var stopPendingDrag = function stopPendingDrag() {\n if (state.longPressTimerId) {\n clearTimeout(state.longPressTimerId);\n }\n\n schedule.cancel();\n touchStartMarshal.reset();\n webkitHack.releaseTouchMove();\n unbindWindowEvents();\n setState(initial);\n };\n\n var kill = function kill(fn) {\n if (fn === void 0) {\n fn = noop$2;\n }\n\n if (state.pending) {\n stopPendingDrag();\n return;\n }\n\n stopDragging(fn);\n };\n\n var unmount = function unmount() {\n kill();\n postDragEventPreventer.abort();\n };\n\n var cancel = function cancel() {\n kill(callbacks.onCancel);\n };\n\n var windowBindings = [{\n eventName: 'touchmove',\n options: {\n passive: false\n },\n fn: function fn(event) {\n if (!state.isDragging) {\n stopPendingDrag();\n return;\n }\n\n if (!state.hasMoved) {\n setState({\n hasMoved: true\n });\n }\n\n var _event$touches$ = event.touches[0],\n clientX = _event$touches$.clientX,\n clientY = _event$touches$.clientY;\n var point = {\n x: clientX,\n y: clientY\n };\n event.preventDefault();\n schedule.move(point);\n }\n }, {\n eventName: 'touchend',\n fn: function fn(event) {\n if (!state.isDragging) {\n stopPendingDrag();\n return;\n }\n\n event.preventDefault();\n stopDragging(callbacks.onDrop);\n }\n }, {\n eventName: 'touchcancel',\n fn: function fn(event) {\n if (!state.isDragging) {\n stopPendingDrag();\n return;\n }\n\n event.preventDefault();\n stopDragging(callbacks.onCancel);\n }\n }, {\n eventName: 'touchstart',\n fn: cancel\n }, {\n eventName: 'orientationchange',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn() {\n if (state.pending) {\n stopPendingDrag();\n return;\n }\n\n schedule.windowScrollMove();\n }\n }, {\n eventName: 'contextmenu',\n fn: function fn(event) {\n event.preventDefault();\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n if (!state.isDragging) {\n cancel();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n }\n\n cancel();\n }\n }, {\n eventName: 'touchforcechange',\n fn: function fn(event) {\n if (state.hasMoved) {\n event.preventDefault();\n return;\n }\n\n var touch = event.touches[0];\n\n if (touch.force >= forcePressThreshold) {\n cancel();\n }\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n\n var bindWindowEvents = function bindWindowEvents() {\n bindEvents(getWindow(), windowBindings, {\n capture: true\n });\n };\n\n var unbindWindowEvents = function unbindWindowEvents() {\n unbindEvents(getWindow(), windowBindings, {\n capture: true\n });\n };\n\n var onTouchStart = function onTouchStart(event) {\n if (touchStartMarshal.isHandled()) {\n return;\n }\n\n !!isCapturing() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not be able to perform a touch start while a drag or pending drag is occurring') : invariant(false) : void 0;\n\n if (!canStartCapturing(event)) {\n return;\n }\n\n touchStartMarshal.handle();\n webkitHack.preventTouchMove();\n startPendingDrag(event);\n };\n\n var sensor = {\n onTouchStart: onTouchStart,\n kill: kill,\n isCapturing: isCapturing,\n isDragging: isDragging,\n unmount: unmount\n };\n return sensor;\n};\n\nvar _DragHandle$contextTy;\n\nvar preventHtml5Dnd = function preventHtml5Dnd(event) {\n event.preventDefault();\n};\n\nvar DragHandle = function (_Component) {\n _inheritsLoose(DragHandle, _Component);\n\n function DragHandle(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.mouseSensor = void 0;\n _this.keyboardSensor = void 0;\n _this.touchSensor = void 0;\n _this.sensors = void 0;\n _this.styleContext = void 0;\n _this.canLift = void 0;\n _this.isFocused = false;\n _this.lastDraggableRef = void 0;\n\n _this.onFocus = function () {\n _this.isFocused = true;\n };\n\n _this.onBlur = function () {\n _this.isFocused = false;\n };\n\n _this.onKeyDown = function (event) {\n if (_this.mouseSensor.isCapturing() || _this.touchSensor.isCapturing()) {\n return;\n }\n\n _this.keyboardSensor.onKeyDown(event);\n };\n\n _this.onMouseDown = function (event) {\n if (_this.keyboardSensor.isCapturing() || _this.mouseSensor.isCapturing()) {\n return;\n }\n\n _this.mouseSensor.onMouseDown(event);\n };\n\n _this.onTouchStart = function (event) {\n if (_this.mouseSensor.isCapturing() || _this.keyboardSensor.isCapturing()) {\n return;\n }\n\n _this.touchSensor.onTouchStart(event);\n };\n\n _this.canStartCapturing = function (event) {\n if (_this.isAnySensorCapturing()) {\n return false;\n }\n\n if (!_this.canLift(_this.props.draggableId)) {\n return false;\n }\n\n return shouldAllowDraggingFromTarget(event, _this.props);\n };\n\n _this.isAnySensorCapturing = function () {\n return _this.sensors.some(function (sensor) {\n return sensor.isCapturing();\n });\n };\n\n _this.getProvided = memoizeOne(function (isEnabled) {\n if (!isEnabled) {\n return null;\n }\n\n var provided = {\n onMouseDown: _this.onMouseDown,\n onKeyDown: _this.onKeyDown,\n onTouchStart: _this.onTouchStart,\n onFocus: _this.onFocus,\n onBlur: _this.onBlur,\n tabIndex: 0,\n 'data-react-beautiful-dnd-drag-handle': _this.styleContext,\n 'aria-roledescription': 'Draggable item. Press space bar to lift',\n draggable: false,\n onDragStart: preventHtml5Dnd\n };\n return provided;\n });\n\n var getWindow = function getWindow() {\n return getWindowFromRef(_this.props.getDraggableRef());\n };\n\n var args = {\n callbacks: _this.props.callbacks,\n getDraggableRef: _this.props.getDraggableRef,\n getWindow: getWindow,\n canStartCapturing: _this.canStartCapturing\n };\n _this.mouseSensor = createMouseSensor(args);\n _this.keyboardSensor = createKeyboardSensor(args);\n _this.touchSensor = createTouchSensor(args);\n _this.sensors = [_this.mouseSensor, _this.keyboardSensor, _this.touchSensor];\n _this.styleContext = context[styleContextKey];\n _this.canLift = context[canLiftContextKey];\n return _this;\n }\n\n var _proto = DragHandle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var draggableRef = this.props.getDraggableRef();\n this.lastDraggableRef = draggableRef;\n !draggableRef ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get draggable ref from drag handle') : invariant(false) : void 0;\n\n if (!this.props.isEnabled) {\n return;\n }\n\n var dragHandleRef = getDragHandleRef(draggableRef);\n retainer.tryRestoreFocus(this.props.draggableId, dragHandleRef);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n var ref = this.props.getDraggableRef();\n\n if (ref !== this.lastDraggableRef) {\n this.lastDraggableRef = ref;\n\n if (!ref || !this.isFocused) {\n return;\n }\n\n if (!this.props.isEnabled) {\n return;\n }\n\n getDragHandleRef(ref).focus();\n }\n\n var isCapturing = this.isAnySensorCapturing();\n\n if (!isCapturing) {\n return;\n }\n\n var isDragStopping = prevProps.isDragging && !this.props.isDragging;\n\n if (isDragStopping) {\n this.sensors.forEach(function (sensor) {\n if (sensor.isCapturing()) {\n sensor.kill();\n }\n });\n }\n\n if (this.props.isEnabled) {\n return;\n }\n\n this.sensors.forEach(function (sensor) {\n if (!sensor.isCapturing()) {\n return;\n }\n\n var wasDragging = sensor.isDragging();\n sensor.kill();\n\n if (wasDragging) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('You have disabled dragging on a Draggable while it was dragging. The drag has been cancelled');\n }\n\n _this2.props.callbacks.onCancel();\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var _this3 = this;\n\n this.sensors.forEach(function (sensor) {\n var wasDragging = sensor.isDragging();\n sensor.unmount();\n\n if (wasDragging) {\n _this3.props.callbacks.onCancel();\n }\n });\n\n var shouldRetainFocus = function () {\n if (!_this3.props.isEnabled) {\n return false;\n }\n\n if (!_this3.isFocused) {\n return false;\n }\n\n return _this3.props.isDragging || _this3.props.isDropAnimating;\n }();\n\n if (shouldRetainFocus) {\n retainer.retain(this.props.draggableId);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n isEnabled = _this$props.isEnabled;\n return children(this.getProvided(isEnabled));\n };\n\n return DragHandle;\n}(Component);\n\nDragHandle.contextTypes = (_DragHandle$contextTy = {}, _DragHandle$contextTy[styleContextKey] = PropTypes.string.isRequired, _DragHandle$contextTy[canLiftContextKey] = PropTypes.func.isRequired, _DragHandle$contextTy);\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar getViewport = function getViewport() {\n var scroll = getWindowScroll();\n var top = scroll.y;\n var left = scroll.x;\n var doc = document.documentElement;\n !doc ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find document.documentElement') : invariant(false) : void 0;\n var width = doc.clientWidth;\n var height = doc.clientHeight;\n var right = left + width;\n var bottom = top + height;\n var frame = getRect({\n top: top,\n left: left,\n right: right,\n bottom: bottom\n });\n var maxScroll = getMaxScroll({\n scrollHeight: doc.scrollHeight,\n scrollWidth: doc.scrollWidth,\n width: frame.width,\n height: frame.height\n });\n var viewport = {\n frame: frame,\n scroll: {\n initial: scroll,\n current: scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n return viewport;\n};\n\nvar _Draggable$contextTyp;\n\nvar zIndexOptions = {\n dragging: 5000,\n dropAnimating: 4500\n};\n\nvar getTranslate = function getTranslate(offset) {\n if (isEqual(offset, origin)) {\n return null;\n }\n\n return \"translate(\" + offset.x + \"px, \" + offset.y + \"px)\";\n};\n\nvar getSpeed$1 = function getSpeed(isDragging, shouldAnimateDragMovement, isDropAnimating) {\n if (isDropAnimating) {\n return 'STANDARD';\n }\n\n if (isDragging && shouldAnimateDragMovement) {\n return 'FAST';\n }\n\n return 'INSTANT';\n};\n\nvar Draggable = function (_Component) {\n _inheritsLoose(Draggable, _Component);\n\n function Draggable(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.callbacks = void 0;\n _this.styleContext = void 0;\n _this.ref = null;\n\n _this.onMoveEnd = function () {\n if (_this.props.isDropAnimating) {\n _this.props.dropAnimationFinished();\n }\n };\n\n _this.onLift = function (options) {\n start('LIFT');\n var ref = _this.ref;\n !ref ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n !!_this.props.isDragDisabled ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot lift a Draggable when it is disabled') : invariant(false) : void 0;\n var clientSelection = options.clientSelection,\n autoScrollMode = options.autoScrollMode;\n var _this$props = _this.props,\n lift = _this$props.lift,\n draggableId = _this$props.draggableId;\n var client = {\n selection: clientSelection,\n borderBoxCenter: getBorderBoxCenterPosition(ref),\n offset: origin\n };\n lift({\n id: draggableId,\n client: client,\n autoScrollMode: autoScrollMode,\n viewport: getViewport()\n });\n finish('LIFT');\n };\n\n _this.setRef = function (ref) {\n if (ref === null) {\n return;\n }\n\n if (ref === _this.ref) {\n return;\n }\n\n _this.ref = ref;\n throwIfRefIsInvalid(ref);\n };\n\n _this.getDraggableRef = function () {\n return _this.ref;\n };\n\n _this.getDraggingStyle = memoizeOne(function (change, dimension, isDropAnimating) {\n var box = dimension.client;\n var style = {\n position: 'fixed',\n top: box.marginBox.top,\n left: box.marginBox.left,\n boxSizing: 'border-box',\n width: box.borderBox.width,\n height: box.borderBox.height,\n transition: 'none',\n zIndex: isDropAnimating ? zIndexOptions.dropAnimating : zIndexOptions.dragging,\n transform: getTranslate(change),\n pointerEvents: 'none'\n };\n return style;\n });\n _this.getNotDraggingStyle = memoizeOne(function (current, shouldAnimateDisplacement) {\n var style = {\n transform: getTranslate(current),\n transition: shouldAnimateDisplacement ? null : 'none'\n };\n return style;\n });\n _this.getProvided = memoizeOne(function (change, isDragging, isDropAnimating, shouldAnimateDisplacement, dimension, dragHandleProps) {\n var useDraggingStyle = isDragging || isDropAnimating;\n\n var draggableStyle = function () {\n if (!useDraggingStyle) {\n return _this.getNotDraggingStyle(change, shouldAnimateDisplacement);\n }\n\n !dimension ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'draggable dimension required for dragging') : invariant(false) : void 0;\n return _this.getDraggingStyle(change, dimension, isDropAnimating);\n }();\n\n var provided = {\n innerRef: _this.setRef,\n draggableProps: {\n 'data-react-beautiful-dnd-draggable': _this.styleContext,\n style: draggableStyle\n },\n dragHandleProps: dragHandleProps\n };\n return provided;\n });\n _this.getSnapshot = memoizeOne(function (isDragging, isDropAnimating, draggingOver) {\n return {\n isDragging: isDragging || isDropAnimating,\n isDropAnimating: isDropAnimating,\n draggingOver: draggingOver\n };\n });\n\n _this.renderChildren = function (change, dragHandleProps) {\n var _this$props2 = _this.props,\n isDragging = _this$props2.isDragging,\n isDropAnimating = _this$props2.isDropAnimating,\n dimension = _this$props2.dimension,\n draggingOver = _this$props2.draggingOver,\n shouldAnimateDisplacement = _this$props2.shouldAnimateDisplacement,\n children = _this$props2.children;\n var child = children(_this.getProvided(change, isDragging, isDropAnimating, shouldAnimateDisplacement, dimension, dragHandleProps), _this.getSnapshot(isDragging, isDropAnimating, draggingOver));\n var isDraggingOrDropping = isDragging || isDropAnimating;\n\n var placeholder = function () {\n if (!isDraggingOrDropping) {\n return null;\n }\n\n !dimension ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable: Dimension is required for dragging') : invariant(false) : void 0;\n return React.createElement(Placeholder, {\n placeholder: dimension.placeholder\n });\n }();\n\n return React.createElement(Fragment, null, child, placeholder);\n };\n\n var callbacks = {\n onLift: _this.onLift,\n onMove: function onMove(clientSelection) {\n return props.move({\n client: clientSelection,\n shouldAnimate: false\n });\n },\n onDrop: function onDrop() {\n return props.drop({\n reason: 'DROP'\n });\n },\n onCancel: function onCancel() {\n return props.drop({\n reason: 'CANCEL'\n });\n },\n onMoveUp: props.moveUp,\n onMoveDown: props.moveDown,\n onMoveRight: props.moveRight,\n onMoveLeft: props.moveLeft,\n onWindowScroll: function onWindowScroll() {\n return props.moveByWindowScroll({\n scroll: getWindowScroll()\n });\n }\n };\n _this.callbacks = callbacks;\n _this.styleContext = context[styleContextKey];\n return _this;\n }\n\n var _proto = Draggable.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.ref = null;\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n draggableId = _this$props3.draggableId,\n index = _this$props3.index,\n offset = _this$props3.offset,\n isDragging = _this$props3.isDragging,\n isDropAnimating = _this$props3.isDropAnimating,\n isDragDisabled = _this$props3.isDragDisabled,\n shouldAnimateDragMovement = _this$props3.shouldAnimateDragMovement,\n disableInteractiveElementBlocking = _this$props3.disableInteractiveElementBlocking;\n var droppableId = this.context[droppableIdKey];\n var type = this.context[droppableTypeKey];\n var speed = getSpeed$1(isDragging, shouldAnimateDragMovement, isDropAnimating);\n return React.createElement(DraggableDimensionPublisher, {\n key: draggableId,\n draggableId: draggableId,\n droppableId: droppableId,\n type: type,\n index: index,\n getDraggableRef: this.getDraggableRef\n }, React.createElement(Moveable, {\n speed: speed,\n destination: offset,\n onMoveEnd: this.onMoveEnd\n }, function (change) {\n return React.createElement(DragHandle, {\n draggableId: draggableId,\n isDragging: isDragging,\n isDropAnimating: isDropAnimating,\n isEnabled: !isDragDisabled,\n callbacks: _this2.callbacks,\n getDraggableRef: _this2.getDraggableRef,\n canDragInteractiveElements: disableInteractiveElementBlocking\n }, function (dragHandleProps) {\n return _this2.renderChildren(change, dragHandleProps);\n });\n }));\n };\n\n return Draggable;\n}(Component);\n\nDraggable.contextTypes = (_Draggable$contextTyp = {}, _Draggable$contextTyp[droppableIdKey] = PropTypes.string.isRequired, _Draggable$contextTyp[droppableTypeKey] = PropTypes.string.isRequired, _Draggable$contextTyp[styleContextKey] = PropTypes.string.isRequired, _Draggable$contextTyp);\nvar defaultMapProps = {\n isDropAnimating: false,\n isDragging: false,\n offset: origin,\n shouldAnimateDragMovement: false,\n shouldAnimateDisplacement: true,\n dimension: null,\n draggingOver: null\n};\n\nvar makeMapStateToProps$1 = function makeMapStateToProps() {\n var memoizedOffset = memoizeOne(function (x, y) {\n return {\n x: x,\n y: y\n };\n });\n var getNotDraggingProps = memoizeOne(function (offset, shouldAnimateDisplacement) {\n return {\n isDropAnimating: false,\n isDragging: false,\n offset: offset,\n shouldAnimateDisplacement: shouldAnimateDisplacement,\n shouldAnimateDragMovement: false,\n dimension: null,\n draggingOver: null\n };\n });\n var getDraggingProps = memoizeOne(function (offset, shouldAnimateDragMovement, dimension, draggingOver) {\n return {\n isDragging: true,\n isDropAnimating: false,\n shouldAnimateDisplacement: false,\n offset: offset,\n shouldAnimateDragMovement: shouldAnimateDragMovement,\n dimension: dimension,\n draggingOver: draggingOver\n };\n });\n\n var getOutOfTheWayMovement = function getOutOfTheWayMovement(id, movement) {\n var map = getDisplacementMap(movement.displaced);\n var displacement = map[id];\n\n if (!displacement) {\n return null;\n }\n\n if (!displacement.isVisible) {\n return null;\n }\n\n var amount = movement.isBeyondStartPosition ? negate(movement.amount) : movement.amount;\n return getNotDraggingProps(memoizedOffset(amount.x, amount.y), displacement.shouldAnimate);\n };\n\n var draggingSelector = function draggingSelector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id !== ownProps.draggableId) {\n return null;\n }\n\n var offset = state.current.client.offset;\n var dimension = state.dimensions.draggables[ownProps.draggableId];\n var shouldAnimateDragMovement = state.shouldAnimate;\n var draggingOver = state.impact.destination ? state.impact.destination.droppableId : null;\n return getDraggingProps(memoizedOffset(offset.x, offset.y), shouldAnimateDragMovement, dimension, draggingOver);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var pending = state.pending;\n\n if (pending.result.draggableId !== ownProps.draggableId) {\n return null;\n }\n\n var _draggingOver = pending.result.destination ? pending.result.destination.droppableId : null;\n\n return {\n isDragging: false,\n isDropAnimating: true,\n offset: pending.newHomeOffset,\n dimension: state.dimensions.draggables[ownProps.draggableId],\n draggingOver: _draggingOver,\n shouldAnimateDragMovement: false,\n shouldAnimateDisplacement: false\n };\n }\n\n return null;\n };\n\n var movingOutOfTheWaySelector = function movingOutOfTheWaySelector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id === ownProps.draggableId) {\n return null;\n }\n\n return getOutOfTheWayMovement(ownProps.draggableId, state.impact.movement);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n if (state.pending.result.draggableId === ownProps.draggableId) {\n return null;\n }\n\n return getOutOfTheWayMovement(ownProps.draggableId, state.pending.impact.movement);\n }\n\n return null;\n };\n\n var selector = function selector(state, ownProps) {\n var dragging = draggingSelector(state, ownProps);\n\n if (dragging) {\n return dragging;\n }\n\n var movingOutOfTheWay = movingOutOfTheWaySelector(state, ownProps);\n\n if (movingOutOfTheWay) {\n return movingOutOfTheWay;\n }\n\n return defaultMapProps;\n };\n\n return selector;\n};\n\nvar mapDispatchToProps = {\n lift: lift,\n move: move,\n moveUp: moveUp,\n moveDown: moveDown,\n moveLeft: moveLeft,\n moveRight: moveRight,\n moveByWindowScroll: moveByWindowScroll,\n drop: drop,\n dropAnimationFinished: dropAnimationFinished\n};\nvar ConnectedDraggable = connect(makeMapStateToProps$1, mapDispatchToProps, null, {\n storeKey: storeKey,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Draggable);\nConnectedDraggable.defaultProps = {\n isDragDisabled: false,\n disableInteractiveElementBlocking: false\n};\nexport { DragDropContext, connectedDroppable as Droppable, ConnectedDraggable as Draggable, resetServerContext };","import React from \"react\";\nimport { Droppable, DragDropContext } from \"react-beautiful-dnd\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nexport default function JobCategoryList(props) {\n const { onDragEndJobCategory } = props;\n\n const onDragEnd = (result) => {\n onDragEndJobCategory(result);\n };\n\n return (\n \n \n {(provided) => (\n \n {props.children}\n {provided.placeholder} {/* Increases space for dropping */}\n \n )}\n \n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobCategoryList;\n ${[t.my(8), t.rounded.sm]}\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n `;\n});\n","import React from \"react\";\nimport { Draggable } from \"react-beautiful-dnd\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\n/*\n--===================================================-- */\n\n// export default class JobCategoryListItem extends Component {\nexport default function JobCategoryListItem(props) {\n const { jobCategory, index, openEditJobCategoryModal, deleteJobCategory } = props;\n const { name, jobsCount } = jobCategory;\n\n // window.logger(\"%c[JobCategoryListItem] category\", \"color: #1976D2\", { jobCategory });\n\n const handleOpenJobCategoryModal = (event) => {\n event.preventDefault();\n\n openEditJobCategoryModal(jobCategory);\n };\n\n const handleDeleteJobCategory = (event) => {\n event.preventDefault();\n\n deleteJobCategory(jobCategory);\n };\n\n return (\n \n {(provided) => {\n return (\n \n

    \n {name}\n {`${Number(jobsCount) > 0 ? jobsCount : \"No\"} active job${Number(jobsCount) === 1 ? \"\" : \"s\"\n }`}\n
    \n \n \n Edit category\n \n \n Delete category\n \n \n \n );\n }}\n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobCategoryListItem;\n ${[t.pl(4), t.pr(3), t.py(3), t.mb(\"-px\")]}\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n transition: background-color 0.2s ease, border-color 0.2s ease;\n &:first-of-type {\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top-left-radius: 0.4375rem;\n border-top-right-radius: 0.4375rem;\n }\n &:last-of-type {\n border-bottom-left-radius: 0.4375rem;\n border-bottom-right-radius: 0.4375rem;\n }\n &:hover,\n &:active {\n border-color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n z-index: 16;\n }\n `;\n});\n\nStyled.JobCategoryText = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobCategoryListItem_JobCategoryText;\n ${t.mb(1)}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.JobCategoryDetails = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: JobCategoryListItem_JobCategoryDetails;\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n","import { useQuery } from \"react-query\";\nimport { apiGet } from \"@shared/queryHooks/api\";\n\nconst getJobCategories = async () => {\n return await apiGet({ path: \"/job_categories\" });\n};\n\nexport default function useJobCategories(): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n} {\n return useQuery(\"jobCategories\", getJobCategories);\n}\n","import React, { useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\n\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport FormSection from \"@ats/src/components/forms/FormSection\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nimport JobCategoryModal from \"@ats/src/components/modals/JobCategoryModal\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\n\nimport JobCategoryList from \"@ats/src/views/accountAdmin/components/JobCategoryList\";\nimport JobCategoryListItem from \"@ats/src/views/accountAdmin/components/JobCategoryListItem\";\n\nimport useJobCategories from \"@shared/queryHooks/useJobCategories\";\nimport { useUpdateJobCategory, useDeleteJobCategory } from \"@shared/queryHooks/useJobCategory\";\nimport { moveFromIndexToIndex } from \"@shared/lib/utils\";\n\nexport default function AccountJobCategories(props) {\n window.logger(\"%c[AccountJobCategories] render\", \"background: #EFDDEF; color: #1976D2\", {\n props,\n });\n const { openModal, removeModal } = useModalContext();\n\n const { status, data, error, isFetching } = useJobCategories();\n const { mutate: updateJobCategory, isLoading: isLoadingUpdate } = useUpdateJobCategory();\n const { mutate: deleteJobCategory, isLoading: isLoadingDelete } = useDeleteJobCategory();\n\n const catItems = data != undefined ? data.items : [];\n const [categories, setCategories] = useState([catItems]);\n\n React.useEffect(() => {\n setCategories(catItems);\n }, [catItems]);\n\n const handleClickOnDeleteJobCategory = (jobCategory) => {\n const jobsCount = jobCategory.jobsCount;\n\n const deleteMessage =\n jobCategory.jobsCount > 0\n ? `The ${jobCategory.name} category will be removed from ${jobsCount} active job${\n Number(jobsCount) === 1 ? \"\" : \"s\"\n }.`\n : `You will no longer be able to set a job's category to ${jobCategory.name}.`;\n\n window.logger(jobCategory);\n const modal = (\n {\n removeModal();\n handleDeleteJobCategory(jobCategory);\n }}\n onCancel={removeModal}\n isDestructiveConfirm={false}\n />\n );\n\n openModal(modal);\n };\n\n const handleDeleteJobCategory = async (jobCategory) => {\n try {\n await deleteJobCategory(jobCategory);\n // jobCategory was successfully deleted\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"%c[JobCategoryModal] handle error when deleting Job Category\", {\n error,\n });\n }\n };\n\n /* JobCategoryModal\n --===================================================-- */\n const openNewJobCategoryModal = (event) => {\n event.preventDefault();\n openJobCategoryModal({}, false);\n };\n\n const openEditJobCategoryModal = (category) => {\n openJobCategoryModal(category, true);\n };\n\n const openJobCategoryModal = (category, isEditing) => {\n const modal = (\n \n );\n\n openModal(modal);\n };\n\n /* onDragEndJobCategory\n --===================================================-- */\n const onDragEndJobCategory = (result: { destination: any; source: any; draggableId: number }) => {\n window.logger(\"%c[AccountJobCategories] onDragEndJobCategory result\", \"color: #1976D2\", result);\n // eslint-disable-next-line no-unused-vars\n const { destination, source, draggableId } = result;\n\n // If there is no destinatiom then do nothing\n if (!destination) return;\n\n // If the user drops the item back in its original spot then do nothing\n if (destination.droppableId === source.droppableId && destination.index === source.index)\n return;\n\n const jobCategory: { id: number } = data.items[source.index];\n const position: number = destination.index + 1;\n\n const newCategories = moveFromIndexToIndex(categories, source.index, destination.index);\n\n setCategories(newCategories);\n\n updateJobCategory({ ...jobCategory, position });\n };\n\n /* JobCategory nodes\n --===================================================-- */\n const jobCategoryNodes = () => {\n window.logger(\n \"%c[JobSetupApplicationFormJobCategories] jobCategoryNodes RENDER CATEGORIES\",\n \"color: #19FFD2\",\n { data },\n );\n\n if (categories.length === 0) {\n return ;\n } else {\n return categories.map((jobCategory: { name: string }, index: number) => {\n return (\n \n );\n });\n }\n };\n\n if (status === \"loading\") {\n return ;\n }\n\n return (\n <>\n \n \n \n \n {jobCategoryNodes()}\n \n\n \n \n \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\n\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport FormFieldset from \"@ats/src/components/forms/FormFieldset\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormSection from \"@ats/src/components/forms/FormSection\";\nimport FormCheckbox from \"@ats/src/components/forms/FormCheckbox\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useUpdateSettings, useGetMe } from \"@shared/queryHooks/useMe\";\nimport { UserSettings } from \"@shared/types/user\";\n\nfunction AccountPreferences(props) {\n const addToast = useToastContext();\n const { setIsDirty, currentUser } = props;\n\n const { mutate: updateSettings, isLoading: isLoadingUpdate } = useUpdateSettings();\n\n const { data, error, isLoading: isLoadingGet } = useGetMe({});\n\n const meResponse = data != undefined ? data : currentUser || {};\n const [settings, setSettings] = useState({ ...meResponse.settings } || {});\n const [errors, setErrors] = useState(error != undefined ? [error] : null);\n const { emailCommentsNew, emailMessagesNew, emailJobApplicationsNew } = settings;\n\n // window.logger(\"%c[AccountNotificaitons] render\", \"border: 2px solid #1F06FF\", {\n // meResponse,\n // data,\n // settings,\n // emailNotificationsGlobal,\n // isLoadingUpdate,\n // isIdle,\n // isSuccess,\n // isError,\n // });\n\n React.useEffect(() => {\n if (meResponse.settings != undefined) {\n setSettings(meResponse.settings);\n }\n }, [meResponse]);\n\n // const handleFormInputChange = (name, value) => {\n // setErrors(null);\n // setIsDirty(true);\n // };\n\n const onSuccess = (data) => {\n setErrors(null);\n setIsDirty(false);\n\n // window.logger(\"%c[AccountNotification] handleSubmitForm SUCCESS\", \"color: #1976D2\", {\n // data,\n // });\n\n addToast({\n title: `Saved`,\n kind: \"success\",\n });\n };\n\n const handleSubmitForm = (event) => {\n event.preventDefault();\n\n try {\n updateSettings(\n { ...settings },\n {\n onSuccess,\n },\n );\n } catch (error) {\n // window.logger(\"%c[AccountNotification] handleSubmitForm FAILED\", \"color: #1976D2\", {\n // settings,\n // });\n }\n };\n\n const handleEmailPreferenceChange = (name, value) => {\n setErrors(null);\n setIsDirty(true);\n\n let updateEmailPreferences = Object.assign({}, settings, { [name]: value });\n setSettings(updateEmailPreferences);\n };\n\n if (isLoadingGet) {\n return ;\n }\n\n const bottomBarContent = (\n \n Save changes\n \n );\n\n return (\n <>\n \n \n \n errors={errors}\n onSubmit={handleSubmitForm}\n >\n \n \n \n \n \n \n {/* */}\n \n \n \n \n );\n}\n\nAccountPreferences.propTypes = {};\n\nAccountPreferences.defaultProps = {};\n\nexport default AccountPreferences;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\n\nimport { useApplyPromoCode } from \"@shared/queryHooks/useBilling\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\ntype Props = {\n onCancel: () => void;\n};\n\nfunction PromoCodeCenterModal(props: Props) {\n const { onCancel } = props;\n // window.logger(\"%c[PromoCodeCenterModal] \", \"color: #1976D2\", { props });\n const addToast = useToastContext();\n const [promoCode, setPromoCode] = useState(\"\");\n const [errors, setErrors] = useState([]);\n const [isDirty, setIsDirty] = useState(false);\n const { mutate: applyPromoCode, isLoading: isLoadingApplyPromoCode } = useApplyPromoCode();\n const { modal, dismissModalWithAnimation } = useModalContext();\n\n const handleOnCancel = () => {\n window.logger(\"%c[PromoCodeCenterModal] handleOnCancel\", \"color: #1976D2\", { modal });\n if (modal) {\n dismissModalWithAnimation(() => onCancel);\n } else {\n onCancel();\n }\n };\n\n const handleChangeTitle = (_, value) => {\n // const code = value.toUpperCase();\n setPromoCode(value);\n setErrors([]);\n setIsDirty(true);\n };\n\n const handleSubmitPromoCode = async (event) => {\n event.preventDefault();\n applyPromoCode(\n { promoCode: (promoCode || \"\").toUpperCase() },\n {\n onSuccess: (data) => {\n window.logger(\"%c[PromoCodeCenterModal] applyPromoCode onSuccess\", \"color: #1976D2\", {\n data,\n });\n addToast({\n title: `Code applied`,\n kind: \"success\",\n });\n handleOnCancel();\n },\n onError: (response: any) => {\n if (\n response.data.errors &&\n response.data.errors.general &&\n response.data.errors.general[0] != undefined\n )\n addToast({\n title: response.data.errors.general[0],\n kind: \"warning\",\n });\n window.logger(\"%c[PromoCodeCenterModal] applyPromoCode onError\", \"color: #ad1b47\", {\n response,\n });\n },\n },\n );\n };\n\n const submitButton = (\n \n \n Apply code\n \n \n \n );\n\n return (\n \n \n Enter the code you would like to use. Once applied, your subscription will be updated to\n reflect the discount.\n \n \n \n \n \n \n \n );\n}\n\nPromoCodeCenterModal.propTypes = {\n onCancel: PropTypes.func.isRequired,\n};\n\nexport default PromoCodeCenterModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: PromoCodeCenterModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: PromoCodeCenterModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n\nStyled.Input = styled.div`\n input {\n text-transform: uppercase;\n }\n`;\n","/* eslint-disable @getify/proper-arrows/return */\nimport React, { useState } from \"react\";\nimport queryString from \"query-string\";\nimport { Helmet } from \"react-helmet\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport { pluralize } from \"@ats/src/lib/utils/helpers\";\nimport { timeAgoInWordsLong, prettyDate } from \"@shared/lib/time\";\n\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport PromoCodeCenterModal from \"@ats/src/components/modals/PromoCodeCenterModal\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nimport {\n useStripeCustomer,\n useBillingPrices,\n useCreateStripeCheckoutSession,\n useCreateStripeCustomerPortalSession,\n useCreateSubscription,\n useSwapCheckoutSessionIdForPaymentMethod,\n useStripeCustomerSubscription,\n} from \"@shared/queryHooks/useBilling\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\nconst DEFAULT_PRICE_LOOKUP_KEY = \"plan_simple_ats_per_job_tiered\";\n\nfunction AccountBilling(props) {\n const { currentOrganization } = useCurrentSession(); // TODO: use the reactQuery Organization instead of the Redux organization\n const { publishedJobsCount } = currentOrganization;\n\n const addToast = useToastContext();\n const { openModal, removeModal } = useModalContext();\n\n /* Customer\n --===================================================-- */\n const { data: stripeCustomerData, isFetching: isFetchingStripeCustomer } = useStripeCustomer({\n refetchOnWindowFocus: false,\n });\n const customer = stripeCustomerData ? stripeCustomerData.customer : null;\n\n /* Get Subscription\n --===================================================-- */\n const {\n data: stripeCustomerSubscriptionData,\n isFetching: isFetchingStripeCustomerSubscription,\n } = useStripeCustomerSubscription({\n refetchOnWindowFocus: false,\n });\n const currentSubscription = stripeCustomerSubscriptionData\n ? stripeCustomerSubscriptionData.subscription\n : null;\n const hasActiveSubscription = currentOrganization.stripeSubscriptionInGoodStanding === true;\n\n /* Create Subscription\n --===================================================-- */\n const {\n mutate: createSubscription,\n isLoading: isLoadingCreateSubscription,\n } = useCreateSubscription();\n const {\n mutate: swapCheckoutSessionIdForPaymentMethod,\n isLoading: isLoadingSwapCheckoutSessionIdForPaymentMethod,\n } = useSwapCheckoutSessionIdForPaymentMethod();\n const { data: billingPricesData, isFetching: isFetchingBillingPrices } = useBillingPrices({\n refetchOnWindowFocus: false,\n });\n\n const billingPrices = billingPricesData != undefined ? billingPricesData.data : [];\n // const targetBillingPrice = billingPrices.length > 0 ? billingPrices[0] : null;\n\n const targetBillingPrice =\n billingPrices.length > 0\n ? billingPrices.find((price) => price.lookupKey === DEFAULT_PRICE_LOOKUP_KEY)\n : null;\n\n // const targetBillingPrice =\n // billingPrices.length > 0\n // ? billingPrices.filter(\n // (price) =>\n // price.nickname?.includes(\"Per\") ||\n // price.nickname == undefined ||\n // !price.nickname?.includes(\"Test\"),\n // )[0]\n // : null;\n\n const prettyBillingPrice =\n targetBillingPrice == undefined\n ? 0\n : targetBillingPrice.billingScheme === \"tiered\"\n ? targetBillingPrice.tiers[0].unitAmount / 100.0\n : targetBillingPrice.unitAmount / 100.0;\n\n const currentPriceObject = currentSubscription && currentSubscription.items.data[0].price;\n const currentProductPrice =\n currentPriceObject != undefined\n ? currentPriceObject.billingScheme === \"tiered\"\n ? currentPriceObject.tiers[0].unitAmount / 100.0\n : currentPriceObject.amount / 100.0\n : null;\n\n const hadAnActiveSubscriptionInThePast =\n currentOrganization.stripeSubscriptionInGoodStanding &&\n currentOrganization.publishedJobsCount > 0;\n const canRenewSubscription =\n hadAnActiveSubscriptionInThePast && currentOrganization.stripeDefaultPaymentMethodOnFile;\n\n const isTrialing =\n currentSubscription &&\n currentSubscription.status === \"trialing\" &&\n currentSubscription.discount != undefined;\n // const trialEndDays = isTrialing && formatMDY(currentSubscription.trialEnd);\n const trialEndDays = isTrialing && timeAgoInWordsLong(currentSubscription.trialEnd);\n\n const hasCoupon =\n currentSubscription &&\n currentSubscription.discount &&\n currentSubscription.discount.coupon != undefined;\n const discount = hasCoupon && currentSubscription.discount;\n const coupon = discount && discount.coupon;\n\n const { mutate: createStripeCustomerPortalSession } = useCreateStripeCustomerPortalSession();\n const {\n mutate: createStripeCheckoutSession,\n error: errorOnCreateCheckoutSession,\n isLoading: isLoadingCreateCheckoutSession,\n } = useCreateStripeCheckoutSession();\n\n React.useEffect(() => {\n const { checkout, session_id, redirect_url } = queryString.parse(props.location.search);\n\n window.logger(\"%c[AccountBilling] useEffect \", \"color: #1976D2\", {\n checkout,\n session_id,\n redirect_url,\n customer,\n });\n\n // Used when adding a payment method using Checkout flow\n if (checkout === \"success\" && session_id != undefined) {\n swapCheckoutSessionIdForPaymentMethod(\n {\n sessionId: session_id,\n },\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[AccountBilling] swapCheckoutSessionIdForPaymentMethod onSuccess\",\n \"background: orange; color: #1976D2\",\n data,\n );\n },\n },\n );\n }\n }, []);\n\n window.logger(\"%c[AccountBilling] render\", \"background: #EFDDEF; color: #1976D2\", {\n props,\n location,\n hasActiveSubscription,\n customer,\n billingPricesData,\n // targetPlan,\n currentPriceObject,\n currentProductPrice,\n targetBillingPrice,\n currentSubscription,\n currentOrganization,\n // currentPeriodEndDate,\n canRenewSubscription,\n publishedJobsCount,\n isTrialing,\n trialEndDays,\n // currentPeriodEndDateISO,\n });\n\n const handleCreateCheckoutSetupSession = () => {\n createStripeCheckoutSession(\n {\n successUrl: `/hire/settings/billing`,\n cancelUrl: `/hire/settings/billing`,\n locationPathname: location.pathname,\n checkoutMode: \"setup\",\n },\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[AccountBilling] completed creation of Checkout Session\",\n \"background: orange; color: #1976D2\",\n data,\n );\n (window as any).STRIPE.redirectToCheckout({\n sessionId: data.id,\n }).then(function (result) {\n window.logger(\n \"%c[AccountBilling] REDIRECTING\",\n \"background: green; color: white\",\n result,\n );\n // If `redirectToCheckout` fails due to a browser or network\n // error, display the localized error message to your customer\n // using `result.error.message`.\n });\n },\n },\n );\n };\n\n const handleCreateCheckoutSubscriptionSession = () => {\n if (targetBillingPrice != undefined) {\n createStripeCheckoutSession(\n {\n priceId: targetBillingPrice.id,\n successUrl: `/hire/settings/billing`,\n cancelUrl: `/hire/settings/billing`,\n locationPathname: location.pathname,\n checkoutMode: \"subscription\",\n },\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[AccountBilling] completed creation of Subscription Checkout Session\",\n \"background: orange; color: #1976D2\",\n data,\n );\n (window as any).STRIPE.redirectToCheckout({\n sessionId: data.id,\n }).then(function (result) {\n window.logger(\n \"%c[AccountBilling] REDIRECTING\",\n \"background: green; color: white\",\n result,\n );\n // If `redirectToCheckout` fails due to a browser or network\n // error, display the localized error message to your customer\n // using `result.error.message`.\n });\n },\n },\n );\n } else {\n addToast({\n title:\n \"We were unable to find an active plan, this is not right so please reach out to support@polymer.co and we will make sure we take care of you\",\n kind: \"warning\",\n });\n }\n };\n\n const handleCreateBillingPortalSession = () => {\n createStripeCustomerPortalSession(\n { returnUrl: \"/hire/settings/billing\" },\n {\n onSuccess: (data) => {\n window.logger(\"%c[AccountContainer] \", \"color: #1976D2\", { data });\n window.location.href = data.redirectUrl;\n },\n },\n );\n };\n\n const handleCreateSubscription = () => {\n createSubscription(\n { priceId: targetBillingPrice.id },\n {\n onSuccess: (data) => {\n window.logger(\"%c[AccountBilling] createSubscription SUCCESS\", \"color: #19d219\", {\n data,\n });\n addToast({\n title: \"Subscription activated\",\n kind: \"success\",\n });\n },\n onError: (response) => {\n window.logger(\"%c[AccountBilling] createSubscription FAILURE\", \"color: #990f6b\", {\n response,\n });\n addToast({\n title: \"Unable to renew subscription\",\n kind: \"warning\",\n });\n },\n },\n );\n };\n\n const handleOnClickUsePromoCode = (event) => {\n event.preventDefault();\n\n const modal = removeModal()} />;\n\n openModal(modal);\n };\n\n const manageBillingButton = (ctaCopy, mode = \"checkoutSession\") => (\n \n {ctaCopy}\n \n );\n\n const noPlanPrice =\n targetBillingPrice == undefined ? null : (\n \n

    ${prettyBillingPrice}

    \n \n per published job post
    \n per {targetBillingPrice.interval || targetBillingPrice.recurring.interval}\n
    \n
    \n );\n\n const viewLink = (\n \n );\n\n if (isFetchingStripeCustomer) {\n return ;\n }\n\n return (\n <>\n \n \n {!hasActiveSubscription && publishedJobsCount === 0 ? (\n customer && customer.invoiceSettings.defaultPaymentMethod == undefined ? (\n \n {noPlanPrice}\n {manageBillingButton(\"Add payment method\", \"checkoutSession\")}\n \n ) : (\n \n \n
    \n

    No published jobs

    \n $0 per month (${prettyBillingPrice} each)\n
    \n {manageBillingButton(\"Manage billing\", \"billingPortal\")}\n
    \n
    \n )\n ) : null}\n\n {!hasActiveSubscription &&\n // currentOrganization.stripeSubscriptionStatus != undefined &&\n publishedJobsCount > 0 ? (\n \n {noPlanPrice}\n \n {manageBillingButton(\"Manage billing\", \"billingPortal\")}\n {canRenewSubscription ? (\n \n ) : (\n \n )}\n \n \n ) : null}\n\n {/* Has Active Subscription\n --===================================================-- */}\n\n {hasActiveSubscription ? (\n <>\n \n \n
    \n {currentOrganization.plan === \"plan_simple_ats_per_job\" ? (\n <>\n

    \n {currentSubscription?.quantity} published job{\" \"}\n {pluralize(\"post\", currentSubscription?.quantity)}\n

    \n \n {isTrialing && !hasCoupon && `Free for ${trialEndDays} then `}$\n {currentProductPrice * (currentSubscription?.quantity || 0)} per month ($\n {currentProductPrice} each)\n \n \n ) : currentOrganization.plan === \"plan_simple_ats_paid\" ? (\n <>\n

    Unlimited published job posts

    \n \n $\n {currentPriceObject?.unitAmount != undefined\n ? currentPriceObject?.unitAmount / 100.0\n : currentProductPrice}{\" \"}\n per {currentPriceObject?.recurring.interval} ‧ Locked in until canceled\n \n \n ) : null}\n
    \n\n \n {hasActiveSubscription &&\n !hasCoupon &&\n currentOrganization.stripePromoCode == undefined && (\n \n \n \n \n \n )}\n\n {manageBillingButton(\"Manage billing\", \"billingPortal\")}\n \n
    \n\n {hasCoupon && (\n \n \n

    {coupon.name}

    \n Promo code\n
    \n \n {coupon.percentOff}% off until {prettyDate(discount.end)}\n \n
    \n )}\n
    \n \n ) : null}\n \n \n );\n}\n\nAccountBilling.propTypes = {};\n\nAccountBilling.defaultProps = {};\n\nexport default AccountBilling;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Pricing = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_Pricing;\n ${[t.rounded.md, t.py(4), t.mt(8), t.px(4)]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n display: flex;\n justify-content: space-between;\n align-items: center;\n `;\n});\n\nStyled.PricingPrice = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_PricingPrice;\n display: flex;\n align-items: center;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n h3 {\n ${[t.text.bold, t.text.xxxl]}\n font-size: ${t.spacing[8]}\n }\n\n span {\n ${[t.text.xs, t.ml(2), t.mt(\"-px\"), t.mb(\"px\")]}\n line-height: 1.4;\n }\n `;\n});\n\nStyled.ButtonWrapper = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_ButtonWrapper;\n display: flex;\n align-items: center;\n\n button {\n ${t.ml(3)}\n }\n `;\n});\n\nStyled.Subscription = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_Subscription;\n ${[t.rounded.md, t.mt(8)]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n `;\n});\n\nStyled.SubscriptionRow = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_SubscriptionRow;\n ${[t.p(4)]};\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n h3 {\n ${[t.mb(1)]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n > div > span {\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n\nStyled.SubscripionActions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_SubscripionActions;\n display: flex;\n `;\n});\n\nStyled.SubscriptionMenu = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_SubscriptionMenu;\n ${[t.pr(3)]}\n `;\n});\n\nStyled.Promo = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_Promo;\n ${[t.px(4), t.h(12)]}\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n span {\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n\nStyled.PromoTitle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_PromoTitle;\n ${[t.mr(4)]};\n display: flex;\n align-items: center;\n line-height: 1.4;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.PromoBadge = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_PromoBadge;\n ${[t.h(4), t.ml(2), t.rounded.xs]};\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n font-size: 0.625rem;\n color: ${t.color.black};\n border: 1px solid ${t.color.orange[200]};\n background: ${t.dark\n ? \"linear-gradient(120deg, #FBD7FF -40%, #FFDEC1 80%)\"\n : \"linear-gradient(120deg, #FFD8D8 -40%, #FFDEC1 80%)\"};\n flex-shrink: 0;\n display: flex;\n align-items: center;\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nimport {\n useCreateStripeCheckoutSession,\n useCreateStripeCustomerPortalSession,\n useCreateSubscription,\n} from \"@shared/queryHooks/useBilling\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\n\nimport { prettyBillingPrice } from \"@ats/src/lib/utils/helpers\";\n\ntype AccountBillingNewPlanChoicesProps = {\n location: any; // Consider defining a more specific type or interface for location\n customer: any; // Consider defining a more specific type or interface for customer\n publishedJobsCount: number;\n canRenewSubscription: boolean;\n billingPrices: any[]; // Consider defining a more specific type or interface for billingPrices\n hasInactiveSubscription: boolean;\n};\n\nconst AccountBillingNewPlanChoices: React.FC = ({\n location,\n customer,\n publishedJobsCount,\n canRenewSubscription,\n billingPrices,\n hasInactiveSubscription\n}) => {\n const addToast = useToastContext();\n\n /* Create Stripe Customer Portal Session\n --===================================================-- */\n const { mutate: createStripeCustomerPortalSession } = useCreateStripeCustomerPortalSession();\n\n /* Create Stripe Checkout Session\n --===================================================-- */\n const {\n mutate: createStripeCheckoutSession,\n error: errorOnCreateCheckoutSession,\n isLoading: isLoadingCreateCheckoutSession,\n } = useCreateStripeCheckoutSession();\n\n /* Create Subscription\n --===================================================-- */\n const {\n mutate: createSubscription,\n isLoading: isLoadingCreateSubscription,\n } = useCreateSubscription();\n\n const geminiBillingPrices = billingPrices.filter((price) => price.lookupKey?.includes(\"gemini\"));\n const apolloBillingPrices = billingPrices\n .filter((price) => price.lookupKey?.includes(\"apollo\"))\n .sort((a, b) => a.unitAmount - b.unitAmount); // Sorting by unitAmount so that the Monthly Plan shows up first in the list\n\n // const prettyBillingPrice = (price) => {\n // return price.billingScheme === \"tiered\"\n // ? price.tiers[0].unitAmount / 100.0\n // : price.unitAmount / 100.0;\n // };\n\n window.logger(\"%c[AccountBillingPlanChoices] render\", \"background: #ed79ed; color: #b5d0eb\", {\n location,\n customer,\n canRenewSubscription,\n publishedJobsCount,\n billingPrices,\n geminiBillingPrices,\n apolloBillingPrices,\n });\n\n /**\n * USED IF A CUSTOMER WANTS TO RENEW A SUBSCRIPTION\n * This function handles the creation of a new subscription for a customer that has already had a Subscription in the past.\n * Upon successful creation of the subscription, it displays a success toast message.\n * If the creation fails, it displays a warning toast message.\n */\n const handleCreateSubscription = (priceId: string) => {\n createSubscription(\n { priceId },\n {\n onSuccess: (data) => {\n window.logger(\"%c[AccountBilling] createSubscription SUCCESS\", \"color: #19d219\", {\n data,\n });\n addToast({\n title: \"Subscription activated\",\n kind: \"success\",\n });\n },\n onError: (response) => {\n window.logger(\"%c[AccountBilling] createSubscription FAILURE\", \"color: #990f6b\", {\n response,\n });\n addToast({\n title: \"Unable to renew subscription\",\n kind: \"warning\",\n });\n },\n },\n );\n };\n\n /**\n * USED IF A CUSTOMER WANTS TO START A NEW SUBSCRIPTION\n * This function handles the creation of a Stripe Checkout Session for new subscriptions.\n * It checks if a target billing price is defined, then calls the `createStripeCheckoutSession` function\n * with parameters for a subscription session, including the price ID, success and cancel URLs,\n * and the current location pathname. Upon successful creation of the session, it uses the Stripe object\n * to redirect the user to the Stripe Checkout page. If the target billing price is not defined,\n * it displays a warning toast message advising the user to contact support.\n */\n const handleCreateCheckoutSubscriptionSession = ({ priceId, planType }) => {\n createStripeCheckoutSession(\n {\n priceId,\n successUrl: `/hire/settings/billing`,\n cancelUrl: `/hire/settings/billing`,\n locationPathname: location.pathname,\n checkoutMode: \"subscription\",\n planType,\n },\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[AccountBilling] completed creation of Subscription Checkout Session\",\n \"background: orange; color: #1976D2\",\n data,\n );\n (window as any).STRIPE.redirectToCheckout({\n sessionId: data.id,\n }).then(function (result) {\n window.logger(\n \"%c[AccountBilling] REDIRECTING\",\n \"background: green; color: white\",\n result,\n );\n // If `redirectToCheckout` fails due to a browser or network\n // error, display the localized error message to your customer\n // using `result.error.message`.\n });\n },\n },\n );\n };\n\n /**\n * USED IF A CUSTOMER WANTS TO MANAGE THEIR BILLING USING THE STRIPE CUSTOMER PORTAL\n * This function handles the creation of a Stripe Customer Portal Session.\n * It calls the `createStripeCustomerPortalSession` function with specific parameters,\n * including the return URL. Upon successful creation of the session, it redirects the user\n * to the Stripe Customer Portal page. If the redirection fails, it logs the error message.\n */\n const handleCreateBillingPortalSession = () => {\n createStripeCustomerPortalSession(\n { returnUrl: \"/hire/settings/billing\" },\n {\n onSuccess: (data) => {\n window.logger(\"%c[AccountContainer] \", \"color: #1976D2\", { data });\n window.location.href = data.redirectUrl;\n },\n },\n );\n };\n\n return (\n <>\n Subscription options\n \n {apolloBillingPrices.map((price) => (\n \n \n

    {price.interval || price.recurring.interval}ly plan

    \n
    \n \n

    \n ${prettyBillingPrice(price)}\n \n per month
    \n billed {price.interval || price.recurring.interval}ly\n
    \n

    \n
    \n \n {/* */}\n {canRenewSubscription ? (\n handleCreateSubscription(price.id)}\n loading={isLoadingCreateSubscription}\n >\n Restart subscription\n \n ) : (\n \n handleCreateCheckoutSubscriptionSession({\n priceId: price.id,\n planType: \"unlimited\",\n })\n }\n >\n Select subscription\n \n )}\n \n
    \n ))}\n
    \n {hasInactiveSubscription && (\n \n

    \n \n \n You have no active subscriptions\n \n

    \n \n
    \n )}\n \n );\n};\n\nexport default AccountBillingNewPlanChoices;\n\nconst Subtitle = styled.h3((props) => {\n const t: any = props.theme;\n return css`\n ${[t.text.bold, t.text.lg, t.mt(8)]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nconst PricingOptions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n display: flex;\n gap: ${t.spacing[4]};\n `;\n});\n\nconst Pricing = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.rounded.md, t.py(4), t.mt(4), t.px(4)]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n flex: 1;\n `;\n});\n\nconst PricingTitle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n display: flex;\n align-items: center;\n flex-direction: row;\n margin-bottom: ${t.spacing[2]};\n\n h4 {\n ${[t.text.bold, t.text.md]}\n &:first-letter {\n text-transform: uppercase;\n }\n }\n `;\n});\n\nconst PricingPrice = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_PricingPrice;\n display: flex;\n align-items: center;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n margin-bottom: ${t.spacing[2]};\n\n p {\n ${[t.text.bold]}\n font-size: ${t.spacing[10]}\n }\n\n span {\n display: inline-block;\n ${[t.text.normal, t.text.sm, t.ml(2)]}\n line-height: 1.4;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n\nconst ButtonWrapper = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_ButtonWrapper;\n display: flex;\n\n button {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n\nconst Promo = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.rounded.md, t.mt(4), t.px(4), t.py(3)]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n\n h4 {\n ${[t.text.bold, t.mb(1)]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n\n span {\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n\nconst Badge = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_PromoBadge;\n ${[t.h(4), t.ml(2), t.rounded.xs]};\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n font-size: 0.625rem;\n color: ${t.color.black};\n border: 1px solid ${t.color.orange[200]};\n background: ${t.dark\n ? \"linear-gradient(120deg, #FBD7FF -40%, #FFDEC1 80%)\"\n : \"linear-gradient(120deg, #FFD8D8 -40%, #FFDEC1 80%)\"};\n flex-shrink: 0;\n display: flex;\n align-items: center;\n `;\n});\n\nconst CurrentSubscription = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.rounded.md, t.py(3), t.mt(4), t.px(4)]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n p {\n display: flex;\n align-items: center;\n gap: ${t.spacing[3]};\n\n span {\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n }\n `;\n});\n\nexport {\n Subtitle,\n PricingOptions,\n Pricing,\n PricingTitle,\n PricingPrice,\n ButtonWrapper,\n Badge,\n Promo,\n CurrentSubscription\n};\n","import React from \"react\";\nimport { timeAgoInWordsLong, prettyDate } from \"@shared/lib/time\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport PromoCodeCenterModal from \"@ats/src/components/modals/PromoCodeCenterModal\";\nimport { Styled } from \"@ats/src/views/accountAdmin/AccountBillingNew\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport {\n Subtitle,\n PricingOptions,\n Pricing,\n PricingTitle,\n PricingPrice,\n ButtonWrapper,\n Badge,\n Promo,\n CurrentSubscription,\n} from \"@ats/src/views/accountAdmin/accountBilling/AccountBillingNewPlanChoices\";\n\nimport {\n useCreateStripeCustomerPortalSession,\n useStripeCustomerSubscription,\n useChangeSubscriptionViaStripePortal,\n} from \"@shared/queryHooks/useBilling\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nimport { prettyBillingPrice } from \"@ats/src/lib/utils/helpers\";\n\nconst AccountBillingCurrentPlan: React.FC<{\n currentOrganization: any;\n hasActiveSubscription: boolean;\n billingPrices: any[];\n}> = ({ currentOrganization, hasActiveSubscription, billingPrices }) => {\n const addToast = useToastContext();\n const { openModal, removeModal } = useModalContext();\n\n /* Create Stripe Customer Portal Session\n --===================================================-- */\n const { mutate: createStripeCustomerPortalSession } = useCreateStripeCustomerPortalSession();\n\n /* Create Custom Stripe Customer Portal Session for Changing Subscription\n --===================================================-- */\n const {\n mutate: changeSubscriptionViaStripePortal,\n isLoading: isLoadingChangeSubscriptionViaStripePortal,\n } = useChangeSubscriptionViaStripePortal();\n\n /* Get Subscription\n --===================================================-- */\n const {\n data: stripeCustomerSubscriptionData,\n isFetching: isFetchingStripeCustomerSubscription,\n } = useStripeCustomerSubscription({\n refetchOnWindowFocus: false,\n });\n\n const currentSubscription = stripeCustomerSubscriptionData\n ? stripeCustomerSubscriptionData.subscription\n : null;\n\n const currentPriceObject = currentSubscription && currentSubscription.items.data[0].price;\n const currentSubscriptionItemId = currentSubscription && currentSubscription.items.data[0].id;\n const currentProductPrice =\n currentPriceObject != undefined\n ? currentPriceObject.billingScheme === \"tiered\"\n ? currentPriceObject.tiers[0].unitAmount / 100.0\n : currentPriceObject.unitAmount / 100.0\n : null;\n\n const isOnLegacyPlan = [\"plan_simple_ats_per_job\", \"plan_simple_ats_paid\"].includes(\n currentOrganization.plan,\n );\n\n const isTrialing =\n currentSubscription &&\n currentSubscription.status === \"trialing\" &&\n currentSubscription.discount != undefined;\n // const trialEndDays = isTrialing && formatMDY(currentSubscription.trialEnd);\n const trialEndDays = isTrialing && timeAgoInWordsLong(currentSubscription.trialEnd);\n\n const hasCoupon =\n currentSubscription &&\n currentSubscription.discount &&\n currentSubscription.discount.coupon != undefined;\n const discount = hasCoupon && currentSubscription.discount;\n const coupon = discount && discount.coupon;\n\n // Billing Prices\n const geminiBillingPrices = billingPrices.filter((price) => price.lookupKey?.includes(\"gemini\"));\n const apolloBillingPrices = billingPrices\n .filter((price) => price.lookupKey?.includes(\"apollo\"))\n .sort((a, b) => a.unitAmount - b.unitAmount); // Sorting by unitAmount so that the Monthly Plan shows up first in the list\n\n window.logger(\"%c[AccountBillingCurrentPlan] render\", \"background: #ed79ed; color: #b5d0eb\", {\n location,\n currentOrganization,\n currentSubscription,\n currentPriceObject,\n currentProductPrice,\n isTrialing,\n trialEndDays,\n hasCoupon,\n discount,\n coupon,\n billingPrices,\n isLoadingChangeSubscriptionViaStripePortal,\n });\n\n const handleOnClickUsePromoCode = (event) => {\n event.preventDefault();\n\n const modal = removeModal()} />;\n\n openModal(modal);\n };\n\n /**\n * USED IF A CUSTOMER WANTS TO MANAGE THEIR BILLING USING THE STRIPE CUSTOMER PORTAL\n * This function handles the creation of a Stripe Customer Portal Session.\n * It calls the `createStripeCustomerPortalSession` function with specific parameters,\n * including the return URL. Upon successful creation of the session, it redirects the user\n * to the Stripe Customer Portal page. If the redirection fails, it logs the error message.\n */\n const handleCreateBillingPortalSession = () => {\n createStripeCustomerPortalSession(\n { returnUrl: \"/hire/settings/billing\" },\n {\n onSuccess: (data) => {\n window.logger(\"%c[AccountContainer] \", \"color: #1976D2\", { data });\n window.location.href = data.redirectUrl;\n },\n },\n );\n };\n\n /**\n * USED IF A CUSTOMER WANTS TO CHANGE THEIR SUBSCRIPTION\n */\n const handleChangeSubscriptionViaStripePortal = ({\n priceId,\n subscriptionItemId,\n }: {\n priceId: string;\n subscriptionItemId: string;\n }) => {\n changeSubscriptionViaStripePortal(\n {\n priceId,\n subscriptionItemId,\n returnUrl: \"/hire/settings/billing\",\n },\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[AccountBilling] created session for updating Subscription\",\n \"background: orange; color: #1976D2\",\n data,\n );\n window.location.href = data.redirectUrl;\n },\n onError: (error: any) => {\n const errorMessage =\n error?.data?.errors?.general?.[0] || \"Error while opening the Stripe portal.\";\n window.logger(\n \"%c[AccountBilling] ERROR creating Custom Stripe Billing Portal session\",\n \"background: orange; color: white\",\n error,\n );\n addToast({ title: errorMessage, kind: \"error\" });\n },\n },\n );\n };\n\n return (\n <>\n Subscription options\n \n {apolloBillingPrices.map((price) => {\n const currentPlan = currentSubscription?.plan?.id === price.id;\n return (\n \n \n

    {price.interval || price.recurring.interval}ly plan

    \n {currentPlan && Current plan}\n
    \n\n \n

    \n ${prettyBillingPrice(price)}\n \n per month
    \n billed {price.interval || price.recurring.interval}ly\n
    \n

    \n
    \n \n {/* */}\n {/* {canRenewSubscription ? (\n handleCreateSubscription(price.id)}\n loading={isLoadingCreateSubscription}\n >\n Restart subscription\n \n ) : (\n \n handleCreateCheckoutSubscriptionSession({\n priceId: price.id,\n planType: \"unlimited\",\n })\n }\n >\n Start subscription\n \n )} */}\n\n {currentPlan ? (\n \n \n\n {hasActiveSubscription &&\n !hasCoupon &&\n currentOrganization.stripePromoCode == undefined && (\n \n \n \n \n \n )}\n \n ) : (\n \n handleChangeSubscriptionViaStripePortal({\n priceId: price.id,\n subscriptionItemId: currentSubscriptionItemId,\n })\n }\n loading={isLoadingChangeSubscriptionViaStripePortal && !currentPlan}\n >\n Change subscription\n \n )}\n \n
    \n );\n })}\n
    \n\n {isOnLegacyPlan && (\n \n

    \n \n \n You're currently subscribed to{\" \"}\n {isOnLegacyPlan\n ? \"a legacy per-job pricing plan\"\n : `the ${\n currentPriceObject?.interval || currentPriceObject?.recurring?.interval\n }ly plan.`}{\" \"}\n {isTrialing && !hasCoupon && `Free for ${trialEndDays}.`}\n \n

    \n \n
    \n )}\n\n {/* {isOnLegacyPlan ? (\n \n \n
    \n {currentOrganization.plan === \"plan_simple_ats_per_job\" ? (\n <>\n

    \n {currentSubscription?.quantity} published job{\" \"}\n {pluralize(\"post\", currentSubscription?.quantity)}\n

    \n \n {isTrialing && !hasCoupon && `Free for ${trialEndDays} then `}$\n {currentProductPrice * (currentSubscription?.quantity || 0)} per month ($\n {currentProductPrice} each)\n \n \n ) : currentOrganization.plan === \"plan_simple_ats_paid\" ? (\n <>\n

    Unlimited published job posts

    \n \n ${currentProductPrice} per {currentPriceObject?.recurring.interval}\n \n \n ) : null}\n
    \n\n {isOnLegacyPlan && Current plan}\n
    \n
    \n ) : null} */}\n\n {hasCoupon ? (\n \n {/*

    {coupon.name}

    */}\n

    Promo code applied

    \n \n {coupon.percentOff}% off until {prettyDate(discount.end)}\n \n
    \n ) : null}\n \n );\n};\n\nexport default AccountBillingCurrentPlan;\n","/* eslint-disable @getify/proper-arrows/return */\nimport React, { useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport queryString from \"query-string\";\n\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nimport { useStripeCustomer, useBillingPrices } from \"@shared/queryHooks/useBilling\";\n\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\nimport AccountBillingNewPlanChoices from \"@ats/src/views/accountAdmin/accountBilling/AccountBillingNewPlanChoices\";\nimport AccountBillingCurrentPlan from \"./accountBilling/AccountBillingCurrentPlan\";\n\nfunction AccountBilling(props) {\n const { currentOrganization, currentUser } = useCurrentSession(); // TODO: use the reactQuery Organization instead of the Redux organization\n const { publishedJobsCount } = currentOrganization;\n\n /* Stripe Customer\n --===================================================-- */\n const { data: stripeCustomerData, isFetching: isFetchingStripeCustomer } = useStripeCustomer({\n refetchOnWindowFocus: false,\n });\n const customer = stripeCustomerData ? stripeCustomerData.customer : null;\n\n /* Current Organization Subscription Status\n --===================================================-- */\n const hasActiveSubscription = currentOrganization.stripeSubscriptionInGoodStanding === true;\n const hadAnActiveSubscriptionInThePast =\n currentOrganization.stripeSubscriptionInGoodStanding &&\n currentOrganization.publishedJobsCount > 0;\n const canRenewSubscription =\n hadAnActiveSubscriptionInThePast && currentOrganization.stripeDefaultPaymentMethodOnFile;\n const hasInactiveSubscription =\n currentOrganization.stripeSubscriptionStatus !== null &&\n !currentOrganization.stripeSubscriptionInGoodStanding;\n\n /* Billing Prices\n --===================================================-- */\n const { data: billingPricesData, isFetching: isFetchingBillingPrices } = useBillingPrices({\n refetchOnWindowFocus: false,\n });\n\n const billingPrices = billingPricesData != undefined ? billingPricesData.data : [];\n\n window.logger(\"%c[AccountBilling] render\", \"background: #EFDDEF; color: #1976D2\", {\n props,\n location,\n customer,\n currentOrganization,\n canRenewSubscription,\n publishedJobsCount,\n });\n\n React.useEffect(() => {\n const { checkout, session_id, redirect_url } = queryString.parse(props.location.search);\n\n window.logger(\"%c[AccountBilling] useEffect \", \"color: #1976D2\", {\n checkout,\n session_id,\n redirect_url,\n });\n\n // Used when adding a payment method using Checkout flow\n if (checkout === \"success\" && session_id != undefined) {\n // Track Conversion Event for Hire Plan Purchase\n // GTM will send to Google Analytics and to Google Ads\n window.dataLayer.push({\n event: \"hirePlanPurchase\",\n transactionId: Date.now().toString(),\n transactionValue: \"119\",\n userData: {\n email: currentUser.email,\n },\n });\n }\n }, []);\n\n // const manageBillingButton = (ctaCopy, mode = \"checkoutSession\") => (\n // \n // {ctaCopy}\n // \n // );\n\n const viewLink = (\n \n );\n\n if (isFetchingStripeCustomer || isFetchingBillingPrices) {\n return ;\n }\n\n return (\n <>\n \n \n {/* Subscription UI\n --===================================================-- */}\n\n {hasActiveSubscription ? (\n \n ) : (\n \n )}\n \n \n );\n}\n\nAccountBilling.propTypes = {};\n\nAccountBilling.defaultProps = {};\n\nexport default AccountBilling;\n\n/* Styled Components\n======================================================= */\nexport let Styled: any;\nStyled = {};\n\nStyled.Pricing = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_Pricing;\n ${[t.rounded.md, t.py(4), t.mt(8), t.px(4)]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n display: flex;\n justify-content: space-between;\n align-items: center;\n `;\n});\n\nStyled.PricingPrice = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_PricingPrice;\n display: flex;\n align-items: center;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n h3 {\n ${[t.text.bold, t.text.xxxl]}\n font-size: ${t.spacing[8]}\n }\n\n span {\n ${[t.text.xs, t.ml(2), t.mt(\"-px\"), t.mb(\"px\")]}\n line-height: 1.4;\n }\n `;\n});\n\nStyled.ButtonWrapper = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_ButtonWrapper;\n display: flex;\n align-items: center;\n\n button {\n ${t.ml(3)}\n }\n `;\n});\n\nStyled.Subscription = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_Subscription;\n ${[t.rounded.md, t.mt(4)]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n `;\n});\n\nStyled.SubscriptionRow = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_SubscriptionRow;\n ${[t.p(4)]};\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n h3 {\n ${[t.mb(1)]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n > div > span {\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n\nStyled.SubscripionActions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_SubscripionActions;\n display: flex;\n `;\n});\n\nStyled.SubscriptionMenu = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountBilling_SubscriptionMenu;\n ${[t.pr(3)]}\n `;\n});\n","import { useMutation, useQuery, useQueryClient } from \"react-query\";\nimport { apiGet, apiPost, apiPut, apiDelete } from \"@shared/queryHooks/api\";\n\nconst getChannelMessageTemplates = async () => {\n return await apiGet({ path: \"/channel_message_templates\" });\n};\n\nconst createChannelMessageTemplate = async (variables) => {\n return await apiPost({ path: \"/channel_message_templates\", variables });\n};\n\nconst updateChannelMessageTemplate = async (variables) => {\n return await apiPut({ path: `/channel_message_templates/${variables.id}`, variables });\n};\n\nconst deleteChannelMessageTemplate = async (variables) => {\n return await apiDelete({ path: `/channel_message_templates/${variables.id}`, variables });\n};\n\nconst getMailMerge = async ({ jobApplicationId, channelMessageTemplateId }) => {\n return await apiGet({\n path: `/job_applications/${jobApplicationId}/channel_message_templates_mail_merge/${channelMessageTemplateId}`,\n });\n};\n\n/* Hooks\n--===================================================-- */\nexport function useChannelMessageTemplates(): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n} {\n return useQuery(\"channelMessageTemplates\", getChannelMessageTemplates);\n}\n\nexport function useCreateChannelMessageTemplate() {\n const queryClient = useQueryClient();\n return useMutation(createChannelMessageTemplate, {\n // After success or failure, refetch the channelMessageTemplates query\n onSettled: () => {\n queryClient.invalidateQueries(\"channelMessageTemplates\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useUpdateChannelMessageTemplate() {\n const queryClient = useQueryClient();\n return useMutation(updateChannelMessageTemplate, {\n onSettled: () => {\n queryClient.invalidateQueries(\"channelMessageTemplates\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useDeleteChannelMessageTemplate() {\n const queryClient = useQueryClient();\n return useMutation(deleteChannelMessageTemplate, {\n onSettled: () => {\n queryClient.invalidateQueries(\"channelMessageTemplates\");\n },\n // throwOnError: true,\n });\n}\n\n/* Mail Merged Template\n--===================================================-- */\nexport function useMailMerge({\n jobApplicationId,\n channelMessageTemplateId,\n}): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n} {\n return useQuery(\n [\"mailmerge\", { jobApplicationId, channelMessageTemplateId }],\n () => getMailMerge({ jobApplicationId, channelMessageTemplateId }),\n {\n enabled: channelMessageTemplateId != undefined,\n },\n );\n}\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\n\nimport ProseMirrorEditor from \"@shared/ProseMirror/Editor\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nimport {\n useCreateChannelMessageTemplate,\n useUpdateChannelMessageTemplate,\n} from \"@shared/queryHooks/useChannelMessageTemplate\";\n\nimport { validateChannelMessageTemplate } from \"@shared/lib/validateWithYup\";\n\ntype Props = {\n onCancel: () => void;\n isEditing: boolean;\n channelMessageTemplate: { id; name; body };\n};\n\nfunction ChannelMessageTemplateModal(props: Props) {\n const { isEditing, onCancel } = props;\n const { dismissModalWithAnimation } = useModalContext();\n const [isDirty, setIsDirty] = React.useState(false);\n // const [selection, setSelection] = React.useState<\n // { start: any; end: any; textarea: any } | undefined\n // >();\n const {\n mutate: createChannelMessageTemplate,\n error: errorOnCreate,\n isLoading: isLoadingCreate,\n } = useCreateChannelMessageTemplate();\n const {\n mutate: updateChannelMessageTemplate,\n error: errorOnUpdate,\n isLoading: isLoadingUpdate,\n } = useUpdateChannelMessageTemplate();\n\n const [channelMessageTemplate, setChannelMessageTemplate] = useState(\n props.channelMessageTemplate,\n );\n\n const { name, body } = channelMessageTemplate;\n\n const editorRef = React.useRef(undefined);\n\n const [errors, setErrors] = useState([]);\n\n const handleChangeChannelMessageName = (name, value) => {\n setChannelMessageTemplate({ ...channelMessageTemplate, [name]: value });\n setErrors([]);\n setIsDirty(true);\n };\n\n const handleChangeEditorState = () => {\n setErrors([]);\n setIsDirty(true);\n };\n\n // window.logger(\"%c[ChannelMessageTemplateModal] render\", \"color: #1976D2\", {\n // props,\n // errorOnCreate,\n // errorOnUpdate,\n // });\n\n const handleCancel = () => {\n dismissModalWithAnimation(() => onCancel);\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n const { name } = channelMessageTemplate;\n const [isValid, validationErrors] = await validateChannelMessageTemplate({\n name,\n body: editorRef.current.serializedState(),\n });\n\n if (isValid) {\n isEditing ? handleUpdate() : handleCreate();\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleCreate = async () => {\n try {\n await createChannelMessageTemplate({\n ...channelMessageTemplate,\n body: editorRef.current.serializedState(),\n });\n // jobChannelMessageTemplate was successfully created\n // onCancel(); // this closes the modal\n dismissModalWithAnimation(() => onCancel);\n } catch (error) {\n // Uh oh, something went wrong\n window.logger(\n \"%c[ChannelMessageTemplateModal] handle error when CREATE Job ChannelMessageTemplate\",\n \"color: #FF7602\",\n {\n error,\n // error: error.response.data,\n },\n );\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n const handleUpdate = async () => {\n try {\n await updateChannelMessageTemplate({\n ...channelMessageTemplate,\n body: editorRef.current.serializedState(),\n });\n // jobChannelMessageTemplate was successfully updated\n // onCancel(); // this closes the modal\n dismissModalWithAnimation(() => onCancel);\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\n \"%c[ChannelMessageTemplateModal] handle error when updating Job ChannelMessageTemplate\",\n \"color: #FF7602\",\n {\n error,\n },\n );\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n const submitButton = (\n \n \n {isEditing ? \"Update template\" : \"Create template\"}\n \n \n \n );\n\n const editMessage = `Rename or change the content for this message template.`;\n\n return (\n \n \n {isEditing ? editMessage : \"Enter the name and content for a new message template.\"}\n \n \n \n\n \n \n \n \n \n );\n}\n\nChannelMessageTemplateModal.propTypes = {\n onCancel: PropTypes.func.isRequired,\n};\n\nexport default ChannelMessageTemplateModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.TemplateInput = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateModal_TemplateInput;\n > div {\n ${[t.mb(0)]}\n }\n textarea {\n min-height: 12rem;\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React from \"react\";\nimport { Droppable, DragDropContext } from \"react-beautiful-dnd\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nexport default function ChannelMessageTemplateList(props) {\n const { onDragEndChannelMessageTemplate } = props;\n\n const onDragEnd = (result) => {\n onDragEndChannelMessageTemplate(result);\n };\n\n return (\n \n \n {(provided) => (\n \n {props.children}\n {provided.placeholder} {/* Increases space for dropping */}\n \n )}\n \n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateList;\n ${[t.my(8), t.rounded.md]}\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n `;\n});\n","import React from \"react\";\nimport { Draggable } from \"react-beautiful-dnd\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport { useDeleteChannelMessageTemplate } from \"@shared/queryHooks/useChannelMessageTemplate\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\n\n/*\n--===================================================-- */\n\nexport default function ChannelMessageTemplateListItem(props) {\n const { channelMessageTemplate, index, openEditChannelMessageTemplateModal } = props;\n const { name, body, createdByUserFullName } = channelMessageTemplate;\n\n const handleOpenChannelMessageTemplateModal = (event) => {\n event.preventDefault();\n\n openEditChannelMessageTemplateModal(channelMessageTemplate);\n };\n\n const handleDeleteChannelMessageTemplate = async (event) => {\n event.preventDefault();\n\n props.deleteChannelMessageTemplate(channelMessageTemplate);\n\n // try {\n // await deleteChannelMessageTemplate(channelMessageTemplate);\n // } catch (error) {\n // // Uh oh, something went wrong\n // window.logger(\n // \"%c[ChannelMessageTemplateListItem] handle error when DESTROY Job ChannelMessageTemplate\",\n // \"color: #FF7602\",\n // {\n // error,\n // errorData: error.response.data,\n // },\n // );\n // }\n };\n\n return (\n \n {(provided) => {\n return (\n \n
    \n {name}\n\n \n Created by {createdByUserFullName != undefined ? createdByUserFullName : \"Polymer\"}\n \n\n {/* {`${\n Number(channelMessagesCount) > 0 ? channelMessagesCount : \"No\"\n } active job${\n Number(channelMessagesCount) === 1 ? \"\" : \"s\"\n }`} */}\n
    \n \n \n Edit template\n \n \n Delete template\n \n \n \n );\n }}\n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateListItem;\n ${[t.pl(4), t.pr(3), t.py(3), t.mb(\"-px\")]}\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n transition: background-color 0.2s ease, border-color 0.2s ease;\n &:first-of-type {\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top-left-radius: 0.4375rem;\n border-top-right-radius: 0.4375rem;\n }\n &:last-of-type {\n border-bottom-left-radius: 0.4375rem;\n border-bottom-right-radius: 0.4375rem;\n }\n &:hover,\n &:active {\n border-color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n z-index: 16;\n }\n `;\n});\n\nStyled.ChannelMessageTemplateText = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateListItem_ChannelMessageTemplateText;\n ${t.mb(1)}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.ChannelMessageTemplateDetails = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateListItem_ChannelMessageTemplateDetails;\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `;\n});\n","import React, { useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\n\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport FormSection from \"@ats/src/components/forms/FormSection\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport ChannelMessageTemplateModal from \"@ats/src/components/modals/ChannelMessageTemplateModal\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\n\nimport ChannelMessageTemplateList from \"@ats/src/views/accountAdmin/components/ChannelMessageTemplateList\";\nimport ChannelMessageTemplateListItem from \"@ats/src/views/accountAdmin/components/ChannelMessageTemplateListItem\";\n\nimport AlertModal from \"@ats/src/components/modals/AlertModal\";\n\nimport {\n useChannelMessageTemplates,\n useUpdateChannelMessageTemplate,\n useDeleteChannelMessageTemplate,\n} from \"@shared/queryHooks/useChannelMessageTemplate\";\nimport { moveFromIndexToIndex } from \"@shared/lib/utils\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nexport default function AccountChannelMessageTemplates(props) {\n const { status, data, error, isFetching } = useChannelMessageTemplates();\n const addToast = useToastContext();\n\n // throw new Error(\"Testing errors\");\n\n const { openModal, removeModal } = useModalContext();\n\n // window.logger(\"%c[AccountChannelMessageTemplates] render\", \"background: #EFDDEF; color: #1976D2\", {\n // props,\n // status,\n // });\n\n const {\n mutate: updateChannelMessageTemplate,\n isLoading: isLoadingUpdate,\n } = useUpdateChannelMessageTemplate();\n const {\n mutate: deleteChannelMessageTemplate,\n isLoading: isLoadingDelete,\n } = useDeleteChannelMessageTemplate();\n\n const templateItems = data != undefined ? data.items : [];\n const hasTemplateItems = data && data.items;\n\n const [channelMessageTemplates, setChannelMessageTemplates] = useState([templateItems]);\n\n React.useEffect(() => {\n window.logger(\n \"%c[AccountChannelMessageTemplates] useEffect\",\n \"background: #FF00EF; color: #1976D2\",\n data,\n );\n if (hasTemplateItems) {\n setChannelMessageTemplates(templateItems);\n }\n }, [hasTemplateItems]);\n\n const handleClickOnDeleteChannelMessageTemplate = (channelMessageTemplate) => {\n const deleteMessage = `You will no longer be able to use the ${channelMessageTemplate.name} template.`;\n\n const modal = (\n {\n removeModal();\n handleDeleteChannelMessageTemplate(channelMessageTemplate);\n }}\n onCancel={removeModal}\n isDestructiveConfirm={false}\n />\n );\n\n openModal(modal);\n };\n\n const handleDeleteChannelMessageTemplate = async (channelMessageTemplate) => {\n try {\n await deleteChannelMessageTemplate(channelMessageTemplate);\n // channelMessageTemplate was successfully deleted\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\n \"%c[ChannelMessageTemplateModal] handle error when deleting ChannelMessageTemplate\",\n {\n error,\n },\n );\n }\n };\n\n /* ChannelMessageTemplateModal\n --===================================================-- */\n const openNewChannelMessageTemplateModal = (event) => {\n event.preventDefault();\n openChannelMessageTemplateModal({}, false);\n };\n\n const openEditChannelMessageTemplateModal = (channelMessageTemplate) => {\n openChannelMessageTemplateModal(channelMessageTemplate, true);\n };\n\n const openChannelMessageTemplateModal = (channelMessageTemplate, isEditing) => {\n const modal = (\n \n );\n openModal(modal);\n };\n\n const onCloseModal = () => {\n // window.logger(\"%c[AccountChannelMessageTemplate] onCloseModal\", \"color: #1976D2\", {});\n removeModal();\n };\n\n /* onDragEndChannelMessageTemplate\n --===================================================-- */\n const onDragEndChannelMessageTemplate = (result: {\n destination: any;\n source: any;\n draggableId: number;\n }) => {\n window.logger(\n \"%c[AccountChannelMessageTemplates] onDragEndChannelMessageTemplate result\",\n \"color: #1976D2\",\n result,\n );\n // eslint-disable-next-line no-unused-vars\n const { destination, source, draggableId } = result;\n\n // If there is no destinatiom then do nothing\n if (!destination) return;\n\n // If the user drops the item back in its original spot then do nothing\n if (destination.droppableId === source.droppableId && destination.index === source.index)\n return;\n\n const channelMessageTemplate: { id: number } = data.items[source.index];\n const position: number = destination.index + 1;\n\n const newChannelMessageTemplates = moveFromIndexToIndex(\n channelMessageTemplates,\n source.index,\n destination.index,\n );\n\n setChannelMessageTemplates(newChannelMessageTemplates);\n\n updateChannelMessageTemplate({ ...channelMessageTemplate, position });\n };\n\n /* ChannelMessageTemplate nodes\n --===================================================-- */\n const channelMessageTemplateNodes = () => {\n // window.logger(\n // \"%c[AccountChannelMessageTemplates] channelMessageTemplateNodes\",\n // \"color: #19FFD2\",\n // { data },\n // );\n\n if (channelMessageTemplates.length === 0) {\n return ;\n } else {\n return channelMessageTemplates.map(\n (channelMessageTemplate: { name: string }, index: number) => {\n return (\n \n );\n },\n );\n }\n };\n\n // const alertModal = (\n // {\n // window.logger(\"%c[ACMT] MODAL CONFIRM\", \"color: #19FF02\", { props });\n // return removeModal;\n // }}\n // onCancel={() => {\n // window.logger(\"%c[ACMT] MODAL CANCEL\", \"color: #FF5F02\", { props });\n // return removeModal;\n // }}\n // />\n // );\n\n // const alertModal =
    Alert this!
    ;\n\n if (status === \"loading\") {\n return ;\n }\n\n const testingErrorBoundary = undefined;\n\n return (\n <>\n \n \n {/* {testingErrorBoundary.test} */}\n \n \n {channelMessageTemplateNodes()}\n \n\n \n \n\n {/* \n */}\n \n \n );\n}\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport FullModal from \"@ats/src/components/modals/FullModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\n\nimport ProseMirrorEditor from \"@shared/ProseMirror/Editor\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nimport {\n useCreateCommentTemplate,\n useUpdateCommentTemplate,\n} from \"@shared/queryHooks/useCommentTemplate\";\n\nimport { validateCommentTemplate } from \"@shared/lib/validateWithYup\";\n\ntype Props = {\n onCancel: () => void;\n isEditing: boolean;\n commentTemplate: { id; name; body };\n};\n\nfunction CommentTemplateModal(props: Props) {\n const { isEditing, onCancel } = props;\n const { dismissModalWithAnimation } = useModalContext();\n const [isDirty, setIsDirty] = React.useState(false);\n // const [selection, setSelection] = React.useState<\n // { start: any; end: any; textarea: any } | undefined\n // >();\n const {\n mutate: createCommentTemplate,\n error: errorOnCreate,\n isLoading: isLoadingCreate,\n } = useCreateCommentTemplate();\n const {\n mutate: updateCommentTemplate,\n error: errorOnUpdate,\n isLoading: isLoadingUpdate,\n } = useUpdateCommentTemplate();\n\n const [commentTemplate, setCommentTemplate] = useState(props.commentTemplate);\n\n const { name, body } = commentTemplate;\n\n const editorRef = React.useRef(undefined);\n\n const [errors, setErrors] = useState([]);\n\n const handleChangeCommentName = (name, value) => {\n setCommentTemplate({ ...commentTemplate, [name]: value });\n setErrors([]);\n setIsDirty(true);\n };\n\n const handleChangeEditorState = () => {\n setErrors([]);\n setIsDirty(true);\n };\n\n // window.logger(\"%c[CommentTemplateModal] render\", \"color: #1976D2\", {\n // props,\n // errorOnCreate,\n // errorOnUpdate,\n // });\n\n const handleCancel = () => {\n dismissModalWithAnimation(() => onCancel);\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n const { name } = commentTemplate;\n const [isValid, validationErrors] = await validateCommentTemplate({\n name,\n body: editorRef.current.serializedState(),\n });\n\n if (isValid) {\n isEditing ? handleUpdate() : handleCreate();\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleCreate = async () => {\n try {\n await createCommentTemplate({\n ...commentTemplate,\n body: editorRef.current.serializedState(),\n });\n // jobCommentTemplate was successfully created\n // onCancel(); // this closes the modal\n dismissModalWithAnimation(() => onCancel);\n } catch (error) {\n // Uh oh, something went wrong\n window.logger(\n \"%c[CommentTemplateModal] handle error when CREATE CommentTemplate\",\n \"color: #FF7602\",\n {\n error,\n // error: error.response.data,\n },\n );\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n const handleUpdate = async () => {\n try {\n await updateCommentTemplate({\n ...commentTemplate,\n body: editorRef.current.serializedState(),\n });\n // jobCommentTemplate was successfully updated\n // onCancel(); // this closes the modal\n dismissModalWithAnimation(() => onCancel);\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\n \"%c[CommentTemplateModal] handle error when updating Job CommentTemplate\",\n \"color: #FF7602\",\n {\n error,\n },\n );\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n return (\n \n \n \n

    {isEditing ? \"Edit template\" : \"Create new template\"}

    \n
    \n\n \n \n \n \n \n \n {isEditing ? \"Update template\" : \"Create template\"}\n \n \n \n
    \n
    \n );\n}\n\nCommentTemplateModal.propTypes = {\n onCancel: PropTypes.func.isRequired,\n};\n\nexport default CommentTemplateModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.FormHeader = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CommentTemplateModal_FormHeader;\n ${[t.px(4), t.pt(4), t.pb(3)]}\n border-bottom: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background: ${t.dark ? t.color.gray[800] : t.color.white};\n position: sticky;\n top: 0;\n\n h2 {\n ${[t.text.h2]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n `;\n});\n\nStyled.ModalContent = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CommentTemplateModal_ModalContent;\n display: flex;\n flex-direction: column;\n height: 100%;\n `;\n});\n\nStyled.Container = styled(FormContainer)((props) => {\n const t: any = props.theme;\n return css`\n label: CommentTemplateModal_Container;\n ${[t.px(4), t.py(5)]}\n flex-grow: 1;\n width: 100%;\n display: flex;\n flex-direction: column;\n overflow: auto;\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CommentTemplateModal_ButtonContainer;\n ${t.p(4)}\n position: sticky;\n bottom: 0;\n display: flex;\n border-bottom-left-radius: 0.4375rem;\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background: ${t.dark ? t.color.gray[800] : t.color.white};\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React from \"react\";\nimport { Droppable, DragDropContext } from \"react-beautiful-dnd\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nexport default function CommentTemplateList(props) {\n const { onDragEndCommentTemplate } = props;\n\n const onDragEnd = (result) => {\n onDragEndCommentTemplate(result);\n };\n\n return (\n \n \n {(provided) => (\n \n {props.children}\n {provided.placeholder} {/* Increases space for dropping */}\n \n )}\n \n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CommentTemplateList;\n ${[t.my(8), t.rounded.md]}\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n `;\n});\n","import React from \"react\";\nimport { Draggable } from \"react-beautiful-dnd\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nexport default function CommentTemplateListItem(props) {\n const { commentTemplate, index, openEditCommentTemplateModal } = props;\n const { name, body, createdByUserFullName } = commentTemplate;\n\n const handleOpenCommentTemplateModal = (event) => {\n event.preventDefault();\n\n openEditCommentTemplateModal(commentTemplate);\n };\n\n const handleDeleteCommentTemplate = async (event) => {\n event.preventDefault();\n\n props.deleteCommentTemplate(commentTemplate);\n\n // try {\n // await deleteCommentTemplate(commentTemplate);\n // } catch (error) {\n // // Uh oh, something went wrong\n // window.logger(\n // \"%c[CommentTemplateListItem] handle error when DESTROY Job CommentTemplate\",\n // \"color: #FF7602\",\n // {\n // error,\n // errorData: error.response.data,\n // },\n // );\n // }\n };\n\n return (\n \n {(provided) => {\n return (\n \n
    \n {name}\n \n Created by {createdByUserFullName != undefined ? createdByUserFullName : \"Polymer\"}\n \n\n {/* {`${\n Number(commentsCount) > 0 ? commentsCount : \"No\"\n } active job${\n Number(commentsCount) === 1 ? \"\" : \"s\"\n }`} */}\n
    \n \n \n Edit template\n \n \n Delete template\n \n \n \n );\n }}\n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CommentTemplateListItem;\n ${[t.pl(4), t.pr(3), t.py(3), t.mb(\"-px\")]}\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n transition: background-color 0.2s ease, border-color 0.2s ease;\n &:first-of-type {\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top-left-radius: 0.4375rem;\n border-top-right-radius: 0.4375rem;\n }\n &:last-of-type {\n border-bottom-left-radius: 0.4375rem;\n border-bottom-right-radius: 0.4375rem;\n }\n &:hover,\n &:active {\n border-color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n z-index: 16;\n }\n `;\n});\n\nStyled.CommentTemplateText = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CommentTemplateListItem_CommentTemplateText;\n ${t.mb(1)}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.CommentTemplateDetails = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: CommentTemplateListItem_CommentTemplateDetails;\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `;\n});\n","import React, { useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\n\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport FormSection from \"@ats/src/components/forms/FormSection\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nimport CommentTemplateModal from \"@ats/src/components/modals/CommentTemplateModal\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\n\nimport CommentTemplateList from \"@ats/src/views/accountAdmin/components/CommentTemplateList\";\nimport CommentTemplateListItem from \"@ats/src/views/accountAdmin/components/CommentTemplateListItem\";\n\nimport {\n useCommentTemplates,\n useUpdateCommentTemplate,\n useDeleteCommentTemplate,\n} from \"@shared/queryHooks/useCommentTemplate\";\nimport { moveFromIndexToIndex } from \"@shared/lib/utils\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nexport default function AccountCommentTemplates(props) {\n const { status, data, error } = useCommentTemplates();\n const addToast = useToastContext();\n\n // throw new Error(\"Testing errors\");\n\n const { openModal, removeModal } = useModalContext();\n\n // window.logger(\"%c[AccountCommentTemplates] render\", \"background: #EFDDEF; color: #1976D2\", {\n // props,\n // status,\n // });\n\n const { mutate: updateCommentTemplate, isLoading: isLoadingUpdate } = useUpdateCommentTemplate();\n const { mutate: deleteCommentTemplate, isLoading: isLoadingDelete } = useDeleteCommentTemplate();\n\n const templateItems = data != undefined ? data.items : [];\n const hasTemplateItems = data && data.items;\n\n const [commentTemplates, setCommentTemplates] = useState([templateItems]);\n\n React.useEffect(() => {\n window.logger(\n \"%c[AccountCommentTemplates] useEffect\",\n \"background: #FF00EF; color: #1976D2\",\n data,\n templateItems,\n );\n if (hasTemplateItems) {\n setCommentTemplates(templateItems);\n }\n }, [hasTemplateItems]);\n\n const handleClickOnDeleteCommentTemplate = (commentTemplate) => {\n const deleteComment = `You will no longer be able to use the ${commentTemplate.name} template.`;\n\n const modal = (\n {\n removeModal();\n handleDeleteCommentTemplate(commentTemplate);\n }}\n onCancel={removeModal}\n isDestructiveConfirm={false}\n />\n );\n\n openModal(modal);\n };\n\n const handleDeleteCommentTemplate = async (commentTemplate) => {\n try {\n await deleteCommentTemplate(commentTemplate);\n // commentTemplate was successfully deleted\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"%c[CommentTemplateModal] handle error when deleting CommentTemplate\", {\n error,\n });\n }\n };\n\n /* CommentTemplateModal\n --===================================================-- */\n const openNewCommentTemplateModal = (event) => {\n event.preventDefault();\n openCommentTemplateModal({}, false);\n };\n\n const openEditCommentTemplateModal = (commentTemplate) => {\n openCommentTemplateModal(commentTemplate, true);\n };\n\n const openCommentTemplateModal = (commentTemplate, isEditing) => {\n const modal = (\n \n );\n openModal(modal);\n };\n\n const onCloseModal = () => {\n // window.logger(\"%c[AccountCommentTemplate] onCloseModal\", \"color: #1976D2\", {});\n removeModal();\n };\n\n /* onDragEndCommentTemplate\n --===================================================-- */\n const onDragEndCommentTemplate = (result: {\n destination: any;\n source: any;\n draggableId: number;\n }) => {\n window.logger(\n \"%c[AccountCommentTemplates] onDragEndCommentTemplate result\",\n \"color: #1976D2\",\n result,\n );\n // eslint-disable-next-line no-unused-vars\n const { destination, source, draggableId } = result;\n\n // If there is no destinatiom then do nothing\n if (!destination) return;\n\n // If the user drops the item back in its original spot then do nothing\n if (destination.droppableId === source.droppableId && destination.index === source.index)\n return;\n\n const commentTemplate: { id: number } = data.items[source.index];\n const position: number = destination.index + 1;\n\n const newCommentTemplates = moveFromIndexToIndex(\n commentTemplates,\n source.index,\n destination.index,\n );\n\n setCommentTemplates(newCommentTemplates);\n\n updateCommentTemplate({ ...commentTemplate, position });\n };\n\n /* CommentTemplate nodes\n --===================================================-- */\n const commentTemplateNodes = () => {\n // window.logger(\n // \"%c[AccountCommentTemplates] commentTemplateNodes\",\n // \"color: #19FFD2\",\n // { data },\n // );\n\n if (commentTemplates.length === 0) {\n return ;\n } else {\n return commentTemplates.map((commentTemplate: { name: string }, index: number) => {\n return (\n \n );\n });\n }\n };\n\n if (status === \"loading\") {\n return ;\n }\n\n const testingErrorBoundary = undefined;\n\n const viewLink = (\n \n View docs\n \n \n );\n\n return (\n <>\n \n \n {/* {testingErrorBoundary.test} */}\n \n \n {commentTemplateNodes()}\n \n\n \n \n \n \n );\n}\n","import { useState } from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport NavBar from \"@shared/components/NavBar\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport NavItem from \"@ats/src/components/shared/NavItem\";\n\nimport UnsavedChangesGuard from \"@ats/src/components/shared/UnsavedChangesGuard\";\n\nimport AccountTeam from \"@ats/src/views/accountAdmin/AccountTeam\";\nimport AccountOrganizationDetails from \"@ats/src/views/accountAdmin/AccountOrganizationDetails\";\nimport AccountIntegrationsContainer from \"@ats/src/views/accountAdmin/accountIntegrations/AccountIntegrationsContainer\";\nimport AccountJobBoardContainer from \"@ats/src/views/accountAdmin/accountJobBoard/AccountJobBoardContainer\";\nimport AccountJobCategories from \"@ats/src/views/accountAdmin/AccountJobCategories\";\nimport AccountPreferences from \"@ats/src/views/accountAdmin/AccountPreferences\";\nimport AccountBillingOld from \"@ats/src/views/accountAdmin/AccountBillingOld\";\nimport AccountBillingNew from \"@ats/src/views/accountAdmin/AccountBillingNew\";\nimport AccountChannelMessageTemplates from \"@ats/src/views/accountAdmin/AccountChannelMessageTemplates\";\nimport AccountCommentTemplates from \"@ats/src/views/accountAdmin/AccountCommentTemplates\";\n\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\nimport { useGetMe } from \"@shared/queryHooks/useMe\";\nimport { useOrganization } from \"@shared/queryHooks/useOrganization\";\n\nimport { useFeatureFlipper, Features } from \"@ats/src/components/shared/FeatureFlipper\";\n\nfunction AccountContainer(props: any) {\n // window.logger(\"%c[AccountContainer] \", \"background: #EFDDEF; color: #1976D2\", props);\n const { history, loading } = props;\n const { currentUser, currentOrganizationUser, currentOrganization } = useCurrentSession();\n const [isDirty, setIsDirty] = useState(false);\n const { data: me, isLoading: isLoadingGetMe } = useGetMe({});\n const { data: organization, isLoading: isLoadingOrganization } = useOrganization(\n currentUser.organizationId,\n );\n\n const [returnPathname] = useState(\n history && history.location.state ? history.location.state.orginalPathname : \"/jobs\",\n );\n\n const planBasedBillingEnabled = useFeatureFlipper()({ feature: Features.PLAN_BASED_BILLING });\n\n window.logger(\"%c[AccountContainer] render\", \"color: #19FFD2; background: green;\", {\n history,\n me,\n organizationId: me.organizationId,\n returnPathname,\n });\n\n const memberPathNames = {\n \"/hire/settings/message_templates\": \"Message templates\",\n \"/hire/settings/review_templates\": \"Review templates\",\n \"/hire/settings/preferences\": \"User preferences\",\n };\n\n const adminUserPathNames = {\n \"/hire/settings/preferences\": \"User preferences\",\n };\n\n const adminOrgPathNames = {\n \"/hire/settings/organization\": \"Organization\",\n \"/hire/settings/team\": \"Team\",\n \"/hire/settings/message_templates\": \"Message templates\",\n \"/hire/settings/review_templates\": \"Review templates\",\n \"/hire/settings/jobboard\": \"Job board\",\n \"/hire/settings/categories\": \"Job categories\",\n \"/hire/settings/integrations\": \"Integrations\",\n \"/hire/settings/billing\": \"Plan & billing\",\n };\n\n const accountLinks = (pathNames) =>\n Object.keys(pathNames)\n .map((url, index) => {\n let title = pathNames[url],\n key = `account-menu-item-${index}`;\n return ;\n })\n .filter((item) => item);\n\n const getNavItems = () => {\n if (currentOrganizationUser.isAdmin) {\n return (\n <>\n {accountLinks(adminUserPathNames)}\n \n Admin\n {accountLinks(adminOrgPathNames)}\n \n );\n } else return {accountLinks(memberPathNames)};\n };\n\n return (\n <>\n \n \n {getNavItems()}\n\n {\n window.logger(\n \"%c[AccountContainer] UnsavedChangesGuard navigate\",\n \"color: #1976D2\",\n pathname,\n );\n setIsDirty(false);\n props.history.push(pathname);\n }}\n />\n\n \n {loading ? (\n \n ) : (\n \n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n (\n // \n \n )}\n />\n (\n \n )}\n />\n \n planBasedBillingEnabled ? (\n \n ) : (\n \n )\n }\n />\n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n \n )}\n \n \n \n );\n}\n\nexport default AccountContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div`\n label: AccountContainer;\n display: flex;\n height: 100%;\n overflow-y: hidden;\n`;\n\nStyled.Sidebar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountContainer_Sidebar;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n flex-direction: column;\n border-right: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n width: 40vw;\n flex-shrink: 0;\n\n ${t.mq[\"lg\"]} {\n width: 25%;\n flex-shrink: 1;\n }\n `;\n});\n\nStyled.List = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobStagesContainer_List;\n margin-top: 0.375rem;\n `;\n});\n\nStyled.Divider = styled.hr((props) => {\n const t: any = props.theme;\n return css`\n label: AccountContainer_Divider;\n ${[t.mb(0)]}\n margin-top: 2.25rem;\n width: 100%;\n border: 0;\n `;\n});\n\nStyled.Admin = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountContainer_Admin;\n ${[t.px(4), t.text.xs, t.text.bold, t.mb(1)]}\n color: ${t.dark ? t.color.gray[300] : t.color.black}\n `;\n});\n\nStyled.Content = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountContainer_Content;\n overflow-y: auto;\n position: relative;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n\n ${t.mq[\"lg\"]} {\n width: 75%;\n flex-shrink: 1;\n }\n `;\n});\n","import { useQuery, useInfiniteQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiGet, apiDelete, apiPut } from \"@shared/queryHooks/api\";\n\nconst getNotifications = async (page) => {\n // window.logger(\"%c[useNotification] getNotifications\", \"color: #1976D2\", { page });\n return await apiGet({ path: `/me/job_application_notifications?page=${page}` });\n};\n\nconst getInfiniteNotifications = async ({\n filter,\n job_id,\n page = null,\n}: {\n filter?: string;\n job_id?: number;\n page?: number;\n}) => {\n // const getInfiniteNotifications = async ({ filter = null, job_id = null }, page = 1) => {\n // window.logger(\"%c[useNotification] getInfiniteNotifications\", \"color: #FF76D2\", {\n // page,\n // filter,\n // job_id,\n // });\n return await apiGet({\n path: `/me/job_application_notifications?page=${page}&filter=${filter || \"\"}&job_id=${\n job_id || \"\"\n }`,\n });\n // return async (stuff) => {\n // window.logger(\"%c[USE INFINITE QUERY] stuff\", \"color: #1976D2\", { stuff });\n // return await apiGet({ path: `/me/job_application_notifications?page=${page}` });\n // };\n};\n\nconst getNotificationsHasUnread = async () => {\n return await apiGet({ path: `/me/job_application_notifications/has_unread` });\n};\n\nconst getNotificationsSummaryCounts = async () => {\n return await apiGet({\n path: `/me/job_application_notifications/summary_counts`,\n });\n};\n\nconst markNotificationAsRead = async (variables) => {\n return await apiPut({\n path: `/me/job_application_notifications/${variables.id}/mark_read`,\n variables: {},\n });\n};\n\nconst markAllNotificationsAsRead = async (variables = {}) => {\n return await apiPut({ path: `/me/job_application_notifications/mark_all_read`, variables });\n};\n\nconst markNotificationAsUnread = async (variables) => {\n return await apiPut({\n path: `/me/job_application_notifications/${variables.id}/mark_unread`,\n variables,\n });\n};\n\nconst deleteNotification = async (variables) => {\n return await apiDelete({\n path: `/me/job_application_notifications/${variables.id}`,\n variables: {},\n });\n};\n\nconst deleteAllNotifications = async (variables = {}) => {\n window.logger(\"%c[useNotification] deleteAllNotifications\", \"color: #1976D2\", { variables });\n return await apiPut({ path: `/me/job_application_notifications/dismiss_all`, variables });\n};\n\n/* Hooks\n--===================================================-- */\nfunction useNotifications(\n page = 1,\n): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isSuccess: boolean;\n isLoading: boolean;\n} {\n return useQuery([\"notifications\", page], () => getNotifications(page));\n}\n\nfunction usePaginatedNotifications(\n page = 1,\n): {\n status: any;\n data: any;\n resolvedData?: any;\n error: any;\n isFetching: boolean;\n isSuccess: boolean;\n isLoading: boolean;\n} {\n return useQuery([\"notifications\", page], () => getNotifications(page), {\n keepPreviousData: true,\n });\n}\n\nfunction useInfiniteNotifications({\n filter,\n job_id,\n}): {\n data: any;\n error: any;\n isFetching: boolean;\n isSuccess: boolean;\n isLoading: boolean;\n isFetchingNextPage?: string | boolean; // isFetchingMore\n fetchNextPage: () => any; // fetchMore\n hasNextPage?: boolean; // canFetchMore\n} {\n const queryClient = useQueryClient();\n return useInfiniteQuery(\n [\"infiniteNotifications\", `${filter}-${job_id}`],\n ({ pageParam = 1 }) => getInfiniteNotifications({ filter, job_id, page: pageParam }),\n {\n // ...queryOptions,\n onSettled: () => {\n queryClient.invalidateQueries(\"notificationsHasUnread\");\n },\n getNextPageParam: (lastPage, allPages) => {\n return allPages.length + 1;\n },\n },\n );\n}\n\nfunction useNotificationsHasUnread(): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isSuccess: boolean;\n isLoading: boolean;\n} {\n return useQuery([\"notificationsHasUnread\"], () => getNotificationsHasUnread());\n}\n\nfunction useNotificationsSummaryCounts(): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isSuccess: boolean;\n isLoading: boolean;\n} {\n return useQuery([\"notificationsSummaryCounts\"], () => getNotificationsSummaryCounts());\n}\n\nfunction useMarkNotificationAsRead() {\n const queryClient = useQueryClient();\n return useMutation(markNotificationAsRead, {\n onSettled: () => {\n queryClient.invalidateQueries(\"notifications\");\n queryClient.invalidateQueries(\"infiniteNotifications\");\n queryClient.invalidateQueries(\"notificationsHasUnread\");\n queryClient.invalidateQueries(\"notificationsSummaryCounts\");\n },\n // throwOnError: true,\n });\n}\n\nfunction useMarkAllNotificationsAsRead() {\n const queryClient = useQueryClient();\n return useMutation(markAllNotificationsAsRead, {\n onSettled: () => {\n queryClient.invalidateQueries(\"notifications\");\n queryClient.invalidateQueries(\"infiniteNotifications\");\n queryClient.invalidateQueries(\"notificationsHasUnread\");\n queryClient.invalidateQueries(\"notificationsSummaryCounts\"); // Maybe don't need this at all anymore\n },\n // throwOnError: true,\n });\n}\n\nfunction useMarkNotificationAsUnread() {\n const queryClient = useQueryClient();\n return useMutation(markNotificationAsUnread, {\n onSettled: () => {\n queryClient.invalidateQueries(\"notifications\");\n queryClient.invalidateQueries(\"infiniteNotifications\");\n queryClient.invalidateQueries(\"notificationsHasUnread\");\n queryClient.invalidateQueries(\"notificationsSummaryCounts\"); // Maybe don't need this at all anymore\n },\n // throwOnError: true,\n });\n}\n\nexport function useDeleteNotification() {\n const queryClient = useQueryClient();\n return useMutation(deleteNotification, {\n onSettled: () => {\n // queryClient.invalidateQueries(\"notifications\");\n queryClient.invalidateQueries(\"infiniteNotifications\");\n queryClient.invalidateQueries(\"notificationsHasUnread\");\n queryClient.invalidateQueries(\"notificationsSummaryCounts\");\n },\n // throwOnError: true,\n });\n}\n\nfunction useDismissAllNotifications() {\n const queryClient = useQueryClient();\n return useMutation(deleteAllNotifications, {\n onSettled: () => {\n // queryClient.invalidateQueries(\"notifications\");\n // queryClient.invalidateQueries(\"infiniteNotifications\");\n // queryClient.invalidateQueries(\"notificationsHasUnread\");\n // queryClient.invalidateQueries(\"notificationsSummaryCounts\");\n },\n // throwOnError: true,\n });\n}\n\nexport {\n useNotifications,\n usePaginatedNotifications,\n useInfiniteNotifications,\n useNotificationsHasUnread,\n useNotificationsSummaryCounts,\n useMarkNotificationAsRead,\n useMarkNotificationAsUnread,\n useMarkAllNotificationsAsRead,\n useDismissAllNotifications,\n};\n","import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport { timeAgoInWordsShort } from \"@shared/lib/time\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nimport {\n useDeleteNotification,\n useMarkNotificationAsRead,\n useMarkNotificationAsUnread,\n} from \"@shared/queryHooks/useNotification\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\n\nconst NotificationListItem = React.forwardRef(\n (\n props: {\n history: any;\n style: any;\n // kind: string;\n // unreadCount: number;\n activity: {\n id: number;\n key: string;\n unread?: boolean;\n createdAtTimestamp: number;\n // parameters: {\n // candidate?: any;\n // user?: any;\n // jobTitle?: string;\n // relativeUrl?: string;\n // jobApplicationUrl?: string;\n // createdAtTimestamp: number;\n // updatedAtTimestamp: number;\n // candidateFullName?: string;\n // };\n parameters: any;\n };\n },\n ref,\n ) => {\n const { history, activity } = props;\n const { id, unread, parameters, createdAtTimestamp } = activity;\n\n const [isDismissing, setIsDismissing] = React.useState(false);\n\n // window.logger(\n // \"%c[NotificationListItem] render\",\n // \"color: #18FF23; background-color: #663234\",\n // props,\n // );\n\n const {\n mutate: markNotificationAsRead,\n error: errorOnMarkRead,\n isLoading: isLoadingMarkRead,\n } = useMarkNotificationAsRead();\n\n const {\n mutate: markNotificationAsUnread,\n error: errorOnMarkUnread,\n isLoading: isLoadingMarkUnread,\n } = useMarkNotificationAsUnread();\n\n const {\n mutate: deleteNotification,\n error: errorOnDelete,\n isLoading: isLoadingDelete,\n } = useDeleteNotification();\n\n React.useEffect(() => {\n if (isLoadingDelete) {\n setIsDismissing(true);\n }\n }, [isLoadingDelete]);\n\n const onClickMarkAsRead = (event) => {\n event.preventDefault();\n\n window.logger(\"%c[NotificationListItem] onClickMarkAsRead\", \"color: #1976D2\", { id });\n\n markNotificationAsRead({ id });\n };\n\n const onClickMarkAsUnread = (event) => {\n event.preventDefault();\n markNotificationAsUnread({ id });\n };\n\n const markAsReadAndNavigate = (url) => {\n markNotificationAsRead(\n { id },\n {\n onSuccess: () => {\n history.push(url);\n },\n },\n );\n };\n\n const onClickDelete = (event) => {\n event.stopPropagation();\n event.preventDefault();\n\n window.logger(\"%c[NotificationListItem] onClickDelete\", \"color: #1976D2\", { id });\n\n deleteNotification(\n { id },\n {\n onSuccess: (data) => {\n window.logger(\"%c[NotificationListItem] onSuccess onClickDelete\", \"color: #1976D2\", {\n data,\n });\n },\n onError: () => {\n setIsDismissing(false);\n },\n },\n );\n };\n\n let navigationUrl, timestamp, content;\n switch (activity.key) {\n case \"new_job_application\":\n // timestamp = timeAgoInWordsShort(parameters.createdAtTimestamp);\n timestamp = timeAgoInWordsShort(createdAtTimestamp);\n navigationUrl = parameters.navigationUrl;\n content = (\n <>\n \n
    \n

    {parameters.candidateFullName}

    \n \n New candidate\n \n {parameters.jobTitle}\n \n
    \n \n );\n break;\n case \"new_comment\":\n timestamp = timeAgoInWordsShort(createdAtTimestamp);\n navigationUrl = parameters.navigationUrl;\n content = (\n <>\n \n
    \n

    {parameters.candidateFullName}

    \n \n New comment\n \n {parameters.jobTitle}\n \n
    \n \n );\n break;\n case \"new_review\":\n timestamp = timeAgoInWordsShort(createdAtTimestamp);\n navigationUrl = parameters.navigationUrl;\n content = (\n <>\n \n
    \n

    {parameters.candidateFullName}

    \n \n New review\n \n {parameters.jobTitle}\n \n
    \n \n );\n break;\n case \"new_inbound_channel_message\":\n case \"new_outbound_channel_message\":\n // if (parameters.candidate == undefined) {\n // return null;\n // }\n // timestamp = timeAgoInWordsShort(parameters.createdAtTimestamp);\n timestamp = timeAgoInWordsShort(createdAtTimestamp);\n navigationUrl = parameters.navigationUrl;\n content = (\n <>\n \n
    \n

    {parameters.candidateFullName}

    \n \n {/* {unreadCount > 1 ? `${unreadCount} ` : \"\"}New message{unreadCount > 1 ? \"s\" : \"\"} */}\n New message\n \n {parameters.jobTitle}\n \n
    \n \n );\n break;\n // case \"channel_message.new.outbound\":\n // // if (parameters.candidate == undefined) {\n // // return null;\n // // }\n // timestamp = timeAgoInWordsShort(parameters.createdAtTimestamp);\n // navigationUrl = parameters.messagesUrl;\n // content = (\n // <>\n // \n //
    \n //

    {parameters.candidateFullName}

    \n // \n // {parameters.user.fullName} Sent message\n // \n // {parameters.jobTitle}\n // \n //
    \n // \n // );\n // break;\n default:\n return null;\n }\n\n return (\n markAsReadAndNavigate(navigationUrl)}\n >\n \n \n {content}\n \n \n {timestamp}\n \n \n {unread ? (\n \n ) : (\n \n )}\n \n \n \n );\n },\n);\n\nNotificationListItem.displayName = \"NotificationListItem\";\n\nNotificationListItem.defaultProps = {};\n\nexport default NotificationListItem;\n\n/* Styled Components\n======================================================= */\n\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationListItem;\n ${[t.pl(4), t.pr(3), t.py(3)]}\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n `;\n});\n\nStyled.Badge = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n ${[t.h(2), t.w(2), t.mr(2), t.mt(1), t.rounded.md]}\n background-color: ${props.unread\n ? t.color.red[500]\n : t.dark\n ? t.color.gray[700]\n : t.color.gray[200]};\n transition: background-color 0.2s ease;\n `;\n});\n\nStyled.Info = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationListItem_Info;\n display: flex;\n h3 {\n ${t.mb(1)}\n color: ${t.dark ? t.color.gray[200] : t.color.black}\n }\n > svg {\n ${t.mr(2)}\n color: ${t.dark ? t.color.gray[200] : t.color.black}\n }\n `;\n});\n\nStyled.Seperator = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationListItem_Seperator;\n ${t.mx(1)}\n `;\n});\n\nStyled.Timestamp = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationListItem_Timestamp;\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]}\n `;\n});\n\nStyled.Actions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationListItem_Actions;\n display: flex;\n align-items: center;\n transition: opacity 0.2s ease;\n > button {\n ${[t.mr(3), t.ml(6)]}\n }\n `;\n});\n\nStyled.Context = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationListItem_Context;\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]}\n `;\n});\n","/* eslint-disable @getify/proper-arrows/return */\n\nimport React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport {\n useMarkAllNotificationsAsRead,\n useDismissAllNotifications,\n} from \"@shared/queryHooks/useNotification\";\nimport { animated, useTransition } from \"react-spring\";\n\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport NotificationListItem from \"@ats/src/views/notifications/NotificationListItem\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nfunction NotificationList(props: {\n history: any;\n fetchMoreNotifications: () => any;\n isLoadingInfiniteNotifications: boolean;\n isFetchingInfiniteNotifications: boolean;\n data: { pages: [{ meta: any; items: [] }]; pageParams: any[] };\n searchVariables: { filter?: string; job_id?: number };\n canFetchMore: boolean;\n isFetchingMore: string | boolean;\n}) {\n const {\n history,\n data,\n searchVariables,\n isLoadingInfiniteNotifications,\n isFetchingInfiniteNotifications,\n fetchMoreNotifications,\n } = props;\n\n const {\n mutate: markAllNotificationsAsRead,\n error: errorOnMarkAllRead,\n isLoading: isLoadingMarkAllRead,\n } = useMarkAllNotificationsAsRead();\n const {\n mutate: dismissAllNotifications,\n error: errorOnDismissAll,\n isLoading: isLoadingDismissAll,\n } = useDismissAllNotifications();\n\n const [refMap] = useState(() => new WeakMap());\n\n const notificationData =\n data != undefined\n ? data.pages.reduce((accumulator, currentValue) => {\n return accumulator.concat(currentValue.items);\n }, [])\n : [];\n\n const totalCount = data != undefined ? data.pages[0].meta.count : 0;\n\n const hasNotificationData = notificationData.length > 0;\n\n const pageTitle =\n searchVariables.filter === \"new_candidates\"\n ? \"New candidates\"\n : searchVariables.filter === \"new_messages\"\n ? \"New messages\"\n : searchVariables.filter === \"new_activity\"\n ? \"New activity\"\n : searchVariables.job_id != undefined\n ? \"Job notifications\"\n : \"All notifications\";\n\n const transitions = useTransition(notificationData, {\n from: (item) => async (next) => {\n return await next({\n opacity: 1,\n height: refMap.get(item) ? refMap.get(item).offsetHeight : 0,\n overflow: \"visible\",\n marginBottom: -1,\n });\n },\n enter: (item) => async (next) => {\n // window.logger(\"%c[NotificationList] useTransition enter\", \"color: #1976D2\", { item });\n return await next({\n opacity: 1,\n height: refMap.get(item) ? refMap.get(item).offsetHeight : 0,\n overflow: \"visible\",\n marginBottom: -1,\n });\n },\n leave: {\n opacity: 0,\n height: 0,\n overflow: \"hidden\",\n marginBottom: 0,\n },\n config: {\n tension: 320,\n friction: 36,\n },\n });\n\n // window.logger(\"%c[NotificationList] render\", \"color: maroon;\", {\n // data,\n // notificationData,\n // transitions,\n // });\n\n const onClickMarkAllRead = (event) => {\n event.preventDefault();\n markAllNotificationsAsRead(searchVariables);\n };\n\n const onClickDismissAll = (event) => {\n event.preventDefault();\n dismissAllNotifications(searchVariables);\n };\n\n if (isLoadingInfiniteNotifications) {\n return (\n <>\n \n \n );\n }\n\n const notifications =\n transitions.length === 0\n ? []\n : transitions((props, item) => {\n // window.logger(\"%c[NotificationList] notifications\", \"background-color: #1fF6D2\", {\n // item,\n // props,\n // key,\n // index,\n // });\n\n return (\n \n ref && refMap.set(item, ref)}\n history={history}\n />\n \n );\n });\n\n return (\n \n \n {pageTitle}\n \n {hasNotificationData && (\n \n \n \n \n )}\n \n \n {hasNotificationData ? (\n <>\n {notifications}\n\n {notificationData.length < totalCount && (\n \n {`Showing 1-${notificationData.length} of ${totalCount} notifications.`}\n \n \n )}\n \n ) : (\n \n )}\n \n );\n}\n\nNotificationList.propTypes = {};\n\nNotificationList.defaultProps = {};\n\nexport default NotificationList;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationList;\n ${[t.px(4), t.pt(4), t.pb(12)]}\n display: flex;\n flex-direction: column;\n `;\n});\n\nStyled.Header = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationList_Title;\n ${[t.mb(4)]}\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n `;\n});\n\nStyled.Title = styled.h2((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationList_Title;\n ${[t.text.h2]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n `;\n});\n\nStyled.Actions = styled.h2((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationList_Title;\n ${[t.mr(3), t.pr(\"px\")]}\n position: absolute;\n right: 0;\n display: flex;\n align-items: center;\n button {\n ${t.mr(3)}\n }\n `;\n});\n\nStyled.List = styled.ul((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationList_List;\n ${[t.rounded.md]}\n list-style-type: none;\n `;\n});\n\nStyled.ListItemWrapper = styled(animated.li)((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationList_ListItemWrapper;\n ${t.mb(\"-px\")}\n > div {\n position: relative;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n transition: border-color 0.2s ease, border-radius 0.2s ease, margin 0.2s ease;\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n &:first-of-type > div {\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top-left-radius: 0.4375rem;\n border-top-right-radius: 0.4375rem;\n }\n &:last-of-type > div {\n border-bottom-left-radius: 0.4375rem;\n border-bottom-right-radius: 0.4375rem;\n }\n &:hover > div,\n &:active > div {\n border-color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n z-index: 16;\n }\n `;\n});\n\nStyled.Pagination = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationList_Pagination;\n ${[t.mt(5), t.pr(\"px\")]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n align-items: center;\n button {\n ${t.ml(2)};\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport queryString from \"query-string\";\n\nimport {\n useInfiniteNotifications,\n useNotificationsSummaryCounts,\n} from \"@shared/queryHooks/useNotification\";\n\nimport NavBar from \"@shared/components/NavBar\";\nimport NavItem from \"@ats/src/components/shared/NavItem\";\nimport NotificationList from \"@ats/src/views/notifications/NotificationList\";\nimport { useFeatureFlipper } from \"@ats/src/components/shared/FeatureFlipper\";\nimport { useJobs, useAllJobs } from \"@shared/queryHooks/useJob\";\n\nfunction NotificationsContainer(props: any) {\n window.logger(\"%c[NotificationsContainer] \", \"background: #EFDDEF; color: #1976D2\", props);\n const { history, location } = props;\n const { filter, job_id } = queryString.parse(location.search);\n const {\n data: jobsData,\n refetch: refetchJobs,\n isLoading: isLoadingJobs,\n isFetching: isFetchingJobs,\n } = useJobs({\n refetchOnWindowFocus: false,\n });\n\n const summaryCountsEnabled = useFeatureFlipper()({ feature: \"NOTIFICATION_SUMMARY_COUNTS\" });\n\n const [searchVariables, setSearchVariables] = React.useState({ filter: filter, job_id: job_id });\n const [returnPathname] = React.useState(\n history && history.location.state ? history.location.state.orginalPathname : \"/jobs\",\n );\n\n React.useEffect(() => {\n // window.logger(\"%c[NotificationsContainer] useEffect\", \"color: #19FFD2; background: red;\", {\n // returnPathname,\n // location,\n // history,\n // });\n let mounted = true;\n const { filter, job_id } = queryString.parse(location.search);\n if (mounted) {\n setSearchVariables({ filter, job_id });\n }\n\n return () => {\n mounted = false;\n };\n }, [location]);\n\n const {\n data,\n isFetching: isFetchingInfiniteNotifications,\n isSuccess: isSuccessInfiniteNotifications,\n isLoading: isLoadingInfiniteNotifications,\n // isFetchingMore,\n // canFetchMore,\n // fetchMore,\n isFetchingNextPage,\n fetchNextPage,\n hasNextPage,\n } = useInfiniteNotifications(searchVariables);\n\n const {\n data: summaryCounts,\n isFetching: isFetchingNotificationsSummaryCounts,\n isSuccess: isSuccessNotificationsSummaryCounts,\n isLoading: isLoadingNotificationsSummaryCounts,\n } = useNotificationsSummaryCounts();\n\n /* Notification Counts\n --===================================================-- */\n const totalNotifications = summaryCounts?.total || 0;\n const countNewJobApplications = summaryCounts?.byKind?.newJobApplication || 0;\n const countNewChannelMessages =\n (summaryCounts?.byKind?.newInboundChannelMessage || 0) +\n (summaryCounts?.byKind?.newOutboundChannelMessage || 0);\n const countNewReviews = summaryCounts?.byKind?.newReview || 0;\n const countNewComments = summaryCounts?.byKind?.newComment || 0;\n const countNewActivity = countNewReviews + countNewComments;\n\n /* Helpers\n --===================================================-- */\n // const returnPathname =\n // history && history.location.state ? history.location.state.orginalPathname : \"/jobs\";\n\n window.logger(\"%c[NotificationsContainer] render\", \"background-color: #19FFD2\", {\n data,\n // summaryCounts,\n searchVariables,\n });\n\n return (\n <>\n \n \n \n \n \n \n\n \n Types\n \n \n\n \n\n \n \n\n \n {jobsData && jobsData.items.length > 0 && Jobs}\n \n {(jobsData?.items || []).map((job) => (\n \n ))}\n \n \n \n \n \n \n \n );\n}\n\nNotificationsContainer.propTypes = {};\n\nNotificationsContainer.defaultProps = {};\n\nexport default NotificationsContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationsContainer;\n display: flex;\n height: 100%;\n overflow-y: hidden;\n `;\n});\n\nStyled.Sidebar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationsContainer_Sidebar;\n ${[t.pb(10)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n flex-direction: column;\n border-right: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n width: 25%;\n overflow-y: auto;\n `;\n});\n\nStyled.List = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationsContainer_List;\n margin-top: 0.375rem;\n `;\n});\n\nStyled.Divider = styled.hr((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationsContainer_Divider;\n ${[t.mb(0)]}\n margin-top: 2.25rem;\n width: 100%;\n border: 0;\n `;\n});\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationsContainer_Label;\n ${[t.px(4), t.text.xs, t.text.bold, t.mb(1)]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n `;\n});\n\nStyled.Content = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: NotificationsContainer_Content;\n width: 75%;\n overflow-y: auto;\n position: relative;\n display: flex;\n flex-direction: column;\n `;\n});\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\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 _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}","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}","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}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _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 mergeClassNames() {\n return Array.prototype.slice.call(arguments).reduce(function (classList, arg) {\n return typeof arg === 'string' || Array.isArray(arg) ? classList.concat(arg) : classList;\n }, []).filter(Boolean).join(' ');\n}","import { createContext } from 'react';\nexport default createContext(null);","import React from 'react';\nimport PropTypes from 'prop-types';\nexport default function Message(_ref) {\n var children = _ref.children,\n type = _ref.type;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__message react-pdf__message--\".concat(type)\n }, children);\n}\nMessage.propTypes = {\n children: PropTypes.node,\n type: PropTypes.oneOf(['error', 'loading', 'no-data']).isRequired\n};","import { PDFLinkService } from 'pdfjs-dist/lib/web/pdf_link_service';\nexport default PDFLinkService;","// As defined in https://github.com/mozilla/pdf.js/blob/master/src/shared/util.js#L378-L381\nvar PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexport default PasswordResponses;","import { EventBus } from 'pdfjs-dist/lib/web/ui_utils';\nexport default new EventBus();","/**\n * Checks if we're running in a browser environment.\n */\nexport var isBrowser = typeof window !== 'undefined';\n/**\n * Checks whether we're running from a local file system.\n */\n\nexport var isLocalFileSystem = isBrowser && window.location.protocol === 'file:';\n/**\n * Checks whether we're running on a production build or not.\n */\n\nexport var isProduction = process.env.NODE_ENV === 'production';\n/**\n * Checks whether a variable is defined.\n *\n * @param {*} variable Variable to check\n */\n\nexport var isDefined = function isDefined(variable) {\n return typeof variable !== 'undefined';\n};\n/**\n * Checks whether a variable is defined and not null.\n *\n * @param {*} variable Variable to check\n */\n\nexport var isProvided = function isProvided(variable) {\n return isDefined(variable) && variable !== null;\n};\n/**\n * Checkes whether a variable provided is a string.\n *\n * @param {*} variable Variable to check\n */\n\nexport var isString = function isString(variable) {\n return typeof variable === 'string';\n};\n/**\n * Checks whether a variable provided is an ArrayBuffer.\n *\n * @param {*} variable Variable to check\n */\n\nexport var isArrayBuffer = function isArrayBuffer(variable) {\n return variable instanceof ArrayBuffer;\n};\n/**\n * Checkes whether a variable provided is a Blob.\n *\n * @param {*} variable Variable to check\n */\n\nexport var isBlob = function isBlob(variable) {\n if (!isBrowser) {\n throw new Error('Attempted to check if a variable is a Blob on a non-browser environment.');\n }\n\n return variable instanceof Blob;\n};\n/**\n * Checkes whether a variable provided is a File.\n *\n * @param {*} variable Variable to check\n */\n\nexport var isFile = function isFile(variable) {\n if (!isBrowser) {\n throw new Error('Attempted to check if a variable is a File on a non-browser environment.');\n }\n\n return variable instanceof File;\n};\n/**\n * Checks whether a string provided is a data URI.\n *\n * @param {String} str String to check\n */\n\nexport var isDataURI = function isDataURI(str) {\n return isString(str) && /^data:/.test(str);\n};\nexport var dataURItoUint8Array = function dataURItoUint8Array(dataURI) {\n if (!isDataURI(dataURI)) {\n throw new Error('dataURItoUint8Array was provided with an argument which is not a valid data URI.');\n }\n\n var byteString;\n\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\n byteString = atob(dataURI.split(',')[1]);\n } else {\n byteString = unescape(dataURI.split(',')[1]);\n }\n\n var ia = new Uint8Array(byteString.length);\n\n for (var i = 0; i < byteString.length; i += 1) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n return ia;\n};\nexport var getPixelRatio = function getPixelRatio() {\n return isBrowser && window.devicePixelRatio || 1;\n};\n\nvar consoleOnDev = function consoleOnDev(method) {\n if (!isProduction) {\n var _console;\n\n for (var _len = arguments.length, message = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n } // eslint-disable-next-line no-console\n\n\n (_console = console)[method].apply(_console, message);\n }\n};\n\nexport var warnOnDev = function warnOnDev() {\n for (var _len2 = arguments.length, message = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n message[_key2] = arguments[_key2];\n }\n\n return consoleOnDev.apply(void 0, ['warn'].concat(message));\n};\nexport var errorOnDev = function errorOnDev() {\n for (var _len3 = arguments.length, message = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n message[_key3] = arguments[_key3];\n }\n\n return consoleOnDev.apply(void 0, ['error'].concat(message));\n};\nexport var displayCORSWarning = function displayCORSWarning() {\n if (isLocalFileSystem) {\n warnOnDev('Loading PDF as base64 strings/URLs might not work on protocols other than HTTP/HTTPS. On Google Chrome, you can use --allow-file-access-from-files flag for debugging purposes.');\n }\n};\nexport var cancelRunningTask = function cancelRunningTask(runningTask) {\n if (runningTask && runningTask.cancel) runningTask.cancel();\n};\nexport var makePageCallback = function makePageCallback(page, scale) {\n Object.defineProperty(page, 'width', {\n get: function get() {\n return this.view[2] * scale;\n },\n configurable: true\n });\n Object.defineProperty(page, 'height', {\n get: function get() {\n return this.view[3] * scale;\n },\n configurable: true\n });\n Object.defineProperty(page, 'originalWidth', {\n get: function get() {\n return this.view[2];\n },\n configurable: true\n });\n Object.defineProperty(page, 'originalHeight', {\n get: function get() {\n return this.view[3];\n },\n configurable: true\n });\n return page;\n};\nexport var isCancelException = function isCancelException(error) {\n return error.name === 'RenderingCancelledException';\n};\nexport var loadFromFile = function loadFromFile(file) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onload = function () {\n return resolve(new Uint8Array(reader.result));\n };\n\n reader.onerror = function (event) {\n switch (event.target.error.code) {\n case event.target.error.NOT_FOUND_ERR:\n return reject(new Error('Error while reading a file: File not found.'));\n\n case event.target.error.NOT_READABLE_ERR:\n return reject(new Error('Error while reading a file: File not readable.'));\n\n case event.target.error.SECURITY_ERR:\n return reject(new Error('Error while reading a file: Security error.'));\n\n case event.target.error.ABORT_ERR:\n return reject(new Error('Error while reading a file: Aborted.'));\n\n default:\n return reject(new Error('Error while reading a file.'));\n }\n };\n\n reader.readAsArrayBuffer(file);\n return null;\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}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport PropTypes from 'prop-types';\nimport { mouseEvents, touchEvents, keyboardEvents } from 'make-event-props';\nimport { isDefined } from './utils';\nimport LinkService from '../LinkService';\nexport var eventProps = function () {\n var result = {};\n [].concat(_toConsumableArray(mouseEvents), _toConsumableArray(touchEvents), _toConsumableArray(keyboardEvents)).forEach(function (eventName) {\n result[eventName] = PropTypes.func;\n });\n return result;\n}();\nvar fileTypes = [PropTypes.string, PropTypes.instanceOf(ArrayBuffer), PropTypes.shape({\n data: PropTypes.object,\n httpHeaders: PropTypes.object,\n range: PropTypes.object,\n url: PropTypes.string,\n withCredentials: PropTypes.bool\n})];\n\nif (typeof File !== 'undefined') {\n fileTypes.push(PropTypes.instanceOf(File));\n}\n\nif (typeof Blob !== 'undefined') {\n fileTypes.push(PropTypes.instanceOf(Blob));\n}\n\nexport var isClassName = PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]);\nexport var isFile = PropTypes.oneOfType(fileTypes);\nexport var isLinkService = PropTypes.instanceOf(LinkService);\nexport var isLinkTarget = PropTypes.oneOf(['_self', '_blank', '_parent', '_top']);\nexport var isPage = PropTypes.shape({\n _transport: PropTypes.shape({\n fontLoader: PropTypes.object.isRequired\n }).isRequired,\n commonObjs: PropTypes.shape({\n _objs: PropTypes.object.isRequired\n }).isRequired,\n getAnnotations: PropTypes.func.isRequired,\n getTextContent: PropTypes.func.isRequired,\n getViewport: PropTypes.func.isRequired,\n render: PropTypes.func.isRequired\n});\nexport var isPageIndex = function isPageIndex(props, propName, componentName) {\n var pageIndex = props[propName],\n pageNumber = props.pageNumber,\n pdf = props.pdf;\n\n if (!isDefined(pdf)) {\n return null;\n }\n\n if (isDefined(pageIndex)) {\n if (typeof pageIndex !== 'number') {\n return new Error(\"`\".concat(propName, \"` of type `\").concat(_typeof(pageIndex), \"` supplied to `\").concat(componentName, \"`, expected `number`.\"));\n }\n\n if (pageIndex < 0) {\n return new Error(\"Expected `\".concat(propName, \"` to be greater or equal to 0.\"));\n }\n\n var numPages = pdf.numPages;\n\n if (pageIndex + 1 > numPages) {\n return new Error(\"Expected `\".concat(propName, \"` to be less or equal to \").concat(numPages - 1, \".\"));\n }\n } else if (!isDefined(pageNumber)) {\n return new Error(\"`\".concat(propName, \"` not supplied. Either pageIndex or pageNumber must be supplied to `\").concat(componentName, \"`.\"));\n } // Everything is fine\n\n\n return null;\n};\nexport var isPageNumber = function isPageNumber(props, propName, componentName) {\n var pageNumber = props[propName],\n pageIndex = props.pageIndex,\n pdf = props.pdf;\n\n if (!isDefined(pdf)) {\n return null;\n }\n\n if (isDefined(pageNumber)) {\n if (typeof pageNumber !== 'number') {\n return new Error(\"`\".concat(propName, \"` of type `\").concat(_typeof(pageNumber), \"` supplied to `\").concat(componentName, \"`, expected `number`.\"));\n }\n\n if (pageNumber < 1) {\n return new Error(\"Expected `\".concat(propName, \"` to be greater or equal to 1.\"));\n }\n\n var numPages = pdf.numPages;\n\n if (pageNumber > numPages) {\n return new Error(\"Expected `\".concat(propName, \"` to be less or equal to \").concat(numPages, \".\"));\n }\n } else if (!isDefined(pageIndex)) {\n return new Error(\"`\".concat(propName, \"` not supplied. Either pageIndex or pageNumber must be supplied to `\").concat(componentName, \"`.\"));\n } // Everything is fine\n\n\n return null;\n};\nexport var isPdf = PropTypes.oneOfType([PropTypes.shape({\n getDestination: PropTypes.func.isRequired,\n getOutline: PropTypes.func.isRequired,\n getPage: PropTypes.func.isRequired,\n numPages: PropTypes.number.isRequired\n}), PropTypes.bool]);\nexport var isRenderMode = PropTypes.oneOf(['canvas', 'none', 'svg']);\nexport var isRotate = PropTypes.oneOf([0, 90, 180, 270]);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\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 _defineProperty from \"@babel/runtime/helpers/esm/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 _objectSpread(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\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _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}\n/**\n * Loads a PDF document. Passes it to all children.\n */\n\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeEventProps from 'make-event-props';\nimport makeCancellable from 'make-cancellable-promise';\nimport mergeClassNames from 'merge-class-names';\nimport pdfjs from 'pdfjs-dist/build/pdf';\nimport DocumentContext from './DocumentContext';\nimport Message from './Message';\nimport LinkService from './LinkService';\nimport PasswordResponses from './PasswordResponses';\nimport eventBus from './eventBus';\nimport { cancelRunningTask, dataURItoUint8Array, displayCORSWarning, errorOnDev, isArrayBuffer, isBlob, isBrowser, isDataURI, isFile, loadFromFile, warnOnDev } from './shared/utils';\nimport { eventProps, isClassName } from './shared/propTypes';\nvar PDFDataRangeTransport = pdfjs.PDFDataRangeTransport;\n\nvar Document = /*#__PURE__*/function (_PureComponent) {\n _inherits(Document, _PureComponent);\n\n var _super = _createSuper(Document);\n\n function Document() {\n var _this;\n\n _classCallCheck(this, Document);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n pdf: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"viewer\", {\n scrollPageIntoView: function scrollPageIntoView(_ref) {\n var pageNumber = _ref.pageNumber; // Handling jumping to internal links target\n\n var onItemClick = _this.props.onItemClick; // First, check if custom handling of onItemClick was provided\n\n if (onItemClick) {\n onItemClick({\n pageNumber: pageNumber\n });\n return;\n } // If not, try to look for target page within the .\n\n\n var page = _this.pages[pageNumber - 1];\n\n if (page) {\n // Scroll to the page automatically\n page.scrollIntoView();\n return;\n }\n\n warnOnDev(\"Warning: An internal link leading to page \".concat(pageNumber, \" was clicked, but neither was provided with onItemClick nor it was able to find the page within itself. Either provide onItemClick to and handle navigating by yourself or ensure that all pages are rendered within .\"));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"linkService\", new LinkService({\n eventBus: eventBus\n }));\n\n _defineProperty(_assertThisInitialized(_this), \"loadDocument\", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var source, _this$props, options, onLoadProgress, onPassword, cancellable, pdf;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n source = null;\n _context.prev = 1;\n _context.next = 4;\n return _this.findDocumentSource();\n\n case 4:\n source = _context.sent;\n\n _this.onSourceSuccess();\n\n _context.next = 11;\n break;\n\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](1);\n\n _this.onSourceError(_context.t0);\n\n case 11:\n if (source) {\n _context.next = 13;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 13:\n _this.setState(function (prevState) {\n if (!prevState.pdf) {\n return null;\n }\n\n return {\n pdf: null\n };\n });\n\n _this$props = _this.props, options = _this$props.options, onLoadProgress = _this$props.onLoadProgress, onPassword = _this$props.onPassword;\n _context.prev = 15; // If another loading is in progress, let's cancel it\n\n cancelRunningTask(_this.runningTask);\n _this.loadingTask = pdfjs.getDocument(_objectSpread({}, source, {}, options));\n _this.loadingTask.onPassword = onPassword;\n\n if (onLoadProgress) {\n _this.loadingTask.onProgress = onLoadProgress;\n }\n\n cancellable = makeCancellable(_this.loadingTask.promise);\n _this.runningTask = cancellable;\n _context.next = 24;\n return cancellable.promise;\n\n case 24:\n pdf = _context.sent;\n\n _this.setState(function (prevState) {\n if (prevState.pdf && prevState.pdf.fingerprint === pdf.fingerprint) {\n return null;\n }\n\n return {\n pdf: pdf\n };\n }, _this.onLoadSuccess);\n\n _context.next = 31;\n break;\n\n case 28:\n _context.prev = 28;\n _context.t1 = _context[\"catch\"](15);\n\n _this.onLoadError(_context.t1);\n\n case 31:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[1, 8], [15, 28]]);\n })));\n\n _defineProperty(_assertThisInitialized(_this), \"setupLinkService\", function () {\n _this.linkService.setViewer(_this.viewer);\n\n var documentInstance = _assertThisInitialized(_this);\n\n Object.defineProperty(_this.linkService, 'externalLinkTarget', {\n get: function get() {\n var externalLinkTarget = documentInstance.props.externalLinkTarget;\n\n switch (externalLinkTarget) {\n case '_self':\n return 1;\n\n case '_blank':\n return 2;\n\n case '_parent':\n return 3;\n\n case '_top':\n return 4;\n\n default:\n return 0;\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSourceSuccess\", function () {\n var onSourceSuccess = _this.props.onSourceSuccess;\n if (onSourceSuccess) onSourceSuccess();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSourceError\", function (error) {\n errorOnDev(error);\n var onSourceError = _this.props.onSourceError;\n if (onSourceError) onSourceError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onLoadSuccess = _this.props.onLoadSuccess;\n var pdf = _this.state.pdf;\n if (onLoadSuccess) onLoadSuccess(pdf);\n _this.pages = new Array(pdf.numPages);\n\n _this.linkService.setDocument(pdf);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n pdf: false\n });\n\n errorOnDev(error);\n var onLoadError = _this.props.onLoadError;\n if (onLoadError) onLoadError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"findDocumentSource\", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var file, fileUint8Array, url, otherParams, _fileUint8Array;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n file = _this.props.file;\n\n if (file) {\n _context2.next = 3;\n break;\n }\n\n return _context2.abrupt(\"return\", null);\n\n case 3:\n if (!(typeof file === 'string')) {\n _context2.next = 9;\n break;\n }\n\n if (!isDataURI(file)) {\n _context2.next = 7;\n break;\n }\n\n fileUint8Array = dataURItoUint8Array(file);\n return _context2.abrupt(\"return\", {\n data: fileUint8Array\n });\n\n case 7:\n displayCORSWarning();\n return _context2.abrupt(\"return\", {\n url: file\n });\n\n case 9:\n if (!(file instanceof PDFDataRangeTransport)) {\n _context2.next = 11;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n range: file\n });\n\n case 11:\n if (!isArrayBuffer(file)) {\n _context2.next = 13;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n data: file\n });\n\n case 13:\n if (!isBrowser) {\n _context2.next = 19;\n break;\n }\n\n if (!(isBlob(file) || isFile(file))) {\n _context2.next = 19;\n break;\n }\n\n _context2.next = 17;\n return loadFromFile(file);\n\n case 17:\n _context2.t0 = _context2.sent;\n return _context2.abrupt(\"return\", {\n data: _context2.t0\n });\n\n case 19:\n if (!(_typeof(file) !== 'object')) {\n _context2.next = 21;\n break;\n }\n\n throw new Error('Invalid parameter in file, need either Uint8Array, string or a parameter object');\n\n case 21:\n if (!(!file.url && !file.data && !file.range)) {\n _context2.next = 23;\n break;\n }\n\n throw new Error('Invalid parameter object: need either .data, .range or .url');\n\n case 23:\n if (!(typeof file.url === 'string')) {\n _context2.next = 29;\n break;\n }\n\n if (!isDataURI(file.url)) {\n _context2.next = 28;\n break;\n }\n\n url = file.url, otherParams = _objectWithoutProperties(file, [\"url\"]);\n _fileUint8Array = dataURItoUint8Array(url);\n return _context2.abrupt(\"return\", _objectSpread({\n data: _fileUint8Array\n }, otherParams));\n\n case 28:\n displayCORSWarning();\n\n case 29:\n return _context2.abrupt(\"return\", file);\n\n case 30:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n })));\n\n _defineProperty(_assertThisInitialized(_this), \"registerPage\", function (pageIndex, ref) {\n _this.pages[pageIndex] = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unregisterPage\", function (pageIndex) {\n delete _this.pages[pageIndex];\n });\n\n return _this;\n }\n\n _createClass(Document, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.loadDocument();\n this.setupLinkService();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var file = this.props.file;\n\n if (file !== prevProps.file) {\n this.loadDocument();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.loadingTask) this.loadingTask.destroy();\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var children = this.props.children;\n return /*#__PURE__*/React.createElement(DocumentContext.Provider, {\n value: this.childContext\n }, children);\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var file = this.props.file;\n var pdf = this.state.pdf;\n\n if (!file) {\n var noData = this.props.noData;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"no-data\"\n }, typeof noData === 'function' ? noData() : noData);\n }\n\n if (pdf === null) {\n var loading = this.props.loading;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"loading\"\n }, typeof loading === 'function' ? loading() : loading);\n }\n\n if (pdf === false) {\n var error = this.props.error;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"error\"\n }, typeof error === 'function' ? error() : error);\n }\n\n return this.renderChildren();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n inputRef = _this$props2.inputRef;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergeClassNames('react-pdf__Document', className),\n ref: inputRef\n }, this.eventProps), this.renderContent());\n }\n }, {\n key: \"childContext\",\n get: function get() {\n var linkService = this.linkService,\n registerPage = this.registerPage,\n unregisterPage = this.unregisterPage;\n var _this$props3 = this.props,\n renderMode = _this$props3.renderMode,\n rotate = _this$props3.rotate;\n var pdf = this.state.pdf;\n return {\n linkService: linkService,\n pdf: pdf,\n registerPage: registerPage,\n renderMode: renderMode,\n rotate: rotate,\n unregisterPage: unregisterPage\n };\n }\n }, {\n key: \"eventProps\",\n get: function get() {\n var _this2 = this; // eslint-disable-next-line react/destructuring-assignment\n\n\n return makeEventProps(this.props, function () {\n return _this2.state.pdf;\n });\n }\n /**\n * Called when a document source is resolved correctly\n */\n\n }]);\n\n return Document;\n}(PureComponent);\n\nexport { Document as default };\nDocument.defaultProps = {\n error: 'Failed to load PDF file.',\n loading: 'Loading PDF…',\n noData: 'No PDF file specified.',\n onPassword: function onPassword(callback, reason) {\n switch (reason) {\n case PasswordResponses.NEED_PASSWORD:\n {\n // eslint-disable-next-line no-alert\n var password = prompt('Enter the password to open this PDF file.');\n callback(password);\n break;\n }\n\n case PasswordResponses.INCORRECT_PASSWORD:\n {\n // eslint-disable-next-line no-alert\n var _password = prompt('Invalid password. Please try again.');\n\n callback(_password);\n break;\n }\n\n default:\n }\n }\n};\nvar isFunctionOrNode = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\nDocument.propTypes = _objectSpread({}, eventProps, {\n children: PropTypes.node,\n className: isClassName,\n error: isFunctionOrNode,\n file: isFile,\n inputRef: PropTypes.func,\n loading: isFunctionOrNode,\n noData: isFunctionOrNode,\n onItemClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoadProgress: PropTypes.func,\n onLoadSuccess: PropTypes.func,\n onPassword: PropTypes.func,\n onSourceError: PropTypes.func,\n onSourceSuccess: PropTypes.func,\n rotate: PropTypes.number\n});","import { createContext } from 'react';\nexport default createContext(null);","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n\nvar Ref = /*#__PURE__*/function () {\n function Ref(_ref) {\n var num = _ref.num,\n gen = _ref.gen;\n\n _classCallCheck(this, Ref);\n\n this.num = num;\n this.gen = gen;\n }\n\n _createClass(Ref, [{\n key: \"toString\",\n value: function toString() {\n var str = \"\".concat(this.num, \"R\");\n\n if (this.gen !== 0) {\n str += this.gen;\n }\n\n return str;\n }\n }]);\n\n return Ref;\n}();\n\nexport { Ref as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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\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\nfunction _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}\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport DocumentContext from './DocumentContext';\nimport OutlineContext from './OutlineContext';\nimport Ref from './Ref';\nimport { isDefined } from './shared/utils';\nimport { isPdf } from './shared/propTypes';\nexport var OutlineItemInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(OutlineItemInternal, _PureComponent);\n\n var _super = _createSuper(OutlineItemInternal);\n\n function OutlineItemInternal() {\n var _this;\n\n _classCallCheck(this, OutlineItemInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"getDestination\", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var _this$props, item, pdf;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _this$props = _this.props, item = _this$props.item, pdf = _this$props.pdf;\n\n if (isDefined(_this.destination)) {\n _context.next = 9;\n break;\n }\n\n if (!(typeof item.dest === 'string')) {\n _context.next = 8;\n break;\n }\n\n _context.next = 5;\n return pdf.getDestination(item.dest);\n\n case 5:\n _this.destination = _context.sent;\n _context.next = 9;\n break;\n\n case 8:\n _this.destination = item.dest;\n\n case 9:\n return _context.abrupt(\"return\", _this.destination);\n\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n\n _defineProperty(_assertThisInitialized(_this), \"getPageIndex\", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var pdf, destination, _destination, ref;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n pdf = _this.props.pdf;\n\n if (isDefined(_this.pageIndex)) {\n _context2.next = 10;\n break;\n }\n\n _context2.next = 4;\n return _this.getDestination();\n\n case 4:\n destination = _context2.sent;\n\n if (!destination) {\n _context2.next = 10;\n break;\n }\n\n _destination = _slicedToArray(destination, 1), ref = _destination[0];\n _context2.next = 9;\n return pdf.getPageIndex(new Ref(ref));\n\n case 9:\n _this.pageIndex = _context2.sent;\n\n case 10:\n return _context2.abrupt(\"return\", _this.pageIndex);\n\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n })));\n\n _defineProperty(_assertThisInitialized(_this), \"getPageNumber\", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (isDefined(_this.pageNumber)) {\n _context3.next = 5;\n break;\n }\n\n _context3.next = 3;\n return _this.getPageIndex();\n\n case 3:\n _context3.t0 = _context3.sent;\n _this.pageNumber = _context3.t0 + 1;\n\n case 5:\n return _context3.abrupt(\"return\", _this.pageNumber);\n\n case 6:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n })));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(event) {\n var onClick, pageIndex, pageNumber;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n onClick = _this.props.onClick;\n event.preventDefault();\n _context4.next = 4;\n return _this.getPageIndex();\n\n case 4:\n pageIndex = _context4.sent;\n _context4.next = 7;\n return _this.getPageNumber();\n\n case 7:\n pageNumber = _context4.sent;\n\n if (onClick) {\n onClick({\n pageIndex: pageIndex,\n pageNumber: pageNumber\n });\n }\n\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function (_x) {\n return _ref4.apply(this, arguments);\n };\n }());\n\n return _this;\n }\n\n _createClass(OutlineItemInternal, [{\n key: \"renderSubitems\",\n value: function renderSubitems() {\n var _this$props2 = this.props,\n item = _this$props2.item,\n otherProps = _objectWithoutProperties(_this$props2, [\"item\"]);\n\n if (!item.items || !item.items.length) {\n return null;\n }\n\n var subitems = item.items;\n return /*#__PURE__*/React.createElement(\"ul\", null, subitems.map(function (subitem, subitemIndex) {\n return /*#__PURE__*/React.createElement(OutlineItemInternal, _extends({\n key: typeof subitem.destination === 'string' ? subitem.destination : subitemIndex,\n item: subitem\n }, otherProps));\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var item = this.props.item;\n /* eslint-disable jsx-a11y/anchor-is-valid */\n\n return /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"a\", {\n href: \"#\",\n onClick: this.onClick\n }, item.title), this.renderSubitems());\n }\n }]);\n\n return OutlineItemInternal;\n}(PureComponent);\nvar isDestination = PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.any)]);\nOutlineItemInternal.propTypes = {\n item: PropTypes.shape({\n dest: isDestination,\n items: PropTypes.arrayOf(PropTypes.shape({\n dest: isDestination,\n title: PropTypes.string\n })),\n title: PropTypes.string\n }).isRequired,\n onClick: PropTypes.func,\n pdf: isPdf.isRequired\n};\n\nvar OutlineItem = function OutlineItem(props) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (documentContext) {\n return /*#__PURE__*/React.createElement(OutlineContext.Consumer, null, function (outlineContext) {\n return /*#__PURE__*/React.createElement(OutlineItemInternal, _extends({}, documentContext, outlineContext, props));\n });\n });\n};\n\nexport default OutlineItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\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 _defineProperty from \"@babel/runtime/helpers/esm/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 _objectSpread(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\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _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}\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport mergeClassNames from 'merge-class-names';\nimport DocumentContext from './DocumentContext';\nimport OutlineContext from './OutlineContext';\nimport OutlineItem from './OutlineItem';\nimport { cancelRunningTask, errorOnDev } from './shared/utils';\nimport { eventProps, isClassName, isPdf } from './shared/propTypes';\nexport var OutlineInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(OutlineInternal, _PureComponent);\n\n var _super = _createSuper(OutlineInternal);\n\n function OutlineInternal() {\n var _this;\n\n _classCallCheck(this, OutlineInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n outline: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"loadOutline\", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var pdf, cancellable, outline;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n pdf = _this.props.pdf;\n\n _this.setState(function (prevState) {\n if (!prevState.outline) {\n return null;\n }\n\n return {\n outline: null\n };\n });\n\n _context.prev = 2;\n cancellable = makeCancellable(pdf.getOutline());\n _this.runningTask = cancellable;\n _context.next = 7;\n return cancellable.promise;\n\n case 7:\n outline = _context.sent;\n\n _this.setState({\n outline: outline\n }, _this.onLoadSuccess);\n\n _context.next = 14;\n break;\n\n case 11:\n _context.prev = 11;\n _context.t0 = _context[\"catch\"](2);\n\n _this.onLoadError(_context.t0);\n\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 11]]);\n })));\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onLoadSuccess = _this.props.onLoadSuccess;\n var outline = _this.state.outline;\n if (onLoadSuccess) onLoadSuccess(outline);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n outline: false\n });\n\n errorOnDev(error);\n var onLoadError = _this.props.onLoadError;\n if (onLoadError) onLoadError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onItemClick\", function (_ref2) {\n var pageIndex = _ref2.pageIndex,\n pageNumber = _ref2.pageNumber;\n var onItemClick = _this.props.onItemClick;\n\n if (onItemClick) {\n onItemClick({\n pageIndex: pageIndex,\n pageNumber: pageNumber\n });\n }\n });\n\n return _this;\n }\n\n _createClass(OutlineInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var pdf = this.props.pdf;\n\n if (!pdf) {\n throw new Error('Attempted to load an outline, but no document was specified.');\n }\n\n this.loadOutline();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var pdf = this.props.pdf;\n\n if (prevProps.pdf && pdf !== prevProps.pdf) {\n this.loadOutline();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"renderOutline\",\n value: function renderOutline() {\n var outline = this.state.outline;\n return /*#__PURE__*/React.createElement(\"ul\", null, outline.map(function (item, itemIndex) {\n return /*#__PURE__*/React.createElement(OutlineItem, {\n key: typeof item.destination === 'string' ? item.destination : itemIndex,\n item: item\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var pdf = this.props.pdf;\n var outline = this.state.outline;\n\n if (!pdf || !outline) {\n return null;\n }\n\n var _this$props = this.props,\n className = _this$props.className,\n inputRef = _this$props.inputRef;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergeClassNames('react-pdf__Outline', className),\n ref: inputRef\n }, this.eventProps), /*#__PURE__*/React.createElement(OutlineContext.Provider, {\n value: this.childContext\n }, this.renderOutline()));\n }\n }, {\n key: \"childContext\",\n get: function get() {\n return {\n onClick: this.onItemClick\n };\n }\n }, {\n key: \"eventProps\",\n get: function get() {\n var _this2 = this; // eslint-disable-next-line react/destructuring-assignment\n\n\n return makeEventProps(this.props, function () {\n return _this2.state.outline;\n });\n }\n /**\n * Called when an outline is read successfully\n */\n\n }]);\n\n return OutlineInternal;\n}(PureComponent);\nOutlineInternal.propTypes = _objectSpread({\n className: isClassName,\n inputRef: PropTypes.func,\n onItemClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoadSuccess: PropTypes.func,\n pdf: isPdf\n}, eventProps);\n\nfunction Outline(props, ref) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(OutlineInternal, _extends({\n ref: ref\n }, context, props));\n });\n}\n\nexport default React.forwardRef(Outline);","import { createContext } from 'react';\nexport default createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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\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\nfunction _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}\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport PageContext from '../PageContext';\nimport { errorOnDev, getPixelRatio, isCancelException, makePageCallback } from '../shared/utils';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var PageCanvasInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(PageCanvasInternal, _PureComponent);\n\n var _super = _createSuper(PageCanvasInternal);\n\n function PageCanvasInternal() {\n var _this;\n\n _classCallCheck(this, PageCanvasInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n _this.renderer = null;\n var _this$props = _this.props,\n onRenderSuccess = _this$props.onRenderSuccess,\n page = _this$props.page,\n scale = _this$props.scale;\n if (onRenderSuccess) onRenderSuccess(makePageCallback(page, scale));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n if (isCancelException(error)) {\n return;\n }\n\n errorOnDev(error);\n var onRenderError = _this.props.onRenderError;\n if (onRenderError) onRenderError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"drawPageOnCanvas\", function () {\n var _assertThisInitialize = _assertThisInitialized(_this),\n canvas = _assertThisInitialize.canvasLayer;\n\n if (!canvas) {\n return null;\n }\n\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n renderViewport = _assertThisInitialize2.renderViewport,\n viewport = _assertThisInitialize2.viewport;\n\n var _this$props2 = _this.props,\n page = _this$props2.page,\n renderInteractiveForms = _this$props2.renderInteractiveForms;\n canvas.width = renderViewport.width;\n canvas.height = renderViewport.height;\n canvas.style.width = \"\".concat(Math.floor(viewport.width), \"px\");\n canvas.style.height = \"\".concat(Math.floor(viewport.height), \"px\");\n var renderContext = {\n get canvasContext() {\n return canvas.getContext('2d');\n },\n\n viewport: renderViewport,\n renderInteractiveForms: renderInteractiveForms\n }; // If another render is in progress, let's cancel it\n\n _this.cancelRenderingTask();\n\n _this.renderer = page.render(renderContext);\n return _this.renderer.promise.then(_this.onRenderSuccess)[\"catch\"](_this.onRenderError);\n });\n\n return _this;\n }\n\n _createClass(PageCanvasInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.drawPageOnCanvas();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n page = _this$props3.page,\n renderInteractiveForms = _this$props3.renderInteractiveForms;\n\n if (renderInteractiveForms !== prevProps.renderInteractiveForms) {\n // Ensures the canvas will be re-rendered from scratch. Otherwise all form data will stay.\n page.cleanup();\n this.drawPageOnCanvas();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRenderingTask();\n /**\n * Zeroing the width and height cause most browsers to release graphics\n * resources immediately, which can greatly reduce memory consumption.\n */\n\n if (this.canvasLayer) {\n this.canvasLayer.width = 0;\n this.canvasLayer.height = 0;\n this.canvasLayer = null;\n }\n }\n }, {\n key: \"cancelRenderingTask\",\n value: function cancelRenderingTask() {\n /* eslint-disable no-underscore-dangle */\n if (this.renderer && this.renderer._internalRenderTask.running) {\n this.renderer._internalRenderTask.cancel();\n }\n /* eslint-enable no-underscore-dangle */\n\n }\n /**\n * Called when a page is rendered successfully.\n */\n\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/React.createElement(\"canvas\", {\n className: \"react-pdf__Page__canvas\",\n dir: \"ltr\",\n ref: function ref(_ref) {\n _this2.canvasLayer = _ref;\n },\n style: {\n display: 'block',\n userSelect: 'none'\n }\n });\n }\n }, {\n key: \"renderViewport\",\n get: function get() {\n var _this$props4 = this.props,\n page = _this$props4.page,\n rotate = _this$props4.rotate,\n scale = _this$props4.scale;\n var pixelRatio = getPixelRatio();\n return page.getViewport({\n scale: scale * pixelRatio,\n rotation: rotate\n });\n }\n }, {\n key: \"viewport\",\n get: function get() {\n var _this$props5 = this.props,\n page = _this$props5.page,\n rotate = _this$props5.rotate,\n scale = _this$props5.scale;\n return page.getViewport({\n scale: scale,\n rotation: rotate\n });\n }\n }]);\n\n return PageCanvasInternal;\n}(PureComponent);\nPageCanvasInternal.propTypes = {\n onRenderError: PropTypes.func,\n onRenderSuccess: PropTypes.func,\n page: isPage.isRequired,\n renderInteractiveForms: PropTypes.bool,\n rotate: isRotate,\n scale: PropTypes.number\n};\nexport default function PageCanvas(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(PageCanvasInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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\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\nfunction _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}\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport pdfjs from 'pdfjs-dist/build/pdf';\nimport PageContext from '../PageContext';\nimport { errorOnDev, isCancelException, makePageCallback } from '../shared/utils';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var PageSVGInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(PageSVGInternal, _PureComponent);\n\n var _super = _createSuper(PageSVGInternal);\n\n function PageSVGInternal() {\n var _this;\n\n _classCallCheck(this, PageSVGInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n svg: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n _this.renderer = null;\n var _this$props = _this.props,\n onRenderSuccess = _this$props.onRenderSuccess,\n page = _this$props.page,\n scale = _this$props.scale;\n if (onRenderSuccess) onRenderSuccess(makePageCallback(page, scale));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n if (isCancelException(error)) {\n return;\n }\n\n errorOnDev(error);\n var onRenderError = _this.props.onRenderError;\n if (onRenderError) onRenderError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSVG\", function () {\n var page = _this.props.page;\n _this.renderer = page.getOperatorList();\n return _this.renderer.then(function (operatorList) {\n var svgGfx = new pdfjs.SVGGraphics(page.commonObjs, page.objs);\n _this.renderer = svgGfx.getSVG(operatorList, _this.viewport).then(function (svg) {\n _this.setState({\n svg: svg\n }, _this.onRenderSuccess);\n })[\"catch\"](_this.onRenderError);\n })[\"catch\"](_this.onRenderError);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"drawPageOnContainer\", function (element) {\n var svg = _this.state.svg;\n\n if (!element || !svg) {\n return;\n } // Append SVG element to the main container, if this hasn't been done already\n\n\n if (!element.firstElementChild) {\n element.appendChild(svg);\n }\n\n var _this$viewport = _this.viewport,\n width = _this$viewport.width,\n height = _this$viewport.height;\n svg.setAttribute('width', width);\n svg.setAttribute('height', height);\n });\n\n return _this;\n }\n\n _createClass(PageSVGInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.renderSVG();\n }\n /**\n * Called when a page is rendered successfully.\n */\n\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$viewport2 = this.viewport,\n width = _this$viewport2.width,\n height = _this$viewport2.height;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__Page__svg\" // Note: This cannot be shortened, as we need this function to be called with each render.\n ,\n ref: function ref(_ref) {\n return _this2.drawPageOnContainer(_ref);\n },\n style: {\n display: 'block',\n backgroundColor: 'white',\n overflow: 'hidden',\n width: width,\n height: height,\n userSelect: 'none'\n }\n });\n }\n }, {\n key: \"viewport\",\n get: function get() {\n var _this$props2 = this.props,\n page = _this$props2.page,\n rotate = _this$props2.rotate,\n scale = _this$props2.scale;\n return page.getViewport({\n scale: scale,\n rotation: rotate\n });\n }\n }]);\n\n return PageSVGInternal;\n}(PureComponent);\nPageSVGInternal.propTypes = {\n onRenderError: PropTypes.func,\n onRenderSuccess: PropTypes.func,\n page: isPage.isRequired,\n rotate: isRotate,\n scale: PropTypes.number\n};\nexport default function PageSVG(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(PageSVGInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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\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\nfunction _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}\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport PageContext from '../PageContext';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var TextLayerItemInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(TextLayerItemInternal, _PureComponent);\n\n var _super = _createSuper(TextLayerItemInternal);\n\n function TextLayerItemInternal() {\n var _this;\n\n _classCallCheck(this, TextLayerItemInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"getElementWidth\", function (element) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n sideways = _assertThisInitialize.sideways;\n\n return element.getBoundingClientRect()[sideways ? 'height' : 'width'];\n });\n\n return _this;\n }\n\n _createClass(TextLayerItemInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.alignTextItem();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.alignTextItem();\n }\n }, {\n key: \"getFontData\",\n value: function () {\n var _getFontData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fontName) {\n var page, font;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n page = this.props.page;\n _context.next = 3;\n return new Promise(function (resolve) {\n page.commonObjs.get(fontName, resolve);\n });\n\n case 3:\n font = _context.sent;\n return _context.abrupt(\"return\", font);\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getFontData(_x) {\n return _getFontData.apply(this, arguments);\n }\n\n return getFontData;\n }()\n }, {\n key: \"alignTextItem\",\n value: function () {\n var _alignTextItem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var element, _this$props, fontName, scale, width, fontData, fallbackFontName, targetWidth, actualWidth, transform, ascent;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n element = this.item;\n\n if (element) {\n _context2.next = 3;\n break;\n }\n\n return _context2.abrupt(\"return\");\n\n case 3:\n element.style.transform = '';\n _this$props = this.props, fontName = _this$props.fontName, scale = _this$props.scale, width = _this$props.width;\n element.style.fontFamily = \"\".concat(fontName, \", sans-serif\");\n _context2.next = 8;\n return this.getFontData(fontName);\n\n case 8:\n fontData = _context2.sent;\n fallbackFontName = fontData ? fontData.fallbackName : 'sans-serif';\n element.style.fontFamily = \"\".concat(fontName, \", \").concat(fallbackFontName);\n targetWidth = width * scale;\n actualWidth = this.getElementWidth(element);\n transform = \"scaleX(\".concat(targetWidth / actualWidth, \")\");\n ascent = fontData ? fontData.ascent : 0;\n\n if (ascent) {\n transform += \" translateY(\".concat((1 - ascent) * 100, \"%)\");\n }\n\n element.style.transform = transform;\n element.style.WebkitTransform = transform;\n\n case 18:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function alignTextItem() {\n return _alignTextItem.apply(this, arguments);\n }\n\n return alignTextItem;\n }()\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var fontSize = this.fontSize,\n top = this.top,\n left = this.left;\n var _this$props2 = this.props,\n customTextRenderer = _this$props2.customTextRenderer,\n scale = _this$props2.scale,\n text = _this$props2.str;\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(_ref) {\n _this2.item = _ref;\n },\n style: {\n height: '1em',\n fontFamily: 'sans-serif',\n fontSize: \"\".concat(fontSize * scale, \"px\"),\n position: 'absolute',\n top: \"\".concat(top * scale, \"px\"),\n left: \"\".concat(left * scale, \"px\"),\n transformOrigin: 'left bottom',\n whiteSpace: 'pre',\n pointerEvents: 'all'\n }\n }, customTextRenderer ? customTextRenderer(this.props) : text);\n }\n }, {\n key: \"unrotatedViewport\",\n get: function get() {\n var _this$props3 = this.props,\n page = _this$props3.page,\n scale = _this$props3.scale;\n return page.getViewport({\n scale: scale\n });\n }\n /**\n * It might happen that the page is rotated by default. In such cases, we shouldn't rotate\n * text content.\n */\n\n }, {\n key: \"rotate\",\n get: function get() {\n var _this$props4 = this.props,\n page = _this$props4.page,\n rotate = _this$props4.rotate;\n return rotate - page.rotate;\n }\n }, {\n key: \"sideways\",\n get: function get() {\n var rotate = this.rotate;\n return rotate % 180 !== 0;\n }\n }, {\n key: \"defaultSideways\",\n get: function get() {\n var rotation = this.unrotatedViewport.rotation;\n return rotation % 180 !== 0;\n }\n }, {\n key: \"fontSize\",\n get: function get() {\n var transform = this.props.transform;\n var defaultSideways = this.defaultSideways;\n\n var _transform = _slicedToArray(transform, 2),\n fontHeightPx = _transform[0],\n fontWidthPx = _transform[1];\n\n return defaultSideways ? fontWidthPx : fontHeightPx;\n }\n }, {\n key: \"top\",\n get: function get() {\n var transform = this.props.transform;\n var viewport = this.unrotatedViewport,\n defaultSideways = this.defaultSideways;\n\n var _transform2 = _slicedToArray(transform, 6),\n\n /* fontHeightPx */\n\n /* fontWidthPx */\n offsetX = _transform2[2],\n offsetY = _transform2[3],\n x = _transform2[4],\n y = _transform2[5];\n\n var _viewport$viewBox = _slicedToArray(viewport.viewBox, 4),\n\n /* xMin */\n yMin = _viewport$viewBox[1],\n\n /* xMax */\n yMax = _viewport$viewBox[3];\n\n return defaultSideways ? x + offsetX + yMin : yMax - (y + offsetY);\n }\n }, {\n key: \"left\",\n get: function get() {\n var transform = this.props.transform;\n var viewport = this.unrotatedViewport,\n defaultSideways = this.defaultSideways;\n\n var _transform3 = _slicedToArray(transform, 6),\n\n /* fontHeightPx */\n\n /* fontWidthPx */\n\n /* offsetX */\n\n /* offsetY */\n x = _transform3[4],\n y = _transform3[5];\n\n var _viewport$viewBox2 = _slicedToArray(viewport.viewBox, 1),\n xMin = _viewport$viewBox2[0];\n\n return defaultSideways ? y - xMin : x - xMin;\n }\n }]);\n\n return TextLayerItemInternal;\n}(PureComponent);\nTextLayerItemInternal.propTypes = {\n customTextRenderer: PropTypes.func,\n fontName: PropTypes.string.isRequired,\n itemIndex: PropTypes.number.isRequired,\n // eslint-disable-line react/no-unused-prop-types\n page: isPage.isRequired,\n rotate: isRotate,\n scale: PropTypes.number,\n str: PropTypes.string.isRequired,\n transform: PropTypes.arrayOf(PropTypes.number).isRequired,\n width: PropTypes.number.isRequired\n};\nexport default function TextLayerItem(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(TextLayerItemInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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\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\nfunction _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}\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport PageContext from '../PageContext';\nimport TextLayerItem from './TextLayerItem';\nimport { cancelRunningTask, errorOnDev } from '../shared/utils';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var TextLayerInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(TextLayerInternal, _PureComponent);\n\n var _super = _createSuper(TextLayerInternal);\n\n function TextLayerInternal() {\n var _this;\n\n _classCallCheck(this, TextLayerInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n textItems: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"loadTextItems\", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var page, cancellable, _yield$cancellable$pr, textItems;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n page = _this.props.page;\n _context.prev = 1;\n cancellable = makeCancellable(page.getTextContent());\n _this.runningTask = cancellable;\n _context.next = 6;\n return cancellable.promise;\n\n case 6:\n _yield$cancellable$pr = _context.sent;\n textItems = _yield$cancellable$pr.items;\n\n _this.setState({\n textItems: textItems\n }, _this.onLoadSuccess);\n\n _context.next = 14;\n break;\n\n case 11:\n _context.prev = 11;\n _context.t0 = _context[\"catch\"](1);\n\n _this.onLoadError(_context.t0);\n\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[1, 11]]);\n })));\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onGetTextSuccess = _this.props.onGetTextSuccess;\n var textItems = _this.state.textItems;\n if (onGetTextSuccess) onGetTextSuccess(textItems);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n textItems: false\n });\n\n errorOnDev(error);\n var onGetTextError = _this.props.onGetTextError;\n if (onGetTextError) onGetTextError(error);\n });\n\n return _this;\n }\n\n _createClass(TextLayerInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var page = this.props.page;\n\n if (!page) {\n throw new Error('Attempted to load page text content, but no page was specified.');\n }\n\n this.loadTextItems();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var page = this.props.page;\n\n if (prevProps.page && page !== prevProps.page) {\n this.loadTextItems();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"renderTextItems\",\n value: function renderTextItems() {\n var textItems = this.state.textItems;\n\n if (!textItems) {\n return null;\n }\n\n return textItems.map(function (textItem, itemIndex) {\n return /*#__PURE__*/React.createElement(TextLayerItem // eslint-disable-next-line react/no-array-index-key\n , _extends({\n key: itemIndex,\n itemIndex: itemIndex\n }, textItem));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var viewport = this.unrotatedViewport,\n rotate = this.rotate;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__Page__textContent\",\n style: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: \"\".concat(viewport.width, \"px\"),\n height: \"\".concat(viewport.height, \"px\"),\n color: 'transparent',\n transform: \"translate(-50%, -50%) rotate(\".concat(rotate, \"deg)\"),\n WebkitTransform: \"translate(-50%, -50%) rotate(\".concat(rotate, \"deg)\"),\n pointerEvents: 'none'\n }\n }, this.renderTextItems());\n }\n }, {\n key: \"unrotatedViewport\",\n get: function get() {\n var _this$props = this.props,\n page = _this$props.page,\n scale = _this$props.scale;\n return page.getViewport({\n scale: scale\n });\n }\n /**\n * It might happen that the page is rotated by default. In such cases, we shouldn't rotate\n * text content.\n */\n\n }, {\n key: \"rotate\",\n get: function get() {\n var _this$props2 = this.props,\n page = _this$props2.page,\n rotate = _this$props2.rotate;\n return rotate - page.rotate;\n }\n }]);\n\n return TextLayerInternal;\n}(PureComponent);\nTextLayerInternal.propTypes = {\n onGetTextError: PropTypes.func,\n onGetTextSuccess: PropTypes.func,\n page: isPage.isRequired,\n rotate: isRotate,\n scale: PropTypes.number\n};\nexport default function TextLayer(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(TextLayerInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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\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\nfunction _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}\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport pdfjs from 'pdfjs-dist/build/pdf';\nimport makeCancellable from 'make-cancellable-promise';\nimport DocumentContext from '../DocumentContext';\nimport PageContext from '../PageContext';\nimport { cancelRunningTask, errorOnDev } from '../shared/utils';\nimport { isLinkService, isPage, isRotate } from '../shared/propTypes';\nexport var AnnotationLayerInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(AnnotationLayerInternal, _PureComponent);\n\n var _super = _createSuper(AnnotationLayerInternal);\n\n function AnnotationLayerInternal() {\n var _this;\n\n _classCallCheck(this, AnnotationLayerInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n annotations: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"loadAnnotations\", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var page, cancellable, annotations;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n page = _this.props.page;\n _context.prev = 1;\n cancellable = makeCancellable(page.getAnnotations());\n _this.runningTask = cancellable;\n _context.next = 6;\n return cancellable.promise;\n\n case 6:\n annotations = _context.sent;\n\n _this.setState({\n annotations: annotations\n }, _this.onLoadSuccess);\n\n _context.next = 13;\n break;\n\n case 10:\n _context.prev = 10;\n _context.t0 = _context[\"catch\"](1);\n\n _this.onLoadError(_context.t0);\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[1, 10]]);\n })));\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onGetAnnotationsSuccess = _this.props.onGetAnnotationsSuccess;\n var annotations = _this.state.annotations;\n if (onGetAnnotationsSuccess) onGetAnnotationsSuccess(annotations);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n annotations: false\n });\n\n errorOnDev(error);\n var onGetAnnotationsError = _this.props.onGetAnnotationsError;\n if (onGetAnnotationsError) onGetAnnotationsError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n var onRenderAnnotationLayerSuccess = _this.props.onRenderAnnotationLayerSuccess;\n if (onRenderAnnotationLayerSuccess) onRenderAnnotationLayerSuccess();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n errorOnDev(error);\n var onRenderAnnotationLayerError = _this.props.onRenderAnnotationLayerError;\n if (onRenderAnnotationLayerError) onRenderAnnotationLayerError(error);\n });\n\n return _this;\n }\n\n _createClass(AnnotationLayerInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var page = this.props.page;\n\n if (!page) {\n throw new Error('Attempted to load page annotations, but no page was specified.');\n }\n\n this.loadAnnotations();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n page = _this$props.page,\n renderInteractiveForms = _this$props.renderInteractiveForms;\n\n if (prevProps.page && page !== prevProps.page || renderInteractiveForms !== prevProps.renderInteractiveForms) {\n this.loadAnnotations();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"renderAnnotationLayer\",\n value: function renderAnnotationLayer() {\n var annotations = this.state.annotations;\n\n if (!annotations) {\n return;\n }\n\n var _this$props2 = this.props,\n linkService = _this$props2.linkService,\n page = _this$props2.page,\n renderInteractiveForms = _this$props2.renderInteractiveForms;\n var viewport = this.viewport.clone({\n dontFlip: true\n });\n var parameters = {\n annotations: annotations,\n div: this.annotationLayer,\n linkService: linkService,\n page: page,\n renderInteractiveForms: renderInteractiveForms,\n viewport: viewport\n };\n this.annotationLayer.innerHTML = '';\n\n try {\n pdfjs.AnnotationLayer.render(parameters);\n this.onRenderSuccess();\n } catch (error) {\n this.onRenderError(error);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__Page__annotations annotationLayer\",\n ref: function ref(_ref2) {\n _this2.annotationLayer = _ref2;\n }\n }, this.renderAnnotationLayer());\n }\n }, {\n key: \"viewport\",\n get: function get() {\n var _this$props3 = this.props,\n page = _this$props3.page,\n rotate = _this$props3.rotate,\n scale = _this$props3.scale;\n return page.getViewport({\n scale: scale,\n rotation: rotate\n });\n }\n }]);\n\n return AnnotationLayerInternal;\n}(PureComponent);\nAnnotationLayerInternal.propTypes = {\n linkService: isLinkService.isRequired,\n onGetAnnotationsError: PropTypes.func,\n onGetAnnotationsSuccess: PropTypes.func,\n onRenderAnnotationLayerError: PropTypes.func,\n onRenderAnnotationLayerSuccess: PropTypes.func,\n page: isPage,\n renderInteractiveForms: PropTypes.bool,\n rotate: isRotate,\n scale: PropTypes.number\n};\n\nvar AnnotationLayer = function AnnotationLayer(props) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (documentContext) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (pageContext) {\n return /*#__PURE__*/React.createElement(AnnotationLayerInternal, _extends({}, documentContext, pageContext, props));\n });\n });\n};\n\nexport default AnnotationLayer;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\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 _defineProperty from \"@babel/runtime/helpers/esm/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 _objectSpread(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\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _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}\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport mergeClassNames from 'merge-class-names';\nimport DocumentContext from './DocumentContext';\nimport PageContext from './PageContext';\nimport Message from './Message';\nimport PageCanvas from './Page/PageCanvas';\nimport PageSVG from './Page/PageSVG';\nimport TextLayer from './Page/TextLayer';\nimport AnnotationLayer from './Page/AnnotationLayer';\nimport { cancelRunningTask, errorOnDev, isProvided, makePageCallback } from './shared/utils';\nimport { eventProps, isClassName, isPageIndex, isPageNumber, isPdf, isRenderMode, isRotate } from './shared/propTypes';\nvar defaultScale = 1.0;\nexport var PageInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(PageInternal, _PureComponent);\n\n var _super = _createSuper(PageInternal);\n\n function PageInternal() {\n var _this;\n\n _classCallCheck(this, PageInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n page: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var _this$props = _this.props,\n onLoadSuccess = _this$props.onLoadSuccess,\n registerPage = _this$props.registerPage;\n var page = _this.state.page;\n if (onLoadSuccess) onLoadSuccess(makePageCallback(page, _this.scale));\n if (registerPage) registerPage(_this.pageIndex, _this.ref);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n errorOnDev(error);\n var onLoadError = _this.props.onLoadError;\n if (onLoadError) onLoadError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"loadPage\", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var pdf, pageNumber, cancellable, page;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n pdf = _this.props.pdf;\n pageNumber = _this.getPageNumber();\n\n if (pageNumber) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 4:\n _this.setState(function (prevState) {\n if (!prevState.page) {\n return null;\n }\n\n return {\n page: null\n };\n });\n\n _context.prev = 5;\n cancellable = makeCancellable(pdf.getPage(pageNumber));\n _this.runningTask = cancellable;\n _context.next = 10;\n return cancellable.promise;\n\n case 10:\n page = _context.sent;\n\n _this.setState({\n page: page\n }, _this.onLoadSuccess);\n\n _context.next = 18;\n break;\n\n case 14:\n _context.prev = 14;\n _context.t0 = _context[\"catch\"](5);\n\n _this.setState({\n page: false\n });\n\n _this.onLoadError(_context.t0);\n\n case 18:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[5, 14]]);\n })));\n\n return _this;\n }\n\n _createClass(PageInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var pdf = this.props.pdf;\n\n if (!pdf) {\n throw new Error('Attempted to load a page, but no document was specified.');\n }\n\n this.loadPage();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var pdf = this.props.pdf;\n\n if (prevProps.pdf && pdf !== prevProps.pdf || this.getPageNumber() !== this.getPageNumber(prevProps)) {\n var unregisterPage = this.props.unregisterPage;\n if (unregisterPage) unregisterPage(this.getPageIndex(prevProps));\n this.loadPage();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var unregisterPage = this.props.unregisterPage;\n if (unregisterPage) unregisterPage(this.pageIndex);\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"getPageIndex\",\n value: function getPageIndex() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n if (isProvided(props.pageNumber)) {\n return props.pageNumber - 1;\n }\n\n if (isProvided(props.pageIndex)) {\n return props.pageIndex;\n }\n\n return null;\n }\n }, {\n key: \"getPageNumber\",\n value: function getPageNumber() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n if (isProvided(props.pageNumber)) {\n return props.pageNumber;\n }\n\n if (isProvided(props.pageIndex)) {\n return props.pageIndex + 1;\n }\n\n return null;\n }\n }, {\n key: \"renderMainLayer\",\n value: function renderMainLayer() {\n var renderMode = this.props.renderMode;\n\n switch (renderMode) {\n case 'none':\n return null;\n\n case 'svg':\n return /*#__PURE__*/React.createElement(PageSVG, {\n key: \"\".concat(this.pageKeyNoScale, \"_svg\")\n });\n\n case 'canvas':\n default:\n return /*#__PURE__*/React.createElement(PageCanvas, {\n key: \"\".concat(this.pageKey, \"_canvas\")\n });\n }\n }\n }, {\n key: \"renderTextLayer\",\n value: function renderTextLayer() {\n var renderTextLayer = this.props.renderTextLayer;\n\n if (!renderTextLayer) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(TextLayer, {\n key: \"\".concat(this.pageKey, \"_text\")\n });\n }\n }, {\n key: \"renderAnnotationLayer\",\n value: function renderAnnotationLayer() {\n var renderAnnotationLayer = this.props.renderAnnotationLayer;\n\n if (!renderAnnotationLayer) {\n return null;\n }\n /**\n * As of now, PDF.js 2.0.943 returns warnings on unimplemented annotations in SVG mode.\n * Therefore, as a fallback, we render \"traditional\" AnnotationLayer component.\n */\n\n\n return /*#__PURE__*/React.createElement(AnnotationLayer, {\n key: \"\".concat(this.pageKey, \"_annotations\")\n });\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var children = this.props.children;\n return /*#__PURE__*/React.createElement(PageContext.Provider, {\n value: this.childContext\n }, this.renderMainLayer(), this.renderTextLayer(), this.renderAnnotationLayer(), children);\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var pageNumber = this.pageNumber;\n var pdf = this.props.pdf;\n var page = this.state.page;\n\n if (!pageNumber) {\n var noData = this.props.noData;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"no-data\"\n }, typeof noData === 'function' ? noData() : noData);\n }\n\n if (pdf === null || page === null) {\n var loading = this.props.loading;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"loading\"\n }, typeof loading === 'function' ? loading() : loading);\n }\n\n if (pdf === false || page === false) {\n var error = this.props.error;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"error\"\n }, typeof error === 'function' ? error() : error);\n }\n\n return this.renderChildren();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var pageNumber = this.pageNumber;\n var className = this.props.className;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergeClassNames('react-pdf__Page', className),\n \"data-page-number\": pageNumber,\n ref: function ref(_ref2) {\n var inputRef = _this2.props.inputRef;\n\n if (inputRef) {\n inputRef(_ref2);\n }\n\n _this2.ref = _ref2;\n },\n style: {\n position: 'relative'\n }\n }, this.eventProps), this.renderContent());\n }\n }, {\n key: \"childContext\",\n get: function get() {\n var page = this.state.page;\n\n if (!page) {\n return {};\n }\n\n var _this$props2 = this.props,\n customTextRenderer = _this$props2.customTextRenderer,\n onGetAnnotationsError = _this$props2.onGetAnnotationsError,\n onGetAnnotationsSuccess = _this$props2.onGetAnnotationsSuccess,\n onGetTextError = _this$props2.onGetTextError,\n onGetTextSuccess = _this$props2.onGetTextSuccess,\n onRenderAnnotationLayerError = _this$props2.onRenderAnnotationLayerError,\n onRenderAnnotationLayerSuccess = _this$props2.onRenderAnnotationLayerSuccess,\n onRenderError = _this$props2.onRenderError,\n onRenderSuccess = _this$props2.onRenderSuccess,\n renderInteractiveForms = _this$props2.renderInteractiveForms;\n return {\n customTextRenderer: customTextRenderer,\n onGetAnnotationsError: onGetAnnotationsError,\n onGetAnnotationsSuccess: onGetAnnotationsSuccess,\n onGetTextError: onGetTextError,\n onGetTextSuccess: onGetTextSuccess,\n onRenderAnnotationLayerError: onRenderAnnotationLayerError,\n onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccess,\n onRenderError: onRenderError,\n onRenderSuccess: onRenderSuccess,\n page: page,\n renderInteractiveForms: renderInteractiveForms,\n rotate: this.rotate,\n scale: this.scale\n };\n }\n /**\n * Called when a page is loaded successfully\n */\n\n }, {\n key: \"pageIndex\",\n get: function get() {\n return this.getPageIndex();\n }\n }, {\n key: \"pageNumber\",\n get: function get() {\n return this.getPageNumber();\n }\n }, {\n key: \"rotate\",\n get: function get() {\n var rotate = this.props.rotate;\n\n if (isProvided(rotate)) {\n return rotate;\n }\n\n var page = this.state.page;\n\n if (!page) {\n return null;\n }\n\n return page.rotate;\n }\n }, {\n key: \"scale\",\n get: function get() {\n var page = this.state.page;\n\n if (!page) {\n return null;\n }\n\n var _this$props3 = this.props,\n scale = _this$props3.scale,\n width = _this$props3.width,\n height = _this$props3.height;\n var rotate = this.rotate; // Be default, we'll render page at 100% * scale width.\n\n var pageScale = 1; // Passing scale explicitly null would cause the page not to render\n\n var scaleWithDefault = scale === null ? defaultScale : scale; // If width/height is defined, calculate the scale of the page so it could be of desired width.\n\n if (width || height) {\n var viewport = page.getViewport({\n scale: 1,\n rotation: rotate\n });\n pageScale = width ? width / viewport.width : height / viewport.height;\n }\n\n return scaleWithDefault * pageScale;\n }\n }, {\n key: \"eventProps\",\n get: function get() {\n var _this3 = this;\n\n return makeEventProps(this.props, function () {\n var page = _this3.state.page;\n\n if (!page) {\n return page;\n }\n\n return makePageCallback(page, _this3.scale);\n });\n }\n }, {\n key: \"pageKey\",\n get: function get() {\n var page = this.state.page;\n return \"\".concat(page.pageIndex, \"@\").concat(this.scale, \"/\").concat(this.rotate);\n }\n }, {\n key: \"pageKeyNoScale\",\n get: function get() {\n var page = this.state.page;\n return \"\".concat(page.pageIndex, \"/\").concat(this.rotate);\n }\n }]);\n\n return PageInternal;\n}(PureComponent);\nPageInternal.defaultProps = {\n error: 'Failed to load the page.',\n loading: 'Loading page…',\n noData: 'No page specified.',\n renderAnnotationLayer: true,\n renderInteractiveForms: false,\n renderMode: 'canvas',\n renderTextLayer: true,\n scale: defaultScale\n};\nvar isFunctionOrNode = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\nPageInternal.propTypes = _objectSpread({}, eventProps, {\n children: PropTypes.node,\n className: isClassName,\n customTextRenderer: PropTypes.func,\n error: isFunctionOrNode,\n height: PropTypes.number,\n inputRef: PropTypes.func,\n loading: isFunctionOrNode,\n noData: isFunctionOrNode,\n onGetTextError: PropTypes.func,\n onGetTextSuccess: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoadSuccess: PropTypes.func,\n onRenderError: PropTypes.func,\n onRenderSuccess: PropTypes.func,\n pageIndex: isPageIndex,\n pageNumber: isPageNumber,\n pdf: isPdf,\n registerPage: PropTypes.func,\n renderAnnotationLayer: PropTypes.bool,\n renderInteractiveForms: PropTypes.bool,\n renderMode: isRenderMode,\n renderTextLayer: PropTypes.bool,\n rotate: isRotate,\n scale: PropTypes.number,\n unregisterPage: PropTypes.func,\n width: PropTypes.number\n}); // forwardRef render functions do not support propTypes\n\n/* eslint-disable react/prop-types */\n\nfunction Page(props, ref) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(PageInternal, _extends({\n ref: ref\n }, context, props));\n });\n}\n\nexport default React.forwardRef(Page);","import pdfjs from 'pdfjs-dist/build/pdf';\nimport Document from './Document';\nimport Outline from './Outline';\nimport Page from './Page';\nimport { isLocalFileSystem, warnOnDev } from './shared/utils';\n\nif (isLocalFileSystem) {\n warnOnDev('You are running React-PDF from your local file system. PDF.js Worker may fail to load due to browser\\'s security policies. If you\\'re on Google Chrome, you can use --allow-file-access-from-files flag for debugging purposes.');\n}\n\npdfjs.GlobalWorkerOptions.workerSrc = 'pdf.worker.js';\nexport { pdfjs, Document, Outline, Page };","import { useRef, useState, useEffect } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\nexport default function useMeasure() {\n const ref = useRef(null);\n const [bounds, setBounds] = useState({ left: 0, top: 0, width: 0, height: 0 });\n \n const [resizeObserver] = useState(\n () =>\n new ResizeObserver(([entry]) => {\n requestAnimationFrame(() => {\n setBounds(entry.contentRect);\n });\n }),\n );\n\n useEffect(() => {\n resizeObserver.observe(ref.current);\n return () => resizeObserver.disconnect();\n }, []);\n\n return [ref, bounds as any];\n}","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport { pdfjs, Document, Page } from \"react-pdf\";\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\nimport 'react-pdf/dist/esm/Page/AnnotationLayer.css';\n\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport useMeasure from \"@shared/hooks/useMeasure\";\n\nfunction Resume({ jobApplication }) {\n const [numPages, setNumPages] = React.useState(1);\n const [resizeRef, { height, width }] = useMeasure();\n\n window.logger(\"%c[Resume] RENDER\", \"color: #1976D2\", { width });\n\n const onDocumentLoadSuccess = (documentData) => {\n window.logger(\"%c[JobApplicationResume] onDocumentLoadSuccess\", \"color: #1976D2\", {\n documentData,\n });\n setNumPages(documentData.numPages);\n };\n\n const handleLoadError = (data) => {\n const status = data.status;\n window.logger(\"%c[JobApplicationResume] handleLoadError\", \"color: #1976D2\", {\n data,\n status,\n });\n\n // Extra fallback in case the URL has expired, shouldn't be needed anymore since we switched to using the Rails urls\n if (data.status === 403) {\n // TODO: refetch Job Application\n }\n };\n\n const handlePageRenderSuccess = (data) => {\n window.logger(\"%c[JobApplicatioResume] the first Page is now Rendered\", \"color: #1976D2\", {\n data,\n });\n };\n\n const microsoftViewer = () => (\n \n
    \n \n
    \n
    \n );\n\n const pages = Array.from(new Array(numPages), (el, index) => {\n // window.logger(\"%c[JAR] pages\", \"color: #1976D2\", { el, index });\n\n // using the classes from imported (required) stylesheet to override the yellow hightlighting of links on hover\n // .annotationLayer .linkAnnotation & .annotationLayer .buttonWidgetAnnotation.pushButton \n return (\n \n );\n });\n\n const pdfRenderer = () => (\n \n \n \n \n }\n error={\n \n }\n noData={\n \n }\n >\n {pages}\n
    \n \n );\n\n return
    {pdfRenderer()}
    ;\n // <>\n // {jobApplication?.shouldUseMicrosoftDocxViewer ? (\n //
    Microsoft
    \n // ) : (\n //
    {pdfRenderer()}
    \n // )}\n // \n // ); // microsoftViewer() : pdfRenderer()\n}\n\nResume.defaultProps = {};\n\nexport default Resume;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.ResumeContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationResume_ResumeContainer;\n\n > div {\n ${t.rounded.md}\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color ${t.dark ? t.color.gray[800] : t.color.white};\n overflow: hidden;\n min-height: 7rem;\n\n .page {\n border-bottom: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n }\n\n .page:last-child {\n border-bottom: none;\n }\n\n .annotationLayer .linkAnnotation > a:hover,\n .annotationLayer .buttonWidgetAnnotation.pushButton > a:hover {\n opacity: 0;\n box-shadow: none;\n }\n }\n `;\n});\n\nStyled.Loading = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationResume_Loading;\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n height: 6.875rem;\n display: flex;\n align-items: center;\n justify-content: center;\n\n > div {\n ${t.m(0)}\n }\n `;\n});\n\nStyled.DocumentWrapper = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationResume_DocumentWrapper;\n ${t.rounded.md}\n flex: 1;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n overflow: hidden;\n > div {\n ${[t.mt(\"-px\"), t.ml(\"-px\")]}\n height: 100%;\n width: 100%;\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport isPropValid from \"@emotion/is-prop-valid\";\nimport { css } from \"@emotion/react\";\nimport { useSpring, animated } from \"react-spring\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\n\nimport useMeasure from \"@shared/hooks/useMeasure\";\n\ninterface Props {\n children: React.ReactNode;\n label: string;\n iconName?: string;\n isDisabled?: boolean;\n emptyLabel?: string;\n defaultHeight?: number;\n}\n\nfunction CollapsibleItem({\n children,\n label,\n iconName,\n isDisabled = false,\n emptyLabel = \"No content available\",\n defaultHeight = 32,\n}: Props) {\n const [isOpen, setIsOpen] = React.useState(false);\n const [resizeRef, { height }] = useMeasure();\n\n // window.logger(\"%c[CollapsibleItem] render\", \"color: #1976D2\", { props });\n\n const handleKeyPress = (event) => {\n if (!isDisabled && (event.key === \"Enter\" || event.key === \"Space\")) {\n handleClickCollapsibleItem();\n }\n };\n\n const handleClickCollapsibleItem = () => {\n setIsOpen(!isOpen);\n };\n\n const expandSpring = useSpring({\n height: isOpen ? `${height + defaultHeight}px` : `${defaultHeight}px`,\n config: {\n tension: 250,\n friction: 36,\n },\n });\n\n const collapsibleItemBodySpring = useSpring({\n from: {\n opacity: 0,\n height: 0,\n },\n to: {\n opacity: isOpen ? 1 : 0,\n height: isOpen ? height : 0,\n },\n config: {\n tension: 250,\n friction: 36,\n },\n });\n\n const animatedChevron = useSpring({\n transform: isOpen ? \"rotate(180deg)\" : \"rotate(0deg)\",\n });\n\n return (\n \n \n \n {iconName && }\n {isDisabled ? emptyLabel : label}\n \n \n \n \n \n \n \n \n
    {children}
    \n \n \n );\n}\n\nexport default CollapsibleItem;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.CollapsibleItemContainer = styled(animated.div, { shouldForwardProp: isPropValid })(\n (props: any) => {\n const t: any = props.theme;\n const open = props.isOpen;\n const disabled = props.disabled;\n // window.logger(\"%c[Styled.CollapsibleItemContainer] props\", \"color: #1976D2\", { props });\n\n return css`\n label: CollapsibleItem_CollapsibleItemContainer;\n ${[t.mt(3), t.text.sm, t.rounded.sm]}\n width: 100%;\n flex: 2;\n display: flex;\n flex-direction: column;\n align-items: center;\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n background: ${t.dark ? t.color.gray[800] : t.color.white};\n transition: box-shadow 0.2s ease, border-radius 0.2s ease; background 0.2s ease;\n\n ${\n !open &&\n `\n box-shadow: inset 0 0 0 1px ${t.dark ? \"transparent\" : t.color.gray[200]};\n `\n }\n\n ${\n open &&\n `\n border: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[300]};\n outline: none;\n `\n }\n\n ${\n disabled &&\n `\n pointer-events: none;\n `\n }\n\n &:hover {\n ${\n !open &&\n `\n box-shadow: inset 0 0 0 1px ${t.dark ? t.color.gray[700] : t.color.gray[400]};\n background: ${t.dark ? t.color.gray[900] : t.color.white}; \n `\n }\n }\n\n > div {\n &:hover {\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n cursor: pointer;\n }\n\n ${\n open &&\n `\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n `\n }\n }\n\n &:focus {\n ${\n !open &&\n `\n outline: none;\n box-shadow: inset 0 0 0 1px ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n `\n }\n }\n `;\n },\n);\n\nStyled.CollapsibleItemHeader = styled.div((props: any) => {\n const t: any = props.theme;\n const open = props.isOpen;\n return css`\n label: CollapsibleItem_Header;\n ${[t.rounded.sm, t.pl(2)]}\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n border: none;\n outline: none;\n background: transparent;\n\n ${\n open &&\n `\n border-bottom: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[300]};\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n `\n }\n }\n `;\n});\n\nStyled.CollapsibleItemLabel = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: CollapsibleItem_Label;\n ${[t.text.sm]}\n display: flex;\n align-items: center;\n\n svg {\n ${t.mr(2)}\n }\n `;\n});\n\nStyled.AnimatedIcon = styled(animated.div)((props: any) => {\n const t: any = props.theme;\n const disabled = props.disabled;\n return css`\n ${[t.h(8), t.w(8), t.rounded.sm]}\n label: CollapsibleItem_AnimatedIcon;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n\n ${disabled &&\n `\n visibility: hidden;\n `}\n `;\n});\n\nStyled.CollapsibleItemBody = styled(animated.div)((props) => {\n const t: any = props.theme;\n return css`\n label: CollapsibleItem_Body;\n ${[t.rounded.sm]}\n width: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n `;\n});\n","export interface JobApplication {\n id: number;\n source: string;\n desiredCompensation: string;\n jobId: number;\n settings: JobApplicationSettings;\n jobTitle: string;\n relativeUrl: string;\n createdAtTimestamp: number | string;\n questionResponses: Array;\n}\n\nexport interface JobApplicationSettings {\n overview: string;\n messages: string;\n compensation: string;\n}\n\ntype JobApplicationSettingType = \"public\" | \"private\";\n\nexport interface CustomQuestionResponseWithQuestion extends CustomQuestionResponse {\n question: CustomQuestion;\n}\nexport interface CustomQuestionResponse {\n id: number;\n jobApplicationId: number;\n questionId: number;\n body: null | string;\n responseArray: Array;\n customFileUrl: null | string;\n customFileFilename: null | string;\n createdAtTimestamp: number;\n}\n\nexport interface CustomQuestion {\n id: number;\n questionId: number;\n jobId: number;\n questionText: string;\n placeholderText: null | string;\n requirementSetting: string;\n kind: string;\n position: number;\n options: {\n data: Array;\n };\n visibilitySetting: VisibilitySetting;\n}\n\nexport enum VisibilitySetting {\n PRIVATE = \"visibility_private\",\n PUBLIC = \"visibility_public\",\n}\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport CollapsibleItem from \"@ats/src/components/shared/CollapsibleItem\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\n\nimport { JobApplication, VisibilitySetting } from \"@shared/types/jobApplication\";\n\nfunction CollapsibleQuestionResponses({ jobApplication }: { jobApplication: JobApplication }) {\n const sortedQuestionResponses =\n jobApplication?.questionResponses?.length > 0\n ? jobApplication?.questionResponses?.sort(function (a, b) {\n return (\n a.createdAtTimestamp - b.createdAtTimestamp || a.question.position - b.question.position\n );\n })\n : [];\n\n const adminOnlyLabel = (\n \n Admin only\n \n );\n\n const isEmpty = sortedQuestionResponses.length === 0;\n\n const responses =\n sortedQuestionResponses.length > 0\n ? sortedQuestionResponses.map((questionResponse, index) => {\n const question = questionResponse?.question;\n let response;\n if (question?.kind === \"multi_select\") {\n response = (\n \n {questionResponse.responseArray.map((selection) => {\n return
  • {selection}
  • ;\n })}\n
    \n );\n } else if (question?.kind === \"file_upload\") {\n response = (\n \n \n {questionResponse?.customFileFilename}\n \n \n \n );\n } else {\n response = {questionResponse?.body};\n }\n\n if (question == undefined) return null;\n\n return (\n \n \n

    {question.questionText}

    \n {question.visibilitySetting === VisibilitySetting.PRIVATE && adminOnlyLabel}\n
    \n {response}\n
    \n );\n })\n : null;\n\n return (\n \n {responses}\n \n );\n}\n\nexport default CollapsibleQuestionResponses;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.QuestionResponses = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CollapsibleQuestionResponses_QuestionResponses;\n ${[t.rounded.sm, t.px(4), t.mt(2), t.mb(6)]}\n position: relative;\n `;\n});\n\nStyled.List = styled.ul((props) => {\n const t: any = props.theme;\n return css`\n label: CollapsibleQuestionResponses_AnswerList;\n ${[t.ml(6), t.mt(1), t.mb(3)]}\n line-height: 1.6;\n white-space: pre-wrap;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n list-style-type: circle;\n\n li {\n ${[t.pt(1), t.pb(\"px\")]}\n\n &:last-of-type {\n ${t.pb(0)}\n }\n }\n `;\n});\n\nStyled.Content = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CollapsibleQuestionResponses_QuestionContent;\n line-height: 1.6;\n &:first-of-type {\n ${[t.pt(4)]}\n }\n &:last-of-type {\n ${[t.mb(4)]}\n }\n `;\n});\n\nStyled.Question = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CollapsibleQuestionResponses_Question;\n ${[t.text.bold, t.text.xs, t.mb(1)]}\n display: flex;\n line-height: 1.6;\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n\n p {\n ${t.pt(1)}\n }\n `;\n});\n\nStyled.Response = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CollapsibleQuestionResponses_Response;\n ${[t.mb(3)]}\n line-height: 1.6;\n white-space: pre-wrap;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.DocumentLink = styled.a((props) => {\n const t: any = props.theme;\n return css`\n label: CollapsibleQuestionResponses_DocumentLink;\n display: flex;\n align-items: center;\n &:link,\n &:visited {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n &:hover {\n text-decoration: underline;\n }\n > svg {\n margin-left: 0.375rem;\n height: 1.125em;\n width: 1.125em;\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n }\n `;\n});\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CollapsibleQuestionResponses_Label;\n ${[t.mx(2), t.px(2), t.h(6), t.pt(\"px\"), t.text.xs, t.rounded.xs, t.text.normal]}\n display: inline-flex;\n align-items: center;\n text-wrap: nowrap;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n","import { useMutation, useQuery, useQueryClient } from \"react-query\";\nimport { apiPost, apiPut, apiGet, apiDelete } from \"@shared/queryHooks/api\";\n\nconst getComments = async ({ jobApplicationId }) => {\n if (jobApplicationId) {\n return await apiGet({ path: `/job_applications/${jobApplicationId}/comments` });\n }\n};\n\nconst getComment = async ({ jobApplicationId, commentId }) => {\n if (jobApplicationId && commentId) {\n return await apiGet({ path: `/job_applications/${jobApplicationId}/comments/${commentId}` });\n }\n};\n\nconst getReviewDraft = async ({ jobApplicationId }) => {\n if (jobApplicationId) {\n return await apiGet({ path: `/job_applications/${jobApplicationId}/comments/new_review` });\n }\n};\n\n// const getPrivateNote = async ({ jobApplicationId }) => {\n// if (jobApplicationId) {\n// return await apiGet({ path: `/job_applications/${jobApplicationId}/comments/private_note` });\n// }\n// };\n\nconst createComment = async ({\n jobApplicationId,\n body,\n kind,\n rating,\n}: {\n jobApplicationId: number;\n body: string;\n kind?: string;\n rating?: string;\n}) => {\n if (jobApplicationId != undefined) {\n return await apiPost({\n path: `/job_applications/${jobApplicationId}/comments`,\n variables: { body, kind, status: \"published\" },\n });\n }\n};\n\nconst updateComment = async ({\n jobApplicationId,\n id: commentId,\n body,\n rating,\n status,\n}: {\n id: number;\n jobApplicationId: number;\n body: string;\n kind?: string;\n rating?: string;\n status?: string;\n}) => {\n if (jobApplicationId != undefined && commentId != undefined) {\n return await apiPut({\n path: `/job_applications/${jobApplicationId}/comments/${commentId}`,\n variables: { body, rating, status },\n });\n }\n};\n\nconst deleteComment = async ({\n jobApplicationId,\n id: commentId,\n body,\n rating,\n status\n}: {\n jobApplicationId: number;\n id: number;\n body: string;\n kind?: string;\n rating?: string;\n status?: string;\n}) => {\n if (jobApplicationId != undefined && commentId != undefined) {\n return await apiDelete({\n path: `/job_applications/${jobApplicationId}/comments/${commentId}`,\n variables: { body, rating, status }\n });\n }\n};\n\n/* HOOKS\n--===================================================-- */\nexport function useComments({\n jobApplicationId,\n}: {\n jobApplicationId?: number | string;\n}): {\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n} {\n return useQuery([\"comments\", jobApplicationId], () => getComments({ jobApplicationId }));\n}\n\nexport function useComment({\n jobApplicationId,\n commentId,\n enabled = false,\n}: {\n jobApplicationId?: number | string;\n commentId?: number | string;\n enabled: boolean;\n}): {\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n} {\n return useQuery([\"comment\", commentId], () => getComment({ jobApplicationId, commentId }), {\n enabled,\n });\n}\n\nexport function useReviewDraft({\n jobApplicationId,\n enabled = false,\n}: {\n jobApplicationId?: number | string;\n enabled: boolean;\n}): {\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n} {\n return useQuery([\"reviewDrafts\", jobApplicationId], () => getReviewDraft({ jobApplicationId }), {\n enabled,\n });\n}\n\n// export function usePrivateNote({\n// jobApplicationId,\n// enabled = false,\n// }: {\n// jobApplicationId?: number | string;\n// enabled: boolean;\n// }): {\n// status: any;\n// data: any;\n// error: any;\n// isLoading: boolean;\n// } {\n// return useQuery([\"privateNotes\", jobApplicationId], () => getPrivateNote({ jobApplicationId }), {\n// enabled,\n// });\n// }\n\nexport function useCreateComment() {\n const queryClient = useQueryClient();\n return useMutation(createComment, {\n // After success or failure, refetch the jobCategories query\n onSuccess: (\n data,\n mutationVariables: {\n jobApplicationId: number | string;\n body: string;\n rating?: string;\n kind?: string;\n },\n ) => {\n // window.logger(\"[useComment] useCreateComment\", {\n // data,\n // mutationVariables,\n // queryClient,\n // });\n queryClient.invalidateQueries([\"comments\", mutationVariables.jobApplicationId]);\n queryClient.invalidateQueries(\"comment\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useUpdateComment() {\n const queryClient = useQueryClient();\n return useMutation(updateComment, {\n // After success or failure, refetch the jobCategories query\n onSuccess: (\n data,\n mutationVariables: {\n jobApplicationId: number | string;\n id: number | string;\n body: string;\n rating?: string;\n kind?: string;\n status?: string;\n },\n ) => {\n window.logger(\"[useComment] useUpdateComment\", {\n data,\n mutationVariables,\n queryClient,\n });\n\n queryClient.invalidateQueries([\"comments\", mutationVariables.jobApplicationId]);\n queryClient.invalidateQueries(\"comment\");\n queryClient.invalidateQueries(\"reviewDrafts\");\n },\n // throwOnError: true,\n });\n}\n\nexport function useDeleteComment() {\n const queryClient = useQueryClient();\n return useMutation(deleteComment, {\n onSettled: (\n mutationVariables: {\n jobApplicationId: number | string;\n id: number | string;\n body: string;\n rating?: string;\n kind?: string;\n status?: string;\n },\n ) => {\n window.logger(\"[useComment] useDeleteComment\", {\n mutationVariables,\n queryClient,\n });\n\n queryClient.invalidateQueries([\"comments\", mutationVariables.jobApplicationId]);\n queryClient.invalidateQueries(\"comment\");\n queryClient.invalidateQueries(\"reviewDrafts\");\n },\n // throwOnError: true,\n });\n}\n\n// export function useUpdatePrivateNote() {\n// const queryClient = useQueryClient();\n// return useMutation(updateComment, {\n// // After success or failure, refetch the jobCategories query\n// onSuccess: (\n// data,\n// mutationVariables: {\n// jobApplicationId: number | string;\n// id: number | string;\n// body: string;\n// },\n// ) => {\n// window.logger(\"[useComment] useUpdatePrivateNote\", {\n// data,\n// mutationVariables,\n// queryClient,\n// });\n\n// // queryClient.invalidateQueries([\"comments\", mutationVariables.jobApplicationId]);\n// queryClient.invalidateQueries(\"privateNotes\");\n// },\n// // throwOnError: true,\n// });\n// }\n","import { useMutation, useQuery, useQueryClient } from \"react-query\";\nimport { apiPost, apiPut, apiGet } from \"@shared/queryHooks/api\";\n\nconst getCandidatePrivateNote = async ({ candidateId }) => {\n if (candidateId) {\n return await apiGet({\n path: `/candidates/${candidateId}/candidate_private_notes/note`,\n });\n }\n};\n\nconst updateCandidatePrivateNote = async ({\n candidateId,\n id: candidatePrivateNoteId,\n body,\n rating,\n status,\n}: {\n id: number;\n candidateId: number;\n body: string;\n kind?: string;\n rating?: string;\n status?: string;\n}) => {\n if (candidateId != undefined && candidatePrivateNoteId != undefined) {\n return await apiPut({\n path: `/candidates/${candidateId}/candidate_private_notes/${candidatePrivateNoteId}`,\n variables: { body, rating, status },\n });\n }\n};\n\n/* HOOKS\n--===================================================-- */\nexport function useCandidatePrivateNote({\n candidateId,\n enabled = false,\n}: {\n candidateId?: number | string;\n enabled: boolean;\n}): {\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n} {\n return useQuery(\n [\"candidatePrivateNote\", candidateId],\n () => getCandidatePrivateNote({ candidateId }),\n {\n enabled,\n },\n );\n}\n\nexport function useUpdateCandidatePrivateNote() {\n const queryClient = useQueryClient();\n return useMutation(updateCandidatePrivateNote, {\n // After success or failure, refetch the jobCategories query\n onSuccess: (\n data,\n mutationVariables: {\n candidateId: number | string;\n id: number | string;\n body: string;\n rating?: string;\n kind?: string;\n status?: string;\n },\n ) => {\n window.logger(\"[useCandidatePrivateNote] useUpdateCandidatePrivateNote\", {\n data,\n mutationVariables,\n queryClient,\n });\n\n queryClient.invalidateQueries(\"candidatePrivateNote\");\n },\n // throwOnError: true,\n });\n}\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport isEmpty from \"lodash/isEmpty\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport Resume from \"@ats/src/views/jobApplications/Resume\";\nimport ProseMirrorEditor from \"@shared/ProseMirror/Editor\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\nimport textStyles from \"@ats/styles/text\";\nimport CollapsibleQuestionResponses from \"@ats/src/views/reviews/CollapsibleQuestionResponses\";\n\nimport { useUpdateComment } from \"@shared/queryHooks/useComment\";\nimport {\n useCandidatePrivateNote,\n // useUpdateCandidatePrivateNote,\n} from \"@shared/queryHooks/useCandidatePrivateNote\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { validateComment } from \"@shared/lib/validateWithYup\";\nimport { formatPhoneNumber } from \"@shared/lib/utils\";\n\nimport { reviewRatingOptions } from \"@ats/src/lib/lookups\";\n\nfunction ReviewKit({\n jobApplication,\n review: passedReview,\n isDraft,\n history,\n returnPathname,\n orgAdminJobsListUrl,\n role,\n}) {\n const { candidate } = jobApplication;\n const candidateId = jobApplication.candidateId;\n const addToast = useToastContext();\n // const {\n // mutate: createComment,\n // error: errorOnCreate,\n // isLoading: isLoadingCreate,\n // } = useCreateComment();\n const {\n mutate: updateComment,\n error: errorOnUpdate,\n isLoading: isLoadingUpdate,\n } = useUpdateComment();\n\n // This is used by autosave so that when we click out of the document it does not trigger the loading indicator on the button for autosave\n const {\n mutate: updateCommentSilently,\n error: errorOnUpdateSilently,\n isLoading: isLoadingUpdateSilently,\n } = useUpdateComment();\n\n const { data: candidatePrivateNote, isLoading: isLoadingPrivateNote } = useCandidatePrivateNote({\n candidateId,\n enabled: true,\n });\n\n const [review, setReview] = React.useState(passedReview || {});\n const { body, kind } = review;\n const [rating, setRating] = React.useState(review.rating);\n\n const editorRef = React.useRef(undefined);\n const [errors, setErrors] = React.useState([]);\n const [isDirty, setIsDirty] = React.useState(false);\n\n window.logger(\"%c[ReviewKit] \", \"color: #1976D2\", {\n passedReview,\n review,\n returnPathname,\n jobApplication,\n });\n\n const handleEditorChange = () => {\n if (isDirty === false) {\n setIsDirty(true);\n }\n if (errors.length > 0) {\n setErrors([]);\n }\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n const [isValid, validationErrors] = await validateComment({\n body: editorRef.current.serializedState(),\n });\n\n if (isValid) {\n // isDraft ? handleUpdate() : handleCreate();\n handlePublish();\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleAutoSave = React.useCallback(async () => {\n window.logger(\"%c[ReviewModal] handleUpdate\", \"color: #1976D2\", {\n jobApplicationId: jobApplication.id,\n body: editorRef.current.serializedState(),\n rating,\n kind,\n });\n\n try {\n await updateCommentSilently(\n {\n jobApplicationId: jobApplication.id,\n id: review.id,\n body: editorRef.current.serializedState(),\n kind: \"review\",\n rating,\n // Do not pass \"status\" as this is only updating the current active comment, not changing its status, that is handled by handlePublish\n },\n {\n onSuccess: (data) => {\n setIsDirty(false);\n },\n },\n );\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"%c[ReviewModal] handle error when updating Job Review\", \"color: #FF7602\", {\n error,\n });\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n }, [jobApplication, kind, rating, review, updateCommentSilently]);\n\n const handlePublish = async () => {\n window.logger(\"%c[ReviewModal] handlePublish\", \"color: #1976D2\", {\n jobApplicationId: jobApplication.id,\n body: editorRef.current.serializedState(),\n rating,\n kind,\n });\n\n try {\n await updateComment(\n {\n jobApplicationId: jobApplication.id,\n id: review.id,\n body: editorRef.current.serializedState(),\n rating,\n kind: \"review\",\n status: \"published\",\n },\n {\n onSuccess: (data) => {\n // TODO\n if (role === \"org_interviewer\") {\n history.push({\n pathname: \"/interviewer\",\n search: \"?message=success\",\n });\n } else {\n addToast({\n title: \"You successfully submitted your review.\",\n kind: \"success\",\n delay: 5000,\n });\n history.push({\n pathname: returnPathname,\n state: { orgAdminJobsListUrl: orgAdminJobsListUrl }, //allows value to be pushed back to originating job on review publish/update\n });\n }\n },\n },\n );\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"%c[ReviewModal] handle error when publishing Job Review\", \"color: #FF7602\", {\n error,\n });\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n const handleChangeSelectRating = (name, value) => {\n // setIsDirty(true);\n setRating(value);\n };\n\n React.useEffect(() => {\n window.logger(\"%c[ReviewModal] useEffect from rating\", \"color: #1976D2\", {\n rating,\n });\n handleAutoSave();\n }, [rating, handleAutoSave]);\n\n const submitButton = (\n \n {isDraft ? \"Post your review\" : \"Update review\"}\n \n );\n\n return (\n <>\n \n \n

    \n {candidate.fullName} as {jobApplication?.job.title}\n

    \n
    \n {!candidate.phone && !candidate.email && (\n \n \n No email address or phone number\n \n )}\n {candidate.email && candidate.hasValidEmail && (\n \n \n {candidate.email}\n \n )}\n {candidate.phone && (\n \n \n {formatPhoneNumber(candidate.phone)}\n \n )}\n {candidate.linkedinUrl && (\n \n \n \n \n \n )}\n {candidate.twitterUrl && (\n \n \n \n \n \n )}\n {candidate.githubUrl && (\n \n \n \n \n \n )}\n {candidate.dribbbleUrl && (\n \n \n \n \n \n )}\n {candidate.websiteUrl && (\n \n \n \n \n \n )}\n
    \n
    \n \n

    Resume

    \n \n\n {!isEmpty(jobApplication?.sharedDocument) &&\n jobApplication?.sharedDocument !== \"

    \" ? (\n <>\n

    Hiring document

    \n \n
    \n \n \n ) : null}\n\n {candidatePrivateNote != undefined &&\n candidatePrivateNote.body != undefined &&\n candidatePrivateNote.body != \"\" &&\n candidatePrivateNote.body != \"

    \" ? (\n <>\n

    Notes

    \n \n
    \n \n \n ) : null}\n \n \n \n \n\n \n \n \n {submitButton}\n {isDirty ? Changes not yet saved : No unsaved changes}\n \n \n \n \n \n );\n}\n\nReviewKit.defaultProps = {};\n\nexport default ReviewKit;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.ResumeColumn = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewKit_ResumeColumn;\n ${[t.p(4)]};\n height: 100%;\n overflow-y: auto;\n border-right: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n width: 90vw;\n flex-shrink: 0;\n\n > h3 {\n ${[t.mt(6), t.mb(3), t.text.h3]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n }\n\n ${t.mq[\"lg\"]} {\n width: 50%;\n flex-shrink: 1;\n }\n `;\n});\n\nStyled.ReviewColumn = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewKit_ReviewColumn;\n height: 100%;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n width: 100vw;\n flex-shrink: 0;\n\n ${t.mq[\"lg\"]} {\n width: 50%;\n flex-shrink: 1;\n }\n `;\n});\n\nStyled.Notes = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewKit_Notes;\n ${[textStyles, t.p(4), t.pb(1), t.rounded.md]}\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n flex-grow: 1;\n overflow-y: auto;\n ${t.dark &&\n `\n color: ${t.color.gray[200]};\n blockquote {\n color: ${t.color.gray[400]};\n border-left: 4px solid ${t.color.gray[600]};\n }\n `}\n `;\n});\n\nStyled.ReviewInput = styled(FormContainer)((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewKit_ReviewInput;\n position: relative;\n flex: 1;\n display: flex;\n flex-direction: column;\n max-height: 100%;\n `;\n});\n\nStyled.BottomBar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewKit_BottomBar;\n ${t.p(4)}\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n `;\n});\n\nStyled.Actions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewKit_Actions;\n display: flex;\n align-items: center;\n\n > span {\n ${[t.text.xs, t.mx(4)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n\nStyled.Profile = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewKit_Profile;\n\n h2 {\n ${[t.text.h1, t.mb(1)]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n\n span {\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n ${[t.text.h3, t.text.normal]}\n }\n }\n\n > div {\n display: flex;\n }\n `;\n});\n\nStyled.Node = styled.a((props: any) => {\n const t: any = props.theme;\n return css`\n label: ReviewKit_ProfileNode;\n ${[t.mt(2), t.mr(2), t.h(8), t.px(2), t.text.sm, t.rounded.sm]}\n display: inline-flex;\n align-items: center;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n &:link,\n &:visited {\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n transition: border-color 0.2s ease, color 0.2s ease;\n\n &:hover {\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n border: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[400]};\n }\n\n svg {\n font-size: 0.8125rem;\n ${t.mr(2)}\n }\n\n ${props.icon &&\n css`\n ${[t.w(8), t.px(0)]}\n justify-content: center;\n\n svg {\n ${t.mr(0)}\n }\n `}\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\n// Fallback\n/***********************************/\n\ninterface FriendlyErrorsProps {\n statusCode: number;\n resource: string;\n actionUrl?: string;\n role?: string;\n}\n// default return to jobs list unless role is interviewer - then omit rendering link at all\nexport default function FriendlyErrors({ statusCode, resource, actionUrl = \"/jobs\", role }: FriendlyErrorsProps) {\n if (statusCode === 422) {\n return (\n \n

    The {resource} you are looking for could not be found.

    \n {role !== \"org_interviewer\" && (\n

    \n Click here to return to your jobs.\n

    \n )}\n
    \n );\n }\n\n if (statusCode === 403) { \n return (\n \n

    You do not have access to the {resource} you are trying to view.

    \n

    \n Please check with your admin if you believe you should have access.{\" \"}\n {role !== \"org_interviewer\" && (\n <>\n Click here to return to your jobs.\n \n )}\n

    \n
    \n );\n }\n\n return (\n \n

    Something didn't work.

    \n

    \n An error has occurred, please try refreshing or visiting your{\" \"}\n Polymer home.\n

    \n
    \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Component = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FriendlyErrors;\n ${[t.py(24), t.px(4)]};\n height: 100%;\n width: 100%;\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n h1 {\n ${[t.mb(2), t.text.h2]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n line-height: 1.4;\n }\n\n p {\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n }\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[300] : t.color.black} !important;\n &:hover {\n text-decoration: underline;\n }\n }\n `;\n});\n","import { useQuery, useInfiniteQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiGet, apiPut, apiPost } from \"@shared/queryHooks/api\";\nimport queryString from \"query-string\";\n\nconst getJobApplication = async (jobApplicationId) => {\n // window.logger(\n // \"%c[useJobApplication][JobApplicationNotes] getJobApplication\\n\\n\\n\\n\",\n // \"background-color: #00F6D2\",\n // {\n // jobApplicationId,\n // },\n // );\n if (jobApplicationId != undefined) {\n return await apiGet({\n path: `/job_applications/${jobApplicationId}`,\n });\n }\n};\n\nconst getJobApplications = async (jobId, hiringStageId, page = null) => {\n if (jobId != undefined) {\n const params =\n hiringStageId != undefined\n ? `?${queryString.stringify({ hiring_stage: hiringStageId, page })}`\n : \"\";\n window.logger(\"%c[useJobApplication] getJobApplications\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n jobId,\n hiringStageId,\n params,\n });\n return await apiGet({ path: `/jobs/${jobId}/job_applications${params}` });\n }\n};\n\nconst getInfiniteJobApplications = async ({\n jobId,\n hiringStageId,\n page = null,\n}: {\n jobId?: number;\n hiringStageId?: number;\n page?: number;\n}) => {\n if (jobId != undefined && page != undefined) {\n const params =\n hiringStageId != undefined\n ? `?${queryString.stringify({ hiring_stage: hiringStageId, page })}`\n : \"\";\n window.logger(\n \"%c[useJobApplication] getInfiniteJobApplications\\n\\n\\n\\n\",\n \"background-color: #FF76D2\",\n {\n jobId,\n hiringStageId,\n params,\n },\n );\n return await apiGet({ path: `/jobs/${jobId}/job_applications${params}` });\n }\n};\n\nconst updateJobApplication = async ({ id, ...jobApplication }) => {\n window.logger(\"%c[useJobApplication] updateJobApplication\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n id,\n jobApplication,\n });\n return await apiPut({\n path: `/job_applications/${id}`,\n variables: { jobApplication: jobApplication },\n });\n};\n\nconst cloneToNewJobAtHiringStage = async ({ id, hiringStageId }) => {\n window.logger(\"%c[useJobApplication] updateJobApplication\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n id,\n hiringStageId,\n });\n return await apiPut({\n path: `/job_applications/${id}/clone_to_job`,\n variables: { hiringStageId: hiringStageId },\n });\n};\n\nconst moveToNewJobAtHiringStage = async ({ id, hiringStageId, jobId }) => {\n window.logger(\"%c[useJobApplication] updateJobApplication\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n id,\n hiringStageId,\n jobId,\n });\n return await apiPut({\n path: `/job_applications/${id}/move_to_job`,\n variables: { hiringStageId: hiringStageId },\n });\n};\n\nconst bulkMoveJobApplicationsToStage = async ({\n jobId,\n targetHiringStageId,\n sourceHiringStageId,\n includedJobApplicationIds = null,\n excludedJobApplicationIds = null,\n}) => {\n window.logger(\n \"%c[useJobApplication] bulkMoveJobApplicationsToStage\",\n \"background-color: #FF76D2\",\n {\n targetHiringStageId,\n sourceHiringStageId,\n includedJobApplicationIds,\n excludedJobApplicationIds,\n },\n );\n return await apiPost({\n path: `/jobs/${jobId}/bulk_move_job_applications_to_stage`,\n variables: {\n targetHiringStageId,\n sourceHiringStageId,\n includedJobApplicationIds,\n excludedJobApplicationIds,\n },\n });\n};\n\nfunction useJobApplications({\n jobId,\n refetchOnWindowFocus = false,\n stageId,\n page,\n}: {\n jobId: number;\n refetchOnWindowFocus?: boolean;\n stageId?: number;\n page?: number;\n}): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n refetch: () => any;\n} {\n return useQuery(\n [\"jobApplications\", jobId, Number(stageId)],\n () => getJobApplications(jobId, Number(stageId), page),\n {\n // enabled: job\n refetchOnWindowFocus,\n keepPreviousData: true,\n },\n );\n}\n\nfunction useInfiniteJobApplicationsForStage({\n jobId,\n // refetchOnWindowFocus = false,\n stageId,\n}: {\n jobId: number;\n // refetchOnWindowFocus?: boolean;\n stageId?: number;\n}): {\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n isFetchingNextPage?: string | boolean; // isFetchingMore\n fetchNextPage: () => any; // fetchMore\n hasNextPage?: boolean; // canFetchMore\n} {\n return useInfiniteQuery(\n [\"jobApplicationsForStage\", Number(stageId)],\n ({ pageParam = 1 }) =>\n getInfiniteJobApplications({ jobId, hiringStageId: Number(stageId), page: pageParam }),\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[useJobApplication] useInfiniteJobApplicationsForStage\",\n \"color: #1976D2\",\n data,\n );\n },\n onSettled: () => {\n // TODO\n },\n // This generates the \"pageParam\"\n getNextPageParam: (lastPage, allPages) => {\n // window.logger(\n // \"%c[useJobApplication] useInfiniteJobApplicationsForStage\",\n // \"background-color: #009DD2\",\n // {\n // lastPage,\n // allPages,\n // },\n // );\n return lastPage?.meta.nextPage;\n },\n // refetchOnWindowFocus,\n // keepPreviousData: true,\n },\n );\n}\n\nfunction useUpdateJobApplication() {\n const queryClient = useQueryClient();\n return useMutation(updateJobApplication, {\n onSuccess: (data, mutationVariables) => {\n // window.logger(\n // \"%c[useJobApplication] useUpdateJobApplication onSuccess\",\n // \"color: #1976D2\",\n // {\n // data,\n // mutationVariables,\n // },\n // );\n queryClient.setQueryData([\"jobApplication\", data.id], {\n ...data,\n });\n queryClient.invalidateQueries([\"jobApplication\", data.id]);\n },\n // throwOnError: true,\n });\n}\n\nfunction useMoveJobApplicationToStage() {\n const queryClient = useQueryClient();\n return useMutation(updateJobApplication, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[useJobApplication] useMoveJobApplicationToStage onSuccess\",\n \"background: #1046D2, color: #FFFFFF;\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.refetchQueries([\"jobs\", data.jobId], { exact: true });\n queryClient.invalidateQueries([\"jobApplication\", data.id]); // refetches the JobApplication\n // queryClient.refetchQueries([\"jobApplications\", data.jobId]); // not sure this is necessary\n // queryClient.refetchQueries([\"jobApplicationsForStage\", data.hiringStageId]); // refetches the jobApplications for this hiring stage\n queryClient.invalidateQueries(\"jobApplicationsForStage\"); // refetches the jobApplications for this hiring stage\n },\n // throwOnError: true,\n });\n}\n\nfunction useBulkMoveJobApplicationsToStage() {\n const queryClient = useQueryClient();\n return useMutation(bulkMoveJobApplicationsToStage, {\n onSuccess: async (data, mutationVariables) => {\n window.logger(\n \"%c[useJobApplication] useBulkMoveJobApplicationsToStage onSuccess\",\n \"background: #1046D2, color: #FFFFFF;\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.refetchQueries([\"jobs\", mutationVariables.jobId], { exact: true }); // refetches the Job\n // queryClient.removeQueries(\n // [\"jobApplicationsForStage\", mutationVariables.targetHiringStageId],\n // { exact: true },\n // );\n queryClient.invalidateQueries(\"jobApplication\");\n queryClient.removeQueries(\"jobApplication\", { stale: true })\n queryClient.invalidateQueries(\"jobApplicationsForStage\");\n try {\n await queryClient.refetchQueries(\n [\"jobApplicationsForStage\", mutationVariables.targetHiringStageId],\n { inactive: true, active: true, exact: true },\n { throwOnError: true },\n );\n await queryClient.refetchQueries(\n [\"jobApplicationsForStage\", mutationVariables.sourceHiringStageId],\n { inactive: true, active: true, exact: true },\n { throwOnError: true },\n );\n } catch (error) {\n console.error(\"Failed to refetch queries: \", error);\n }\n // queryClient.refetchQueries([\"jobApplications\", mutationVariables.jobId]); // refetches the jobApplications for this job\n // queryClient.refetchQueries([\"jobApplicationsForStage\", mutationVariables.targetHiringStageId]); // refetches the jobApplications for this hiring stage\n // queryClient.invalidateQueries(\"jobApplicationsForStage\"); // refetches the jobApplications for this hiring stage\n },\n // throwOnError: true,\n });\n}\n\nfunction useCloneToNewJobAtHiringStage() {\n const queryClient = useQueryClient();\n return useMutation(cloneToNewJobAtHiringStage, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[useJobApplication] useCloneToNewJobAtHiringStage onSuccess\",\n \"background: #1046D2, color: #FFFFFF;\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.refetchQueries([\"jobs\", data.jobId], { exact: true });\n queryClient.invalidateQueries([\"jobApplication\", data.id]); // refetches the JobApplication\n // queryClient.refetchQueries([\"jobApplications\", data.jobId]); // refetches the jobApplications for this job\n queryClient.refetchQueries([\"jobApplicationsForStage\", data.hiringStageId]); // refetches the jobApplications for this hiring stage\n },\n // throwOnError: true,\n });\n}\n\nfunction useMoveToNewJobAtHiringStage() {\n const queryClient = useQueryClient();\n return useMutation(moveToNewJobAtHiringStage, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[useJobApplication] useMoveToNewJobAtHiringStage onSuccess\",\n \"background: #1046D2, color: #FFFFFF;\",\n {\n data,\n mutationVariables,\n },\n );\n // queryClient.refetchQueries([\"jobs\", data.jobId], { exact: true });\n queryClient.invalidateQueries([\"jobs\", mutationVariables.jobId], { exact: true });\n // queryClient.invalidateQueries(\"jobs\");\n // queryClient.invalidateQueries([\"jobApplication\", data.id]); // refetches the JobApplication\n // queryClient.invalidateQueries([\"jobApplication\", mutationVariables.id]); // refetches the JobApplication\n queryClient.invalidateQueries(\"jobApplication\"); // refetches the JobApplication\n // queryClient.refetchQueries([\"jobApplications\", data.jobId]); // refetches the jobApplications for this job\n queryClient.invalidateQueries(\"jobApplicationsForStage\"); // refetches the jobApplications for this hiring stage\n // queryClient.refetchQueries([\"jobApplicationsForStage\", data.hiringStageId]); // refetches the jobApplications for this hiring stage\n // queryClient.invalidateQueries([\"jobApplicationsForStage\", mutationVariables.hiringStageId]); // refetches the jobApplications for this hiring stage\n },\n // throwOnError: true,\n });\n}\n\nfunction useJobApplication({\n jobApplicationId,\n initialData,\n refetchOnWindowFocus = false,\n}): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n refetch: () => any;\n} {\n return useQuery([\"jobApplication\", jobApplicationId], () => getJobApplication(jobApplicationId), {\n initialData,\n refetchOnWindowFocus,\n });\n}\n\nexport {\n useJobApplications,\n useInfiniteJobApplicationsForStage,\n getInfiniteJobApplications,\n // prefetchJobApplications,\n useJobApplication,\n useUpdateJobApplication,\n // useFireAndForgetUpdateJobApplication, // Does not invalidate/refetch queries\n useMoveJobApplicationToStage,\n useBulkMoveJobApplicationsToStage,\n useCloneToNewJobAtHiringStage,\n useMoveToNewJobAtHiringStage,\n};\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport NavBar from \"@shared/components/NavBar\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport ReviewKit from \"@ats/src/views/reviews/ReviewKit\";\nimport FriendlyErrors from \"@ats/src/components/shared/FriendlyErrors\";\n\nimport { useJobApplication } from \"@shared/queryHooks/useJobApplication\";\nimport { useComment, useReviewDraft } from \"@shared/queryHooks/useComment\";\n\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n// import { useJobStore } from \"@ats/src/lib/store/zustand/jobStore\";\n// import { useWhyDidYouUpdate } from \"@shared/hooks/useWhyDidYouUpdate\";\n\nfunction ReviewKitContainer({ match, history, location }) {\n // useWhyDidYouUpdate(\"ReviewKitContainer \", props);\n\n // window.logger(\"%c[ReviewKitContainer] \", \"background: #EFDDEF; color: #1976D2\", {\n // history,\n // location,\n // match,\n // });\n const { currentOrganizationUser } = useCurrentSession();\n\n const [returnPathname] = React.useState(\n location && location.state ? location.state.orginalPathname : \"/jobs\",\n );\n\n const [orgAdminJobsListUrl] = React.useState(\n location && location.state ? location.state.orgAdminJobsListUrl : \"\",\n );\n\n const jobApplicationHashId = match.params.jobApplicationHashId;\n const commentId = match.params.commentId;\n const isDraft = commentId === \"new\"; // If the commentId is the word \"new\" it means we are creating a new Review\n\n const {\n data: jobApplication,\n isLoading: isLoadingJobApplication,\n error: errorGettingJobApplication,\n } = useJobApplication({\n jobApplicationId: jobApplicationHashId,\n // initialData: jobApplicationFromStore,\n initialData: null,\n });\n\n const { data: comment, isLoading: isLoadingComment, error: errorGettingComment } = useComment({\n jobApplicationId: jobApplicationHashId,\n commentId,\n enabled: !isDraft,\n });\n\n const { data: commentDraft, isLoading: isLoadingCommentDraft } = useReviewDraft({\n jobApplicationId: jobApplicationHashId,\n enabled: isDraft,\n });\n\n window.logger(\"%c[ReviewKitContainer] render\", \"background-color: #19FFD2\", {\n //TODO\n jobApplication,\n jobApplicationHashId,\n comment,\n commentDraft,\n commentId,\n isDraft,\n });\n\n const title =

    Review kit

    ;\n\n if (errorGettingComment) {\n return (\n \n );\n } else if (errorGettingJobApplication) {\n return (\n \n );\n }\n\n return (\n <>\n {currentOrganizationUser?.role !== \"org_interviewer\" ? (\n \n ) : null}\n \n {isLoadingJobApplication ||\n isLoadingComment ||\n isLoadingCommentDraft ||\n jobApplication == undefined ? (\n \n ) : (\n \n //
    Coming
    \n )}\n
    \n \n );\n}\n\nReviewKitContainer.propTypes = {};\n\nReviewKitContainer.defaultProps = {};\n\nexport default ReviewKitContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewKitContainer;\n display: flex;\n height: 100%;\n overflow-y: hidden;\n overflow-x: auto;\n `;\n});\n","import { useQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiGet, apiPost, apiPut } from \"@shared/queryHooks/api\";\nimport queryString from \"query-string\";\n\nconst getOrganizations = async (filters) => {\n let queryParams;\n if (filters) {\n queryParams = `?${queryString.stringify(filters)}`;\n }\n return await apiGet({ path: `/admin/organizations${queryParams}` });\n};\n\nconst getOrganization = async (organization) => {\n if (organization && organization.id != undefined) {\n return await apiGet({ path: `/admin/organizations/${organization.id}` });\n }\n};\n\nconst searchOrganizations = async (organizationName) => {\n return await apiPost({\n path: `/admin/organizations/search`,\n variables: { searchTerm: organizationName },\n });\n};\n\nconst updateOrganization = async ({ id, ...organization }) => {\n window.logger(\n \"%c[ADMIN][useOrganization] updateOrganization\\n\\n\\n\\n\",\n \"background-color: #FF76D2\",\n {\n organization,\n },\n );\n return await apiPut({\n path: `/admin/organizations/${id}`,\n variables: { organization },\n });\n};\n\nconst transferOrganizationOwnership = async ({ id, organizationUserId }) => {\n window.logger(\n \"%c[ADMIN][useOrganization] transferOrganizationOwnership\\n\\n\\n\\n\",\n \"background-color: #FF76D2\",\n {\n id,\n organizationUserId,\n },\n );\n return await apiPut({\n path: `/admin/organizations/${id}/transfer_ownership`,\n variables: { organizationUserId },\n });\n};\n\nconst takeoverOrganization = async ({ id, email }) => {\n window.logger(\n \"%c[ADMIN][useOrganization] takeoverOrganization\\n\\n\\n\\n\",\n \"background-color: #FF76D2\",\n {\n id,\n email,\n },\n );\n return await apiPut({\n path: `/admin/organizations/${id}/takeover_organization`,\n variables: { email },\n });\n};\n\n/* Hooks\n--===================================================-- */\nfunction useOrganizations({\n filters = { order_by: \"created_at_desc\", is_claimed: true, customers: true },\n}: {\n filters: { order_by: string; is_claimed?: boolean; customers?: boolean };\n}): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isSuccess: boolean;\n} {\n return useQuery([\"organizations\", filters], () => getOrganizations(filters));\n}\n\nfunction useOrganization(\n organization,\n): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n} {\n return useQuery([\"organization\", organization], () => getOrganization(organization));\n}\n\nfunction useSearchOrganizations(): {\n mutate: any;\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n isSuccess: boolean;\n} {\n return useMutation(searchOrganizations);\n}\n\nfunction useUpdateOrganization() {\n const queryClient = useQueryClient();\n return useMutation(updateOrganization, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[ADMIN][useOrganization] useUpdateOrganization onSuccess\",\n \"color: #1976D2\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.invalidateQueries(\"organizations\");\n queryClient.invalidateQueries(\"organization\");\n },\n // throwOnError: true,\n });\n}\n\nfunction useTransferOrganizationOwnership() {\n const queryClient = useQueryClient();\n return useMutation(transferOrganizationOwnership, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[ADMIN][useOrganization] useTransferOrganizationOwnership onSuccess\",\n \"color: #1976D2\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.invalidateQueries(\"organizations\");\n queryClient.invalidateQueries(\"organization\");\n },\n // throwOnError: true,\n });\n}\n\nfunction useTakeoverOrganization() {\n const queryClient = useQueryClient();\n return useMutation(takeoverOrganization, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[ADMIN][useOrganization] useTakeoverOrganization onSuccess\",\n \"color: #1976D2\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.invalidateQueries(\"organizations\"); // Invalidate cache for organizations\n queryClient.invalidateQueries(\"organization\"); // Invalidate cache for specific organization\n },\n onError: (error) => {\n console.error(\"Failed to takeover organization:\", error);\n },\n });\n}\n\nexport {\n useOrganizations,\n useOrganization,\n useSearchOrganizations,\n useUpdateOrganization,\n useTransferOrganizationOwnership,\n useTakeoverOrganization\n};\n","import React from \"react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\n\n// import FormLabel from \"@ats/src/components/forms/FormLabel\";\n// import FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\n// import FormToggleSwitch from \"@ats/src/components/forms/FormToggleSwitch\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\n\nimport {\n organizationPlanOptions,\n adminOrganizationFlipperGroupOptions,\n adminBooleanOptions,\n adminFraudRatingOptions,\n} from \"@ats/src/lib/lookups\";\n\nimport {\n useUpdateOrganization,\n useOrganization,\n useTransferOrganizationOwnership,\n} from \"@shared/queryHooks/admin/useOrganization\";\n\ntype Props = { organization: any; onCancel: () => void };\n\nfunction AdminOrganizationModal(props: Props) {\n const [organization, setOrganization] = React.useState(props.organization);\n const [owner, setOwner] = React.useState(null);\n const [errors, setErrors] = React.useState(null);\n const addToast = useToastContext();\n\n const {\n mutate: updateOrganization,\n isLoading: isLoadingUpdateOrganization,\n } = useUpdateOrganization();\n\n const {\n mutate: transferOwnership,\n isLoading: isLoadingTransferOwnership,\n } = useTransferOrganizationOwnership();\n\n const { data: organizationData, isLoading: isLoadingOrganization } = useOrganization(\n props.organization,\n );\n\n const {\n id,\n name,\n plan,\n flipperGroup,\n canSendBulkMessages,\n canEnableLinkedin,\n fraudRating,\n } = organization;\n\n const currentOwner = organizationData?.users.find((user) => {\n return user.id == organizationData.ownerId;\n });\n\n React.useEffect(() => {\n setOwner(\n currentOwner\n ? currentOwner?.currentOrganizationUserId //{ value: currentOwner?.currentOrganizationUserId, label: currentOwner?.fullName }\n : null,\n );\n }, [currentOwner]);\n\n const organizationMemberOptions = organizationData\n ? organizationData.users.map((user, index) => {\n return { value: user.currentOrganizationUserId, label: user.fullName };\n })\n : [];\n\n window.logger(\"%c[AdminOrganizationEditModal] RENDER\", \"background-color: #8fb4d8\", {\n organization,\n organizationData,\n currentOwner,\n });\n\n const onCloseModal = () => {\n props.onCancel();\n };\n\n const handleOnInputChange = (name, value) => {\n window.logger(\"%c[AdminOrganizationEditModal] handleOnInputChange\", \"color: #1976D2\", {\n name,\n value,\n });\n setOrganization({ ...organization, [name]: value });\n };\n\n const handleChangeBulkMessagingEnabled = (name, value) => {\n window.logger(\"%c[AdminOrganizationEditModal] handleOnInputChange\", \"color: #1976D2\", {\n name,\n value,\n });\n\n setOrganization({ ...organization, [name]: value });\n\n // updateOrganization(\n // { id, canSendBulkMessages: value },\n // {\n // onSuccess: () => {\n // addToast({\n // kind: \"success\",\n // title: \"Bulk messaging enabled updated\",\n // });\n // },\n // },\n // );\n };\n\n const handleChangeOwner = (name, value) => {\n window.logger(\"%c[AdminOrganizationEditModal] handleChangeOwner\", \"color: #1976D2\", {\n name,\n value,\n });\n\n setOwner(value);\n\n transferOwnership(\n { id: organization.id, organizationUserId: value },\n {\n onSuccess: (data) => {\n window.logger(\"%c[AdminOrganizationEditModal] transferOwnership\", \"color: #1976D2\", {\n data,\n });\n },\n },\n );\n };\n\n const handleSubmit = (event) => {\n event.preventDefault();\n\n setErrors(null);\n updateOrganization(\n { id, name, plan, flipperGroup, canSendBulkMessages, canEnableLinkedin, fraudRating },\n {\n onSuccess: (data) => {\n window.logger(\"%c[AdminOrganizationEditModal] handleUpdate\", \"color: #1976D2\", { data });\n props.onCancel();\n },\n },\n );\n };\n\n const submitButton = (\n \n \n \n \n );\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default AdminOrganizationModal;\n\n/* Styled Components\n======================================================= */\nconst Styled: any = {};\n\nStyled.ClaimedBadge = styled.h3((props) => {\n const t: any = props.theme;\n return css`\n label: AdminOrganizationModal_ClaimedBadge;\n ${[t.mb(5), t.text.h5]}\n color: ${t.color.red[600]};\n `;\n});\n\nStyled.ScrapedURL = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminOrganizationModal_ScrapedURL;\n ${[t.mb(5)]}\n\n a:hover {\n text-decoration: underline;\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminOrganizationModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useTakeoverOrganization } from \"@shared/queryHooks/admin/useOrganization\";\nimport { validateTakeoverOrganization } from \"@shared/lib/validateWithYup\";\n\ntype Props = {\n organizationId: number;\n organizationName: string;\n onCancel: () => void;\n};\n\nfunction TakeoverOrganizationModal(props: Props) {\n const { organizationId, organizationName, onCancel } = props;\n const addToast = useToastContext();\n const [email, setEmail] = useState(\"\");\n const [enteredOrganizationName, setEnteredOrganizationName] = useState(\"\");\n const [errors, setErrors] = useState([]);\n\n const {\n mutate: takeoverOrganization,\n isLoading: isLoadingTakeoverOrganization,\n } = useTakeoverOrganization();\n\n const handleOnCancel = (event) => {\n if (event != undefined) {\n event.preventDefault();\n }\n onCancel();\n };\n\n const handleOnConfirm = async (event) => {\n event.preventDefault();\n const [isValid, validationErrors] = await validateTakeoverOrganization(\n { organizationName: enteredOrganizationName },\n organizationName,\n );\n if (isValid) {\n handleConfirmation();\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleConfirmation = () => {\n window.logger(\n \"%c[TakeoverOrganizationModal] handleConfirmation\",\n \"background-color: #197600; color: #FFF;\",\n {\n organizationId,\n email,\n },\n );\n\n takeoverOrganization(\n { id: organizationId, email },\n {\n onSuccess: (data) => {\n window.logger(\"%c[TakeoverOrganizationModal] onSuccess\", \"color: #19d232\", { data });\n\n addToast({\n title: `Organization takeover initiated successfully`,\n kind: \"success\",\n delay: 6000,\n });\n onCancel();\n },\n onError: (error: any) => {\n window.logger(\"%c[TakeoverOrganizationModal] onError\", \"color: #d28819\", { error });\n\n let errorMessage = \"An error occurred. Please try again.\";\n\n if (error?.data && error?.data?.errors) {\n const generalErrors = error?.data?.errors?.general;\n if (generalErrors && generalErrors.length > 0) {\n errorMessage = generalErrors[0];\n }\n }\n setErrors([errorMessage]);\n },\n },\n );\n };\n\n const handleChangeEmail = (name, value) => {\n setEmail(value);\n };\n\n const handleChangeOrganizationName = (name, value) => {\n setEnteredOrganizationName(value);\n };\n\n const modalButtons = (\n \n \n Takeover\n \n \n \n );\n\n return (\n \n \n

    \n You will be taking over the organization named {organizationName} and transferring\n ownership to the user with the email address you enter below.\n

    \n
    \n \n \n \n \n

    \n This action will:\n

      \n
    • • Transfer ownership
    • \n
    • • Deactivate all original members
    • \n
    • • Archive all jobs
    • \n
    • • Disable LinkedIn & X Hiring
    • \n
    • • Cancel Stripe subscription
    • \n
    \n

    \n
    \n
    \n
    \n );\n}\n\nexport default TakeoverOrganizationModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: TakeoverOrganizationModal_Instructions;\n ${[t.mb(5)]}\n p {\n color: ${t.dark ? t.color.gray[400] : t.color.black}\n }\n\n span {\n font-weight: bold;\n }\n\n ul {\n ${[t.ml(3), t.mt(2)]}\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: TakeoverOrganizationModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import { useQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiPost } from \"@shared/queryHooks/api\";\n// import queryString from \"query-string\";\n\nconst becomeUser = async ({ userId }) => {\n return await apiPost({ path: `/admin/sessions/become`, variables: { userId } });\n};\n\nexport function useBecomeUser(): {\n mutate: any;\n isLoading: boolean;\n} {\n const queryClient = useQueryClient();\n return useMutation(becomeUser, {\n onSuccess: (data) => {\n window.logger(\"%c[useBecome] useBecomeUser onSuccess\", \"color: #1976D2\", {\n data,\n });\n // queryClient.setQueryData(\"me\", data);\n },\n // throwOnError: true,\n });\n}\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { Link } from \"react-router-dom\";\n\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport AdminOrganizationEditModal from \"@ats/src/views/admin/AdminOrganizationEditModal\";\nimport AdminRemoveBadActorModal from \"@ats/src/views/admin/AdminRemoveBadActorModal\";\n\nimport { useOrganizations, useSearchOrganizations } from \"@shared/queryHooks/admin/useOrganization\";\nimport { useBecomeUser } from \"@shared/queryHooks/admin/useBecome\";\n\nimport { getOptionLabel, adminOrganizationFlipperGroupOptions } from \"@ats/src/lib/lookups\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { capitalizeSingleWord } from '../../lib/utils/helpers';\n\nfunction AdminDashboardCustomers(props: any) {\n const { openModal, removeModal } = useModalContext();\n\n const [searchTerm, setSearchTerm] = React.useState(\"\");\n const [searchResults, setSearchResults] = React.useState([]);\n const {\n data: customerOrganizations,\n isFetching: isFetchingCustomers,\n isSuccess: isSuccessCustomers,\n } = useOrganizations({\n filters: { is_claimed: true, order_by: \"created_at_desc\", customers: true },\n });\n const { mutate: becomeUser, isLoading: isLoadingBecome } = useBecomeUser();\n\n const {\n mutate: searchOrganizations,\n isSuccess: isSuccessSearchOrganizations,\n } = useSearchOrganizations();\n\n window.logger(\"%c[AdminDashboardCustomers] render\", \"color: #1976D2\", {\n props,\n customerOrganizations,\n isFetchingCustomers,\n });\n\n const handleBecomeUser = (userId) => {\n window.logger(\"%c[AdminDashboardCustomers] handleBecomeUser userId\", \"color: #1976D2\", userId);\n\n becomeUser(\n { userId },\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[AdminDashboardCustomers] becomeUser onSuccess\",\n \"background-color: #c6d219\",\n { data },\n );\n window.location.href = `${window.APP_ATS_ROOT_URL}/jobs`;\n },\n onError: (response: any) => {\n window.logger(\"[AdminDashboardCustomers] becomeUser server error\", { response });\n if (response.data.errors) {\n // setState({ ...state, errors: response.data.errors });\n }\n },\n },\n );\n };\n\n const onChangeSearchOrganizations = (_, value) => {\n setSearchTerm(value);\n if (value.length > 2) {\n searchOrganizations(value, {\n onSuccess: (data) => {\n window.logger(\n \"%c[AdminDashboardCustomers] onChangeSearchOrganizations\",\n \"color: #1976D2\",\n { data },\n );\n setSearchResults(data.items);\n },\n });\n }\n };\n\n const handleOnClickEditOrganization = (organization) => {\n const modal = ;\n\n openModal(modal);\n };\n\n const handleOnClickTakeover = (organization) => {\n const modal = (\n \n );\n openModal(modal);\n };\n\n const organizationNodes = () => {\n if (!isSuccessCustomers || customerOrganizations == undefined) {\n return [];\n }\n\n const organizations =\n searchResults.length > 0 && searchTerm.length > 2\n ? searchResults\n : customerOrganizations.items;\n\n window.logger(\"%c[AdminDashboardCustomers] organizationNodes\", \"color: #1976D2\", {\n organizations,\n });\n\n return organizations.map(function (organization) {\n let disableBecome = organization?.owner?.email === \"system@inflowhq.com\";\n\n return (\n \n {organization.id}\n {organization.name}\n {/* {organization.twitterHandle ? : \"\"} */}\n \n \n {organization.publishedJobsCount} Job(s)\n \n \n \n
    {organization?.owner?.fullName}
    \n {organization?.owner?.email}\n \n {getOptionLabel(adminOrganizationFlipperGroupOptions, organization.flipperGroup)}\n \n {organization.careersPageUrl != undefined ? (\n \n {organization?.careersPageSlug}\n \n ) : null}\n \n \n {organization.stripeSubscriptionInGoodStanding ? \"Active\" : \"Inactive\"}\n \n \n {capitalizeSingleWord(organization?.fraudRating)}\n \n \n handleBecomeUser(organization.owner.id)}\n disabled={disableBecome}\n >\n Become\n \n \n \n handleOnClickEditOrganization(organization)}\n // disabled={disableBecome}\n >\n Edit\n \n \n \n handleOnClickTakeover(organization)}\n >\n Takeover & Shutdown\n \n \n \n );\n });\n };\n\n const orgCount = organizationNodes().length;\n\n return (\n \n \n

    \n {orgCount} Most Recent PAID Customers {false && orgCount}\n

    \n\n \n
    \n\n \n \n \n ID\n Name\n Jobs\n {/* Users */}\n Owner\n Flipper Group\n Job Board\n Subscription\n Fraud Rating\n \n \n \n \n {organizationNodes()}\n \n \n
    \n );\n}\n\nAdminDashboardCustomers.propTypes = {};\n\nAdminDashboardCustomers.defaultProps = {};\n\nexport default AdminDashboardCustomers;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Component = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminDashboardCustomers;\n ${t.p(4)};\n `;\n});\n\nStyled.Header = styled.header((props) => {\n const t: any = props.theme;\n return css`\n label: AdminDashboardCustomers_Header;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n\n h2 {\n ${[t.mt(1), t.text.h3, t.mb(2)]};\n display: flex;\n align-items: center;\n }\n span {\n ${[t.ml(2), t.text.sm, t.text.secondary, t.text.normal]};\n }\n `;\n});\n\nStyled.Filters = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminDashboardCustomers_Filters;\n ${t.mb(6)};\n display: flex;\n\n button {\n ${t.mr(3)};\n }\n `;\n});\n\nStyled.Table = styled.table((props) => {\n const t: any = props.theme;\n return css`\n label: AdminDashboardCustomers_Table;\n border-collapse: collapse;\n width: 100%;\n\n th {\n ${[t.pb(2), t.text.xs, t.text.bold]};\n text-align: start;\n ${t.text.primary};\n }\n\n tr {\n border-bottom: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n ${t.text.secondary};\n }\n\n tr:last-of-type {\n border-bottom: none;\n }\n\n svg {\n stroke: ${t.color.black};\n }\n\n td,\n th {\n ${[t.p(2)]};\n\n &:first-of-type {\n ${t.pl(0)}\n }\n\n &:last-of-type {\n ${t.pr(0)}\n }\n }\n `;\n});\n\nStyled.Tag = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebar_Tag;\n ${[t.h(6), t.px(2), t.text.xs, t.rounded.xs]}\n display: inline-flex;\n align-items: center;\n color: ${t.dark ? t.color.gray[200] : t.color.gray[600]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n line-height: 1.4;\n overflow: hidden;\n span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n `;\n});\n","import { useQuery } from \"react-query\";\nimport { apiGet } from \"@shared/queryHooks/api\";\n// import queryString from \"query-string\";\n\nconst getStatistics = async () => {\n return await apiGet({ path: `/admin/dashboard/statistics` });\n};\n\nfunction useStatistics(): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n} {\n return useQuery([\"statistics\"], getStatistics);\n}\n\nexport { useStatistics };\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport { useStatistics } from \"@shared/queryHooks/admin/useDashboard\";\n\nfunction AdminDashboardStatistics(props) {\n const {\n data: statistics,\n isFetching: isFetchingStatistics,\n isSuccess: isSuccessStatistics,\n } = useStatistics();\n\n if (statistics == undefined) {\n return null;\n }\n\n return (\n \n Dashboard\n \n
    \n

    {statistics.totalPaidSubscribersCount}

    Paid subscribers\n
    \n total\n
    \n
    \n

    {statistics.accountsCreatedThisMonthCount}

    New accounts\n
    \n this month\n
    \n
    \n

    {statistics.accountsCreatedLastMonthCount}

    New accounts\n
    \n last month\n
    \n
    \n

    {statistics.accountsCreatedThisWeekCount}

    New accounts\n
    \n this week\n
    \n
    \n

    {statistics.accountsCreatedLastWeekCount}

    New accounts\n
    \n last week\n
    \n
    \n
    \n );\n}\n\nAdminDashboardStatistics.propTypes = {};\n\nAdminDashboardStatistics.defaultProps = {};\n\nexport default AdminDashboardStatistics;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Component = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminOrganizationList;\n ${t.p(4)};\n border-bottom: 1px solid ${t.color.gray[200]};\n `;\n});\n\nStyled.Title = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminDashboardTitle;\n ${[t.text.h3]}\n `;\n})\n\nStyled.Stats = styled.header((props) => {\n const t: any = props.theme;\n return css`\n label: AdminOrganizationList_Stats;\n display: flex;\n justify-content: evenly;\n\n h3 {\n ${[t.text.h3, t.mr(2), t.mt(4)]}\n }\n\n > div {\n flex: 1;\n align-items: center;\n }\n `;\n});\n","import React, { useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport AdminDashboardCustomers from \"@ats/src/views/admin/AdminDashboardCustomers\";\nimport AdminDashboardStatistics from \"@ats/src/views/admin/AdminDashboardStatistics\";\n\nfunction AdminDashboardContainer(props) {\n window.logger(\"%c[AdminDashboardContainer] render\", \"color: #1976D2\", {\n props,\n });\n\n return (\n <>\n \n \n \n \n );\n}\n\nAdminDashboardContainer.propTypes = {};\n\nAdminDashboardContainer.defaultProps = {};\n\nexport default AdminDashboardContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Component = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminOrganizationList;\n ${t.p(4)};\n `;\n});\n","import { useQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiGet, apiPost, apiPut } from \"@shared/queryHooks/api\";\n\n\nconst searchUsers = async (userEmail) => {\n return await apiPost({\n path: `/admin/users/search`,\n variables: { searchTerm: userEmail },\n });\n};\n\n/* Hooks\n--===================================================-- */\n\nexport function useSearchUsers(): {\n mutate: any;\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n isSuccess: boolean;\n} {\n return useMutation(searchUsers);\n}","import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport { useSearchUsers } from \"@shared/queryHooks/admin/useUser\";\nimport { useBecomeUser } from \"@shared/queryHooks/admin/useBecome\";\n\nfunction AdminUsersSearch(props: any) {\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [searchResults, setSearchResults] = useState([]);\n\n // QUERY HOOKS\n const {\n mutate: searchUsers,\n data: userSearchData,\n isLoading: isFetchingUserResults,\n isSuccess: isSuccessUserResults,\n } = useSearchUsers();\n\n const { mutate: becomeUser, isLoading: isLoadingBecome } = useBecomeUser();\n\n window.logger(\"%c[AdminUsersSearch] render\", \"color: #1976D2\", {\n props,\n userSearchData,\n isFetchingUserResults,\n });\n\n // handleBecome\n const handleBecomeUser = (userId) => {\n window.logger(\"%c[AdminDashboardCustomers] handleBecomeUser userId\", \"color: #1976D2\", userId);\n\n becomeUser(\n { userId },\n {\n onSuccess: (data) => {\n window.logger(\"%c[AdminUsersSearch] becomeUser onSuccess\", \"background-color: #c6d219\", {\n data,\n });\n window.location.href = `${window.APP_ATS_ROOT_URL}/jobs`;\n },\n onError: (response: any) => {\n window.logger(\"[AdminUsersSearch] becomeUser server error\", { response });\n if (response.data.errors) {\n // setState({ ...state, errors: response.data.errors });\n }\n },\n },\n );\n };\n\n // onChangeSearch\n const onChangeSearchUsers = (_, value) => {\n setSearchTerm(value);\n if (value.length > 0) {\n searchUsers(value, {\n onSuccess: (data) => {\n window.logger(\"%c[AdminUsersSearch] onChangeSearchUsers\", \"color: #1976D2\", { data });\n setSearchResults(data.items);\n },\n });\n } else {\n setSearchResults([]);\n }\n };\n\n const noResults = () => {\n return (\n \n );\n };\n\n //actual list items\n const userNodes = () => {\n if (!isSuccessUserResults || userSearchData == undefined) {\n return [];\n }\n\n const users =\n searchResults.length > 0 && searchTerm.length > 0 ? searchResults : userSearchData.items;\n\n window.logger(\"%c[AdminUsersSearch] userNodes\", \"color: #1976D2\", {\n users,\n });\n\n return users.map(function (user) {\n window.logger(\"%c[AdminUsersSearch] userNode \", \"color: #1976D2\", {\n user,\n });\n\n let disableBecome = user?.email === \"system@inflowhq.com\";\n\n return (\n \n {user?.id}\n {user?.fullName}\n {user?.email}\n \n {user?.hasConfirmedEmail ? \"Confirmed\" : \"Unconfirmed\"}\n \n {user?.currentOrganizationUser ? user?.currentOrganizationUser.role : \"null\"}\n \n {user?.currentOrganizationUser\n ? user?.currentOrganizationUserId\n : \"Missing OrganizationUser\"}\n \n {user?.organizationName}\n\n \n handleBecomeUser(user?.id)}\n disabled={disableBecome}\n >\n Become\n \n \n \n );\n });\n };\n\n const resultsNotEmpty = searchResults.length > 0 ? true : false;\n\n return (\n \n \n

    Search Users

    \n\n \n
    \n\n \n \n \n ID\n Full Name\n Email\n Confirmed Email\n Role\n Organization User Id\n Organization Name\n {/* Organization Id */}\n \n \n {resultsNotEmpty ? userNodes() : null}\n \n \n {!resultsNotEmpty && noResults()}\n
    \n );\n}\n\nAdminUsersSearch.propTypes = {};\n\nAdminUsersSearch.defaultProps = {};\n\nexport default AdminUsersSearch;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Component = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminUsersSearch;\n ${t.p(4)};\n `;\n});\n\nStyled.Header = styled.header((props) => {\n const t: any = props.theme;\n return css`\n label: AdminUsersSearch_Header;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n\n h2 {\n ${[t.mt(1), t.text.h3, t.mb(2)]};\n display: flex;\n align-items: center;\n }\n span {\n ${[t.ml(2), t.text.sm, t.text.secondary, t.text.normal]};\n }\n `;\n});\n\nStyled.Table = styled.table((props) => {\n const t: any = props.theme;\n return css`\n label: AdminUsersSearch_Table;\n border-collapse: collapse;\n width: 100%;\n\n th {\n ${[t.pb(2), t.text.xs, t.text.bold]};\n text-align: start;\n ${t.text.primary};\n }\n\n tr {\n border-bottom: 1px solid ${t.color.gray[200]};\n ${t.text.secondary};\n }\n\n tr:last-of-type {\n border-bottom: none;\n }\n\n svg {\n stroke: ${t.color.black};\n }\n\n td,\n th {\n ${[t.p(2)]};\n\n &:first-of-type {\n ${t.pl(0)}\n }\n\n &:last-of-type {\n ${t.pr(0)}\n }\n }\n `;\n});\n","import { useMutation } from \"react-query\";\nimport { apiPost } from \"@shared/queryHooks/api\";\n\n\nconst searchCandidates = async (candidateEmail) => {\n return await apiPost({\n path: `/admin/candidates/search`,\n variables: { searchTerm: candidateEmail },\n });\n};\n\n/* Hooks\n--===================================================-- */\n\nexport function useSearchCandidates(): {\n mutate: any;\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n isSuccess: boolean;\n} {\n return useMutation(searchCandidates);\n}","import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport FormInput from \"@ats/src/components/forms/FormInput\";\n\nimport { useSearchCandidates } from \"@shared/queryHooks/admin/useCandidate\";\n\nfunction AdminCandidatesSearch(props: any) {\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [searchResults, setSearchResults] = useState([]);\n\n // QUERY HOOKS\n const {\n mutate: searchCandidates,\n data: candidateSearchData,\n isLoading: isFetchingCandidateResults,\n isSuccess: isSuccessCandidateResults,\n } = useSearchCandidates();\n\n window.logger(\"%c[AdminCandidatesSearch] render\", \"color: #1976D2\", {\n props,\n candidateSearchData,\n isFetchingCandidateResults,\n });\n\n // handleDestroy????? ---> And also confirmation modal & success message\n // const handleDestroyCandidate = (candidateId) => {\n // window.logger(\"%c[AdminCandidatesSearch] handleDestroyCandidate candidateId\", \"color: #1976D2\", candidateId);\n\n // destroyCandidate(\n // { candidateId },\n // {\n // onSuccess: (data) => {\n // window.logger(\n // \"%c[AdminCandidatesSearch] destroyCandidate onSuccess\",\n // \"background-color: #c6d219\",\n // { data },\n // );\n // },\n // onError: (response: any) => {\n // window.logger(\"[AdminCandidatesSearch] destroyCandidate server error\", { response });\n // if (response.data.errors) {\n // // setState({ ...state, errors: response.data.errors });\n // }\n // },\n // },\n // );\n // };\n\n // onChangeSearch\n const onChangeSearchCandidates = (_, value) => {\n setSearchTerm(value);\n if (value.length > 0) {\n searchCandidates(value, {\n onSuccess: (data) => {\n window.logger(\"%c[AdminCandidatesSearch] onChangeSearchCandidates\", \"color: #1976D2\", {\n data,\n });\n setSearchResults(data.items);\n },\n });\n } else {\n setSearchResults([]);\n }\n };\n\n //actual list items\n const candidateNodes = () => {\n if (!isSuccessCandidateResults || candidateSearchData == undefined) {\n return [];\n }\n\n const candidates =\n searchResults.length > 0 && searchTerm.length > 0 ? searchResults : candidateSearchData.items;\n\n window.logger(\"%c[AdminCandidatesSearch] candidateNodes\", \"color: #1976D2\", {\n candidates,\n });\n\n return candidates.map(function (candidate) {\n window.logger(\"%c[AdminCandidatesSearch] candidateNode \", \"color: #1976D2\", {\n candidate,\n });\n\n // let disableDestory = candidate?.email === .....???\n\n return (\n \n {candidate?.id}\n {candidate?.fullName}\n {candidate?.email}\n \n {candidate?.hasValidEmail ? \"Valid\" : \"Invalid\"}\n \n {candidate?.organizationName}\n {candidate?.jobApplicationsCount}\n {/* \n handleDestroyCandidate(candidate?.id)}\n disabled={disableDestroy}\n >\n Destroy\n \n */}\n \n );\n });\n };\n\n const resultsNotEmpty = searchResults.length > 0 ? true : false;\n\n return (\n \n \n

    Search Candidates

    \n\n \n
    \n\n \n \n \n ID\n Full Name\n Email\n Valid Email\n Organization Name\n Application Count\n {/* Destroy */}\n \n {resultsNotEmpty ? candidateNodes() : null}\n \n \n
    \n );\n}\n\nAdminCandidatesSearch.propTypes = {};\n\nAdminCandidatesSearch.defaultProps = {};\n\nexport default AdminCandidatesSearch;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Component = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminCandidatesSearch;\n ${t.p(4)};\n `;\n});\n\nStyled.Header = styled.header((props) => {\n const t: any = props.theme;\n return css`\n label: AdminCandidatesSearch_Header;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n\n h2 {\n ${[t.mt(1), t.text.h3, t.mb(2)]};\n display: flex;\n align-items: center;\n }\n `;\n});\n\nStyled.Table = styled.table((props) => {\n const t: any = props.theme;\n return css`\n label: AdminCandidatesSearch_Table;\n border-collapse: collapse;\n width: 100%;\n\n th {\n ${[t.pb(2), t.text.xs, t.text.bold]};\n text-align: start;\n border-bottom: 1px solid ${t.color.gray[200]};\n ${t.text.primary};\n }\n\n tr {\n border-bottom: 1px solid ${t.color.gray[200]};\n ${t.text.secondary};\n }\n\n tr:last-of-type {\n border-bottom: none;\n }\n\n svg {\n stroke: ${t.color.black};\n }\n\n td,\n th {\n ${[t.p(2)]};\n\n &:first-of-type {\n ${t.pl(0)}\n }\n\n &:last-of-type {\n ${t.pr(0)}\n }\n }\n `;\n});\n","import { useQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiGet, apiPost, apiDelete } from \"@shared/queryHooks/api\";\n\nconst getFeatureFlippers = async () => {\n return await apiGet({ path: `/flipper/features` });\n};\n\n//Create a Feature\nconst createFeatureFlag = async ({ name }: { name: string }) => {\n return await apiPost({\n path: `/flipper/features`,\n variables: { name },\n });\n};\n\n//Enable a Feature\nconst enableFeature = async ({ featureFlag }) => {\n return await apiPost({\n path: `/flipper/features/${featureFlag}/boolean`,\n variables: {},\n });\n};\n\n//Disable a Feature\nconst disableFeature = async ({ featureFlag }) => {\n return await apiDelete({\n path: `/flipper/features/${featureFlag}/boolean`,\n variables: {},\n });\n};\n\n//Delete a feature flag (DANGER)\nconst deleteFeatureFlag = async ({ featureFlag }) => {\n return await apiDelete({\n path: `/flipper/features/${featureFlag}`,\n variables: {},\n });\n};\n\n/* Hooks\n--===================================================-- */\n\nfunction useFeatureFlippers(): {\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n isFetching: boolean;\n isSuccess: boolean;\n} {\n return useQuery([\"featureFlippers\"], () => getFeatureFlippers());\n}\n\nfunction useCreateFeatureFlag() {\n const queryClient = useQueryClient();\n return useMutation(createFeatureFlag, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\"%c[useCreateFeatureFlag] useCreateFeatureFlag onSuccess\", \"color: #1976D2\", {\n data,\n mutationVariables,\n });\n queryClient.invalidateQueries(\"featureFlippers\");\n },\n });\n}\n\nfunction useEnableFeature() {\n const queryClient = useQueryClient();\n return useMutation(enableFeature, {\n onSuccess: () => {\n queryClient.invalidateQueries(\"featureFlippers\");\n },\n });\n}\n\nfunction useDisableFeature() {\n const queryClient = useQueryClient();\n return useMutation(disableFeature, {\n onSuccess: () => {\n queryClient.invalidateQueries(\"featureFlippers\");\n },\n });\n}\n\nfunction useDeleteFeatureFlag() {\n const queryClient = useQueryClient();\n return useMutation(deleteFeatureFlag, {\n onSuccess: () => {\n queryClient.invalidateQueries(\"featureFlippers\");\n },\n // throwOnError: true,\n });\n}\n\nexport {\n useFeatureFlippers,\n useCreateFeatureFlag,\n useEnableFeature,\n useDisableFeature,\n useDeleteFeatureFlag,\n};\n","import React, { useState } from \"react\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\n\nimport { useCreateFeatureFlag } from \"@shared/queryHooks/useFeatureFlippers\";\n\nimport { validateNewFeatureFlag } from \"@shared/lib/validateWithYup\";\n\ntype Props = {\n onCancel: () => void;\n history: any;\n};\n\nfunction AdminNewFeatureFlagModal(props: Props) {\n // window.logger(\"%c[AdminNewFeatureFlagModal] \", \"color: #1976D2\", { props });\n const [name, setName] = useState(\"\");\n const [errors, setErrors] = useState([]);\n const { mutate: createFeatureFlag, isLoading: isLoadingCreateFeatureFlag } = useCreateFeatureFlag();\n const [isDirty, setIsDirty] = useState(false);\n\n const handleChangeName = (_, value) => {\n setName(value);\n setErrors([]);\n setIsDirty(true);\n };\n\n const handleSubmitCreateFeatureFlag = async (e) => {\n e.preventDefault();\n const [isValid, validationErrors] = await validateNewFeatureFlag({ name });\n\n if (isValid) {\n createFeatureFlag(\n { name },\n {\n onSuccess: (data) => {\n window.logger(\"%c[AdminNewFeatureFlagModal] createFeatureFlag onSuccess\", \"color: #1976D2\", { data });\n props.onCancel();\n props.history.push(`/admin/flippers`);\n },\n onError: (response) => {\n window.logger(\"%c[AdminNewFeatureFlagModal] createFeatureFlag onError\", \"color: #ad1b47\", {\n response,\n });\n // setErrors(response.errors);\n },\n },\n );\n } else {\n setErrors(validationErrors);\n }\n };\n\n const submitButton = (\n \n \n Create feature flag\n \n \n \n );\n\n return (\n \n \n Enter the name of the feature flag you are creating. The current naming convention for Polymer. uses uppercase and underscores such as: FEATURE_FLAG.\n \n \n \n \n \n );\n}\n\nexport default AdminNewFeatureFlagModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: AdminNewFeatureFlagModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminNewFeatureFlagModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport AdminNewFeatureFlagModal from \"./AdminNewFeatureFlagModal\";\n\nimport { useFeatureFlippers, useEnableFeature, useDisableFeature, useDeleteFeatureFlag } from \"@shared/queryHooks/useFeatureFlippers\";\n\nfunction AdminFeatureFlippers(props: any) {\n const { openModal, removeModal } = useModalContext();\n\n window.logger(\"%c[AdminFeatureFlippers] render\", \"color: #1976D2\", {\n props\n });\n\n /* Query Hooks\n ===================================================-- */\n const { data: featureFlagsData, isLoading: isLoadingFeatureFlippers } = useFeatureFlippers();\n const { mutate: enableFeature, isLoading: isLoadingEnableFeature } = useEnableFeature();\n const { mutate: disableFeature, isLoading: isLoadingDisableFeature } = useDisableFeature();\n const { mutate: deleteFeatureFlag, isLoading: isLoadingDeleteFeatureFlag } = useDeleteFeatureFlag();\n\n\n /* Log GET data */\n if (featureFlagsData != undefined) {\n window.logger(\"%c[AdminFeatureFlippers] featureFlagsData\", \"color: #82d219\", {\n featureFlagsData,\n });\n }\n\n\n /* ENABLE/DISABLE feature\n =================================================== */\n /* Handle Enable Feature */\n const handleEnableFeature = async (featureFlagKey) => {\n try {\n await enableFeature({\n featureFlag: featureFlagKey\n });\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"%c[AdminFeatureFlippers] handle error when enabling feature\", \"color: #FF7602\", {\n error,\n });\n }\n };\n\n /* Handle Disable Feature */\n const handleDisableFeature = async (featureFlagKey) => {\n try {\n await disableFeature({\n featureFlag: featureFlagKey\n });\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"%c[AdminFeatureFlippers] handle error when disabling feature\", \"color: #FF7602\", {\n error,\n });\n }\n };\n\n /* Handle Toggle Feature Flag */\n const handleChangeFeatureFlagState = (featureFlagKey, featureFlagState) => {\n if (featureFlagState === 'on') {\n handleDisableFeature(featureFlagKey)\n } else if (featureFlagState === 'off') {\n handleEnableFeature(featureFlagKey)\n }\n }\n\n /* Handle OnClick (open confirmation modal) */\n const handleOnClickChangeState = (featureFlagKey, featureFlagState) => {\n const enableMessage = `Are you sure you want to ENABLE ${featureName(featureFlagKey)}?`;\n const disableMessage = `Are you sure you want to DISABLE ${featureName(featureFlagKey)}?`\n const subMessage = featureFlagState === 'on' ? disableMessage : enableMessage\n const modal = (\n {\n removeModal();\n handleChangeFeatureFlagState(featureFlagKey, featureFlagState);\n }}\n onCancel={removeModal}\n isDestructiveConfirm={false}\n />\n );\n\n window.logger(\"%c[ChangeFeatureStateModal] handleOnClickChangeState\", \"color: #82d219\", {\n featureFlagKey,\n featureFlagState\n });\n\n openModal(modal);\n };\n\n /* CREATE new feature flag\n =================================================== */\n const handleClickCreateFeatureFlag = (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n const modal = removeModal()} />;\n\n openModal(modal);\n };\n\n const createFeatureFlagButton = (\n \n \n Add feature flag\n \n \n )\n\n /* DELETE a feature flag\n =================================================== */\n /* Handle Delete Feature Flag */\n const handleDeleteFeatureFlag = async (featureFlagKey) => {\n try {\n await deleteFeatureFlag({\n featureFlag: featureFlagKey\n });\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"%c[AdminFeatureFlippers] handle error when deleting feature\", \"color: #FF7602\", {\n error,\n });\n }\n };\n\n /* Handle OnClick (open confirmation modal) */\n const handleOnClickDeleteFeatureFlag = (featureFlagKey) => {\n\n const subMessage = `Are you sure you want to delete ${featureFlagKey}? You can DISABLE a feature instead to hide the feature.`\n const modal = (\n {\n removeModal();\n props.history.push(\"/admin/flippers\");\n handleDeleteFeatureFlag(featureFlagKey);\n }}\n onCancel={removeModal}\n isDestructiveConfirm={true}\n />\n );\n\n window.logger(\"%c[DeleteFeatureFlagConfirmationModal]\", \"color: #DC2626\", {\n featureFlagKey\n });\n\n openModal(modal);\n };\n\n /* Rendering UI\n =================================================== */\n //return readable feature name for UI\n const featureName = (featureFlagKey) => {\n let splitFlagName = featureFlagKey.toLowerCase().split('_')\n let capitals = splitFlagName.map(word => {\n return word.charAt(0).toUpperCase() + word.substring(1)\n })\n return capitals.join(' ')\n }\n\n //actual list items\n const featureFlagNodes = () => {\n if (featureFlagsData == undefined) {\n return [];\n }\n const featureFlags = featureFlagsData?.features\n //sort alphabetically to have stable order for index for table key (no id returned in data)\n const alphabeticallySortedFeatureFlags = featureFlags.sort((a, b) => a.key.localeCompare(b.key))\n\n window.logger(\"%c[FlipperFeatureFlagsAdmin] featureFlagNodes\", \"background-color: #82d219\", {\n alphabeticallySortedFeatureFlags\n });\n\n return alphabeticallySortedFeatureFlags.map(function (featureFlag, index) {\n\n /* ONLY RENDER ENABLE/DISABLE & DELETE & ADD BUTTONS IN DEV ENV */\n return (\n \n {featureName(featureFlag?.key)}\n {featureFlag?.key}\n \n {featureFlag?.state === 'on' ? \"Enabled\" : \"Disabled\"}\n \n \n \n handleOnClickChangeState(featureFlag?.key, featureFlag?.state)}\n >\n {featureFlag?.state === 'on' ? \"Disable\" : \"Enable\"}\n \n \n \n \n handleOnClickDeleteFeatureFlag(featureFlag?.key)}\n dangerous={true}\n >\n Delete\n \n \n \n );\n });\n };\n\n\n return (\n \n \n

    Feature Flippers

    \n {createFeatureFlagButton}\n
    \n\n \n \n \n Feature Name\n Feature Flag\n State\n Change State\n \n \n {featureFlagNodes()}\n \n \n
    \n );\n}\n\nexport default AdminFeatureFlippers;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Component = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminfeatureFlags;\n ${t.p(4)};\n `;\n});\n\nStyled.Header = styled.header((props) => {\n const t: any = props.theme;\n return css`\n ${[t.mb(2), t.pb(2)]}\n label: AdminfeatureFlagsSearch_Header;\n display: flex;\n justify-content: space-between;\n\n border-bottom: 1px solid ${t.color.gray[200]};\n\n h2 {\n ${[t.mt(1), t.text.h3]};\n display: flex;\n align-items: center;\n }\n `;\n});\n\nStyled.Table = styled.table((props) => {\n const t: any = props.theme;\n return css`\n label: AdminFeatureFlags_Table;\n border-collapse: collapse;\n width: 100%;\n\n th {\n ${[t.pb(2), t.text.s, t.text.bold]};\n text-align: start;\n border-bottom: 1px solid ${t.color.gray[200]};\n ${t.text.primary};\n }\n\n tr {\n border-bottom: 1px solid ${t.color.gray[200]};\n ${t.text.secondary};\n }\n\n tr:last-of-type {\n border-bottom: none;\n }\n\n svg {\n stroke: ${t.color.black};\n }\n\n td,\n th {\n ${[t.p(2)]};\n\n &:first-of-type {\n ${t.pl(0)}\n }\n\n &:last-of-type {\n ${t.pr(0)}\n }\n }\n `;\n});\n\nStyled.Button = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FeatureFlag_Button;\n \n > button {\n ${t.text.sm}\n }\n `;\n});","import styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { Route, Switch, NavLink } from \"react-router-dom\";\n\nimport NavBar from \"@shared/components/NavBar\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\n\nimport AdminDashboardContainer from \"@ats/src/views/admin/AdminDashboardContainer\";\nimport AdminUsersSearch from \"@ats/src/views/admin/AdminUsersSearch\";\nimport AdminCandidatesSearch from \"@ats/src/views/admin/AdminCandidatesSearch\";\nimport AdminFeatureFlippers from \"@ats/src/views/admin/AdminFeatureFlippers\";\n// import AdminOrganizationListWrapper from \"@ats/src/views/admin/AdminOrganizationList/wrapper.js\";\n// import AdminJobListWrapper from \"@ats/src/views/admin/AdminJobList/wrapper.js\";\n\nfunction AdminContainer(props) {\n window.logger(\"%c[AdminContainer] render\", \"color: #1976D2\", props);\n\n const adminViews = () => {\n return (\n \n Dashboard\n {/* Companies */}\n Users\n Candidates\n {window.IS_DEVELOPMENT && Flippers}\n Admin Login\n \n );\n };\n\n const jobActions = () => {\n return (\n \n {adminViews()}\n \n );\n };\n\n return (\n <>\n \n\n \n \n }\n />\n }\n />\n }\n />\n }\n />\n \n \n \n );\n}\n\nAdminContainer.propTypes = {};\n\nAdminContainer.defaultProps = {};\n\nexport default AdminContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n return css`\n label: AdminContainer;\n overflow-y: auto;\n `;\n});\n\nStyled.DropdownContent = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AdminNav_Secondary;\n display: flex;\n flex-direction: column;\n\n a {\n ${[t.h(8), t.pl(3), t.pr(6), t.text.medium]};\n display: flex;\n width: auto;\n align-items: center;\n\n &:hover {\n background-color: ${t.color.gray[100]};\n }\n &.active {\n background-color: ${t.color.gray[100]} !important;\n }\n }\n `;\n});\n","import React from \"react\";\ntype Payload = { activeTabIndex: number };\ntype Action =\n | { type: \"SET_ACTIVE_TAB_INDEX\"; payload: Payload }\n | { type: \"FUTURE_THING\"; payload: Payload };\ntype Dispatch = (action: Action) => void;\ntype State = {\n activeTabIndex: number;\n // author: string;\n // url: string;\n};\ntype JobViewProviderProps = { children: React.ReactNode };\n\nconst JobViewStateContext = React.createContext(undefined);\nconst JobViewDispatchContext = React.createContext(undefined);\n\nfunction jobViewReducer(state, action) {\n switch (action.type) {\n case \"SET_ACTIVE_TAB_INDEX\": {\n return { activeTabIndex: action.payload.activeTabIndex };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nfunction JobViewProvider({ children }: JobViewProviderProps) {\n const [state, dispatch] = React.useReducer(jobViewReducer, { activeTabIndex: undefined });\n return (\n \n {children}\n \n );\n}\n\nfunction useJobViewState() {\n const context = React.useContext(JobViewStateContext);\n if (context === undefined) {\n throw new Error(\"useJobViewState must be used within a JobViewProvider\");\n }\n return context;\n}\n\nfunction useJobViewDispatch() {\n const context = React.useContext(JobViewDispatchContext);\n if (context === undefined) {\n throw new Error(\"useJobViewDispatch must be used within a JobViewProvider\");\n }\n return context;\n}\nexport { JobViewProvider, useJobViewState, useJobViewDispatch };\n","import React from \"react\";\nimport { useWebsocket } from \"@ats/src/websockets/WebsocketContext\";\nimport { useQueryClient } from \"react-query\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useGlobalChannelContext } from \"@ats/src/context/GlobalChannelContext\";\n\nfunction WebsocketGlobalChannelHandler(props) {\n const Websocket = useWebsocket();\n const queryCache = useQueryClient();\n\n const addToast = useToastContext();\n const { enableUpdateAvailable, enabledMaintenanceComplete } = useGlobalChannelContext();\n\n React.useEffect(() => {\n const subscription = setupWebsocketConnections();\n\n return () => {\n subscription.unsubscribe();\n };\n }, []);\n\n const setupWebsocketConnections = () => {\n // window.logger(\n // \"%c[WebsocketGlobalChannelHandler] setupWebsocketConnections\",\n // \"background: #334F30; color: #E4FF09\",\n // );\n\n const subscription = Websocket.subscriptions.create(\n { channel: \"GlobalChannel\" },\n {\n connected: function () {\n // window.logger(\n // \"%c[WebsocketGlobalChannelHandler] WEBSOCKET GlobalChannel ---- Connected\",\n // \"background: #003423; color: #E4FF09\",\n // );\n },\n\n disconnected: function () {\n // window.logger(\n // \"%c[WebsocketGlobalChannelHandler] WEBSOCKET GlobalChannel ---- Disconnected\",\n // \"background: #EF3423; color: #E4FF09\",\n // );\n },\n\n received: function (data) {\n // window.logger(\n // \"%c[WebsocketGlobalChannelHandler] WEBSOCKET GlobalChannel ---- Received\",\n // \"background: #003423; color: #E4FF09\",\n // data,\n // );\n\n handleGlobalMessage(data);\n },\n },\n );\n return subscription\n };\n\n function handleGlobalMessage(data) {\n if (data.action != null) {\n // const [actionGroup, actionName] = data.action.split(\".\");\n\n switch (data.action) {\n case \"showGrowl\":\n // window.logger(\n // \"%c[WebsocketGlobalChannelHandler] === WEBSOCKET GlobalChannel ++ showGrowl\",\n // \"background-color: #19d232; color: white;\",\n // { payload: data.payload },\n // );\n addToast(data.payload);\n break;\n\n case \"fetchOrganization\":\n queryCache.invalidateQueries([\n \"currentOrganization\",\n Number(data.payload.organizationId),\n ]);\n break;\n\n case \"downloadCandidatesCsvExport\":\n addToast({\n title: \"CSV export is ready\",\n kind: \"success\",\n delay: 10000,\n externalLink: { href: data.payload.candidatesCsvExportUrl, text: \"Download\" },\n });\n break;\n\n case \"importJobCandidatesComplete\":\n addToast({\n title: \"Candidate import complete\",\n kind: \"success\",\n });\n queryCache.invalidateQueries([\"jobs\", data.payload.jobId]);\n queryCache.invalidateQueries(\"jobApplicationsForStage\");\n break;\n case \"attachExternalResumeComplete\":\n queryCache.invalidateQueries([\"jobApplication\", Number(data.payload.jobApplicationId)]);\n break;\n case \"ACTIVITIES_DISMISSED\":\n addToast({\n title: \"Notifications dismissed\",\n kind: \"success\",\n // delay: 10000,\n });\n\n queryCache.invalidateQueries(\"infiniteNotifications\");\n queryCache.invalidateQueries(\"notificationsHasUnread\");\n queryCache.invalidateQueries(\"notificationsSummaryCounts\");\n\n break;\n case \"ACTIVITIES_MARKED_READ\":\n addToast({\n title: \"Notifications marked as read\",\n kind: \"success\",\n // delay: 10000,\n });\n\n queryCache.invalidateQueries(\"infiniteNotifications\");\n queryCache.invalidateQueries(\"notificationsHasUnread\");\n break;\n case \"WEBFLOW_COLLECTION_NOT_FOUND\":\n addToast({\n title:\n \"Could not find the collection on your Webflow site; please make sure you have published your site with this collection\",\n kind: \"warning\",\n delay: 15000,\n });\n\n queryCache.invalidateQueries(\"currentOrganization\");\n queryCache.invalidateQueries(\"webflowSites\");\n queryCache.invalidateQueries(\"webflowCollections\");\n queryCache.invalidateQueries(\"webflowCollection\");\n break;\n case \"WEBFLOW_INTEGRATION_NEEDS_AUTHENTICATION\":\n addToast({\n title:\n \"Webflow sync is currently disabled. An Admin user of your organization must reconnect the Webflow integration.\",\n kind: \"warning\",\n delay: 20000,\n });\n\n queryCache.invalidateQueries(\"currentOrganization\");\n queryCache.invalidateQueries(\"webflowSites\");\n queryCache.invalidateQueries(\"webflowCollections\");\n queryCache.invalidateQueries(\"webflowCollection\");\n break;\n\n case \"UPDATE_AVAILABLE\":\n enableUpdateAvailable();\n break;\n\n case \"MAINTENANCE_COMPLETE\":\n enabledMaintenanceComplete();\n break;\n\n default:\n break;\n }\n }\n }\n\n return <>{props.children};\n}\n\nexport default WebsocketGlobalChannelHandler;\n","import React from \"react\";\nimport * as ActionCable from \"@rails/actioncable\";\nimport WebsocketGlobalChannelHandler from \"@ats/src/websockets/WebsocketGlobalChannelHandler\";\n\ntype WebsocketProviderProps = { children: React.ReactNode };\n\nconst WebsocketContext = React.createContext(undefined);\n\nfunction WebsocketProvider({ children }: WebsocketProviderProps) {\n const cable = ActionCable.createConsumer(`${(window as any).APP_ATS_ROOT_URL}/cable`);\n\n return (\n \n \n {/* Children */}\n {children}\n \n \n );\n}\n\nfunction useWebsocket() {\n const context = React.useContext(WebsocketContext);\n if (context === undefined) {\n throw new Error(\"useWebsocket must be used within a WebsocketProvider\");\n }\n return context;\n}\n\nexport { WebsocketProvider, useWebsocket };\n","import create, { SetState, GetState } from \"zustand\";\n\ntype JobApplicationStore = {\n convertingDocxToPdf: boolean;\n setConvertingDocxToPdf: (converting: boolean) => void;\n};\n\nconst useJobApplicationStore = create(\n (set: SetState, get: GetState) => ({\n convertingDocxToPdf: false,\n setConvertingDocxToPdf: (converting): void => {\n // const { convertingDocxToPdf } = get();\n set((state) => ({ convertingDocxToPdf: converting }));\n },\n }),\n);\n\nexport { useJobApplicationStore };\n","import React from \"react\";\nimport { useWebsocket } from \"@ats/src/websockets/WebsocketContext\";\n\nimport { useJobApplicationStore } from \"@ats/src/lib/store/zustand/jobApplicationStore\";\nimport { useJobApplication } from \"@shared/queryHooks/useJobApplication\";\nimport { useJob } from \"@shared/queryHooks/useJob\";\n\nfunction WebsocketJobChannelHandler(props) {\n const { jobId } = props;\n const channel = `JobChannel`;\n const Websocket = useWebsocket();\n\n const [activeJobApplicationId, setActiveJobApplicationId] = React.useState(null);\n const [convertingDocxToPdf, setConvertingDocxToPdf] = useJobApplicationStore((state) => [\n state.convertingDocxToPdf,\n state.setConvertingDocxToPdf,\n ]);\n\n // Just want to be able to refetch this query once DOCX is done converting to PDF, so that we disable the Loading indicator after the new url is available\n const { refetch: refetchJobApplication } = useJobApplication({\n jobApplicationId: activeJobApplicationId,\n initialData: undefined,\n });\n\n const { refetch: refetchJob } = useJob({\n jobId,\n refetchOnWindowFocus: false,\n });\n\n React.useEffect(() => {\n if (activeJobApplicationId != undefined) {\n refetchJobApplication().then((data) => {\n // window.logger(\n // \"%c[WebsocketJobChannelHandler] useEffect refetchJobApplication\",\n // \"background-color: #E4FF09\",\n // {\n // activeJobApplicationId,\n // data,\n // },\n // );\n\n setConvertingDocxToPdf(false);\n setActiveJobApplicationId(null);\n });\n }\n }, [activeJobApplicationId, refetchJobApplication, setConvertingDocxToPdf]);\n\n const handleJobMessage = React.useCallback(\n (data) => {\n // window.logger(\"%c[WebsocketJobChannelHandler] data\", \"color: #FF76D2\", { data });\n if (data.event != null) {\n switch (data.event) {\n case \"wwr_listing_published\":\n case \"wwr_listing_updated\":\n refetchJob();\n return;\n case \"docx_to_pdf_conversion_complete\":\n // This triggers the useEffect that does a refetchJobApplication\n setActiveJobApplicationId(data.payload.jobApplicationId);\n return;\n default:\n return;\n }\n }\n },\n [refetchJob],\n );\n\n const setupWebsocketConnections = React.useCallback(() => {\n if (jobId == undefined) return;\n\n // window.logger(\n // \"%c[WebsocketJobChannelHandler] setupWebsocketConnections\",\n // \"background: #334F30; color: #E4FF09\",\n // { channel, jobId },\n // );\n\n return Websocket.subscriptions.create(\n { channel, jobId },\n {\n connected: function () {\n // window.logger(\n // \"%c[WebsocketJobChannelHandler] WEBSOCKET JobChannel ---- Connected\",\n // \"background: #003423; color: #E4FF09\",\n // { channel, jobId },\n // );\n },\n\n disconnected: function () {\n // window.logger(\n // \"%c[WebsocketJobChannelHandler] WEBSOCKET JobChannel ---- Disconnected\",\n // \"background: #EF3423; color: #E4FF09\",\n // { channel },\n // );\n },\n\n received: function (data) {\n // window.logger(\n // \"%c[WebsocketJobChannelHandler] WEBSOCKET JobChannel ---- Received\",\n // \"background: #003423; color: #E4FF09\",\n // { data, channel, jobId },\n // );\n\n handleJobMessage(data);\n },\n },\n );\n }, [Websocket.subscriptions, channel, jobId, handleJobMessage]);\n\n React.useEffect(() => {\n // window.logger(\n // \"%c[WebsocketJobChannelHandler] useEffect\",\n // \"background-color: #FF76D2; color: red;\",\n // );\n const subscription = setupWebsocketConnections();\n return () => subscription.unsubscribe();\n }, [jobId, setupWebsocketConnections]);\n\n return <>{props.children};\n}\n\nexport default WebsocketJobChannelHandler;\n","import React, { Component } from \"react\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport { removeHttpPrefix, removeKnownUrlPrefix } from \"@shared/lib/utils\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport FormSection from \"@ats/src/components/forms/FormSection\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport { ShallowCandidate } from \"@shared/types/candidate\";\nimport { JobApplication } from \"@shared/types/jobApplication\";\nimport { useAuthorization } from \"@ats/src/components/shared/AuthorizationManager\";\n\ntype Props = {\n formTitle: string;\n candidate: Partial;\n jobApplication: Partial;\n errors?: object;\n uploadResume?: () => {};\n onSubmit: () => void;\n onCancel: () => void;\n onCandidateChange: (candidate) => void;\n onApplicationChange: (application) => void;\n isEditing: boolean;\n loading: boolean;\n};\n\nfunction CandidateForm(props: Props) {\n // window.logger(\"%c[CandidateForm] props\", \"background: pink; color: #1976D2\", props);\n const authorized = useAuthorization();\n const { formTitle, errors, isEditing, candidate, loading, jobApplication } = props;\n const {\n firstName,\n lastName,\n email,\n phone,\n location,\n linkedinUrl,\n githubUrl,\n twitterUrl,\n dribbbleUrl,\n websiteUrl,\n } = candidate;\n\n const {\n source,\n desiredCompensation,\n settings: { messages, overview, compensation },\n } = jobApplication;\n\n const onSubmit = (event) => {\n event.preventDefault();\n props.onSubmit();\n };\n\n const handleCandidateChange = (name, value) => {\n let val = value;\n\n if ([\"linkedinUrl\", \"githubUrl\", \"twitterUrl\", \"dribbbleUrl\"].includes(name)) {\n val = removeKnownUrlPrefix(val);\n } else if (name === \"websiteUrl\") {\n val = removeHttpPrefix(val);\n }\n\n props.onCandidateChange({ [name]: val });\n };\n\n const handleApplicationChange = (name, value) => {\n if ([\"messages\", \"overview\", \"compensation\"].includes(name)) {\n props.onApplicationChange({\n settings: {\n ...jobApplication.settings,\n [name]: value,\n },\n });\n } else {\n props.onApplicationChange({ [name]: value });\n }\n };\n\n const submitButtonTitle = isEditing ? \"Update candidate\" : \"Create candidate\";\n\n const isAuthorized = authorized({\n minimumRole: \"org_user\",\n adminOnly: jobApplication.settings.compensation === \"private\",\n });\n\n const jobApplicationSettingsOptions = [\n {\n label: \"Entire hiring team\",\n value: \"public\",\n },\n {\n label: \"Admin only\",\n value: \"private\",\n },\n ].map((option) => ({ value: option.value, label: option.label }));\n\n return (\n <>\n \n

    {formTitle}

    \n
    \n\n \n \n \n \n\n \n\n \n\n \n\n \n \n\n \n \n\n \n\n \n\n \n\n \n \n \n \n {isAuthorized && (\n \n )}\n \n {authorized({ minimumRole: \"org_admin\" }) && (\n \n \n \n \n \n )}\n \n \n \n \n {submitButtonTitle}\n \n \n \n \n );\n}\n\nexport default CandidateForm;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.FormHeader = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CandidateForm_FormHeader;\n ${[t.px(4), t.pt(4), t.pb(3)]}\n border-bottom: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background: ${t.dark ? t.color.gray[800] : t.color.white};\n position: sticky;\n top: 0;\n\n h2 {\n ${[t.text.h2]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CandidateForm_ButtonContainer;\n ${t.p(4)}\n position: sticky;\n bottom: 0;\n display: flex;\n border-bottom-left-radius: 0.4375rem;\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background: ${t.dark ? t.color.gray[800] : t.color.white};\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import { useMutation, useQuery, useQueryClient } from \"react-query\";\nimport { apiGet, apiPost, apiPut } from \"@shared/queryHooks/api\";\n\nconst getCandidate = async (candidateId) => {\n if (candidateId != undefined) {\n return await apiGet({ path: `/candidates/${candidateId}` });\n }\n};\n\nconst createCandidate = async ({ jobId, candidate }) => {\n if (jobId != null) {\n return await apiPost({ path: `/jobs/${jobId}/candidates`, variables: candidate });\n }\n};\n\nconst updateCandidate = async ({ jobApplicationId, candidate: { id, ...candidate } }) => {\n return await apiPut({ path: `/candidates/${id}`, variables: candidate });\n};\n\nconst anonymizeCandidate = async ({ candidateId, jobApplicationId, hiringStageId, jobId }) => {\n return await apiPut({ path: `/candidates/${candidateId}/anonymize`, variables: null });\n};\n\n/* Hooks\n--===================================================-- */\nfunction useCandidate(\n candidate,\n): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n} {\n return useQuery([\"candidates\", candidate.id], () => getCandidate(candidate.id));\n}\n\nfunction useCreateCandidate() {\n const queryClient = useQueryClient();\n return useMutation(createCandidate, {\n // Notice the second argument is the variables object that the `mutate` function receives\n // onSuccess: (data, variables) => {\n // queryClient.setQueryData([\"jobCategory\", { id: variables.id }], data);\n // },\n // Error\n // onError: (data, variables) => {\n // window.logger(\n // \"%c[useCandidate] handle error when creating Job Category\",\n // \"background-color: #19F6D2\",\n // {\n // data,\n // variables,\n // },\n // );\n // },\n // After success or failure, refetch the candidate query\n onSuccess: (data, mutationVariables) => {\n window.logger(\"[useCandidate] useCreateCandidate\", { data, mutationVariables });\n queryClient.invalidateQueries([\"jobs\", mutationVariables.jobId]);\n queryClient.invalidateQueries([\"jobApplications\", mutationVariables.jobId]); // Not sure this is necessary\n queryClient.invalidateQueries([\n \"jobApplicationsForStage\",\n data.jobApplications.length > 0\n ? data.jobApplications[data.jobApplications.length - 1].hiringStageId\n : null,\n ]);\n queryClient.invalidateQueries([\"candidates\", data.id]);\n },\n // throwOnError: true,\n });\n}\n\nfunction useUpdateCandidate() {\n const queryClient = useQueryClient();\n return useMutation(updateCandidate, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\"%c[useCandidate] useUpdateCandidate\", \"color: #1976D2\", {\n data,\n mutationVariables,\n });\n queryClient.invalidateQueries([\"jobApplication\", mutationVariables.jobApplicationId]);\n queryClient.invalidateQueries([\"candidates\", data.id]);\n },\n // throwOnError: true,\n });\n}\n\nfunction useAnonymizeCandidate() {\n const queryClient = useQueryClient();\n return useMutation(anonymizeCandidate, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\"%c[useCandidate] useAnonymizeCandidate\", \"color: #1976D2\", {\n data,\n // mutationVariables,\n });\n queryClient.invalidateQueries([\"jobApplicationsForStage\", mutationVariables.hiringStageId]);\n queryClient.invalidateQueries([\"jobApplication\", mutationVariables.jobApplicationId]);\n queryClient.invalidateQueries([\"jobs\", mutationVariables.jobId]);\n queryClient.invalidateQueries([\"candidates\", mutationVariables.candidateId]);\n },\n // throwOnError: true,\n });\n}\n\nexport { useCandidate, useCreateCandidate, useUpdateCandidate, useAnonymizeCandidate };\n","import React from \"react\";\n\nimport FullModal from \"@ats/src/components/modals/FullModal\";\nimport CandidateForm from \"@ats/src/views/jobApplications/candidates/CandidateForm\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useCreateCandidate } from \"@shared/queryHooks/useCandidate\";\nimport { Candidate } from \"@shared/types/candidate\";\nimport { useUpdateJobApplication } from \"@shared/queryHooks/useJobApplication\";\n\ntype Props = {\n onCancel: () => void;\n onComplete: (number) => void;\n history: any;\n match: any;\n jobId: number;\n};\n\nfunction NewCandidateModal(props: Props) {\n const { onCancel } = props;\n const [errors, setErrors] = React.useState(null);\n const [isDirty, setIsDirty] = React.useState(false);\n const [candidate, setCandidate] = React.useState({\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n phone: \"\",\n location: \"\",\n linkedinUrl: \"\",\n twitterUrl: \"\",\n githubUrl: \"\",\n dribbbleUrl: \"\",\n websiteUrl: \"\",\n errors: null,\n });\n const [jobApplication, setJobApplication] = React.useState({\n source: \"\",\n desiredCompensation: \"\",\n settings: {\n overview: \"public\",\n messages: \"public\",\n compensation: \"public\",\n },\n });\n\n const { mutate: createCandidate, isLoading: isLoadingCreateCandidate } = useCreateCandidate();\n const {\n mutate: updateJobApplication,\n isLoading: isLoadingUpdateJobApplication,\n } = useUpdateJobApplication();\n\n const { dismissModalWithAnimation } = useModalContext();\n\n const handleCancel = () => {\n dismissModalWithAnimation(() => onCancel);\n };\n\n const handleCandidateChange = (updates) => {\n // window.logger(\"%c[NewCandidateModal] updates\", \"color: #1976D2\", updates);\n setCandidate({ ...candidate, ...updates });\n setIsDirty(true);\n };\n\n const handleJobApplicationChange = (updates) => {\n setJobApplication({ ...jobApplication, ...updates });\n };\n\n const handleUpdateJobApplication = (applicationId: number) => {\n updateJobApplication(\n { ...jobApplication, id: applicationId },\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[NewCandidateModal] handleUpdateJobApplication onSuccess application\",\n \"color: #1900D2\",\n {\n data,\n },\n );\n setErrors(null);\n\n dismissModalWithAnimation(() => props.onComplete(data));\n },\n onError: (response: any) => {\n setErrors(response.data.errors);\n },\n },\n );\n };\n\n const onSubmit = () => {\n createCandidate(\n { jobId: props.jobId, candidate },\n {\n onSuccess: (data: Candidate) => {\n window.logger(\"%c[NewCandidateModal] onSubmit onSuccess candidate\", \"color: #1900D2\", {\n data,\n });\n setErrors(null);\n handleUpdateJobApplication(\n data.jobApplications.find((application) => application.jobId === props.jobId).id,\n );\n },\n onError: (response: any) => {\n // console.error(\"%c[NewCandidateModal] createCandidate ERROR\", \"color: #1976D2\", {\n // response,\n // });\n setErrors(response.data.errors);\n },\n },\n );\n };\n\n return (\n \n \n \n );\n}\n\nexport default NewCandidateModal;\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport useOnClickOutside from \"use-onclickoutside\";\nimport { useSpring, animated } from \"react-spring\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nimport { HiringStageAutomation } from \"@ats/types/job\";\n\ninterface Props {\n stageAutomation: HiringStageAutomation | null;\n stageName: string;\n bulk: boolean;\n}\n\nexport default function JobStageAutomationInfo(props: Props) {\n const { stageAutomation, stageName, bulk } = props;\n const [dropdownIsVisible, setDropdownIsVisible] = React.useState(false);\n const ref = React.useRef(null);\n\n window.logger(\"%c[JobStageAutomationInfo] RENDER\", \"color: #FF5F02\", {\n props,\n });\n\n useOnClickOutside(ref, () => {\n handleClickOutside();\n });\n\n const handleClickOutside = () => {\n if (dropdownIsVisible) {\n setDropdownIsVisible(false);\n }\n };\n\n const toggleDropdownVisibility = (e) => {\n e.preventDefault();\n setDropdownIsVisible(!dropdownIsVisible);\n };\n\n const closeDropdown = (e) => {\n e.stopPropagation();\n handleClickOutside();\n };\n\n const spring = useSpring({\n from: {\n opacity: 0,\n transform: \"scale(0.95)\",\n pointerEvents: \"none\",\n },\n to: {\n opacity: dropdownIsVisible ? 1 : 0,\n transform: dropdownIsVisible ? \"scale(1)\" : \"scale(0.95)\",\n pointerEvents: dropdownIsVisible ? \"all\" : \"none\",\n },\n config: {\n tension: 480,\n clamp: true,\n },\n });\n\n const iconName = stageAutomation ? \"zap\" : \"zap-off\";\n\n const infoMessage = stageAutomation ? (\n \n <>\n Move to {stageName} triggers an automated email to\n {bulk ? \" each \" : \" the \"} candidate using the{\" \"}\n \"{stageAutomation.channelMessageTemplateName}\" template, sent\n {stageAutomation.frequency === \"once\" ? \" once\" : \" every time\"}.\n \n \n ) : (\n \n Move to {stageName} triggers no automations.\n \n );\n\n return (\n \n
    \n \n \n {stageAutomation ? (\n 1 automation will run\n ) : (\n No automations will run\n )}\n \n \n
    \n \n {infoMessage}\n \n
    \n );\n}\n\n/* Styled Components\n======================================================= */\n\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div`\n label: JobStageAutomationInfo_Container;\n width: 100%;\n position: relative;\n`;\n\nStyled.Details = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: JobStageAutomationInfo_Details;\n ${[t.px(1), t.pt(2)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n\n &:hover {\n cursor: pointer;\n }\n\n span {\n font-weight: 400;\n font-size: 0.75rem;\n ${t.pr(1)}\n }\n\n svg {\n flex-shrink: 0;\n height: 1.125em;\n width: 1.125em;\n ${t.mr(1)};\n }\n `;\n});\n\nStyled.DropdownText = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: JobStageAutomationInfo_TooltipText;\n padding: 0.125rem;\n\n span {\n font-weight: bold;\n }\n `;\n});\n\nStyled.Dropdown = styled(animated.div)((props) => {\n const t: any = props.theme;\n const modeStyles = t.dark\n ? css`\n color: ${t.color.gray[200]};\n background-color: ${t.color.gray[700]};\n border: 1px solid ${t.color.gray[600]};\n `\n : css`\n color: ${t.color.black};\n background-color: ${t.color.white};\n border: 1px solid ${t.color.gray[400]};\n `;\n\n return css`\n label: JobStageAutomationInfo_Dropdown;\n ${[t.my(2), t.px(2), t.r(2), t.rounded.sm]}\n font-size: 0.75rem;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n top: 1.75rem;\n left: 0;\n overflow: hidden;\n z-index: 20;\n position: absolute;\n transform-origin: top left;\n width: 100%;\n align-self: center;\n ${modeStyles}\n `;\n});\n","import React from \"react\";\n\nimport FullModal from \"@ats/src/components/modals/FullModal\";\nimport CandidateForm from \"@ats/src/views/jobApplications/candidates/CandidateForm\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nimport { useUpdateCandidate } from \"@shared/queryHooks/useCandidate\";\nimport { Candidate } from \"@shared/types/candidate\";\nimport { JobApplication } from \"@shared/types/jobApplication\";\nimport { useUpdateJobApplication } from \"@shared/queryHooks/useJobApplication\";\n\ntype Props = {\n onCancel: () => void;\n onComplete: () => void;\n candidate: Candidate;\n jobApplication: JobApplication;\n jobApplicationId: number;\n};\n\nfunction EditCandidateModal(props: Props) {\n const { jobApplicationId } = props;\n const [errors, setErrors] = React.useState(null);\n const [candidate, setCandidate] = React.useState({ ...props.candidate });\n const [jobApplication, setJobApplication] = React.useState({\n source: props.jobApplication.source,\n desiredCompensation: props.jobApplication.desiredCompensation,\n settings: props.jobApplication.settings,\n });\n const [isDirty, setIsDirty] = React.useState(false);\n\n const { mutate: updateCandidate, isLoading: isLoadingUpdateCandidate } = useUpdateCandidate();\n const {\n mutate: updateJobApplication,\n isLoading: isLoadingUpdateJobApplication,\n } = useUpdateJobApplication();\n\n const addToast = useToastContext();\n const { dismissModalWithAnimation } = useModalContext();\n\n const handleCandidateChange = (updates) => {\n // window.logger(\"%c[EditCandidateModal] updates\", \"color: #1976D2\", updates);\n setCandidate({ ...candidate, ...updates });\n setIsDirty(true);\n };\n\n const handleJobApplicationChange = (updates) => {\n setJobApplication({ ...jobApplication, ...updates });\n };\n\n const handleUpdateJobApplication = (applicationId: number, fullName: string) => {\n updateJobApplication(\n { ...jobApplication, id: applicationId },\n {\n onSuccess: (data) => {\n window.logger(\"%c[EditCandidateModal] onSubmit candidate\", \"color: #1900D2\", {\n data,\n });\n setErrors(null);\n\n dismissModalWithAnimation(() => props.onComplete);\n addToast({ title: `Successfully updated ${fullName}`, kind: \"success\" });\n },\n onError: (response: any) => {\n setErrors(response.data.errors);\n },\n },\n );\n };\n\n const onSubmit = () => {\n window.logger(\"%c[EditCandidateModal] onSubmit candidate\", \"color: #1900D2\", candidate);\n // const { id, ...candidateProps } = candidate;\n\n updateCandidate(\n { jobApplicationId, candidate },\n {\n onSuccess: (data) => {\n handleUpdateJobApplication(jobApplicationId, data.fullName);\n },\n onError: (response: { data: any }) => {\n setErrors(response.data.errors);\n },\n },\n );\n };\n\n return (\n dismissModalWithAnimation(() => props.onCancel)}\n hasUnsavedChanges={isDirty}\n >\n dismissModalWithAnimation(() => props.onCancel)}\n isEditing={true}\n candidate={candidate}\n jobApplication={jobApplication}\n errors={errors}\n loading={isLoadingUpdateCandidate || isLoadingUpdateJobApplication}\n />\n \n );\n}\n\nexport default EditCandidateModal;\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport JobStageAutomationInfo from \"@ats/src/views/jobApplications/JobStageAutomationInfo\";\nimport { FeatureFlipper } from \"@ats/src/components/shared/FeatureFlipper\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { HiringStageAutomation } from \"@ats/types/job\";\nimport { activeHiringStageAutomation } from \"@ats/src/lib/utils/helpers\";\n\ntype HiringStage = {\n name: string;\n id: number;\n kind: string;\n jobId: number;\n hiringStageAutomation: HiringStageAutomation;\n};\n\ntype Props = {\n title: string;\n subcopy?: string;\n onConfirm: (stageId: number) => void;\n onCancel: () => void;\n currentStage: HiringStage;\n nextLogicalHiringStage?: HiringStage;\n hiringStages: Array;\n};\n\nfunction JobApplicationStageMoveModal(props: Props) {\n const {\n title,\n subcopy,\n onConfirm,\n onCancel,\n currentStage,\n nextLogicalHiringStage,\n hiringStages,\n } = props;\n const [errors, setErrors] = React.useState([]);\n const [stageId, setStageId] = React.useState(\n nextLogicalHiringStage ? nextLogicalHiringStage.id : currentStage.id,\n );\n const [isDirty, setIsDirty] = React.useState(false);\n const { dismissModalWithAnimation } = useModalContext();\n const hiringStageOptions = hiringStages\n ? hiringStages\n .filter((stage) => stage !== currentStage && stage.kind !== \"kind_archived\")\n .map((hiringStage) => ({ value: hiringStage.id, label: hiringStage.name }))\n : [];\n const targetStageName = hiringStageOptions.find((option) => option.value === stageId)?.label;\n const targetStageAutomation = activeHiringStageAutomation(hiringStages, stageId);\n\n const handleOnCancel = (event) => {\n if (event != undefined) {\n event.preventDefault();\n }\n dismissModalWithAnimation(() => onCancel);\n };\n\n const handleOnConfirm = (event) => {\n event.preventDefault();\n dismissModalWithAnimation(() => handleConfirmation); // have to call the function like this so that onCofirm does not run immediately\n };\n\n const handleConfirmation = () => {\n window.logger(\n \"%c[JobApplicationStageMoveModal] handleConfirmation\",\n \"background-color: #197600; color: #FFF;\",\n {\n stageId,\n },\n );\n onConfirm(stageId);\n };\n\n const handleChangeStage = (name, value) => {\n setStageId(value);\n setIsDirty(true);\n };\n\n const modalButtons = (\n \n \n Move\n \n \n \n );\n\n const selectHiringStageValue = () => {\n const stage = hiringStageOptions.find((stage) => stage.value === stageId);\n return (stage && stage.value) || null;\n };\n\n return (\n \n {subcopy && {subcopy}}\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default JobApplicationStageMoveModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationStageMoveModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationStageMoveModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n\nStyled.AutomationInfoContainer = styled.div`\n label: JobApplicationStageMoveModal_Instructions;\n margin-top: -1rem;\n height: 4.5rem;\n`;\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport FormCheckbox from \"@ats/src/components/forms/FormCheckbox\";\nimport JobStageAutomationInfo from \"@ats/src/views/jobApplications/JobStageAutomationInfo\";\nimport { FeatureFlipper } from \"@ats/src/components/shared/FeatureFlipper\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useJobs } from \"@shared/queryHooks/useJob\";\nimport { useHiringStages } from \"@shared/queryHooks/useHiringStage\";\nimport { HiringStageAutomation } from \"@ats/types/job\";\nimport { activeHiringStageAutomation } from \"@ats/src/lib/utils/helpers\";\n\ntype HiringStage = {\n name: string;\n id: number;\n kind: string;\n jobId: number;\n hiringStageAutomation: HiringStageAutomation;\n};\n\ntype Props = {\n title: string;\n subcopy?: string;\n onConfirm: ({ targetJob, targetHiringStage, cloneInsteadOfMove }) => void;\n onCancel: () => void;\n currentStage: HiringStage;\n nextLogicalHiringStage?: HiringStage;\n hiringStages: Array;\n};\n\nfunction JobApplicationMoveModal(props: Props) {\n const { title, subcopy, onConfirm, onCancel, currentStage } = props;\n const [errors, setErrors] = React.useState([]);\n const [isDirty, setIsDirty] = React.useState(false);\n const [targetJobId, setTargetJobId] = React.useState(null);\n const [targetHiringStageId, setTargetHiringStageId] = React.useState(null);\n const [cloneInsteadOfMove, setCloneInsteadOfMove] = React.useState(false);\n\n const { dismissModalWithAnimation } = useModalContext();\n const { data: jobsData, isFetching: isFetchingJobs } = useJobs({\n refetchOnWindowFocus: false,\n });\n const { data: hiringStagesData, isFetching: isFetchingHiringStages } = useHiringStages({\n jobId: targetJobId,\n refetchOnWindowFocus: false,\n });\n\n const jobs = jobsData ? jobsData.items.filter((job) => job.id !== currentStage.jobId) : [];\n const hiringStages = hiringStagesData ? hiringStagesData : [];\n\n // window.logger(\"%c[JobApplicationMoveModal] render\", \"background-color: #65FF92\", {\n // hiringStagesData,\n // hiringStages,\n // jobs,\n // });\n\n // Select the first Job and Hiring Stage\n React.useEffect(() => {\n // window.logger(\"%c[JobApplicationMoveModal] useEffect\", \"background-color: #65FF92\", {\n // hiringStagesData,\n // hiringStages,\n // jobs,\n // targetJobId,\n // targetHiringStageId,\n // });\n\n if (targetJobId == undefined && jobs != undefined && jobs.length > 0) {\n setTargetJobId(jobs[0].id);\n }\n\n if (targetHiringStageId == undefined && hiringStages != undefined && hiringStages.length > 0) {\n setTargetHiringStageId(hiringStages[0].id);\n }\n }, [jobs, hiringStages, targetJobId]);\n\n const jobsOptions = jobs ? jobs.map((job) => ({ value: job.id, label: job.title })) : [];\n const hiringStagesOptions = hiringStages\n ? hiringStages.map((hiringStage) => ({ value: hiringStage.id, label: hiringStage.name }))\n : [];\n const targetStageName = hiringStagesOptions.find((option) => option.value === targetHiringStageId)?.label;\n const targetStageAutomation = activeHiringStageAutomation(hiringStages, targetHiringStageId);\n\n const handleOnCancel = (event) => {\n if (event != undefined) {\n event.preventDefault();\n }\n dismissModalWithAnimation(() => onCancel);\n };\n\n const handleOnConfirm = (event) => {\n event.preventDefault();\n dismissModalWithAnimation(() => handleConfirmation); // have to call the function like this so that onConfirm does not run immediately\n };\n\n const handleOnClickCheckbox = (name, value) => {\n // event.preventDefault();\n window.logger(\"%c[JobApplicationMoveModal] handleOnClickCheckbox\", \"color: #1976D2\", {\n name,\n value,\n });\n setCloneInsteadOfMove(value);\n };\n\n const handleConfirmation = () => {\n // window.logger(\n // \"%c[JobApplicationMoveModal] handleConfirmation\",\n // \"background-color: #197600; color: #FFF;\",\n // {\n // targetHiringStageId,\n // },\n // );\n\n const targetJob = jobs.find((job) => job.id === targetJobId);\n const targetHiringStage = hiringStages.find(\n (hiringStage) => hiringStage.id === targetHiringStageId,\n );\n\n onConfirm({ targetJob, targetHiringStage, cloneInsteadOfMove });\n };\n\n const handleChangeJob = (name, value) => {\n setTargetJobId(value);\n setTargetHiringStageId(null);\n setIsDirty(true);\n };\n\n const handleChangeStage = (name, value) => {\n setTargetHiringStageId(value);\n setIsDirty(true);\n };\n\n // const selectHiringStageValue = () => {\n // const stage = jobsOptions.find((stage) => stage.value === targetHiringStageId);\n // return (stage && stage.value) || null;\n // };\n\n const modalButtons = (\n \n \n Move\n \n \n \n );\n\n return (\n \n {subcopy && {subcopy}}\n \n \n\n \n \n \n \n \n \n\n \n \n \n );\n}\n\nexport default JobApplicationMoveModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMoveModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMoveModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n\nStyled.AutomationInfoContainer = styled.div`\n label: JobApplicationMoveModal_AutomationInfoContainer;\n margin-top: -1rem;\n height: 3rem;\n`;\n","import create, { SetState, GetState } from \"zustand\";\nimport produce from \"immer\";\n\ntype JobStore = {\n jobsById: {};\n hiringStagesById: {};\n hiringStagesByJobId: {};\n questionsByJobId: {};\n questionsById: {};\n jobApplicationsById: {};\n jobApplicationsByJobId: {};\n set: (fn: any) => any;\n};\n\nconst useJobStore = create((set: SetState, get: GetState) => ({\n jobsById: {},\n hiringStagesById: {}, // for looking up an individual HiringStage\n hiringStagesByJobId: {}, // for looking up the HiringStages for a Job\n questionsByJobId: {}, // for getting the list of Questions\n questionsById: {}, // for looking up an individual Question (used in JobApplicationActivity)\n jobApplicationsByJobId: {}, // Sorted to have Inbox, ...InProcess, Archived\n jobApplicationsById: {}, // for looking up an individual JobApplication\n set: (fn) => {\n set(produce(fn));\n },\n}));\n\n// const refetchJob = (jobId) => {\n// queryCache.refetchQueries([\"jobs\", data.jobId], { exact: true });\n// }\n\nexport { useJobStore };\n","import { JobApplication } from \"./jobApplication\";\n\nexport interface ShallowCandidate {\n id: number;\n firstName: string;\n lastName: string;\n fullName: string;\n email: string;\n phone: string;\n location: string;\n linkedinUrl: string;\n githubUrl: string;\n twitterUrl: string;\n dribbbleUrl: string;\n websiteUrl: string;\n};\n\nexport interface Candidate extends ShallowCandidate {\n jobApplications: JobApplication[];\n}\n\nexport interface ConnectMember extends ShallowCandidate {\n hasValidEmail: boolean;\n jobApplicationsCount: number;\n jobApplications: JobApplication[];\n};\n\nexport enum CandidatePrivacyStatus {\n PUBLIC = \"public\",\n NEEDS_ANONYMIZATION = \"needs_anonymization\",\n ANONYMIZED = \"anonymized\"\n}","import React from \"react\";\nimport { useHotkeys } from \"react-hotkeys-hook\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { History } from \"react-router-dom\";\n\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\nimport ShortcutKey from \"@ats/src/components/shared/ShortcutKey\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\nimport JobStageAutomationInfo from \"@ats/src/views/jobApplications/JobStageAutomationInfo\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nimport EditCandidateModal from \"@ats/src/views/jobApplications/candidates/EditCandidateModal\";\nimport JobApplicationStageMoveModal from \"@ats/src/views/jobApplications/JobApplicationStageMoveModal\";\nimport JobApplicationCloneModal from \"@ats/src/views/jobApplications/JobApplicationCloneModal\";\n\nimport { prettyErrorsArray } from \"@shared/lib/formHelpers\";\nimport { nextLogical } from \"@ats/src/lib/utils/helpers\";\n\nimport { FeatureFlipper } from \"@ats/src/components/shared/FeatureFlipper\";\n\nimport {\n useMoveJobApplicationToStage,\n useCloneToNewJobAtHiringStage,\n useMoveToNewJobAtHiringStage,\n} from \"@shared/queryHooks/useJobApplication\";\nimport { useJobs } from \"@shared/queryHooks/useJob\";\nimport { useJobStore } from \"@ats/src/lib/store/zustand/jobStore\";\nimport { useAnonymizeCandidate } from \"@shared/queryHooks/useCandidate\";\nimport { CandidatePrivacyStatus } from \"@shared/types/candidate\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\nimport { HiringStageAutomation } from \"@ats/types/job\";\nimport { getActiveHiringStageAutomation } from \"@ats/src/lib/utils/helpers\";\n\nconst FINAL_STAGES = [\"kind_archived\", \"kind_hired\"];\n\ntype HiringStage = {\n name: string;\n id: number;\n kind: string;\n jobId: number;\n hiringStageAutomation: HiringStageAutomation;\n};\n\ntype JobApplication = { id: number; candidateId: number; hiringStageId: number; jobId: number };\n\ntype Props = {\n candidate: any;\n jobApplication: any;\n history: History;\n hiringStages: Array;\n jobApplicationsForStage: Array;\n};\n\nfunction JobApplicationSidebarActions({\n candidate,\n jobApplication,\n hiringStages,\n jobApplicationsForStage,\n history,\n ...props\n}: Props) {\n const addToast = useToastContext();\n const { openModal, removeModal } = useModalContext();\n // window.logger(\"%c[JobApplicationSidebarActions] \", \"background: #EFDDEF; color: #1976D2\", props);\n const { currentOrganizationUser } = useCurrentSession();\n // const { candidate, jobApplication, hiringStages, jobApplicationsForStage } = props;\n const hiringStagesById = useJobStore((state) => state.hiringStagesById);\n\n const {\n mutate: moveJobApplicationToStage,\n isLoading: isLoadingMoveJobApplicationToStage,\n } = useMoveJobApplicationToStage();\n\n const {\n mutate: cloneToNewJobAtHiringStage,\n isLoading: isLoadingCloneToNewJobAtHiringStage,\n } = useCloneToNewJobAtHiringStage();\n\n const {\n mutate: moveToNewJobAtHiringStage,\n isLoading: isLoadingMoveToNewJobAtHiringStage,\n } = useMoveToNewJobAtHiringStage();\n\n const {\n mutate: anonymizeCandidate,\n isLoading: isLoadingAnonymizeCandidate,\n } = useAnonymizeCandidate();\n\n const { data: jobsData, isFetching: isFetchingJobs } = useJobs({\n refetchOnWindowFocus: false,\n });\n\n const archiveHiringStage = hiringStages.find((stage) => stage.kind === \"kind_archived\");\n const currentStage = hiringStages.find((stage) => stage.id === jobApplication.hiringStageId);\n const isActive = currentStage && !FINAL_STAGES.includes(currentStage.kind);\n\n const jobs = jobsData ? jobsData.items.filter((job) => job.id !== currentStage.jobId) : [];\n\n // const nextLogical = ({ list, currentItem }) => {\n // const length = list.length;\n // const currentIndex = list.findIndex((item) => item.id === currentItem.id);\n\n // if (currentIndex + 1 === length) {\n // // last Item, check if is only one, if so do nothing.\n // if (currentIndex === 0) {\n // return null;\n // }\n\n // // return the Previous Item\n // return list[currentIndex - 1];\n // } else {\n // // return the Next Item\n // return list[currentIndex + 1];\n // }\n // };\n\n const nextLogicalJobApplication = nextLogical({\n list: jobApplicationsForStage,\n currentItem: jobApplication,\n });\n\n const nextLogicalHiringStage = nextLogical({\n list: hiringStages.filter((stage) => stage.kind !== \"kind_archived\"),\n currentItem: currentStage,\n });\n\n const nextLogicalHiringStageIncludingArchived = nextLogical({\n list: hiringStages,\n currentItem: currentStage,\n });\n\n const nextLogicalJobApplicationUrl =\n nextLogicalJobApplication != undefined\n ? `/jobs/${nextLogicalJobApplication.jobId}/stages/${nextLogicalJobApplication.hiringStageId}/applicants/${nextLogicalJobApplication.id}`\n : `/jobs/${jobApplication.jobId}/stages/${jobApplication.hiringStageId}/applicants`;\n\n window.logger(\"%c[JASA] moveFocuseToNextLogicalJobApplication\", \"background-color: #eb89d6\", {\n nextLogicalJobApplication,\n nextLogicalHiringStage,\n nextLogicalJobApplicationUrl,\n jobApplication,\n });\n\n /* MOVE STAGE MODAL\n --===================================================-- */\n const moveStageModal = (\n {\n window.logger(\n \"%c[JobApplicationSidebarActions] MOVE STAGE MODAL CONFIRM\",\n \"color: #19FF02\",\n {\n props,\n targetStageId,\n },\n );\n removeModal();\n\n const targetStage = hiringStagesById[targetStageId];\n moveToStage({ id: targetStage.id, name: targetStage.name });\n }}\n onCancel={() => {\n window.logger(\n \"%c[JobApplicationSidebarActions] MOVE STAGE MODAL CANCEL\",\n \"color: #FF5F02\",\n {\n props,\n },\n );\n removeModal();\n }}\n />\n );\n\n /* MOVE or CLONE JOB APPLICATION MODAL\n --===================================================-- */\n const moveToJobModal = (\n {\n window.logger(\n \"%c[JobApplicationSidebarActions] CLONE JOB APPLICATION CONFIRM\",\n \"color: #19FF02\",\n {\n props,\n targetHiringStage,\n targetJob,\n },\n );\n removeModal();\n\n if (cloneInsteadOfMove) {\n cloneJobApplicationToJob({ targetJob, targetHiringStage });\n } else {\n moveJobApplicationToJob({ targetJob, targetHiringStage });\n }\n }}\n onCancel={() => {\n window.logger(\n \"%c[JobApplicationSidebarActions] CLONE JOB APPLICATION CANCEL\",\n \"color: #FF5F02\",\n {\n props,\n },\n );\n removeModal();\n }}\n />\n );\n\n /* HOTKEYS\n --===================================================-- */\n useHotkeys(\n \"m\",\n (event) => {\n event.preventDefault();\n event.stopPropagation();\n openModal(moveStageModal);\n return false;\n },\n {},\n [jobApplication],\n );\n\n useHotkeys(\n \"e\",\n (event) => {\n event.preventDefault();\n event.stopPropagation();\n moveToArchived();\n return false;\n },\n {},\n [jobApplication],\n );\n\n /* EDIT CANDIDATE\n --===================================================-- */\n const handleClickOnEdit = (event) => {\n event.preventDefault();\n window.logger(\n \"%c[JobApplicationSidebarActions] handleClickOnAdd props\",\n \"color: #1976D2\",\n props,\n );\n\n const modal = (\n \n );\n\n openModal(modal);\n };\n\n /* MOVE TO STAGE - Same Job\n --===================================================-- */\n const moveToStage = ({ id: hiringStageId, name }) => {\n if (hiringStageId) {\n const destinationUrl = `/jobs/${jobApplication.jobId}/stages/${hiringStageId}/applicants/${jobApplication.id}`;\n\n moveJobApplicationToStage(\n { ...jobApplication, hiringStageId },\n {\n onSuccess: (data) => {\n addToast({\n title: `Moved ${jobApplication.candidate.fullName} to ${name}`,\n kind: \"success\",\n delay: 6000,\n linkTo: destinationUrl,\n });\n\n moveFocusToNextLogicalJobApplication();\n },\n\n onError: (response) => {\n window.logger(\"%c[JASA] onError\", \"color: #1976D2\", { response });\n addToast({\n title: `An unknown error occurred, please try again or contact support@polymer.co`,\n kind: \"warning\",\n delay: 5000,\n });\n },\n },\n );\n }\n };\n\n /* MOVE TO NEXT LOGICAL HIRING STAGE\n --===================================================-- */\n const moveToNextLogicalHiringStage = () => {\n if (nextLogicalHiringStage != undefined) {\n moveToStage(nextLogicalHiringStage);\n }\n };\n\n /* MOVE FOCUS TO NEXT LOGICAL JOB APPLICATION\n --===================================================-- */\n const moveFocusToNextLogicalJobApplication = () => {\n window.logger(\"%c[JASA] moveFocuseToNextLogicalJobApplication\", \"background-color: #96fc88\", {\n nextLogicalJobApplication,\n nextLogicalJobApplicationUrl,\n });\n\n if (nextLogicalJobApplicationUrl) {\n history.push(nextLogicalJobApplicationUrl);\n }\n };\n\n /* CLONE JOB APPLICATION TO STAGE ON JOB\n --===================================================-- */\n const cloneJobApplicationToJob = ({ targetJob, targetHiringStage }) => {\n cloneToNewJobAtHiringStage(\n { ...jobApplication, hiringStageId: targetHiringStage.id },\n {\n onSuccess: (data) => {\n const destinationUrl = `/jobs/${targetJob.id}/stages/${targetHiringStage.id}/applicants/${data.id}`;\n window.logger(\"%c[JobApplicationSidebarActions] CLONE\", \"color: #1976D2\", {\n data,\n destinationUrl,\n });\n addToast({\n title: `Cloned ${jobApplication.candidate.fullName} to ${targetJob.title}`,\n kind: \"success\",\n delay: 6000,\n linkTo: destinationUrl,\n });\n\n // moveFocusToNextLogicalJobApplication(); // Only do this for Move candidate\n },\n\n onError: (response: { data: { errors } }) => {\n window.logger(\"%c[JASA] cloneJobApplication onError\", \"color: #1976D2\", {\n response,\n errors: prettyErrorsArray(response.data.errors),\n });\n const prettyErrors = prettyErrorsArray(response.data.errors);\n addToast({\n title: prettyErrors[0],\n kind: \"warning\",\n delay: 5000,\n });\n },\n },\n );\n };\n\n /* MOVE JOB APPLICATION TO STAGE ON JOB\n --===================================================-- */\n const moveJobApplicationToJob = ({ targetJob, targetHiringStage }) => {\n const destinationUrl = `/jobs/${targetJob.id}/stages/${targetHiringStage.id}/applicants/${jobApplication.id}`;\n\n moveToNewJobAtHiringStage(\n { ...jobApplication, hiringStageId: targetHiringStage.id },\n {\n onSuccess: (data) => {\n addToast({\n title: `Moved ${jobApplication.candidate.fullName} to ${targetJob.title}`,\n kind: \"success\",\n delay: 6000,\n linkTo: destinationUrl,\n });\n\n moveFocusToNextLogicalJobApplication();\n },\n\n onError: (response: { data: { errors } }) => {\n window.logger(\"%c[JASA] moveJobApplication onError\", \"color: #1976D2\", {\n response,\n errors: prettyErrorsArray(response.data.errors),\n });\n const prettyErrors = prettyErrorsArray(response.data.errors);\n addToast({\n title: prettyErrors[0],\n kind: \"warning\",\n delay: 5000,\n });\n },\n },\n );\n };\n\n /* ANONYMIZE CANDIDATE DATA\n --===================================================-- */\n const handleAnonymizeCandidateConfirm = () => {\n anonymizeCandidate(\n {\n candidateId: jobApplication.candidate.id,\n jobApplicationId: jobApplication.id,\n hiringStageId: jobApplication.hiringStageId,\n jobId: jobApplication.jobId,\n },\n {\n onSuccess: (data) => {\n addToast({\n title: `Anonymized ${jobApplication.candidate.fullName}`,\n kind: \"success\",\n delay: 6000,\n });\n\n moveFocusToNextLogicalJobApplication();\n },\n\n onError: (response: { data: { errors } }) => {\n window.logger(\"%c[JASA] anonymizeCandidate onError\", \"color: #1976D2\", {\n response,\n errors: prettyErrorsArray(response.data.errors),\n });\n const prettyErrors = prettyErrorsArray(response.data.errors);\n addToast({\n title: prettyErrors[0],\n kind: \"warning\",\n delay: 5000,\n });\n },\n },\n );\n };\n\n /* HANDLER - MOVE JOB APPLICATION TO JOB\n --===================================================-- */\n const handleClickOnMoveToJob = (event) => {\n event.preventDefault();\n openModal(moveToJobModal);\n };\n\n /* HANDLER - CHOOSE STAGE\n --===================================================-- */\n const handleClickOnMove = (event) => {\n event.preventDefault();\n openModal(moveStageModal);\n };\n\n /* HANDLER - ADVANCE STAGE\n --===================================================-- */\n const handleOnClickAdvanceToNextStage = (event) => {\n event.preventDefault();\n moveToNextLogicalHiringStage();\n };\n\n /* HANDLER - ARCHIVE CANDIDATE\n --===================================================-- */\n const handleClickOnArchive = (event) => {\n event.preventDefault();\n\n moveToArchived();\n };\n\n /* HANDLER - ANONYMIZE CANDIDATE\n --===================================================-- */\n const handleClickOnAnonymize = (event) => {\n event.preventDefault();\n const anonymizeText = `This action will permanently delete all personally-identifying data for this candidate across every application they have submitted. Additionally, their applications will be archived.`;\n\n const modal = (\n {\n removeModal();\n handleAnonymizeCandidateConfirm();\n }}\n onCancel={() => {\n removeModal();\n }}\n isDestructiveConfirm={false}\n />\n );\n\n openModal(modal);\n };\n\n const moveToArchived = () => {\n if (currentStage.id !== archiveHiringStage.id) {\n const stage = archiveHiringStage;\n moveToStage(stage);\n }\n };\n const archiveTooltip = (\n <>\n Archive candidate E\n \n );\n\n const canAnonymize = () =>\n candidate.privacyStatus !== CandidatePrivacyStatus.ANONYMIZED &&\n currentOrganizationUser.isAdmin &&\n currentStage.kind !== \"kind_hired\";\n\n const nextStageAutomation = getActiveHiringStageAutomation(nextLogicalHiringStageIncludingArchived);\n\n return (\n \n \n {nextLogicalHiringStageIncludingArchived != undefined &&\n nextLogicalHiringStageIncludingArchived.kind != \"kind_archived\" &&\n isActive ? (\n \n {`Move to ${nextLogicalHiringStageIncludingArchived.name}`}\n \n ) : null}\n\n \n \n \n {jobs.length > 0 && }\n \n {canAnonymize() && (\n \n )}\n \n \n {isActive && (\n \n \n {/* {jobApplication.status === \"status_in_process\" ? \"Archive\" : \"Unarchive\"} */}\n Archive\n \n \n )}\n \n \n \n \n \n \n \n );\n}\n\nJobApplicationSidebarActions.propTypes = {};\nJobApplicationSidebarActions.defaultProps = {};\n\nexport default JobApplicationSidebarActions;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebarActions_Container;\n ${[t.px(4), t.pb(1)]}\n display: flex;\n flex-direction: column;\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebarActions_ButtonContainer;\n display: flex;\n flex-wrap: wrap;\n > * {\n ${[t.mr(3), t.mb(3)]}\n }\n `;\n});\n\nStyled.JobStageAutomationInfo = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebarActions_AutomationInfo;\n display: flex;\n margin-top: -0.5rem;\n `;\n});\n","import React from \"react\";\nimport { css } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\nimport { withRouter } from \"react-router-dom\";\n\nimport JobApplicationSidebarActions from \"@ats/src/views/jobApplications/JobApplicationSidebarActions\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport NavItem from \"@ats/src/components/shared/NavItem\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\nimport { formatPhoneNumber } from \"@shared/lib/utils\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\nconst createdViaCopy = (createdVia: string) => {\n if (createdVia === \"created_via_manual_add\") {\n return \"Manually added\";\n } else if (createdVia === \"created_via_bulk_manual_add\") {\n return \"Imported\";\n } else if (createdVia === \"created_via_clone\") {\n return \"Cloned\";\n }\n return Applied from job board;\n};\n\nfunction JobApplicationSidebar({\n history,\n match,\n candidate,\n jobApplication,\n jobApplicationsForStage,\n hiringStages,\n}) {\n const addToast = useToastContext();\n const { currentOrganizationUser } = useCurrentSession();\n\n window.logger(\"%c[JobApplicationSidebar] \", \"background: #EFDDEF; color: #1976D2\", {\n history,\n match,\n candidate,\n jobApplication,\n jobApplicationsForStage,\n hiringStages,\n });\n\n const compensationAdminOnly = jobApplication.settings.compensation === \"private\";\n const displayCompensation = currentOrganizationUser.isAdmin || !compensationAdminOnly;\n\n return (\n <>\n \n \n

    {candidate.fullName}

    \n
    \n {createdViaCopy(jobApplication.createdVia)}\n \n addToast({ title: \"Copied candidate link\", kind: \"success\" })}\n >\n \n \n \n \n \n
    \n
    \n\n \n \n \n \n \n \n \n\n \n\n \n Contact information\n {!candidate.phone && !candidate.email && (\n \n \n No email address or phone number\n \n )}\n {candidate.phone && (\n \n \n {formatPhoneNumber(candidate.phone)}\n \n )}\n {candidate.email && (\n \n \n \n {candidate.email}\n \n {candidate.hasValidEmail === false && (\n \n Invalid\n \n )}\n \n )}\n\n {candidate.location && (\n \n \n {candidate.location}\n \n )}\n \n\n {(candidate.linkedinUrl ||\n candidate.githubUrl ||\n candidate.twitterUrl ||\n candidate.dribbbleUrl ||\n candidate.websiteUrl) && (\n \n Links\n {candidate.linkedinUrl && (\n \n \n \n {`https://linkedin.com/in/${candidate.linkedinUrl}`}\n \n \n )}\n {candidate.twitterUrl && (\n \n \n \n {`https://twitter.com/${candidate.twitterUrl}`}\n \n \n )}\n {candidate.githubUrl && (\n \n \n \n {`https://github.com/${candidate.githubUrl}`}\n \n \n )}\n {candidate.dribbbleUrl && (\n \n \n \n {`https://dribbble.com/${candidate.dribbbleUrl}`}\n \n \n )}\n {candidate.websiteUrl && (\n \n \n \n {`https://${candidate.websiteUrl}`}\n \n \n )}\n \n )}\n\n {jobApplication.source && (\n \n Source\n \n \n {jobApplication.source}\n \n \n )}\n\n {/* {jobApplication.ahoyVisit && (\n \n {Object.keys(jobApplication.ahoyVisit).map((visitKey, index) => (\n
    \n {visitKey}\n \n {jobApplication.ahoyVisit[visitKey] || \"N/A\"}\n \n
    \n ))}\n
    \n )} */}\n\n {jobApplication.desiredCompensation && (\n \n \n Desired compensation\n \n {compensationAdminOnly && (\n \n \n Admin only\n \n )}\n {displayCompensation && (\n \n \n {jobApplication.desiredCompensation}\n \n )}\n \n )}\n {/* {privateNoteNode} */}\n
    \n\n \n \n );\n}\n\nJobApplicationSidebar.defaultProps = {};\n\nexport default withRouter(JobApplicationSidebar);\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.CandidateProfile = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebar_CandidateProfile;\n ${t.pb(10)}\n flex-shrink: 1;\n overflow-y: auto;\n `;\n});\n\nStyled.Header = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebar_Header;\n ${[t.px(4), t.pt(4), t.mb(1)]}\n h1 {\n ${[t.text.h2]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n overflow: hidden;\n text-overflow: ellipsis;\n }\n > div {\n ${t.mt(3)}\n display: flex;\n align-items: center;\n margin-bottom: 1.5625rem;\n }\n `;\n});\n\nStyled.PermaLink = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebar_PermaLink;\n ${[t.h(6), t.w(6), t.ml(2), t.rounded.xs]}\n font-size: 0.625rem;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n\n &:hover {\n background: ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n cursor: pointer;\n }\n `;\n});\n\nStyled.Tag = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebar_Tag;\n ${[t.h(6), t.px(2), t.text.xs, t.rounded.xs]}\n display: inline-flex;\n align-items: center;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n line-height: 1.4;\n overflow: hidden;\n span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n `;\n});\n\nStyled.Nav = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebar_Nav;\n `;\n});\n\nStyled.Divider = styled.hr((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebar_Divider;\n ${[t.mb(0)]}\n margin-top: 2.25rem;\n width: 100%;\n border: none;\n `;\n});\n\nStyled.Info = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebar_Info;\n ${[t.mt(3), t.px(4)]}\n flex-shrink: 1;\n `;\n});\n\nStyled.InfoTitle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebar_InfoTitle;\n ${[t.text.xs, t.text.bold, t.h(6)]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n display: flex;\n align-items: center;\n `;\n});\n\nStyled.InfoRow = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebar_InfoRow;\n ${[t.text.xs, t.h(6)]}\n display: flex;\n align-items: center;\n svg {\n ${t.mr(2)}\n flex-shrink: 0;\n }\n span,\n a,\n button {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.4;\n }\n a:hover,\n button:hover {\n text-decoration: underline;\n }\n `;\n});\n\nStyled.Invalid = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationSidebar_InfoTitle;\n ${[t.h(4), t.ml(1), t.mb(\"px\"), t.rounded.xs]};\n font-size: 0.625rem;\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n background-color: ${t.dark ? t.color.gray[900] : t.color.red[100]};\n border: 1px solid ${t.dark ? t.color.red[600] : t.color.red[600]};\n color: ${t.dark ? t.color.red[500] : t.color.red[600]};\n flex-shrink: 0;\n flex-grow: 0;\n display: flex;\n line-height: 1;\n overflow: visible;\n align-items: center;\n cursor: default;\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport textStyles from \"@ats/styles/text\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nfunction SharedDocumentFeedItem({\n body,\n openSharedDocumentModal,\n}: {\n body: string;\n openSharedDocumentModal?: any;\n}) {\n return (\n \n \n
    \n \n \n \n Hiring document shared with team\n {/* \n shared with hiring team */}\n
    \n \n
    \n\n \n
    \n );\n}\n\nexport default SharedDocumentFeedItem;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Component = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: SharedDocumentFeedItem_Component;\n ${[t.mb(4), t.px(4), t.pt(4), t.pb(1), t.rounded.md]}\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.Intro = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: SharedDocumentFeedItem_Intro;\n ${[t.mb(3), t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n > div {\n display: flex;\n align-items: center;\n }\n\n button {\n ${t.text.xs}\n justify-self: flex-end;\n background: none;\n border: none;\n outline: none;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n cursor: pointer;\n\n &:hover,\n &:focus {\n text-decoration: underline;\n }\n }\n `;\n});\n\nStyled.Icon = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ActivityListItem_Icon;\n ${[t.mr(2), t.h(6), t.w(6), t.rounded.xs]}\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n border: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n\nStyled.Seperator = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: CommentListItem_Seperator;\n ${t.mx(1)}\n `;\n});\n\nStyled.Content = styled.div((props: any) => {\n const t: any = props.theme;\n const sentByUser = props.sentByUser;\n return css`\n label: CommentListItem_Content;\n ${textStyles}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n ${t.dark &&\n `\n blockquote {\n color: ${t.color.gray[400]};\n border-left: 4px solid ${t.color.gray[600]};\n }\n `}\n `;\n});\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\n\nimport ProseMirrorEditor from \"@shared/ProseMirror/Editor\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\n\nimport { useCreateComment, useUpdateComment } from \"@shared/queryHooks/useComment\";\n\nimport { validateComment } from \"@shared/lib/validateWithYup\";\n\ntype Props = {\n onCancel: () => void;\n isEditing: boolean;\n comment: { id?: number; body?: string; rating?: string; kind?: string };\n jobApplicationId: number;\n activityPath?: string;\n};\n\nfunction CommentModal(props: Props) {\n const { isEditing, onCancel, jobApplicationId, activityPath } = props;\n const { dismissModalWithAnimation } = useModalContext();\n const addToast = useToastContext();\n // const [selection, setSelection] = React.useState<\n // { start: any; end: any; textarea: any } | undefined\n // >();\n const {\n mutate: createComment,\n error: errorOnCreate,\n isLoading: isLoadingCreate,\n } = useCreateComment();\n const {\n mutate: updateComment,\n error: errorOnUpdate,\n isLoading: isLoadingUpdate,\n } = useUpdateComment();\n\n const [comment, setComment] = useState(props.comment);\n const { body, rating, kind } = comment;\n\n const editorRef = React.useRef(undefined);\n const [errors, setErrors] = useState([]);\n const [isDirty, setIsDirty] = useState(false);\n\n const handleChangeEditorState = () => {\n setErrors([]);\n setIsDirty(true);\n };\n\n // window.logger(\"%c[CommentModal] render\", \"color: #1976D2\", {\n // props,\n // errorOnCreate,\n // errorOnUpdate,\n // location,\n // activityPath,\n // });\n\n const handleCancel = () => {\n dismissModalWithAnimation(() => onCancel);\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n const [isValid, validationErrors] = await validateComment({\n body: editorRef.current.serializedState(),\n });\n\n if (isValid) {\n isEditing ? handleUpdate() : handleCreate();\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleCreate = async () => {\n try {\n await createComment(\n {\n jobApplicationId,\n body: editorRef.current.serializedState(),\n },\n {\n onSuccess: (data) => {\n window.logger(\"%c[CommentModal] createComment onSuccess \", \"color: #076e20\", {\n data,\n // error: error.response.data,\n });\n dismissModalWithAnimation(() => onCancel);\n if (!location.pathname.includes(\"/overview\") && activityPath != undefined) {\n addToast({\n title: `Comment saved`,\n kind: \"success\",\n delay: 4000,\n linkTo: activityPath,\n });\n }\n },\n },\n );\n } catch (error) {\n // Uh oh, something went wrong\n window.logger(\"%c[CommentModal] handle error when CREATE Job Comment\", \"color: #FF7602\", {\n error,\n // error: error.response.data,\n });\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n const handleUpdate = async () => {\n const { id, ...restComment } = comment;\n\n // window.logger(\"%c[CommentModal] handleUpdate\", \"color: #1976D2\", {\n // jobApplicationId,\n // id,\n // body: editorRef.current.serializedState(),\n // rating,\n // kind,\n // });\n\n try {\n await updateComment({\n jobApplicationId,\n id,\n ...restComment,\n body: editorRef.current.serializedState(),\n });\n // onCancel(); // this closes the modal\n dismissModalWithAnimation(() => onCancel);\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"%c[CommentModal] handle error when updating Job Comment\", \"color: #FF7602\", {\n error,\n });\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n const submitButton = (\n \n \n {isEditing ? \"Save changes\" : \"Add comment\"}\n \n \n \n );\n\n const editMessage = `Make changes to your comment shared with the hiring team.`;\n\n return (\n \n \n {isEditing ? editMessage : \"Create and share a comment with the hiring team.\"}\n \n \n \n \n \n \n \n );\n}\n\nCommentModal.propTypes = {\n onCancel: PropTypes.func.isRequired,\n};\n\nexport default CommentModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: CommentModal_Instructions;\n ${[t.text.gray, t.mb(5)]}\n `;\n});\n\nStyled.CommentInput = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CommentModal_CommentInput;\n > div {\n ${[t.mb(0)]}\n }\n textarea {\n min-height: 12rem;\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CommentModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport textStyles from \"@ats/styles/text\";\n\nimport { prettyDateAndTime } from \"@shared/lib/time\";\n\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\nimport CommentModal from \"@ats/src/views/jobApplications/comments/CommentModal\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\nimport UserAvatar from \"@ats/src/components/shared/UserAvatar\";\n\nimport { useDeleteComment } from \"@shared/queryHooks/useComment\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\nfunction CommentListItem({\n id,\n body,\n rating,\n kind,\n organizationUser,\n // userAvatarSmall,\n jobApplicationId,\n publishedAtTimestamp,\n publishedAtTimeAgoShort,\n}) {\n const { openModal, removeModal } = useModalContext();\n const { currentUser } = useCurrentSession();\n // window.logger(\"%c[CommentListItem] RENDER\", \"background-color: #82d219\", {\n // jobApplicationId,\n // id,\n // body,\n // rating,\n // kind,\n // organizationUser,\n // });\n const {\n mutate: deleteComment,\n error: errorOnDelete,\n isLoading: isLoadingDelete,\n } = useDeleteComment();\n\n const { user } = organizationUser;\n\n const handleOnClickEditComment = (event) => {\n event.preventDefault();\n const modal = (\n \n );\n\n window.logger(\"%c[CommentListItem] handleOnClickEditComment\", \"background-color: #82d219\", {\n jobApplicationId,\n id,\n body,\n rating,\n kind,\n });\n\n openModal(modal);\n };\n\n\n const handleOnClickDeleteComment = () => {\n\n const deleteMessage = `This comment will be permanently deleted.`;\n\n const modal = (\n {\n removeModal();\n handleDeleteComment();\n }}\n onCancel={removeModal}\n isDestructiveConfirm={false}\n />\n );\n\n window.logger(\"%c[CommentListItem] handleOnClickDeleteComment\", \"background-color: #82d219\", {\n jobApplicationId,\n id,\n body,\n kind,\n });\n\n openModal(modal);\n };\n\n const handleDeleteComment = async () => {\n\n try {\n await deleteComment({\n jobApplicationId,\n id,\n body,\n });\n\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"%c[CommentModal] handle error when deleting Job Comment\", \"color: #FF7602\", {\n error,\n });\n }\n };\n\n\n // const user = {\n // initials: \"cd\",\n // hasAvatar: false,\n // fullName: \"test dood\",\n // avatarMedium: userAvatarSmall,\n // };\n\n return (\n \n \n
    \n \n \n \n {user.fullName} left a comment\n \n \n {publishedAtTimeAgoShort}\n \n
    \n {currentUser.id === user.id ? (\n
    \n \n \n
    \n ) : null}\n
    \n \n
    \n );\n}\n\nexport default CommentListItem;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Event = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: Comment_Event;\n ${[t.mb(3), t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n > div {\n display: flex;\n align-items: center;\n\n svg {\n ${t.mr(2)}\n }\n }\n\n button {\n ${[t.pl(3), t.text.xs]}\n justify-self: flex-end;\n background: none;\n border: none;\n outline: none;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n cursor: pointer;\n\n &:hover,\n &:focus {\n text-decoration: underline;\n }\n }\n `;\n});\n\nStyled.Comment = styled.div((props: any) => {\n const t: any = props.theme;\n const sentByUser = props.sentByUser;\n return css`\n label: CommentListItem_Comment;\n ${[t.mt(4), t.mb(4), t.px(4), t.pt(4), t.pb(1), t.rounded.md]}\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n position: relative;\n\n &:after {\n content: \"\";\n display: block;\n position: absolute;\n top: 100%;\n left: 1.75rem;\n width: 4px;\n margin-left: -2px;\n height: ${t.spacing[6]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n }\n `;\n});\n\nStyled.Content = styled.div((props: any) => {\n const t: any = props.theme;\n const sentByUser = props.sentByUser;\n return css`\n label: CommentListItem_Content;\n ${textStyles}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n ${t.dark &&\n `\n blockquote {\n color: ${t.color.gray[400]};\n border-left: 4px solid ${t.color.gray[600]};\n }\n `}\n `;\n});\n\nStyled.Seperator = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: CommentListItem_Seperator;\n ${t.mx(1)}\n `;\n});\n\nStyled.Avatar = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: CommentListItem_Avatar;\n ${t.mr(2)}\n `;\n});\n","import { useMutation, useQueryClient } from \"react-query\";\nimport { apiPost } from \"@shared/queryHooks/api\";\n\nconst createInterviewerRequest = async ({\n jobApplicationId,\n organizationUserId,\n}: {\n jobApplicationId: number;\n organizationUserId: number;\n}) => {\n if (jobApplicationId && organizationUserId) {\n return await apiPost({\n path: `/job_applications/${jobApplicationId}/interviewer_requests`,\n variables: { organizationUserId },\n });\n }\n};\n\n/* Hooks\n--===================================================-- */\n\nexport function useCreateInterviewerRequest() {\n const queryClient = useQueryClient();\n return useMutation(createInterviewerRequest, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[useInterviewerRequest] useCreateInterviewerRequest onSuccess\",\n \"color: #1976D2\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.invalidateQueries([\"InterviewerRequests\", data.jobApplicationId]);\n queryClient.invalidateQueries(\"jobApplicationActivities\");\n },\n // throwOnError: true,\n });\n}\n","import { useMutation, useQueryClient } from \"react-query\";\nimport { apiPost } from \"@shared/queryHooks/api\";\n\nconst createInterviewerInvite = async ({ jobApplicationId, email }) => {\n return await apiPost({\n path: `/job_applications/${jobApplicationId}/interviewer_invites`,\n variables: { email },\n });\n};\n\n/* Hooks\n--===================================================-- */\n\nexport function useCreateInterviewerInvite() {\n const queryClient = useQueryClient();\n return useMutation(createInterviewerInvite, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[useInterviewerInvite] useCreateInterviewerInvite onSuccess\",\n \"color: #1976D2\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.invalidateQueries(\"jobApplicationActivities\");\n },\n // throwOnError: true,\n });\n}","import React, { useState } from \"react\";\nimport toLower from \"lodash/toLower\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport { validateCreatedEmailSelection } from \"@shared/lib/validateWithYup\";\n\nimport { useCreateInterviewerRequest } from \"@shared/queryHooks/useInterviewerRequest\";\nimport { useAllInvites } from \"@shared/queryHooks/useInvite\";\nimport { useCreateInterviewerInvite } from \"@shared/queryHooks/useInterviewerInvite\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\ntype Props = {\n onCancel: () => void;\n organizationUsers: any[];\n jobApplicationId: number;\n};\n\nfunction ReviewRequestModal(props: Props) {\n window.logger(\"%c[ReviewRequestModal] render\", \"color: #1976D2\", { props });\n const { onCancel, organizationUsers, jobApplicationId } = props;\n\n const { currentOrganization, currentOrganizationUser } = useCurrentSession();\n const addToast = useToastContext();\n const [formState, setFormState] = useState({\n selection: null,\n errors: [],\n isDirty: false,\n });\n\n const { selection, errors, isDirty } = formState;\n\n // window.logger(\"%c[ReviewRequestModal] formState\", \"color: #1976D2\", { formState });\n const {\n mutate: createInterviewerRequest,\n isLoading: isLoadingCreateInterviewerRequest,\n } = useCreateInterviewerRequest();\n\n const {\n mutate: createInterviewerInvite,\n isLoading: isLoadingCreateInterviewerInvite,\n } = useCreateInterviewerInvite();\n\n const { data: invitesData, isLoading: isLoadingInvites } = useAllInvites();\n\n const getOrgUserIdByEmail = (email: string) => {\n const organizationUser = currentOrganization?.organizationUsers?.find(\n (organizationUser) => organizationUser.user.email === email,\n );\n return organizationUser.id;\n };\n\n const isViableInviteEmail = (email: string) => {\n const teamMembersEmails = currentOrganization?.organizationUsers?.map(\n (organizationUser) => organizationUser.user.email,\n );\n const isNotTeamMemberEmail = !teamMembersEmails.includes(email);\n //return true if NOT existing member email\n return isNotTeamMemberEmail;\n };\n\n const handleExistingUserRequest = (orgUserId) => {\n createInterviewerRequest(\n {\n jobApplicationId,\n organizationUserId: orgUserId,\n },\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[ReviewRequestModal] createInterviewerRequest SUCCESS\",\n \"color: #1976D2\",\n {\n data,\n },\n );\n // const username = data?.organizationUser.user.fullName\n // addToast({ title: `Requested a review from ${username}`, kind: \"success\" });\n onCancel();\n },\n },\n );\n };\n\n const handleInviteRequest = (inviteEmail: string) => {\n createInterviewerInvite(\n { jobApplicationId, email: toLower(inviteEmail) },\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[ReviewRequestModal] createInterviewerInvite SUCCESS\",\n \"color: #1976D2\",\n { data },\n );\n // addToast({delay: 3000, title: `Requested a review from ${data.invite.email}`, kind: \"success\" });\n onCancel();\n },\n },\n );\n };\n // handles created option --> should be email address\n const handleEmailInput = async () => {\n const [isValid, validationErrors] = await validateCreatedEmailSelection({\n selection: selection,\n });\n if (isValid) {\n const isInviteEmail = isViableInviteEmail(selection);\n if (isInviteEmail) {\n handleInviteRequest(selection);\n } else {\n const orgUserId = getOrgUserIdByEmail(selection);\n if (orgUserId !== currentOrganizationUser?.id) {\n handleExistingUserRequest(orgUserId);\n } else {\n addToast({ delay: 3000, title: `Cannot request review from yourself.`, kind: \"warning\" });\n onCancel();\n }\n }\n } else {\n setFormState({ ...formState, errors: validationErrors });\n }\n };\n // Handles selected option (existing)\n function handleExistingUserOrInvite() {\n if (selection.includes(\"organizationUser-\")) {\n const orgUserId = selection.replace(\"organizationUser-\", \"\");\n handleExistingUserRequest(orgUserId);\n } else if (selection.includes(\"invite-\")) {\n const inviteEmail = selection.replace(\"invite-\", \"\");\n handleInviteRequest(inviteEmail);\n }\n }\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (selection?.includes(\"organizationUser-\") || selection?.includes(\"invite-\")) {\n handleExistingUserOrInvite();\n } else if (selection) {\n handleEmailInput();\n }\n };\n\n const availableInterviewers = organizationUsers.filter(\n (organizationUser) => organizationUser.isActive && organizationUser.id !== currentOrganizationUser.id,\n );\n\n const availableInvites =\n invitesData?.items.filter((invite) => invite.status === \"status_pending\") || [];\n\n const interviewerOptions = (newOption = null) => {\n const users = availableInterviewers.map((organizationUser: { id: number; user: any }) => ({\n id: organizationUser.id,\n value: `organizationUser-${organizationUser.id}`,\n label: organizationUser.user.fullName,\n }));\n\n const invites = availableInvites.map((invite: { id: number; email: string }) => ({\n id: invite.id,\n value: `invite-${invite.email}`,\n label: invite.email,\n }));\n\n const existingOptions = new Set([...users, ...invites].map((option) => option.value));\n //adds user 'created' email to options array to display in UI\n const option = createOption(newOption, existingOptions);\n if (option) {\n return [...users, ...invites, ...option] as const;\n } else {\n return [...users, ...invites] as const;\n }\n };\n // create an option object (for react-select) to allow UI display of *created* email\n const createOption = (option: string, existingOptions: Set) => {\n if (!option || existingOptions.has(option)) {\n return null;\n }\n return [{ id: option, value: option, label: option }];\n };\n\n const handleInputChange = (name: string, value: string) => {\n // window.logger(\"[ReviewRequestModal] handleInputChange\", {\n // name,\n // value,\n // });\n setFormState({ ...formState, isDirty: true, [name]: value });\n };\n\n const handleSelection = (name: string, value: string) => {\n window.logger(\"[ReviewRequestModal] handleSelection\", {\n name,\n value,\n });\n setFormState({ ...formState, isDirty: true, [name]: value });\n };\n\n const submitButton = (\n \n \n Request review\n \n \n \n );\n\n return (\n \n \n Select an existing team member or invite a new user via email. This will create a request for a candidate review.\n \n \n \n \n \n );\n}\n\nexport default ReviewRequestModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewRequestModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewRequestModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { Link } from \"react-router-dom\";\nimport textStyles from \"@ats/styles/text\";\n\nimport { prettyDateAndTime } from \"@shared/lib/time\";\nimport { reviewRatingOptions, getOptionLabel } from \"@ats/src/lib/lookups\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\nimport UserAvatar from \"@ats/src/components/shared/UserAvatar\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\n\nimport { useDeleteComment } from \"@shared/queryHooks/useComment\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\nfunction ReviewListItem({\n jobApplicationId,\n id,\n body,\n rating,\n // kind,\n hashId,\n organizationUser,\n jobApplication,\n publishedAtTimestamp,\n publishedAtTimeAgoShort,\n orgAdminJobsListUrl\n}) {\n const { openModal, removeModal } = useModalContext();\n const { currentUser } = useCurrentSession();\n const { user } = organizationUser;\n\n const {\n mutate: deleteComment,\n error: errorOnDelete,\n isLoading: isLoadingDelete,\n } = useDeleteComment();\n\n const handleOnClickDeleteReview = () => {\n\n const deleteMessage = `This review will be permanently deleted.`;\n\n const modal = (\n {\n removeModal();\n handleDeleteReview();\n }}\n onCancel={removeModal}\n isDestructiveConfirm={false}\n />\n );\n\n window.logger(\"%c[ReviewListItem] handleOnClickDeleteReview\", \"background-color: #82d219\", {\n jobApplicationId,\n id,\n body,\n rating,\n });\n\n openModal(modal);\n };\n\n const handleDeleteReview = async () => {\n\n try {\n await deleteComment({\n jobApplicationId,\n id,\n body,\n });\n\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"%c[ReviewListItem] handle error when deleting Comment\", \"color: #FF7602\", {\n error,\n });\n }\n };\n\n return (\n \n \n
    \n \n \n \n {user.fullName} left a review\n \n \n {publishedAtTimeAgoShort}\n \n
    \n\n {currentUser.id === user.id ? (\n
    \n \n Edit\n \n \n
    \n ) : null}\n
    \n\n \n {rating && {getOptionLabel(reviewRatingOptions, rating)}}\n {/* */}\n
    \n );\n}\n\nexport default ReviewListItem;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Event = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: ReviewListItem_Event;\n ${[t.mb(3), t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n > div {\n display: flex;\n align-items: center;\n\n svg {\n ${t.mr(2)}\n }\n }\n\n button,\n a {\n ${[t.pl(3), t.text.xs]}\n justify-self: flex-end;\n background: none;\n border: none;\n outline: none;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n cursor: pointer;\n\n &:hover,\n &:focus {\n text-decoration: underline;\n }\n }\n `;\n});\n\nStyled.Review = styled.div((props: any) => {\n const t: any = props.theme;\n const sentByUser = props.sentByUser;\n return css`\n label: ReviewListItem_Comment;\n ${[t.mt(4), t.mb(4), t.p(4), t.pb(1), t.rounded.md]}\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n position: relative;\n\n &:after {\n content: \"\";\n display: block;\n position: absolute;\n top: 100%;\n left: 1.75rem;\n width: 4px;\n margin-left: -2px;\n height: ${t.spacing[6]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n }\n `;\n});\n\nStyled.Content = styled.div((props: any) => {\n const t: any = props.theme;\n const sentByUser = props.sentByUser;\n return css`\n label: ReviewListItem_Content;\n ${[textStyles]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n ${t.dark &&\n `\n blockquote {\n color: ${t.color.gray[400]};\n border-left: 4px solid ${t.color.gray[600]};\n }\n `}\n `;\n});\n\nStyled.Rating = styled.div((props: any) => {\n const t: any = props.theme;\n const sentByUser = props.sentByUser;\n return css`\n label: ReviewListItem_Content;\n ${[t.px(2), t.mt(1), t.mb(3), t.rounded.xs, t.text.xs]}\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n display: inline-flex;\n align-items: center;\n line-height: 1.4;\n border: 1px solid ${t.dark ? t.color.gray[600] : t.color.orange[200]};\n background: ${t.dark ?\n t.color.gray[600]\n // \"linear-gradient(120deg, #D6D7E5 0%, #F3E2CB 100%)\"\n :\n \"linear-gradient(120deg, #FFD8D8 -40%, #FFDEC1 80%)\"\n };\n color: ${t.dark ? t.color.white : t.color.black};\n `;\n});\n\nStyled.Seperator = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewListItem_Seperator;\n ${t.mx(1)}\n `;\n});\n\nStyled.Avatar = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: ReviewListItem_Avatar;\n ${t.mr(2)}\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\n\nimport { prettyDateAndTime } from \"@shared/lib/time\";\n\nconst eventHtml = (iconName: string, action: string, timestamp, timeAgoShort) => {\n return (\n \n \n \n \n {action}\n \n \n {timeAgoShort}\n \n \n );\n};\n\nfunction ActivityListItem({ activityKey, parameters, createdAtTimestamp, createdAtTimeAgoShort }) {\n const userName = parameters.user ? parameters.user.fullName : \"Unknown\";\n switch (activityKey) {\n case \"job_application.moved_stage\":\n if (parameters.hiringStageName === \"Archived\") {\n const action = `${userName} archived candidate`;\n return eventHtml(\"archive\", action, createdAtTimestamp, createdAtTimeAgoShort);\n } else {\n const action = `${userName} moved candidate to ${parameters.hiringStageName}`;\n const icon = parameters.hiringStageName === \"Hired\" ? \"check-square\" : \"corner-right-down\";\n return eventHtml(icon, action, createdAtTimestamp, createdAtTimeAgoShort);\n }\n\n case \"job_application.moved_job\":\n return eventHtml(\n \"plus\",\n `${userName} moved candidate to ${parameters.hiringStageName} from ${parameters.previousJobTitle}`,\n createdAtTimestamp,\n createdAtTimeAgoShort,\n );\n\n case \"candidate.requested_to_delete_data\":\n return eventHtml(\n \"alert-triangle\",\n \"Candidate requested to have data deleted\",\n createdAtTimestamp,\n createdAtTimeAgoShort,\n );\n\n case \"candidate.anonymized_data\":\n return eventHtml(\n \"user-x\",\n `${parameters.user ? parameters.user.fullName : \"Unknown\"} deleted candidate data`,\n createdAtTimestamp,\n createdAtTimeAgoShort,\n );\n\n case \"job_application.review_request\":\n return eventHtml(\n \"edit-3\",\n `${\n parameters.requestingUser ? parameters.requestingUser.fullName : \"Unknown\"\n } requested a review from ${\n parameters.requestedUser ? parameters.requestedUser.fullName : \"Unknown\"\n }`,\n createdAtTimestamp,\n createdAtTimeAgoShort,\n );\n\n case \"job_application.review_request_invite\":\n return eventHtml(\n \"edit-3\",\n `${\n parameters.requestingUser ? parameters.requestingUser.fullName : \"Unknown\"\n } requested a review from ${\n parameters.invitedUserEmail ? parameters.invitedUserEmail : \"Unknown\"\n }`,\n createdAtTimestamp,\n createdAtTimeAgoShort,\n );\n\n // case \"job_application.new\":\n // return (\n // \n // \n // \n // \n // Application received\n // \n // \n // {createdAtTimeAgoShort}\n // \n // \n // );\n\n // case \"job_application.new.manual_add\":\n // return (\n // \n // \n // \n // \n // Manually added by {parameters.user ? parameters.user.fullName : \"Unknown\"}\n // \n // \n // {createdAtTimeAgoShort}\n // \n // \n // );\n default:\n return null;\n }\n}\n\nexport default ActivityListItem;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Event = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: ActivityListItem_Event;\n ${[t.ml(1), t.mb(3), t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n flex-direction: row;\n align-items: center;\n position: relative;\n\n &:after {\n content: \"\";\n display: block;\n position: absolute;\n left: ${t.spacing[6]};\n top: 100%;\n width: 4px;\n margin-left: -2px;\n height: ${t.spacing[6]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n }\n `;\n});\n\nStyled.Icon = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ActivityListItem_Icon;\n ${[t.ml(3), t.mr(2), t.h(6), t.w(6), t.rounded.xs]}\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n `;\n});\n\nStyled.Seperator = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: ActivityListItem_Seperator;\n ${t.mx(1)}\n `;\n});\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport isEmpty from \"lodash/isEmpty\";\n\nimport FullModal from \"@ats/src/components/modals/FullModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\n\nimport ProseMirrorEditor from \"@shared/ProseMirror/Editor\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nimport { useUpdateJobApplication } from \"@shared/queryHooks/useJobApplication\";\n\ntype Props = {\n onCancel: () => void;\n jobApplication: { id: number; sharedDocument?: string };\n onSuccess: () => void;\n};\n\nfunction SharedDocumentModal(props: Props) {\n const { jobApplication, onCancel, onSuccess } = props;\n const { dismissModalWithAnimation } = useModalContext();\n const [isDirty, setIsDirty] = React.useState(false);\n const isEditing = !isEmpty(jobApplication?.sharedDocument);\n\n const {\n mutate: updateJobApplication,\n error: errorOnUpdate,\n isLoading: isLoadingUpdate,\n } = useUpdateJobApplication();\n\n const editorRef = React.useRef(undefined);\n\n const [errors, setErrors] = useState([]);\n\n const handleChangeEditorState = () => {\n setErrors([]);\n setIsDirty(true);\n };\n\n // window.logger(\"%c[SharedDocumentModal] render\", \"color: #1976D2\", {\n // props,\n // errorOnCreate,\n // errorOnUpdate,\n // });\n\n const handleCancel = () => {\n dismissModalWithAnimation(() => onCancel);\n };\n\n // const autoSave = () => {\n // // window.logger(\"%c[SharedDocumentModal] autoSave\", \"border: 1px solid #906feb;\", {\n // // state: editorRef.current?.serializedState(),\n // // });\n\n // if (isDirty && editorRef.current != undefined) {\n // updateJobApplication(\n // {\n // id: jobApplication?.id,\n // sharedDocument: editorRef.current.serializedState(),\n // },\n // {\n // onSuccess: (data) => {\n // // window.logger(\n // // \"%c[SharedDocumentModal] autoSave onSuccess\",\n // // \"border: 1px solid #318011;\",\n // // {\n // // data,\n // // },\n // // );\n // setIsDirty(false);\n // },\n // onError: (response) => {},\n // },\n // );\n // }\n // };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n\n try {\n await updateJobApplication(\n {\n id: jobApplication.id,\n sharedDocument: editorRef.current.serializedState(),\n },\n {\n onSuccess: () => {\n dismissModalWithAnimation(() => onCancel);\n onSuccess();\n },\n },\n );\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\n \"%c[SharedDocumentModal] handle error when updating Job SharedDocument\",\n \"color: #FF7602\",\n {\n error,\n },\n );\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n return (\n \n \n \n

    {isEditing ? \"Edit hiring document\" : \"Add hiring document\"}

    \n
    \n\n \n \n \n \n \n {isEditing ? \"Save changes\" : \"Add document\"}\n \n \n {/* {isDirty ? Changes not yet saved : No unsaved changes} */}\n \n
    \n
    \n );\n}\n\nSharedDocumentModal.propTypes = {\n onCancel: PropTypes.func.isRequired,\n};\n\nexport default SharedDocumentModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.FormHeader = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: SharedDocumentModal_FormHeader;\n ${[t.px(4), t.pt(4), t.pb(3)]}\n border-bottom: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background: ${t.dark ? t.color.gray[800] : t.color.white};\n position: sticky;\n top: 0;\n\n h2 {\n ${[t.text.h2]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n `;\n});\n\nStyled.ModalContent = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: SharedDocumentModal_ModalContent;\n display: flex;\n flex-direction: column;\n height: 100%;\n `;\n});\n\nStyled.Container = styled(FormContainer)((props) => {\n const t: any = props.theme;\n return css`\n label: SharedDocumentModal_Container;\n ${[t.px(4), t.py(5)]}\n flex-grow: 1;\n width: 100%;\n display: flex;\n flex-direction: column;\n overflow: auto;\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: SharedDocumentModal_ButtonContainer;\n ${t.p(4)}\n position: sticky;\n bottom: 0;\n display: flex;\n border-bottom-left-radius: 0.4375rem;\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background: ${t.dark ? t.color.gray[800] : t.color.white};\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import { useQuery } from \"react-query\";\nimport { apiGet } from \"@shared/queryHooks/api\";\n\nconst getJobApplicationActivities = async ({ jobApplicationId }) => {\n if (jobApplicationId) {\n return await apiGet({ path: `/job_applications/${jobApplicationId}/activities` });\n }\n};\n\nexport function useJobApplicationActivities({\n jobApplicationId,\n}): {\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n} {\n return useQuery(\"jobApplicationActivities\", () =>\n getJobApplicationActivities({ jobApplicationId }),\n );\n}\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { Link } from \"react-router-dom\";\nimport isEmpty from \"lodash/isEmpty\";\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport ShortcutKey from \"@ats/src/components/shared/ShortcutKey\";\n\nimport SharedDocumentFeedItem from \"@ats/src/views/jobApplications/activities/SharedDocumentFeedItem\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\nimport CommentListItem from \"@ats/src/views/jobApplications/comments/CommentListItem\";\nimport CommentModal from \"@ats/src/views/jobApplications/comments/CommentModal\";\nimport ReviewRequestModal from \"@ats/src/components/modals/ReviewRequestModal\";\nimport ReviewListItem from \"@ats/src/views/reviews/ReviewListItem\";\nimport ActivityListItem from \"@ats/src/views/jobApplications/activities/ActivityListItem\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport SharedDocumentModal from \"@ats/src/components/modals/SharedDocumentModal\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\n\nimport { prettyDateAndTime } from \"@shared/lib/time\";\nimport { useJobApplicationActivities } from \"@shared/queryHooks/useJobApplicationActivities\";\nimport { useComments } from \"@shared/queryHooks/useComment\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\nimport { useHotkeys } from \"react-hotkeys-hook\";\nimport { VisibilitySetting } from \"@shared/types/jobApplication\";\n\ntype Props = {\n jobApplication: any;\n orgAdminJobsListUrl: string;\n // setIsDirty: any;\n};\nfunction JobApplicationActivity({ jobApplication, orgAdminJobsListUrl }: Props) {\n // const { jobApplication } = props;\n const { openModal, removeModal } = useModalContext();\n const { currentOrganizationUser, currentOrganization } = useCurrentSession();\n\n const activityFeedRef = React.useRef(null);\n\n const {\n data: jobApplicationActivitiesData,\n isLoading: isLoadingJobApplicationActivities,\n } = useJobApplicationActivities({\n jobApplicationId: jobApplication?.id,\n });\n const { data: commentsData, isLoading: isLoadingComments } = useComments({\n jobApplicationId: jobApplication?.id,\n });\n\n const jobApplicationActivities =\n jobApplicationActivitiesData == undefined ? [] : jobApplicationActivitiesData.items;\n const comments = commentsData == undefined ? [] : commentsData.items;\n\n const sortedQuestionResponses =\n jobApplication?.questionResponses?.length > 0\n ? jobApplication?.questionResponses?.sort(function (a, b) {\n return (\n a.createdAtTimestamp - b.createdAtTimestamp || a.question.position - b.question.position\n );\n })\n : [];\n\n const categorizedJobApplicationActivities = jobApplicationActivities.map((activity) => {\n activity[\"activityCategory\"] = \"activity\";\n return activity;\n });\n\n const categorizedComments = comments.map((comment) => {\n comment[\"activityCategory\"] = comment.kind;\n return comment;\n });\n\n const allTheThings = [...categorizedJobApplicationActivities, ...categorizedComments];\n\n const sortedAllTheThings = allTheThings.sort(function (a, b) {\n return a.publishedAtTimestamp - b.publishedAtTimestamp;\n });\n\n const scrollToBottom = () => {\n window.logger(\"%c[JobApplicationActivity] scrollToBottom\", \"color: #34970c\", {\n feedRef: activityFeedRef.current,\n });\n if (activityFeedRef.current) {\n activityFeedRef.current.scrollTop = activityFeedRef.current.scrollHeight;\n }\n };\n\n const scrollToTop = () => {\n window.logger(\"%c[JobApplicationActivity] scrollToTop\", \"color: #a17a0d\", {\n feedRef: activityFeedRef.current,\n });\n if (activityFeedRef.current) {\n activityFeedRef.current.scrollTop = 0;\n }\n };\n\n React.useEffect(() => {\n scrollToBottom();\n }, [\n jobApplicationActivitiesData,\n commentsData,\n isLoadingJobApplicationActivities,\n isLoadingComments,\n // activityFeedRef,\n jobApplication,\n ]); // left out scrollToBottom on purpose\n\n window.logger(\"%c[JobApplicationActivity] \", \"background: #EFDDEF; color: #1976D2\", {\n response: jobApplication.questionResponses,\n sortedQuestionResponses,\n jobApplicationActivities,\n questionResponses: jobApplication?.questionResponses,\n allTheThings,\n sortedAllTheThings,\n });\n\n const handleOnClickAddComment = (event) => {\n event.preventDefault();\n const modal = (\n \n );\n\n openModal(modal);\n };\n\n const handleOnClickRequestReview = (event) => {\n event.preventDefault();\n const modal = (\n \n );\n\n openModal(modal);\n };\n\n const sharedDocumentModal = (\n \n );\n\n const handleOpenSharedDocumentModal = (event) => {\n event.preventDefault();\n\n // window.logger(\"%c[JobApplicationActivity] handleOpenSharedDocumentModal\", \"color: #1976D2\", {\n // jobApplication,\n // });\n\n openModal(sharedDocumentModal);\n scrollToTop();\n };\n\n /* HOTKEYS\n --===================================================-- */\n useHotkeys(\n \"h\",\n (event) => {\n event.preventDefault();\n // handleOpenSharedDocumentModal(event);\n openModal(sharedDocumentModal);\n return false;\n },\n {},\n [jobApplication],\n );\n\n const displayAdminOnly =\n currentOrganizationUser.isAdmin && jobApplication.settings.overview === \"private\";\n\n const adminOnlyQuestionLabel = (\n \n Admin only\n \n );\n\n const heading = (\n \n \n

    Overview

    \n {displayAdminOnly && (\n \n Admin only\n \n )}\n
    \n \n \n \n \n \n
    \n );\n\n const responses =\n sortedQuestionResponses.length > 0 ? (\n sortedQuestionResponses.map((questionResponse, index) => {\n const question = questionResponse?.question;\n let response;\n if (question?.kind === \"multi_select\") {\n response = (\n \n {questionResponse.responseArray.map((selection) => {\n return
  • {selection}
  • ;\n })}\n
    \n );\n } else if (question?.kind === \"file_upload\") {\n response = (\n \n \n {questionResponse.customFileFilename}\n \n \n \n );\n } else {\n response = {questionResponse.body};\n }\n\n if (question == undefined) return null;\n\n return (\n \n \n

    {question.questionText}

    \n {question.visibilitySetting === VisibilitySetting.PRIVATE &&\n adminOnlyQuestionLabel}\n
    \n {response}\n
    \n );\n })\n ) : (\n \n Custom questions can be added from the{\" \"}\n {\n \n application\n \n }{\" \"}\n tab in job setup\n \n }\n />\n );\n\n const jobApplicationReceivedEvent = () => {\n let createdText = \"\";\n\n if (jobApplication.createdVia === \"created_via_job_board\") {\n createdText = \"Application received\";\n } else {\n const organizationUser = currentOrganization.organizationUsers.find(\n (organizationUser) =>\n organizationUser.id === jobApplication.lastUpdatedByOrganizationUserId,\n );\n const userName = organizationUser ? organizationUser.user.fullName : \"Unknown\";\n\n createdText =\n jobApplication.createdVia === \"created_via_clone\"\n ? `Cloned by ${userName}`\n : jobApplication.createdVia === \"created_via_bulk_manual_add\"\n ? `Imported by ${userName}`\n : `Manually added by ${userName}`;\n }\n\n return (\n <>\n \n \n \n \n {createdText}\n \n \n {jobApplication?.createdAtTimeAgoShort}\n \n \n {(jobApplication.createdVia === \"created_via_job_board\" ||\n jobApplication.createdVia === \"created_via_clone\") && (\n \n {sortedQuestionResponses.length > 0 && (\n \n \n \n \n Application question responses\n \n )}\n {responses}\n \n )}\n \n );\n };\n\n const activityFeed = sortedAllTheThings.map((feedItem, index) => {\n const { key, ...activityProps } = feedItem;\n\n switch (feedItem?.activityCategory) {\n case \"activity\":\n return (\n \n \n \n );\n case \"comment\":\n return ;\n case \"review\":\n return (\n \n );\n default:\n return null;\n }\n });\n\n if (isLoadingJobApplicationActivities || isLoadingComments) {\n return ;\n }\n\n return (\n \n {heading}\n \n {!isEmpty(jobApplication?.sharedDocument) &&\n jobApplication?.sharedDocument !== \"

    \" ? (\n \n ) : null}\n\n \n {jobApplicationReceivedEvent()}\n {activityFeed}\n \n \n \n \n Start a review\n \n \n \n \n
    \n );\n}\n\nJobApplicationActivity.propTypes = {};\nJobApplicationActivity.defaultProps = {};\n\nexport default JobApplicationActivity;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity;\n display: flex;\n flex-direction: column;\n height: 100%;\n `;\n});\n\nStyled.Title = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_Title;\n ${[t.pt(4), t.pb(4), t.px(4), t.text.h2]}\n border-bottom: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n `;\n});\n\nStyled.TitleWrapper = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_TitleWrapper;\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n `;\n});\n\nStyled.HeaderActions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_HeaderActions;\n position: absolute;\n right: ${t.spacing[4]};\n display: flex;\n align-items: center;\n `;\n});\n\nStyled.Feed = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Feed;\n ${[t.p(4)]}\n flex-grow: 1;\n overflow-y: auto;\n position: relative;\n `;\n});\n\nStyled.Activities = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Activities;\n ${[t.mb(1)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n\nStyled.QuestionResponses = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_QuestionResponses;\n ${[t.rounded.md, t.px(4), t.mt(4), t.mb(4)]}\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n position: relative;\n\n &:after {\n content: \"\";\n display: block;\n position: absolute;\n top: 100%;\n left: 1.75rem;\n width: 4px;\n margin-left: -2px;\n height: ${t.spacing[6]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n }\n `;\n});\n\nStyled.ResponseIcon = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_ResponseIcon;\n ${[t.mr(2), t.h(6), t.w(6), t.rounded.xs]}\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n border: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n\nStyled.Intro = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Intro;\n ${[t.mt(4), t.mb(3), t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n align-items: center;\n `;\n});\n\nStyled.Icon = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Icon;\n ${[t.mr(2), t.ml(3), t.h(6), t.w(6), t.rounded.xs]}\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n\nStyled.Content = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Application;\n line-height: 1.6;\n &:first-of-type {\n ${[t.pt(4)]}\n }\n &:last-of-type {\n ${[t.mb(4)]}\n }\n `;\n});\n\nStyled.Question = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Question;\n ${[t.text.bold, t.text.xs, t.mb(1)]}\n display: flex;\n line-height: 1.6;\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n\n p {\n ${t.pt(1)}\n }\n `;\n});\n\nStyled.Response = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Response;\n ${[t.mb(3)]}\n line-height: 1.6;\n white-space: pre-wrap;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.DocumentLink = styled.a((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_DocumentLink;\n display: flex;\n align-items: center;\n &:link,\n &:visited {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n &:hover {\n text-decoration: underline;\n }\n > svg {\n margin-left: 0.375rem;\n height: 1.125em;\n width: 1.125em;\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n }\n `;\n});\n\nStyled.Actions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Actions;\n ${[t.px(4), t.pb(4), t.pt(2), t.mt(4), t.rounded.md]}\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n position: relative;\n display: flex;\n flex-wrap: wrap;\n z-index: 1;\n\n > button,\n > a {\n ${[t.mr(3), t.mt(2)]}\n }\n\n button:last-of-type {\n ${t.mr(0)}\n }\n `;\n});\n\nStyled.Event = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Event;\n ${[t.ml(1), t.mb(3), t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n flex-direction: row;\n align-items: center;\n position: relative;\n\n &:after {\n content: \"\";\n display: block;\n position: absolute;\n left: ${t.spacing[6]};\n top: 100%;\n width: 4px;\n margin-left: -2px;\n height: ${t.spacing[6]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n }\n `;\n});\n\nStyled.Seperator = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Seperator;\n ${t.mx(1)}\n `;\n});\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Label;\n ${[t.mx(3), t.h(6), t.px(2), t.text.xs, t.rounded.xs, t.text.normal]}\n display: inline-flex;\n align-items: center;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1.4;\n `;\n});\n\nStyled.List = styled.ul((props) => {\n const t: any = props.theme;\n return css`\n label: QuestionListItem_AnswerList;\n ${[t.ml(6), t.mt(1), t.mb(3)]}\n line-height: 1.6;\n white-space: pre-wrap;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n list-style-type: circle;\n\n li {\n ${[t.pt(1), t.pb(\"px\")]}\n\n &:last-of-type {\n ${t.pb(0)}\n }\n }\n `;\n});\n\nStyled.QuestionLabel = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_Label;\n ${[t.mx(2), t.px(2), t.h(6), t.pt(\"px\"), t.text.xs, t.rounded.xs, t.text.normal]}\n display: inline-flex;\n align-items: center;\n text-wrap: nowrap;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*! *****************************************************************************\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\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\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\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 }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || from);\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","export var COMMON_MIME_TYPES = new Map([['avi', 'video/avi'], ['gif', 'image/gif'], ['ico', 'image/x-icon'], ['jpeg', 'image/jpeg'], ['jpg', 'image/jpeg'], ['mkv', 'video/x-matroska'], ['mov', 'video/quicktime'], ['mp4', 'video/mp4'], ['pdf', 'application/pdf'], ['png', 'image/png'], ['zip', 'application/zip'], ['doc', 'application/msword'], ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document']]);\nexport function toFileWithPath(file, path) {\n var f = withMimeType(file);\n\n if (typeof f.path !== 'string') {\n // on electron, path is already set to the absolute path\n var webkitRelativePath = file.webkitRelativePath;\n Object.defineProperty(f, 'path', {\n value: typeof path === 'string' ? path // If is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0 ? webkitRelativePath : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n return f;\n}\n\nfunction withMimeType(file) {\n var name = file.name;\n var hasExtension = name && name.lastIndexOf('.') !== -1;\n\n if (hasExtension && !file.type) {\n var ext = name.split('.').pop().toLowerCase();\n var type = COMMON_MIME_TYPES.get(ext);\n\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n\n return file;\n}","import { __awaiter, __generator, __read, __spread } from \"tslib\";\nimport { toFileWithPath } from './file';\nvar FILES_TO_IGNORE = [// Thumbnail cache files for macOS and Windows\n'.DS_Store', 'Thumbs.db' // Windows\n];\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n * @param evt\n */\n\nexport function fromEvent(evt) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , isDragEvt(evt) && evt.dataTransfer ? getDataTransferFiles(evt.dataTransfer, evt.type) : getInputFiles(evt)];\n });\n });\n}\n\nfunction isDragEvt(value) {\n return !!value.dataTransfer;\n}\n\nfunction getInputFiles(evt) {\n var files = isInput(evt.target) ? evt.target.files ? fromList(evt.target.files) : [] : [];\n return files.map(function (file) {\n return toFileWithPath(file);\n });\n}\n\nfunction isInput(value) {\n return value !== null;\n}\n\nfunction getDataTransferFiles(dt, type) {\n return __awaiter(this, void 0, void 0, function () {\n var items, files;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!dt.items) return [3\n /*break*/\n , 2];\n items = fromList(dt.items).filter(function (item) {\n return item.kind === 'file';\n }); // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n\n if (type !== 'drop') {\n return [2\n /*return*/\n , items];\n }\n\n return [4\n /*yield*/\n , Promise.all(items.map(toFilePromises))];\n\n case 1:\n files = _a.sent();\n return [2\n /*return*/\n , noIgnoredFiles(flatten(files))];\n\n case 2:\n return [2\n /*return*/\n , noIgnoredFiles(fromList(dt.files).map(function (file) {\n return toFileWithPath(file);\n }))];\n }\n });\n });\n}\n\nfunction noIgnoredFiles(files) {\n return files.filter(function (file) {\n return FILES_TO_IGNORE.indexOf(file.name) === -1;\n });\n} // IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\n\n\nfunction fromList(items) {\n var files = []; // tslint:disable: prefer-for-of\n\n for (var i = 0; i < items.length; i++) {\n var file = items[i];\n files.push(file);\n }\n\n return files;\n} // https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\n\n\nfunction toFilePromises(item) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n\n var entry = item.webkitGetAsEntry(); // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry);\n }\n\n return fromDataTransferItem(item);\n}\n\nfunction flatten(items) {\n return items.reduce(function (acc, files) {\n return __spread(acc, Array.isArray(files) ? flatten(files) : [files]);\n }, []);\n}\n\nfunction fromDataTransferItem(item) {\n var file = item.getAsFile();\n\n if (!file) {\n return Promise.reject(item + \" is not a File\");\n }\n\n var fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n} // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\n\n\nfunction fromEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry)];\n });\n });\n} // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\n\n\nfunction fromDirEntry(entry) {\n var reader = entry.createReader();\n return new Promise(function (resolve, reject) {\n var entries = [];\n\n function readEntries() {\n var _this = this; // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n\n\n reader.readEntries(function (batch) {\n return __awaiter(_this, void 0, void 0, function () {\n var files, err_1, items;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!batch.length) return [3\n /*break*/\n , 5];\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , Promise.all(entries)];\n\n case 2:\n files = _a.sent();\n resolve(files);\n return [3\n /*break*/\n , 4];\n\n case 3:\n err_1 = _a.sent();\n reject(err_1);\n return [3\n /*break*/\n , 4];\n\n case 4:\n return [3\n /*break*/\n , 6];\n\n case 5:\n items = Promise.all(batch.map(fromEntry));\n entries.push(items); // Continue reading\n\n readEntries();\n _a.label = 6;\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n }, function (err) {\n reject(err);\n });\n }\n\n readEntries();\n });\n} // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\n\n\nfunction fromFileEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , new Promise(function (resolve, reject) {\n entry.file(function (file) {\n var fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, function (err) {\n reject(err);\n });\n })];\n });\n });\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport accepts from 'attr-accept'; // Error codes\n\nexport var FILE_INVALID_TYPE = 'file-invalid-type';\nexport var FILE_TOO_LARGE = 'file-too-large';\nexport var FILE_TOO_SMALL = 'file-too-small';\nexport var TOO_MANY_FILES = 'too-many-files'; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(', ')) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: 'Too many files'\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === 'application/x-moz-file' || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}","function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _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/* eslint prefer-template: 0 */\n\n\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
    \n * \n *

    Drag 'n' drop some files here, or click to select files

    \n *
    \n * )}\n *
    \n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, [\"open\"]);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone'; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Custom validation function \n * @param {File} file\n * @returns {FileError|FileError[]}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
    \n * \n *

    Drag and drop some files here, or click to select files

    \n *
    \n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$options = _objectSpread(_objectSpread({}, defaultProps), options),\n accept = _defaultProps$options.accept,\n disabled = _defaultProps$options.disabled,\n getFilesFromEvent = _defaultProps$options.getFilesFromEvent,\n maxSize = _defaultProps$options.maxSize,\n minSize = _defaultProps$options.minSize,\n multiple = _defaultProps$options.multiple,\n maxFiles = _defaultProps$options.maxFiles,\n onDragEnter = _defaultProps$options.onDragEnter,\n onDragLeave = _defaultProps$options.onDragLeave,\n onDragOver = _defaultProps$options.onDragOver,\n onDrop = _defaultProps$options.onDrop,\n onDropAccepted = _defaultProps$options.onDropAccepted,\n onDropRejected = _defaultProps$options.onDropRejected,\n onFileDialogCancel = _defaultProps$options.onFileDialogCancel,\n preventDropOnDocument = _defaultProps$options.preventDropOnDocument,\n noClick = _defaultProps$options.noClick,\n noKeyboard = _defaultProps$options.noKeyboard,\n noDrag = _defaultProps$options.noDrag,\n noDragEventsBubbling = _defaultProps$options.noDragEventsBubbling,\n validator = _defaultProps$options.validator;\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch]); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n\n if (typeof onFileDialogCancel === 'function') {\n onFileDialogCancel();\n }\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancel]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [multiple, accept, minSize, maxSize, maxFiles, getFilesFromEvent, onDrop, onDropAccepted, onDropRejected, noDragEventsBubbling, validator]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, [\"refKey\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"]);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb))\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, [\"refKey\", \"onChange\", \"onClick\"]);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread(_objectSpread({}, state), {}, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case 'reset':\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}","import React, { useState } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { DirectUpload } from \"activestorage\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport { isAllowedFileType } from \"@ats/src/lib/utils/fileUploads\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useJobApplicationStore } from \"@ats/src/lib/store/zustand/jobApplicationStore\";\n\nconst EXPECTED_FILETYPE = \"document\";\n\ntype Props = {\n onCompleteDirectUpload: any;\n onStartDirectUpload: any;\n};\n\nfunction DragAndDropResumeUploader({ onCompleteDirectUpload, onStartDirectUpload }: Props) {\n const addToast = useToastContext();\n const [convertingDocxToPdf, setConvertingDocxToPdf] = useJobApplicationStore((state) => [\n state.convertingDocxToPdf,\n state.setConvertingDocxToPdf,\n ]);\n const onDrop = React.useCallback((acceptedFiles) => {\n // Do something with the files\n\n const file = acceptedFiles[0];\n\n if (file == undefined) {\n return;\n }\n\n window.logger(\"%c[DragAndDropResumeUploader] onDrop\", \"color: #1976D2\", {\n acceptedFiles,\n fileType: file.type,\n });\n\n if (!isAllowedFileType(EXPECTED_FILETYPE, file.type)) {\n addToast({\n title: `File must be a PDF or DOCX`,\n kind: \"warning\",\n });\n return;\n }\n\n handleFileUpload(file);\n\n window.logger(\"%c[DADRES] \", \"color: #1976D2\");\n }, []);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop });\n\n const [errors, setErrors] = useState(null);\n const [fileToUpload, setFileToUpload] = useState(null);\n\n // window.logger(\"%c[DragAndDropResumeUploader] RENDER\", \"color: #086868\", {\n // getRootProps: { ...getRootProps() },\n // getInputProps: { ...getInputProps() },\n // isDragActive,\n // });\n\n const handleFileUpload = (file) => {\n const upload = new DirectUpload(\n file,\n `/api/v1/public/rails/active_storage/direct_uploads`,\n this,\n );\n\n onStartDirectUpload(true);\n\n upload.create((error, blob) => {\n if (error) {\n console.error(\"[DADRES] handleFileUpload directUpload error\", error);\n } else {\n // window.logger('%c[DADRES] uploaded file', 'color: #1976D2', { blob });\n onCompleteDirectUpload(blob).then((data) => {\n window.logger(\"%c[DADRES] onCompleteDirectUpload\", \"color: #1976D2\", { data });\n // if (data !== undefined) send(\"UPLOAD_COMPLETE\");\n });\n }\n });\n };\n\n const onChangeUploader = ({ fileToUpload }) => {\n setFileToUpload(fileToUpload);\n };\n\n const onInvalidFile = () => {\n addToast({ title: `Invalid resume file`, kind: \"warning\" });\n };\n\n return (\n \n \n \n \n \n

    No resume to show

    \n

    You can drag and drop one here to upload it or...

    \n \n
    \n );\n}\n\nexport default DragAndDropResumeUploader;\n\n/* Styled Components\n======================================================= */\nconst Styled: any = {};\n\nStyled.Container = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: DragAndDropResumeUploader;\n ${[t.py(5), t.px(6), t.rounded.md]}\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n transition: border-color 0.2s ease;\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n ${props.isDragActive\n ? `\n border-color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n `\n : \"\"}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n h2 {\n ${[t.text.sm]};\n }\n p {\n ${[t.text.xs, t.mt(1)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n button {\n ${t.mt(4)}\n }\n `;\n});\n\nStyled.IconWrapper = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: DragAndDropResumeUploader_IconWrapper;\n ${[t.text.sm, t.mb(2)]}\n `;\n});\n","/* eslint-disable @getify/proper-arrows/return */\nimport React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { pdfjs, Document, Page } from \"react-pdf\";\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormUploader from \"@ats/src/components/forms/FormUploader\";\nimport DragAndDropResumeUploader from \"@ats/src/components/DragAndDropResumeUploader\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useUpdateJobApplication } from \"@shared/queryHooks/useJobApplication\";\n\nimport { useJobApplicationStore } from \"@ats/src/lib/store/zustand/jobApplicationStore\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\n\nimport Resume from \"@ats/src/views/jobApplications/Resume\";\n\nimport { isDocx } from \"@ats/src/lib/utils/fileUploads\";\n\nexport default function JobApplicationResume(props) {\n const addToast = useToastContext();\n const { jobApplication, resumeUploading } = props;\n const [uploading, setUploading] = React.useState(false);\n // const [firstPageLoading, setFirstPageLoading] = React.useState(false);\n const [convertingDocxToPdf, setConvertingDocxToPdf] = useJobApplicationStore((state) => [\n state.convertingDocxToPdf,\n state.setConvertingDocxToPdf,\n ]);\n // const [count, increment] = useCountStore((state) => [state.counter, state.increment]);\n // const [convertingDocxToPdf, setConvertingDocxToPdf] = useState(false);\n const [fileToUpload, setFileToUpload] = useState(null);\n const [numPages, setNumPages] = useState(1);\n // const [pageNumber, setPageNumber] = useState(1);\n const [errors, setErrors] = useState(null);\n const fileExists = fileToUpload !== null || props.jobApplication.hasResume;\n\n const {\n mutate: updateJobApplication,\n error: errorOnUpdate,\n isLoading: isLoadingUpdate,\n } = useUpdateJobApplication();\n\n window.logger(\"%c[JobApplicationResume] render\", \"background-color: #19F0F2\", {\n isLoadingUpdate,\n uploading,\n });\n\n const onChangeUploader = ({ fileToUpload }) => {\n setFileToUpload(fileToUpload);\n };\n\n /* Once file is uploaded to S3 go ahead and update the JobApplication with the file blob's signed_id\n --===================================================-- */\n const onCompleteDirectUpload = async (blob) => {\n const { signed_id: uploadedFile, content_type } = blob;\n\n const fileIsDocx = isDocx(content_type);\n setConvertingDocxToPdf(fileIsDocx);\n\n window.logger(\"%c[JobApplicationResume] onCompleteDirectUpload\", \"background-color: #F9FFD2\", {\n uploadedFile,\n blob,\n convertingDocxToPdf,\n fileIsDocx,\n });\n\n if (uploadedFile) {\n setErrors(null);\n setNumPages(1);\n\n try {\n return await updateJobApplication(\n {\n id: jobApplication.id,\n resume: uploadedFile,\n },\n {\n onSuccess: () => {\n setUploading(false);\n },\n onError: () => {\n setUploading(false);\n addToast({ title: `Could not upload resume`, kind: \"warning\" });\n },\n },\n );\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\n \"%c[JobApplicationResume] handle error when updating JobApplication\",\n \"color: #FF7602\",\n {\n error,\n },\n );\n // if (error.response && error.response.data) setErrors(error.response.data.errors);\n return Promise.resolve();\n }\n } else {\n addToast({ title: `Could not upload resume`, kind: \"warning\" });\n return Promise.resolve();\n }\n };\n\n const onStartDirectUpload = (loading) => {\n setUploading(loading);\n };\n\n const onInvalidFile = () => {\n addToast({ title: `Invalid resume file`, kind: \"warning\" });\n };\n\n const actionButton = () => {\n const buttonContent = props.jobApplication.hasResume ? \"Replace resume\" : \"Upload resume\";\n\n return (\n \n \n\n {props.jobApplication.hasResume && (\n \n Download PDF\n \n )}\n {props.jobApplication.hasResume && jobApplication.resumeContentType !== \"application/pdf\" && (\n \n Download DOCX\n \n )}\n \n );\n // }\n };\n\n return (\n \n \n Resume\n {actionButton()}\n \n {/* uploading, convertingDocxToPdf, isFetchingJobApplication in that specific order should prevent any issues with attemtping to load a PDF that no longer exists\n : isFetchingJobApplication ? (\n \n \n \n )\n --===================================================-- */}\n {uploading || isLoadingUpdate ? (\n \n \n \n ) : convertingDocxToPdf ? (\n \n \n \n ) : jobApplication.hasResume ? (\n // (\n // jobApplication.shouldUseMicrosoftDocxViewer ? (\n // microsoftViewer()\n // ) : (\n // pdfRenderer()\n // )\n // )\n \n ) : jobApplication.externalResumeStatus === \"pending\" ? (\n \n \n \n ) : (\n <>\n {jobApplication.externalResumeStatus === \"error\" && (\n \n

    \n The resume URL provided when this candidate was imported is invalid: \n \n {jobApplication.externalResumeUrl}\n \n

    \n
    \n )}\n \n\n \n )}\n
    \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.p(4)]}\n overflow-y: auto;\n height: 100%;\n display: flex;\n flex-direction: column;\n `;\n});\n\nStyled.Header = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.mb(4)]}\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.Subtitle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${t.text.h2}\n `;\n});\n\nStyled.Actions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n position: absolute;\n right: 0;\n display: flex;\n align-items: center;\n button {\n ${t.mr(3)}\n }\n `;\n});\n\n// Styled.ResumeContainer = styled.div((props) => {\n// const t: any = props.theme;\n// return css`\n// > div {\n// ${t.rounded.md}\n// border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n// background-color ${t.dark ? t.color.gray[800] : t.color.white};\n// overflow: hidden;\n// min-height: 6.625rem;\n\n// .page {\n// border-bottom: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n// canvas {\n// width: 100% !important;\n// height: auto !important;\n// }\n// }\n\n// .page:last-child {\n// border-bottom: none;\n// }\n// }\n// `;\n// });\n\nStyled.Loading = styled.div((props) => {\n const t: any = props.theme;\n return css`\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n\n > div {\n ${t.m(0)}\n }\n `;\n});\n\nStyled.Processing = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${t.rounded.md}\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n width: 100%;\n min-height: 6.625rem;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n\n > div {\n ${t.m(0)}\n }\n `;\n});\n\nStyled.DocumentWrapper = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${t.rounded.md}\n flex: 1;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n overflow: hidden;\n > div {\n ${[t.mt(\"-px\"), t.ml(\"-px\")]}\n height: 100%;\n width: 100%;\n }\n `;\n});\n\nconst StyledExternalResumeUrlError = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.mb(4), t.px(4), t.rounded.md, t.text.xs]}\n min-height: ${t.spacing[12]};\n display: flex;\n align-items: center;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n\n p {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n a {\n ${t.text.medium}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n flex-shrink: 0;\n\n &:hover {\n text-decoration: underline;\n }\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport ProseMirrorEditor from \"@shared/ProseMirror/Editor\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport BottomButtonBar from \"@ats/src/components/shared/BottomButtonBar\";\n\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport {\n useCandidatePrivateNote,\n useUpdateCandidatePrivateNote,\n} from \"@shared/queryHooks/useCandidatePrivateNote\";\n\nimport {\n useJobApplication,\n useUpdateJobApplication,\n // useFireAndForgetUpdateJobApplication,\n} from \"@shared/queryHooks/useJobApplication\";\n\nfunction JobApplicationNotes(props) {\n const { jobApplication: initialJobApplication } = props;\n const jobApplicationId = initialJobApplication.id;\n const candidateId = initialJobApplication.candidateId;\n const [noteIsDirty, setNoteIsDirty] = React.useState(false);\n const { data: jobApplication, isFetching, isSuccess, isLoading } = useJobApplication({\n jobApplicationId,\n initialData: {},\n // initialData: { ...initialJobApplication },\n refetchOnWindowFocus: true,\n });\n\n const { data: candidatePrivateNote, isLoading: isLoadingPrivateNote } = useCandidatePrivateNote({\n candidateId,\n enabled: true,\n });\n const editorRef = React.useRef(undefined);\n\n const {\n mutate: updateJobApplication,\n error: errorOnUpdate,\n isLoading: isLoadingUpdate,\n } = useUpdateJobApplication();\n\n const {\n mutate: updateCandidatePrivateNote,\n error: errorOnUpdatePrivateNote,\n isLoading: isLoadingUpdatePrivateNote,\n } = useUpdateCandidatePrivateNote();\n\n window.logger(\"%c[JobApplicationNotes] RENDER\", \"border: 1px solid #906feb;\", {\n candidatePrivateNote,\n });\n\n const handleAutoSave = () => {\n autoSave();\n };\n\n const autoSave = () => {\n window.logger(\"%c[JobApplicationNotes] autoSave\", \"border: 1px solid #906feb;\", {\n state: editorRef.current?.serializedState(),\n noteIsDirty,\n });\n\n if (noteIsDirty && editorRef.current != undefined) {\n updateCandidatePrivateNote(\n {\n id: candidatePrivateNote?.id,\n candidateId,\n body: editorRef.current.serializedState(),\n },\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[JobApplicationNotes] autoSave onSuccess\",\n \"border: 1px solid #318011;\",\n {\n data,\n },\n );\n setNoteIsDirty(false);\n },\n onError: (response) => { },\n },\n );\n }\n };\n\n const handleChange = (nextState) => {\n setNoteIsDirty(true);\n };\n\n const handleSubmit = async (event) => {\n event.preventDefault();\n\n try {\n await updateCandidatePrivateNote(\n {\n id: candidatePrivateNote?.id,\n candidateId,\n body: editorRef.current.serializedState(),\n },\n {\n onSuccess: (data) => {\n window.logger(\n \"%c[JobApplicationNotes] handleSubmit onSuccess\",\n \"border: 1px solid #318011;\",\n {\n data,\n },\n );\n setNoteIsDirty(false);\n },\n onError: () => { },\n },\n );\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\n \"%c[JobApplicationNotes] handle error when updating JobApplication\",\n \"color: #FF7602\",\n {\n error,\n },\n );\n }\n };\n\n if (candidatePrivateNote == undefined || isLoadingPrivateNote) {\n return ;\n }\n\n return (\n \n \n\n {/*

    \n Below is the OLD Shared Document, just here for troubleshooting copying its data to the\n above field for a private note\n

    \n */}\n\n \n \n Save changes\n \n {noteIsDirty ? Changes not yet saved : No unsaved changes}\n \n
    \n );\n}\n\nJobApplicationNotes.propTypes = {};\nJobApplicationNotes.defaultProps = {};\n\nexport default JobApplicationNotes;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Form = styled.form((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationNotes;\n height: 100%;\n display: flex;\n flex-direction: column;\n `;\n});\n","import { useQuery } from \"react-query\";\nimport { apiGet } from \"@shared/queryHooks/api\";\n\nconst getChannels = async (jobApplicationId) => {\n return await apiGet({ path: `/job_applications/${jobApplicationId}/channels` });\n};\n\nconst getChannel = async (channelId) => {\n window.logger(\"%c[useChannel] getChannel\", \"background: #19d219\", { channelId });\n if (channelId != undefined) {\n return await apiGet({ path: `/channels/${channelId}` });\n }\n};\n\nfunction useChannels(\n jobApplicationId,\n): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isSuccess: boolean;\n} {\n return useQuery([\"channels\", jobApplicationId], () => getChannels(jobApplicationId));\n}\n\nfunction useChannel(\n channel,\n): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n} {\n return useQuery([\"channel\", channel ? channel.id : null], () => getChannel(channel?.id), {\n refetchOnWindowFocus: false,\n retry: (failureCount, error) => !error.message.includes(401) && !error.message.includes(403), // Add the 403 because not sure if this is login or role related\n });\n}\n\nexport { useChannels, useChannel, getChannel };\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport FullModal from \"@ats/src/components/modals/FullModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\ntype ChannelMessage = {\n bodySanitizedHtml: string;\n // bodyRawHtml: string;\n};\n\ntype Props = {\n onCancel: () => void;\n onComplete: () => void;\n channelMessage: ChannelMessage;\n};\n\nfunction OriginalEmailModal(props: Props) {\n const { channelMessage } = props;\n\n window.logger(\"%c[OriginalMessageModal] RENDER\", \"color: #1976D2\", { channelMessage });\n\n const { dismissModalWithAnimation } = useModalContext();\n\n return (\n dismissModalWithAnimation(() => props.onCancel)}>\n \n

    Original incoming email

    \n \n
    \n \n
    \n {/*
    \n
    */}\n \n \n );\n}\n\nexport default OriginalEmailModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Header = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: OriginalEmailModal_Header;\n ${[t.px(4), t.pt(4), t.pb(3)]}\n border-bottom: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background: ${t.dark ? t.color.gray[800] : t.color.white};\n position: sticky;\n top: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n h2 {\n ${[t.text.h2]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n `;\n});\n\nStyled.Body = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: OriginalEmailModal_Body;\n ${[t.m(4), t.p(4), t.rounded.md]}\n background: ${t.color.white};\n border: 1px solid ${t.color.gray[200]};\n a {\n text-decoration: underline;\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nexport default function OrgLogo({\n name,\n logoMedium,\n hasLogo,\n}: {\n name: string;\n logoMedium: string;\n hasLogo: boolean;\n}) {\n return (\n \n {hasLogo ? (\n \n \n \n ) : (\n {name?.charAt(0)}\n )}\n \n );\n}\n\n/* Styled Components\n======================================================= */\nconst Styled: any = {};\n\nStyled.Container = styled.div((props: any) => {\n const t = props.theme;\n return css`\n label: OrgLogo;\n display: flex;\n align-items: center;\n max-width: 100%;\n `;\n});\n\nStyled.AvatarWrapper = styled.div((props: any) => {\n const t = props.theme;\n return css`\n label: OrgLogo_AvatarWrapper;\n ${[t.h(10), t.w(10), t.rounded.sm]}\n overflow: hidden;\n position: relative;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n `;\n});\n\nStyled.ImageAvatar = styled.div((props: any) => {\n const t = props.theme;\n return css`\n label: OrgLogo_ImageAvatar;\n height: 100%;\n width: 100%;\n flex-shrink: 0;\n transition: opacity 0.2s ease;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n `;\n});\n\nStyled.Avatar = styled.div((props: any) => {\n const t = props.theme;\n return css`\n label: OrgLogo_Avatar;\n ${[t.pt(\"px\"), t.text.lg, t.text.bold]}\n height: 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n color: ${t.color.white};\n background-color: ${t.color.gray[600]};\n text-transform: uppercase;\n flex-shrink: 0;\n transition: opacity 0.2s ease;\n `;\n});\n\nStyled.Name = styled.div((props: any) => {\n const t = props.theme;\n return css`\n label: OrgLogo_Name;\n ${[t.text.bold, t.text.lg, t.pt(\"px\"), t.ml(3)]}\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport textStyles from \"@ats/styles/text\";\n\nimport { prettyDateAndTime } from \"@shared/lib/time\";\n\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport UserAvatar from \"@ats/src/components/shared/UserAvatar\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport ChannelMessageTemplateModal from \"@ats/src/components/modals/ChannelMessageTemplateModal\";\nimport OriginalEmailModal from \"@ats/src/views/jobApplications/channelMessages/OriginalEmailModal\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\nimport OrgLogo from \"@ats/src/components/shared/OrgLogo\";\n\nfunction ChannelMessageListItem(props: { message: any }) {\n const { message } = props;\n const { sentBy, user, candidate, htmlSafeBody } = message;\n const { openModal, removeModal } = useModalContext();\n const { currentOrganization } = useCurrentSession();\n\n let sender;\n\n if (sentBy === \"sent_by_user\") {\n sender = user;\n } else if (sentBy === \"sent_by_candidate\") {\n sender = candidate;\n }\n\n const onClickCreateTemplate = (event) => {\n event.preventDefault();\n\n const modal = (\n \n );\n\n window.logger(\"%c[ChannelMessageListItem] onClickCreateTemplate\", \"color: #1976D2\", {\n message,\n modal,\n });\n\n openModal(modal);\n };\n\n const onClickViewOriginal = (event) => {\n event.preventDefault();\n\n const modal = (\n \n );\n\n openModal(modal);\n };\n\n const getSender = () => {\n const logo =\n sentBy === \"sent_by_organization\" ? (\n \n ) : (\n \n );\n const name = sentBy === \"sent_by_organization\" ? currentOrganization?.name : sender?.fullName;\n\n return (\n \n {logo}\n \n
    \n

    {name}

    \n {sender === candidate && Candidate}\n \n \n {message.createdAtTimeAgoShort}\n \n
    \n

    Sent via email

    \n
    \n
    \n );\n };\n\n const getActions = (action) => {\n if (sender !== user && sender !== candidate) return null;\n return (\n \n \n {action}\n \n \n );\n };\n\n return (\n \n \n {getSender()}\n {sender === user &&\n getActions()}\n {sender === candidate &&\n message.bodySanitizedHtml != undefined &&\n getActions()}\n \n\n \n \n {message.filesArray.length > 0 ? (\n \n {message.filesArray.map((file, index) => {\n return (\n \n \n {file.filename}\n \n );\n })}\n \n ) : null}\n \n \n );\n}\n\nChannelMessageListItem.propTypes = {};\n\nChannelMessageListItem.defaultProps = {};\n\nexport default ChannelMessageListItem;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props: any) => {\n const t: any = props.theme;\n const sentByUser = props.sentByUser;\n return css`\n label: ChannelMessageListItem;\n ${[t.mx(4), t.mb(4), t.px(4), t.pt(4), t.pb(1), t.rounded.md]}\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n min-height: 4.5rem;\n\n &:first-of-type {\n ${t.mt(4)}\n }\n `;\n});\n\nStyled.Header = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageListItem_Header;\n display: flex;\n justify-content: space-between;\n `;\n});\n\nStyled.Sender = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageListItem_Sender;\n display: flex;\n align-items: center;\n `;\n});\n\nStyled.MessageBody = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageListItem_MessageBody;\n flex: 1;\n overflow-x: hidden;\n `;\n});\n\nStyled.Attribution = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageListItem_Attribution;\n ${[t.ml(3)]}\n\n > div {\n ${[t.mb(1)]}\n display: flex;\n align-items: center;\n }\n\n h3 {\n ${[t.text.bold, t.mr(\"px\")]}\n }\n\n span {\n ${[t.text.xs, t.pt(\"px\")]}\n display: block;\n cursor: default;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n\n p {\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1.15;\n }\n `;\n});\n\nStyled.Seperator = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageListItem_Seperator;\n ${t.mx(1)}\n `;\n});\n\nStyled.CandidateBadge = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageListItem_CandidateBadge;\n ${[t.h(4), t.ml(1), t.rounded.xs]};\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n font-size: 0.625rem;\n border: 1px solid ${t.color.orange[200]};\n background: ${t.dark\n ? \"linear-gradient(120deg, #FBD7FF -40%, #FFDEC1 80%)\"\n : \"linear-gradient(120deg, #FFD8D8 -40%, #FFDEC1 80%)\"};\n color: ${t.color.black};\n flex-shrink: 0;\n display: flex;\n align-items: center;\n `;\n});\n\nStyled.MessageText = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageListItem_MessageText;\n ${[t.mt(4), textStyles]}\n `;\n});\n\nStyled.Actions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageListItem_Actions;\n `;\n});\n\nStyled.FileList = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageListItem_FileList;\n ${[t.mb(2)]}\n display: flex;\n flex-wrap: wrap;\n `;\n});\n\nStyled.FileButton = styled.a((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageListItem_FileButton;\n ${[t.px(3), t.mr(1), t.mb(1), t.text.xs, t.rounded.sm]}\n min-height: ${t.spacing[8]};\n display: flex;\n align-items: center;\n transition: border 0.2s ease;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 100%;\n\n svg {\n ${[t.mr(1)]}\n flex-shrink: 0;\n }\n\n span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &:hover {\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n border: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[400]};\n }\n `;\n});\n","import { useMutation, useQuery, useQueryClient } from \"react-query\";\nimport { apiPost, apiGet } from \"@shared/queryHooks/api\";\n\nconst add = async ({ jobId, organizationUserId }) => {\n return await apiPost({\n path: `/jobs/${jobId}/hiring_team_memberships/add`,\n variables: { organizationUserId },\n });\n};\n\nconst remove = async ({ jobId, organizationUserId }) => {\n return await apiPost({\n path: `/jobs/${jobId}/hiring_team_memberships/remove`,\n variables: { organizationUserId },\n });\n};\n\nconst getHiringTeamMemberships = async (jobId) => {\n return await apiGet({ path: `/jobs/${jobId}/hiring_team_memberships` });\n};\n\nconst createHiringTeamInvite = async ({ jobId, inviteId }) => {\n return await apiPost({\n path: `/jobs/${jobId}/hiring_team_memberships/invite`,\n variables: { inviteId },\n });\n};\n\nconst getHiringTeamInvites = async (jobId) => {\n return await apiGet({ path: `/jobs/${jobId}/hiring_team_memberships/invites` });\n};\n\n/* Hooks\n--===================================================-- */\nfunction useAddHiringTeamMembership() {\n const queryClient = useQueryClient();\n return useMutation(add, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[useHiringTeamMembership] useAddHiringTeamMembership onSettled\",\n \"color: #1976D2\",\n { data, mutationVariables },\n );\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n },\n // throwOnError: true,\n });\n}\n\nfunction useRemoveHiringTeamMembership() {\n const queryClient = useQueryClient();\n return useMutation(remove, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[useHiringTeamMembership] useRemoveHiringTeamMembership onSettled\",\n \"color: #1976D2\",\n { data, mutationVariables },\n );\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n },\n // throwOnError: true,\n });\n}\n\nfunction useHiringTeamMemberships(\n jobId,\n): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isSuccess: boolean;\n} {\n return useQuery([\"hiringTeamMemberships\", jobId], () => getHiringTeamMemberships(jobId));\n}\n\nfunction useCreateHiringTeamInvite() {\n const queryClient = useQueryClient();\n return useMutation(createHiringTeamInvite, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[useHiringTeamMembership] useAddHiringTeamMembership onSettled\",\n \"color: #1976D2\",\n { data, mutationVariables },\n );\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n },\n // throwOnError: true,\n });\n}\n\nexport {\n useAddHiringTeamMembership,\n useRemoveHiringTeamMembership,\n useHiringTeamMemberships,\n useCreateHiringTeamInvite,\n};\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { useChannel } from \"@shared/queryHooks/useChannel\";\n\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport ChannelMessageListItem from \"@ats/src/views/jobApplications/channelMessages/ChannelMessageListItem\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nimport { useJobStore } from \"@ats/src/lib/store/zustand/jobStore\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\nimport { useAddHiringTeamMembership } from \"@shared/queryHooks/useHiringTeamMembership\";\n\nfunction ChannelMessageList(props: {\n channel: any;\n candidate: any;\n scrollToBottom: () => void;\n jobId: number;\n visibility: string;\n}) {\n const { channel, candidate, scrollToBottom, jobId, visibility } = props;\n const { data, isFetching: isFetchingAllChannel, isSuccess, isLoading } = useChannel(channel);\n const { mutate: addTeamMember, isLoading: isLoadingAdd } = useAddHiringTeamMembership();\n\n const job = useJobStore(React.useCallback((state) => state.jobsById[jobId], [jobId])) as any;\n const { currentUser, currentOrganizationUser } = useCurrentSession();\n\n const currentUserNotOnHiringTeam =\n job.organizationUserIds.includes(currentOrganizationUser.id) === false;\n\n window.logger(\"[ChannelMessageList] render\", {\n isFetchingAllChannel,\n isSuccess,\n isLoading,\n data,\n });\n\n scrollToBottom();\n\n // window.logger(\"%c[ChannelMessageList] render\", \"background-color: #19FFD2;\", {\n // data,\n // isFetchingAllChannel,\n // isLoading,\n // isSuccess,\n // job,\n // currentUser,\n // currentUserNotOnHiringTeam,\n // });\n\n React.useEffect(() => {\n scrollToBottom();\n }, [data, isSuccess, isLoading]); // left out scrollToBottom on purpose\n\n const adminJoinTeam = (event) => {\n event.preventDefault();\n\n addTeamMember(\n { jobId: job.id, organizationUserId: currentUser.currentOrganizationUserId },\n {\n onSuccess: (data) => {\n window.logger(\"%c[ChannelMessageList] addTeamMember SELF\", \"color: #1976D2\", { data });\n },\n },\n );\n };\n\n if (isLoading) {\n return (\n <>\n \n \n );\n }\n\n const messages =\n data && data.channelMessages != undefined\n ? data.channelMessages.map((message, index) => {\n // scrollToBottom();\n return ;\n })\n : [];\n\n if (!data && visibility === \"private\" && !currentOrganizationUser.isAdmin) {\n return (\n \n \n \n );\n }\n\n return (\n <>\n {data && data.channelMessages.length > 0 ? (\n <>\n \n \n \n \n \n This is the beginning of your message history with this candidate\n \n {messages}\n \n {currentUserNotOnHiringTeam && (\n \n \n \n Join this job's hiring team to receive new message notifications.\n \n \n \n )}\n \n ) : (\n \n {candidate && candidate.email ? (\n \n ) : (\n \n )}\n \n )}\n \n );\n}\n\nChannelMessageList.propTypes = {};\n\nChannelMessageList.defaultProps = {};\n\nexport default ChannelMessageList;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageList;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n min-height: 100%;\n `;\n});\n\nStyled.MessageHistory = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageList_MessageHistory;\n ${[t.ml(5), t.my(4), t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n flex-direction: row;\n align-items: center;\n `;\n});\n\nStyled.Icon = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ActivityListItem_Icon;\n ${[t.ml(3), t.mr(2), t.h(6), t.w(6), t.rounded.xs]}\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n `;\n});\n\nStyled.EmptyState = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageList_EmptyState;\n ${[t.mx(4), t.mt(\"px\")]}\n `;\n});\n\nStyled.Warning = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageList_Warning;\n ${[t.px(4), t.rounded.md, t.mb(4), t.mx(4)]}\n min-height: ${t.spacing[12]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n display: flex;\n justify-content: space-between;\n align-items: center;\n `;\n});\n\nStyled.WarningTitle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageList_WarningTitle;\n ${[t.my(2), t.mr(4)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n align-items: center;\n line-height: 1.4;\n\n svg {\n ${[t.mr(4)]};\n flex-shrink: 0;\n color: ${t.dark ? t.color.red[500] : t.color.red[600]};\n }\n `;\n});\n","import { useMutation, useQueryClient } from \"react-query\";\nimport { apiPost } from \"@shared/queryHooks/api\";\n\nconst createChannelMessage = async (variables) => {\n return await apiPost({ path: `/channels/${variables.channelId}/channel_messages`, variables });\n};\n\nexport function useCreateChannelMessage() {\n const queryClient = useQueryClient();\n return useMutation(createChannelMessage, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\"[useChannelMessage] useCreateChannelMessage\", {\n data,\n mutationVariables,\n invalidate: [\"channel\", data.channelId],\n queryClient,\n });\n // queryClient.invalidateQueries();\n queryClient.invalidateQueries([\"channel\", data.channelId]);\n },\n // throwOnError: true,\n });\n}\n","import React, { useState } from \"react\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport textStyles from \"@ats/styles/text\";\n\nimport {\n useChannelMessageTemplates,\n useMailMerge,\n} from \"@shared/queryHooks/useChannelMessageTemplate\";\n\ntype Props = {\n onCancel: () => void;\n handleInsertTemplate: (channelMessageTemplate) => void;\n jobApplicationId: number;\n};\n\nfunction PreviewSelection(props) {\n const { mailMerge, mailMergeIsLoading } = props;\n // const { data, isLoading } = useMailMerge({ jobApplicationId, channelMessageTemplateId });\n\n window.logger(\"%c[CMTSM] PreviewSelection\", \"color: #F900D2\", {\n mailMerge,\n // jobApplicationId,\n // channelMessageTemplateId,\n });\n\n if (mailMergeIsLoading) {\n return <>Loading...;\n }\n\n return (\n \n
    \n \n );\n}\n\nfunction ChannelMessageTemplateSelectionModal(props: Props) {\n const { jobApplicationId } = props;\n const { data: channelMessageTemplates } = useChannelMessageTemplates();\n\n const [channelMessageTemplate, setChannelMessageTemplate] = useState({ id: undefined });\n const [isDirty, setIsDirty] = useState(false);\n\n const { data: mailMerge, isLoading: mailMergeIsLoading } = useMailMerge({\n jobApplicationId,\n channelMessageTemplateId: channelMessageTemplate?.id,\n });\n\n const channelMessageTemplateSelectOptions = channelMessageTemplates\n ? channelMessageTemplates.items.map((template) => {\n return { value: template.id, label: template.name };\n })\n : [];\n\n window.logger(\"%c[CMTSM] render\", \"color: #FF0EF3\", {\n mailMerge,\n jobApplicationId,\n channelMessageTemplateId: channelMessageTemplate?.id,\n channelMessageTemplateSelectOptions,\n channelMessageTemplates,\n });\n\n const handleInsertTemplate = (event) => {\n event.preventDefault();\n\n if (mailMerge != undefined) {\n props.handleInsertTemplate(mailMerge);\n props.onCancel();\n }\n };\n\n const handleChangeSelectChannelMessageTemplate = (name, value) => {\n if (channelMessageTemplates == undefined) {\n return;\n }\n\n const channelMessageTemplateId = value;\n\n const template = channelMessageTemplates.items.find(\n (channelMessageTemplate) => channelMessageTemplate.id === channelMessageTemplateId,\n );\n\n setChannelMessageTemplate(template);\n setIsDirty(true);\n\n window.logger(\n \"%c[ChannelMessageTemplateSelectionModal] handleChangeSelectChannelMessageTemplate\",\n \"color: #F976D2\",\n {\n name,\n value,\n template,\n },\n );\n };\n\n const submitButton = (\n \n \n Select\n \n \n \n );\n\n return (\n \n \n {\n \"Select which template to use. You will have the ability to review and edit your message before sending.\"\n }\n \n \n \n\n {/*
    \n {channelMessageTemplate != undefined ? channelMessageTemplate.body : null}\n
    */}\n\n {channelMessageTemplate?.id != undefined ? (\n \n ) : null}\n
    \n
    \n );\n}\n\nexport default ChannelMessageTemplateSelectionModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateSelectionModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateSelectionModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n\nStyled.PreviewContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateSelectionModal_PreviewContainer;\n ${[textStyles, t.p(4), t.pb(0), t.rounded.md]}\n border: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[700] : t.color.gray[100]};\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n max-height: 16rem;\n overflow-y: auto;\n ${t.dark &&\n `\n blockquote {\n color: ${t.color.gray[400]};\n border-left: 4px solid ${t.color.gray[600]};\n }\n `}\n\n p {\n span.mail-merge-brackets {\n color: ${t.dark ? t.color.gray[500] : t.color.gray[500]};\n }\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport { useCreateChannelMessage } from \"@shared/queryHooks/useChannelMessage\";\n\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport ChannelMessageTemplateSelectionModal from \"@ats/src/components/modals/ChannelMessageTemplateSelectionModal\";\nimport ProseMirrorEditor from \"@shared/ProseMirror/Editor\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\n\nimport { prettyErrorsArray } from \"@shared/lib/formHelpers\";\n\nfunction ChannelMessageNew({ jobApplication, setIsDirty, allChannel }) {\n const { openModal, removeModal } = useModalContext();\n const addToast = useToastContext();\n const editorRef = React.useRef(undefined);\n\n const { mutate: createChannelMessage, isLoading: isLoadingCreate } = useCreateChannelMessage();\n\n const [errors, setErrors] = React.useState(null);\n\n const handleChange = () => {\n setErrors(null);\n setIsDirty(editorRef.current.serializedState() !== \"

    \");\n };\n\n const onClickInsertTemplate = (event) => {\n event.preventDefault();\n\n openChannelMessageTemplateSelectionModal();\n };\n\n const handleInsertTemplate = (mailMerge) => {\n window.logger(\"%c[ChannelMessageNew] handleInsertTemplate\", \"color: #1976D2\", { mailMerge });\n editorRef.current.replaceEditorContent(mailMerge?.messageHtml);\n };\n\n const clearEditor = () => {\n editorRef.current.clearEditor();\n };\n\n const openChannelMessageTemplateSelectionModal = () => {\n const modal = (\n \n );\n\n openModal(modal);\n };\n\n const onCloseModal = () => {\n removeModal();\n };\n\n const handleSendMessage = async (event) => {\n event.preventDefault();\n\n const serializedState = editorRef.current.serializedState();\n\n if (!editorRef.current.state() || serializedState === \"

    \") {\n setIsDirty(false);\n return;\n }\n\n // window.logger(\"%c[ChannelMessageNew] handleSendMessage\", \"color: #1976D2\", {\n // editorState: editorRef.current.state(),\n // doc: serialize(editorRef.current.state().doc),\n // });\n\n createChannelMessage(\n {\n channelId: allChannel?.id,\n // body: serialize(editorRef.current.state().doc),\n body: serializedState,\n },\n {\n onSuccess: (data) => {\n window.logger(\"%c[ChannelMessageNew onSuccess\", \"color: #1976D2\", { data });\n clearEditor();\n setIsDirty(false);\n },\n onError: (response: { data: { errors } }) => {\n window.logger(\n \"%c[ChannelMessageNew] handle error when CREATE New Message\",\n \"color: #FF7602\",\n {\n response,\n errors: prettyErrorsArray(response.data.errors),\n },\n );\n const prettyErrors = prettyErrorsArray(response.data.errors);\n addToast({\n title: prettyErrors[0],\n kind: \"error\",\n delay: 6000,\n });\n clearEditor();\n setIsDirty(false);\n },\n },\n );\n };\n\n return (\n \n errors={errors}\n onSubmit={handleSendMessage}\n >\n \n {jobApplication.candidate.hasValidEmail === true ? (\n \n ) : (\n \n \n The email address for this candidate is not valid.\n \n )}\n\n \n \n Send message\n \n\n \n Use template\n \n \n \n \n );\n}\n\nexport default ChannelMessageNew;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.NewMessageArea = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_NewMessageArea;\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n `;\n});\n\n// Styled.NewMessageField = styled(TextareaAutosize)((props) => {\nStyled.NewMessageField = styled(ProseMirrorEditor)((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_NewMessageField;\n ${[t.px(4), t.pt(4), t.mb(6)]}\n display: block;\n width: 100%;\n resize: none;\n outline: none;\n line-height: 1.6;\n border: none;\n max-height: ${t.spacing[64]};\n\n &:disabled {\n background: ${t.dark ? t.color.gray[900] : t.color.white};\n }\n\n &::placeholder {\n color: ${t.color.gray[500]};\n }\n `;\n});\n\nStyled.Controls = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_Controls;\n ${[t.px(4), t.pb(4)]}\n display: flex;\n\n button {\n ${t.mr(3)}\n width: auto;\n }\n `;\n});\n\nStyled.Invalid = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_RequirementTitle;\n ${[t.px(4), t.pt(4), t.pb(\"px\"), t.mb(6)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n align-items: center;\n line-height: 1.6;\n\n svg {\n ${[t.mr(2)]};\n color: ${t.dark ? t.color.red[500] : t.color.red[600]};\n flex-shrink: 0;\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\n\n// import { QueryClientProvider, QueryClient } from \"react-query\";\n\nimport ChannelMessageList from \"@ats/src/views/jobApplications/channelMessages/ChannelMessageList\";\nimport ChannelMessageNew from \"@ats/src/views/jobApplications/channelMessages/ChannelMessageNew\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\nfunction JobApplicationMessages(props) {\n // window.logger(\"%c[JobApplicationMessages] \", \"background: #EFDDEF; color: #1976D2\", props);\n const { currentUser, currentOrganizationUser } = useCurrentSession();\n const { jobApplication, candidate, setIsDirty } = props;\n\n const messagesRef = React.useRef(null);\n const allChannel = jobApplication.channels.find((channel) => channel.kind === \"kind_all\");\n\n const [hasMessages, setHasMessages] = React.useState(\n allChannel != undefined && allChannel.channelMessagesCount > 0,\n );\n\n const canSendChannelMessages =\n currentOrganizationUser.isAdmin || jobApplication.settings.messages === \"public\";\n\n const displayAdminOnly =\n currentOrganizationUser.isAdmin && jobApplication.settings.messages === \"private\";\n\n const scrollToBottom = () => {\n if (messagesRef.current) {\n messagesRef.current.scrollTop = messagesRef.current.scrollHeight;\n }\n };\n\n if (allChannel == undefined) {\n return null;\n }\n\n return (\n \n \n \n

    Messages

    \n {displayAdminOnly && (\n \n Admin only\n \n )}\n
    \n \n \n \n \n\n {candidate && candidate.email && canSendChannelMessages && (\n \n )}\n
    \n );\n}\n\nJobApplicationMessages.propTypes = {};\nJobApplicationMessages.defaultProps = {};\n\nexport default function JobApplicationMessagesWrapper(props) {\n window.logger(\"%c[JobApplicationMessagesWrapper] props\", \"color: #1976D2\", props);\n // const queryClient = new QueryClient({\n // defaultOptions: {\n // queries: { refetchOnWindowFocus: false },\n // },\n // });\n return (\n // \n props.jobApplication.channels != undefined && \n // \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages;\n display: flex;\n flex-direction: column;\n height: 100%;\n `;\n});\n\nStyled.Title = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_Title;\n ${[t.pt(4), t.pb(4), t.px(4), t.text.h2]}\n border-bottom: ${props.messagesExist\n ? `1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]}`\n : `none`};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.TitleWrapper = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_TitleWrapper;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n position: relative;\n `;\n});\n\nStyled.MessageFeed = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_MessageFeed;\n flex-grow: 1;\n overflow-y: auto;\n position: relative;\n `;\n});\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_Label;\n ${[t.mx(3), t.h(6), t.px(2), t.text.xs, t.rounded.xs, t.text.normal]}\n display: inline-flex;\n align-items: center;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1.4;\n `;\n});\n","import { useQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiGet, apiPut } from \"@shared/queryHooks/api\";\n\nconst getJobApplicationFiles = async ({ jobApplicationId }) => {\n if (jobApplicationId) {\n return await apiGet({ path: `/job_applications/${jobApplicationId}/files` });\n }\n};\n\nconst attachFileToJobApplication = async ({ id, attachment }) => {\n window.logger(\n \"%c[useJobApplication] attachFileToJobApplication\\n\\n\\n\\n\",\n \"background-color: #FF76D2\",\n {\n id,\n attachment,\n },\n );\n return await apiPut({\n path: `/job_applications/${id}/files/attach_file`,\n variables: { attachment },\n });\n};\n\nconst deleteFiletFromJobApplication = async ({ id, attachment }) => {\n window.logger(\n \"%c[useJobApplication] deleteFiletFromJobApplication\\n\\n\\n\\n\",\n \"background-color: #FF76D2\",\n {\n id,\n attachment,\n },\n );\n return await apiPut({\n path: `/job_applications/${id}/files/remove_file`,\n variables: { attachment },\n });\n};\n\nexport function useJobApplicationFiles({\n jobApplicationId,\n}): {\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n} {\n return useQuery([\"jobApplicationFiles\", jobApplicationId], () =>\n getJobApplicationFiles({ jobApplicationId }),\n );\n}\n\nfunction useAttachFileToJobApplication() {\n const queryClient = useQueryClient();\n return useMutation(attachFileToJobApplication, {\n onSuccess: (data, mutationVariables) => {\n queryClient.invalidateQueries([\"jobApplicationFiles\", mutationVariables.id]);\n },\n });\n}\n\nfunction useDeleteFileFromJobApplication() {\n const queryClient = useQueryClient();\n return useMutation(deleteFiletFromJobApplication, {\n onSuccess: (data, mutationVariables) => {\n queryClient.invalidateQueries([\"jobApplicationFiles\", mutationVariables.id]);\n },\n });\n}\n\nexport { useAttachFileToJobApplication, useDeleteFileFromJobApplication };\n","/* eslint-disable @getify/proper-arrows/return */\nimport React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport FormUploader from \"@ats/src/components/forms/FormUploader\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport {\n useJobApplicationFiles,\n useAttachFileToJobApplication,\n useDeleteFileFromJobApplication,\n} from \"@shared/queryHooks/useJobApplicationFiles\";\nimport { MEGABYTE_IN_BYTES } from \"@ats/src/lib/utils/fileUploads\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\nimport { VisibilitySetting } from \"@shared/types/jobApplication\";\n\nexport default function JobApplicationFiles(props) {\n const addToast = useToastContext();\n const { currentOrganizationUser } = useCurrentSession();\n const { jobApplication } = props;\n const [uploading, setUploading] = React.useState(false);\n const [fileToUpload, setFileToUpload] = useState(null);\n const [errors, setErrors] = useState(null);\n\n const {\n data: jobApplicationFilesData,\n isLoading: isLoadingJobApplicationFiles,\n } = useJobApplicationFiles({\n jobApplicationId: jobApplication?.id,\n });\n\n const {\n mutate: attachFileToJobApplication,\n error: errorOnAttachment,\n isLoading: isLoadingAttachment,\n } = useAttachFileToJobApplication();\n\n const {\n mutate: deleteFileFromJobApplication,\n error: errorOnDeleteAttachment,\n isLoading: isLoadingDeleteAttachment,\n } = useDeleteFileFromJobApplication();\n\n window.logger(\"%c[JobApplicationFiles] render\", \"background-color: #19F0F2\", {\n isLoadingAttachment,\n uploading,\n });\n\n const onChangeUploader = ({ fileToUpload }) => {\n setFileToUpload(fileToUpload);\n };\n\n /* Once file is uploaded to S3 go ahead and update the JobApplication with the file blob's signed_id\n --===================================================-- */\n const onCompleteDirectUpload = async (blob) => {\n const { signed_id: uploadedFile } = blob;\n\n window.logger(\"%c[JobApplicationFiles] onCompleteDirectUpload\", \"background-color: #F9FFD2\", {\n uploadedFile,\n blob,\n });\n\n if (uploadedFile) {\n setErrors(null);\n\n try {\n return await attachFileToJobApplication(\n {\n id: jobApplication.id,\n attachment: uploadedFile,\n },\n {\n onSuccess: () => {\n setUploading(false);\n },\n onError: (error: any) => {\n setUploading(false);\n if (error?.data?.errors?.documents) {\n addToast({ title: error?.data?.errors?.documents[0], kind: \"warning\" });\n } else {\n addToast({ title: `Could not upload file`, kind: \"warning\" });\n }\n },\n },\n );\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\n \"%c[JobApplicationFiles] handle error when updating JobApplication\",\n \"color: #FF7602\",\n {\n error,\n },\n );\n // if (error.response && error.response.data) setErrors(error.response.data.errors);\n return Promise.resolve();\n }\n } else {\n addToast({ title: `Could not upload file`, kind: \"warning\" });\n return Promise.resolve();\n }\n };\n\n const onStartDirectUpload = (loading) => {\n setUploading(loading);\n };\n\n const onInvalidFile = () => {\n addToast({ title: `File can not exceed 10MB`, kind: \"warning\" });\n };\n\n const handleDeleteDocument = async (e, attachment) => {\n e.preventDefault();\n\n return await deleteFileFromJobApplication(\n {\n id: jobApplication.id,\n attachment,\n },\n {\n onSuccess: () => {\n setUploading(false);\n },\n onError: (error: any) => {\n setUploading(false);\n if (error?.data?.errors?.documents) {\n addToast({ title: error?.data?.errors?.documents[0], kind: \"warning\" });\n } else {\n addToast({ title: `Could not delete file`, kind: \"warning\" });\n }\n },\n },\n );\n };\n\n // const actionButton = () => {\n // return (\n // \n // );\n // // }\n // };\n\n const renderFileList = (files, canDelete = true, privateResponseFileIds = []) => {\n return (\n \n {files.map((file) => {\n return (\n \n
    \n \n \n {file.filename}\n \n {privateResponseFileIds.includes(file.id) && (\n \n Admin only\n \n )}\n
    \n
    \n \n Download\n {/* */}\n \n {canDelete && (\n \n handleDeleteDocument(e, file.id)}>\n Delete\n \n \n )}\n
    \n
    \n );\n })}\n
    \n );\n };\n\n const resumeFile = (jobApplicationFilesData || []).filter(\n (file) => file.attachmentType === \"resume\" && file.recordType === \"JobApplication\",\n );\n const questionResponseFiles = (jobApplicationFilesData || []).filter(\n (file) => file.attachmentType === \"custom_file\" && file.recordType === \"QuestionResponse\",\n );\n const applicationFiles = [...resumeFile,...questionResponseFiles];\n const messageFiles = (jobApplicationFilesData || []).filter(\n (file) => file.attachmentType === \"files\" && file.recordType === \"ChannelMessage\",\n );\n const additionalFiles = (jobApplicationFilesData || []).filter(\n (file) => file.attachmentType === \"additional_files\" && file.recordType === \"JobApplication\",\n );\n const canViewMessageFiles =\n jobApplication.settings.messages === \"public\" || currentOrganizationUser.isAdmin;\n\n const privateResponseFileIds = (questionResponseFiles || []).filter((file) =>\n jobApplication?.questionResponses?.some((response) =>\n response.id === file.recordId && response.question?.visibilitySetting === VisibilitySetting.PRIVATE\n )).map((file) => file.id);\n\n return (\n \n \n Files\n {/* {actionButton()} */}\n \n \n \n Application attachments\n {jobApplicationFilesData && applicationFiles.length > 0 ? (\n renderFileList(applicationFiles, false, privateResponseFileIds)\n ) : (\n No files were included in the candidates application\n )}\n \n\n \n Message attachments\n {canViewMessageFiles ? (\n jobApplicationFilesData && messageFiles.length > 0 ? (\n renderFileList(messageFiles, false)\n ) : (\n \n No file attachments have been received from this candidate\n \n )\n ) : (\n \n Access to view message attachments is currently limited to admins\n \n )}\n \n\n \n Additional file storage\n {\n jobApplicationFilesData && additionalFiles.length > 0 ? (\n renderFileList(additionalFiles)\n ) : (\n \n No additional files have been uploaded to this job application\n \n )\n // \n }\n \n {uploading || isLoadingAttachment ? (\n \n \n \n ) : (\n \n )}\n \n \n \n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles;\n height: 100%;\n display: flex;\n flex-direction: column;\n `;\n});\n\nStyled.Content = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles_Content;\n ${[t.p(4), t.pb(0)]}\n overflow-y: auto;\n height: 100%;\n display: flex;\n flex-direction: column;\n `;\n});\n\nStyled.Section = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles_Section;\n ${[t.mb(4)]}\n `;\n});\n\nStyled.Header = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${t.p(4)}\n label: JobApplicationFiles_Header;\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n border-bottom: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n `;\n});\n\nStyled.Subtitle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles_Subtitle;\n ${t.text.h2}\n `;\n});\n\nStyled.Processing = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles_Processing;\n ${[t.mb(8), t.rounded.md]}\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n width: 100%;\n min-height: 6.625rem;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n\n > div {\n ${t.m(0)}\n }\n `;\n});\n\nStyled.List = styled.ul((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles_List;\n ${[t.mt(3), t.mb(4)]}\n `;\n});\n\nStyled.ListItem = styled.li((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles_ListItem;\n ${[t.px(4), t.pr(2), t.mb(\"-px\")]}\n min-height: ${t.spacing[12]};\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n &:first-of-type {\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top-left-radius: 0.4375rem;\n border-top-right-radius: 0.4375rem;\n }\n &:last-of-type {\n border-bottom-left-radius: 0.4375rem;\n border-bottom-right-radius: 0.4375rem;\n }\n div {\n display: flex;\n align-items: center;\n }\n `;\n});\n\nStyled.NoFiles = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles_List;\n ${[t.mt(3), t.mb(4), t.px(4), t.rounded.md, t.text.xs]}\n min-height: ${t.spacing[12]};\n display: flex;\n align-items: center;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n\nStyled.DocumentLink = styled.a((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles_DocumentLink;\n ${[t.mr(2), t.text.medium]}\n display: flex;\n align-items: center;\n justify-content: space-between;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n &:link,\n &:visited {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n &:hover {\n text-decoration: underline;\n }\n > svg {\n margin-left: 0.375rem;\n height: 1.125em;\n width: 1.125em;\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n }\n `;\n});\n\nStyled.DocumentName = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles_DocumentLinkName;\n > svg {\n ${t.mr(2)}\n }\n `;\n});\n\nStyled.SectionLabel = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles_Event;\n ${[t.ml(1), t.mb(3), t.text.bold]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n display: flex;\n flex-direction: row;\n align-items: center;\n position: relative;\n `;\n});\n\nStyled.Icon = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationFiles_Icon;\n ${[t.mr(2), t.ml(3), t.h(6), t.w(6), t.rounded.xs]}\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n\nStyled.Actions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Actions;\n ${[t.mt(8)]}\n\n > div {\n margin-bottom: 0;\n }\n `;\n});\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_Label;\n ${[t.mt(\"-px\"), t.mx(2), t.h(6), t.px(2), t.text.xs, t.rounded.xs, t.text.normal]}\n display: inline-flex;\n align-items: center;\n text-wrap: nowrap;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1.4;\n `;\n});\n","import React from \"react\";\nimport { Route, Redirect, Switch } from \"react-router-dom\";\nimport { useQueryClient } from \"react-query\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { useHotkeys } from \"react-hotkeys-hook\";\n\nimport JobApplicationSidebar from \"@ats/src/views/jobApplications/JobApplicationSidebar\";\nimport JobApplicationActivity from \"@ats/src/views/jobApplications/JobApplicationActivity\";\nimport JobApplicationResume from \"@ats/src/views/jobApplications/JobApplicationResume\";\nimport JobApplicationNotes from \"@ats/src/views/jobApplications/JobApplicationNotes\";\nimport JobApplicationMessages from \"@ats/src/views/jobApplications/JobApplicationMessages\";\nimport UnsavedChangesGuard from \"@ats/src/components/shared/UnsavedChangesGuard\";\nimport CommentModal from \"@ats/src/views/jobApplications/comments/CommentModal\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport { useJobApplication } from \"@shared/queryHooks/useJobApplication\";\nimport { getChannel } from \"@shared/queryHooks/useChannel\";\nimport { useJobStore } from \"@ats/src/lib/store/zustand/jobStore\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport JobApplicationFiles from \"./JobApplicationFiles\";\n\n// import { useWhyDidYouUpdate } from \"@shared/hooks/useWhyDidYouUpdate\";\n\nfunction JobApplicationContainer({\n match,\n location,\n hiringStageId,\n jobApplicationId,\n hiringStages,\n shallowJobApplication,\n jobApplicationsForStage,\n ...props\n}) {\n // useWhyDidYouUpdate(\"JobApplicationContainer \", props);\n\n // window.logger(\n // \"%c\\n\\n\\n\\n\\n\\n\\n\\n[JobApplicationContainer] render props\",\n // \"background: #EFDDEF; color: #1976D2\",\n // props,\n // );\n const { openModal, removeModal } = useModalContext();\n const [isDirty, setIsDirty] = React.useState(false);\n const [currentViewPath, setCurrentViewPath] = React.useState(null);\n const setJob = useJobStore((state) => state.set);\n\n const jobApplicationFromStore = useJobStore((state) => {\n const jaFromStore =\n shallowJobApplication != undefined ? state.jobApplicationsById[jobApplicationId] : null;\n\n window.logger(\n \"%c[JobApplicationContainer] jaFromStore\",\n \"background: #d66bd6; color: #0006D2\",\n {\n jaFromStore,\n shallowJobApplication,\n jobApplicationsById: state.jobApplicationsById,\n },\n );\n return jaFromStore;\n // return state.jobApplicationsById[jobApplicationId];\n });\n\n const {\n data: jobApplication,\n isLoading: isLoadingJobApplication,\n isFetching: isFetchingJobApplication,\n } = useJobApplication({\n jobApplicationId,\n initialData: jobApplicationFromStore,\n // initialData: null,\n });\n\n /* HOTKEYS\n --===================================================-- */\n useHotkeys(\n \"c\",\n (event) => {\n event.preventDefault();\n\n window.logger(\"%c[JobApplicationContainer] hot key\", \"color: #1976D2\", {\n event,\n jobApplication,\n });\n\n // searchInputRef.current.focus();\n // setNavigatingResults(false);\n\n const commentModal = (\n \n );\n\n openModal(commentModal);\n\n return false;\n },\n {},\n [],\n );\n // window.logger(\"%c[JobApplicationContainer] render\", \"background: #ecf1bd; color: #132404\", {\n // shallowJobApplication,\n // jobApplicationFromStore,\n // jobApplication,\n // jobApplicationId,\n // isLoadingJobApplication,\n // isFetchingJobApplication,\n // match,\n // locations: location.pathname.split(\"/\"),\n // });\n\n if (jobApplication) {\n setJob((state) => {\n state.jobApplicationsById[jobApplication.id] = jobApplication;\n });\n }\n\n const allChannel =\n jobApplication != undefined && jobApplication.channels != undefined\n ? jobApplication.channels.find((channel) => channel.kind === \"kind_all\")\n : null;\n\n const queryClient = useQueryClient();\n const prefetchChannel = React.useCallback(\n async (channel) => {\n window.logger(\"%c[JobApplicationContainer][useChannel] prefetchChannel\", \"color: #1976D2\", {\n channel,\n });\n await queryClient.prefetchQuery([\"channel\", channel.id], () => getChannel(channel.id));\n // The results of this query will be cached like a normal query\n },\n [queryClient],\n );\n\n // PREFETCH CHANNEL MESSAGES\n React.useEffect(() => {\n window.logger(\"%c[JobApplicationContainer] useEffect\", \"background-color: #bd19d2\", {\n allChannel,\n });\n if (allChannel) {\n prefetchChannel(allChannel);\n }\n }, [allChannel, prefetchChannel]);\n\n React.useEffect(() => {\n const possiblePaths = [\"overview\", \"resume\", \"messages\", \"files\", \"notes\"];\n const locations = location.pathname.split(\"/\").reverse();\n const currentView = locations[0];\n\n if (possiblePaths.includes(currentView)) {\n setCurrentViewPath(currentView);\n }\n }, [location]);\n\n // window.logger(\"%c\\n\\n[JobApplicationContainer] render\\n\\n\", \"background-color: #19d276\", {\n // jobApplication,\n // isFetching,\n // isSuccess,\n // isLoading,\n // isJobApplicationInCurrentStage: isJobApplicationInCurrentStage(),\n // });\n\n if (jobApplication == undefined) {\n // This is before the jobApplication == undefined Redirect so that we have time to fetch the jobApplicationsForStage\n window.logger(\"%c[JAC] NULL\", \"color: #FF0002\", { jobApplication });\n return null;\n } else if (jobApplication.hiringStageId !== hiringStageId) {\n // This handles the situation where a user has visited an old Url for a jobApplication that was in a different stage than it's current stage\n const redirectUrl = `/jobs/${jobApplication.jobId}/stages/${jobApplication.hiringStageId}/applicants/${jobApplication.id}`;\n window.logger(\"%c[JAC] REDIRECT\", \"color: #920954\", {\n jobApplication,\n hiringStageId,\n redirectUrl,\n });\n return ;\n }\n\n const { candidate } = jobApplication;\n\n const redirector = () => {\n if (currentViewPath != undefined) {\n return ;\n } else {\n return ;\n }\n };\n\n if (isLoadingJobApplication) {\n return ;\n }\n\n return (\n \n \n \n \n\n {\n window.logger(\n \"%c[JobApplicationContainer] UnsavedChangesGuard navigate\",\n \"color: #1976D2\",\n pathname,\n );\n setIsDirty(false);\n props.history.push(pathname);\n }}\n />\n\n \n \n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n {\n return (\n \n );\n }}\n />\n\n {redirector()}\n\n {/* {isInboxStage() ? (\n \n ) : (\n \n )} */}\n \n \n \n );\n}\n\nJobApplicationContainer.defaultProps = {};\n\nexport default JobApplicationContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div`\n label: JobApplicationContainer;\n display: flex;\n height: 100%;\n`;\n\nStyled.Sidebar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationContainer_Sidebar;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n flex-direction: column;\n border-right: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n flex-shrink: 0;\n width: 90vw;\n\n ${t.mq[\"lg\"]} {\n width: 27.536%;\n flex-shrink: 1;\n }\n `;\n});\n\nStyled.Content = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationContainer_Content;\n overflow-y: auto;\n flex-shrink: 0;\n width: 100vw;\n\n ${t.mq[\"lg\"]} {\n width: 72.464%;\n flex-shrink: 1;\n }\n `;\n});\n","import { useMutation, useQueryClient } from \"react-query\";\nimport { apiPost } from \"@shared/queryHooks/api\";\n\nconst createBulkMessage = async ({\n jobId,\n hiringStageId,\n body,\n excludedJobApplicationIds = null,\n includedJobApplicationIds = null,\n}) => {\n window.logger(\n \"%c[useBulkMessage] createBulkMessage\",\n \"background-color: #19F6D2\",\n {\n hiringStageId,\n body,\n includedJobApplicationIds,\n excludedJobApplicationIds,\n },\n );\n return await apiPost({\n path: `/jobs/${jobId}/bulk_channel_messages`,\n variables: {\n hiringStageId,\n body,\n includedJobApplicationIds,\n excludedJobApplicationIds,\n },\n });\n};\n\nexport function useCreateBulkMessage() {\n const queryClient = useQueryClient();\n return useMutation(createBulkMessage, {\n // Notice the second argument is the variables object that the `mutate` function receives\n // onSuccess: (data, variables) => {\n // queryClient.setQueryData([\"jobCategory\", { id: variables.id }], data);\n // },\n // Error\n // onError: (data, variables) => {\n // window.logger(\n // \"%c[useBulkMessage] handle error when creating Job Category\",\n // \"background-color: #19F6D2\",\n // {\n // data,\n // variables,\n // },\n // );\n // },\n // After success or failure, refetch the jobCategories query\n onSettled: () => {\n queryClient.invalidateQueries(\"bulkMessage\");\n },\n // throwOnError: true,\n });\n}\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\n// import FormTextarea from \"@ats/src/components/forms/FormTextarea\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\n\nimport ProseMirrorEditor from \"@shared/ProseMirror/Editor\";\n\nimport { useChannelMessageTemplates } from \"@shared/queryHooks/useChannelMessageTemplate\";\nimport { useCreateBulkMessage } from \"@shared/queryHooks/useBulkMessage\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { validateBulkMessage } from \"@shared/lib/validateWithYup\";\n\ntype Props = {\n jobId: number;\n hiringStageId: number;\n onCancel: () => void;\n jobApplications: [any];\n idsArray: Array;\n idsArrayType: string;\n candidatesCount: number;\n};\n\nfunction BulkMessageModal(props: Props) {\n const {\n jobId,\n hiringStageId,\n onCancel,\n jobApplications,\n idsArray,\n idsArrayType,\n candidatesCount,\n } = props;\n\n const addToast = useToastContext();\n const editorRef = React.useRef(undefined);\n const [errors, setErrors] = useState([]);\n const [isDirty, setIsDirty] = useState(false);\n\n const {\n mutate: createBulkMessage,\n error: errorOnCreate,\n isLoading: isLoadingCreate,\n } = useCreateBulkMessage();\n\n const { data: channelMessageTemplates } = useChannelMessageTemplates();\n\n const channelMessageTemplateSelectOptions = channelMessageTemplates\n ? channelMessageTemplates.items.map((template) => {\n return { value: template.id, label: template.name };\n })\n : [];\n\n // window.logger(\"%c[BulkMessageModal] render\", \"color: #1976D2\", {\n // props,\n // errorOnCreate,\n // idsArray,\n // idsArrayType,\n // candidatesCount,\n // });\n\n const handleChangeEditorState = () => {\n setErrors([]);\n setIsDirty(true);\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n const [isValid, validationErrors] = await validateBulkMessage({\n body: editorRef.current.serializedState(),\n jobApplications,\n });\n\n if (isValid) {\n handleSendBulkMessage();\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleSendBulkMessage = async () => {\n try {\n await createBulkMessage(\n {\n jobId,\n hiringStageId,\n body: editorRef.current.serializedState(),\n excludedJobApplicationIds: idsArrayType === \"excluded\" ? idsArray : [],\n includedJobApplicationIds: idsArrayType === \"included\" ? idsArray : [],\n },\n {\n onSuccess: (data) => {\n // window.logger(\n // \"%c[BulkMessageModal] handleSendBulkMessage onSuccess\",\n // \"background-color: #1cd219\",\n // { data },\n // );\n addToast({\n title: `Message sent to ${candidatesCount} candidate${\n candidatesCount === 1 ? \"\" : \"s\"\n }`,\n kind: \"success\",\n });\n },\n onError: (error: any) => {\n // window.logger(\n // \"%c[BulkMessageModal] handleSendBulkMessage onError\",\n // \"background-color: #d21919\",\n // { error },\n // );\n if (error?.data?.errors?.general != undefined) {\n addToast({\n title: error?.data?.errors?.general[0],\n delay: 20000,\n kind: \"error\",\n });\n }\n },\n onSettled: (data) => {\n // BulkMessage was successfully created\n onCancel(); // this closes the modal\n },\n },\n );\n } catch (error) {\n // Uh oh, something went wrong\n window.logger(\"%c[BulkMessageModal] handle error when SendBulkMessage\", \"color: #FF7602\", {\n error,\n // error: error.response.data,\n });\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n const handleChangeSelectChannelMessageTemplate = (name, value) => {\n if (channelMessageTemplates == undefined) {\n return;\n }\n\n const template = channelMessageTemplates.items.find(\n (channelMessageTemplate) => channelMessageTemplate.id === value,\n );\n\n // setChannelMessageTemplate(template);\n if (template) {\n editorRef.current.insertTextAtCurrentSelection(template.body);\n }\n\n setIsDirty(true);\n\n window.logger(\n \"%c[BulkMessageModal] handleChangeSelectChannelMessageTemplate\",\n \"color: #F976D2\",\n {\n name,\n value,\n template,\n },\n );\n };\n\n const submitButton = (\n \n \n Send message\n \n \n \n );\n\n return (\n \n \n {candidatesCount === 0 ? (\n

    \n No candidates selected. Use the checkboxes next to the candidate names to select the\n candidates to message. To select all candidates within this hiring stage, use the checkbox next to the stage name.\n

    \n ) : (\n

    \n Send a message to {candidatesCount} candidates within this hiring stage. You can\n choose an existing message template or draft one from scratch.\n

    \n )}\n
    \n \n \n\n \n {/* */}\n \n \n \n \n );\n}\n\nBulkMessageModal.propTypes = {\n onCancel: PropTypes.func.isRequired,\n};\n\nexport default BulkMessageModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: BulkMessageModal_Instructions;\n ${[t.mb(5)]}\n\n span {\n font-weight: bold;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n `;\n});\n\nStyled.TemplateInput = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: BulkMessageModal_TemplateInput;\n > div {\n ${[t.mb(0)]}\n }\n textarea {\n min-height: 12rem;\n }\n `;\n});\n\nStyled.VariableButtons = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: BulkMessageModal_VariableButtons;\n transition: box-shadow 0.2s ease;\n button {\n ${[t.h(6), t.px(2), t.text.xs, t.mr(1), t.mt(1)]}\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: BulkMessageModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { History } from \"react-router-dom\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport JobStageAutomationInfo from \"@ats/src/views/jobApplications/JobStageAutomationInfo\";\nimport { FeatureFlipper } from \"@ats/src/components/shared/FeatureFlipper\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { nextLogical } from \"@ats/src/lib/utils/helpers\";\n\nimport { useBulkMoveJobApplicationsToStage } from \"@shared/queryHooks/useJobApplication\";\nimport { HiringStage } from \"@ats/types/job\";\nimport { activeHiringStageAutomation } from \"@ats/src/lib/utils/helpers\";\n\ntype Props = {\n jobId: number;\n onCancel: () => void;\n currentStage: HiringStage;\n hiringStages: Array;\n idsArray: Array;\n idsArrayType: string;\n candidatesCount: number;\n firstRemainingJobApplicationUrl: string | boolean;\n resetList: () => void;\n history: History;\n};\n\nfunction BulkMoveModal(props: Props) {\n const {\n jobId,\n onCancel,\n currentStage,\n hiringStages,\n idsArray,\n idsArrayType,\n candidatesCount,\n firstRemainingJobApplicationUrl,\n history,\n resetList\n } = props;\n const addToast = useToastContext();\n const nextLogicalHiringStage = nextLogical({\n list: hiringStages.filter((stage) => stage.kind !== \"kind_archived\"),\n currentItem: currentStage,\n });\n const [errors, setErrors] = React.useState([]);\n const [stageId, setStageId] = React.useState(\n nextLogicalHiringStage ? nextLogicalHiringStage.id : currentStage.id,\n );\n\n const {\n mutate: moveBulkJobApplicationsToStage,\n isLoading: isLoadingMoveBulkJobApplicationsToStage,\n } = useBulkMoveJobApplicationsToStage();\n\n const { dismissModalWithAnimation } = useModalContext();\n const hiringStageOptions = hiringStages\n ? hiringStages\n .filter((stage) => stage !== currentStage) // && stage.kind !== \"kind_archived\")\n .map((hiringStage) => ({ value: hiringStage.id, label: hiringStage.name }))\n : [];\n const targetStageUrl = `/jobs/${jobId}/stages/${stageId}/applicants`;\n const targetStageName = hiringStageOptions.find((option) => option.value === stageId)?.label;\n const targetStageAutomation = activeHiringStageAutomation(hiringStages, stageId);\n\n const handleOnCancel = (event) => {\n if (event != undefined) {\n event.preventDefault();\n }\n dismissModalWithAnimation(() => onCancel);\n };\n\n const handleOnConfirm = (event) => {\n event.preventDefault();\n\n handleConfirmation();\n // dismissModalWithAnimation(() => handleConfirmation); // have to call the function like this so that onConfirm does not run immediately\n };\n\n const handleConfirmation = () => {\n window.logger(\n \"%c[BulkMoveModal] handleConfirmation\",\n \"background-color: #197600; color: #FFF;\",\n {\n stageId,\n firstRemainingJobApplicationUrl,\n idsArrayType,\n idsArray,\n },\n );\n\n moveBulkJobApplicationsToStage(\n {\n jobId,\n excludedJobApplicationIds: idsArrayType === \"excluded\" ? idsArray : [],\n includedJobApplicationIds: idsArrayType === \"included\" ? idsArray : [],\n targetHiringStageId: stageId,\n sourceHiringStageId: currentStage.id,\n },\n {\n onSuccess: (data) => {\n window.logger(\"%c[BulkMoveModal] onSuccess\", \"color: #19d232\", { data });\n \n addToast({\n title: `Moved ${candidatesCount} candidate${candidatesCount === 1 ? \"\" : \"s\"} to ${targetStageName}`,\n kind: \"success\",\n delay: 6000,\n linkTo: targetStageUrl,\n });\n resetList();\n moveFocusToFirstRemainingJobApplication();\n dismissModalWithAnimation(() => onCancel);\n },\n\n onError: (response) => {\n window.logger(\"%c[BulkMoveModal] onError\", \"color: #d28819\", { response });\n // addToast({\n // title: `An unknown error occurred, please try again or contact support@polymer.co`,\n // kind: \"warning\",\n // delay: 5000,\n // });\n },\n },\n );\n };\n\n const handleChangeStage = (name, value) => {\n setStageId(value);\n };\n\n /* MOVE FOCUS TO FIRST REMAINING JOB APPLICATION\n --===================================================-- */\n const moveFocusToFirstRemainingJobApplication = () => {\n window.logger(\"%c[BulkMoveModal] moveFocusToFirstRemainingJobApplication\", \"background-color: #19d232\", {\n firstRemainingJobApplicationUrl,\n });\n\n if (firstRemainingJobApplicationUrl) {\n history.push(firstRemainingJobApplicationUrl);\n }\n };\n\n const modalButtons = (\n \n \n Move\n \n \n \n );\n\n const selectHiringStageValue = () => {\n const stage = hiringStageOptions.find((stage) => stage.value === stageId);\n return (stage && stage.value) || null;\n };\n\n return (\n \n \n {candidatesCount === 0 ? (\n <>\n No candidates selected. Use the checkboxes next to the candidate names to select the candidates to move. To select all candidates within this hiring stage, use the checkbox next to the stage name.\n \n ) : (\n <>\n You are moving {candidatesCount} candidate{candidatesCount === 1 ? \"\" : \"s\"} from the {currentStage.name} stage. Select the hiring stage to move them to.\n \n )}\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default BulkMoveModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: BulkMoveModal_Instructions;\n ${[t.mb(5)]}\n\n span {\n font-weight: bold;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: BulkMoveModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n\nStyled.AutomationInfoContainer = styled.div`\n label: BulkMoveModal_AutomationInfoContainer;\n margin-top: -1rem;\n height: 4.5rem;\n`;\n","import React from \"react\";\n\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport BulkMessageModal from \"@ats/src/components/modals/BulkMessageModal\";\nimport BulkMoveModal from \"@ats/src/components/modals/BulkMoveModal\";\n\nimport { hiringStagesForJob } from \"@ats/src/lib/utils/helpers\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { ListState } from \"@shared/hooks/useChecklist\";\n\nfunction JobStageMenu(props: {\n job?: { id: number };\n currentStage: any;\n jobApplications: [any];\n listState: ListState;\n history: History;\n resetList: () => void;\n}) {\n const {\n jobApplications,\n job,\n currentStage,\n listState: { itemIdsSet, itemIdsSetType, allSelected },\n history,\n } = props;\n const { openModal, removeModal } = useModalContext();\n // const job = useJobStore(React.useCallback((state) => state.jobsById[jobId], [jobId])) as any;\n // Get the Job Application to move focus to after move\n const firstJobApplicationNotSelected = React.useMemo(() => {\n if (itemIdsSetType === \"included\") {\n return jobApplications.find((jobApplication) => !itemIdsSet.has(jobApplication.id));\n } else {\n return jobApplications.find((jobApplication) => itemIdsSet.has(jobApplication.id));\n }\n }, [jobApplications, itemIdsSetType, itemIdsSet]);\n\n const firstRemainingJobApplicationUrl =\n firstJobApplicationNotSelected != undefined &&\n `/jobs/${firstJobApplicationNotSelected.jobId}/stages/${firstJobApplicationNotSelected.hiringStageId}/applicants/${firstJobApplicationNotSelected.id}`;\n\n const hiringStages = React.useMemo(() => hiringStagesForJob(job), [job]);\n const itemIds = Array.from(itemIdsSet);\n\n // window.logger(\"%c[JobStageMenu] Selection \", \"background: #EFDDEF; color: #197682\", {\n // allSelected,\n // currentStageCount: currentStage.jobApplicationsCount,\n // setSize: itemIdsSet.size,\n // firstJobApplicationNotSelected,\n // });\n\n const candidatesCount =\n allSelected\n ? currentStage.jobApplicationsCount\n : itemIdsSetType === \"included\" && itemIds.length > 0\n ? itemIds.length\n : itemIdsSetType === \"excluded\" && itemIds.length > 0\n ? currentStage.jobApplicationsCount - itemIds.length\n : 0;\n\n const handleOnClickMessageAll = (event) => {\n event.preventDefault();\n\n const modal = (\n removeModal()}\n jobApplications={jobApplications}\n idsArray={itemIds}\n idsArrayType={itemIdsSetType}\n candidatesCount={candidatesCount}\n />\n );\n\n openModal(modal);\n };\n\n const handleOnClickMoveAll = (event) => {\n event.preventDefault();\n\n const modal = (\n removeModal()}\n currentStage={currentStage}\n hiringStages={hiringStages}\n idsArray={itemIds}\n idsArrayType={itemIdsSetType}\n resetList={props.resetList}\n candidatesCount={candidatesCount}\n firstRemainingJobApplicationUrl={firstRemainingJobApplicationUrl}\n history={history}\n />\n );\n\n openModal(modal);\n };\n\n return (\n \n \n \n \n );\n}\n\nJobStageMenu.propTypes = {};\n\nJobStageMenu.defaultProps = {};\n\nexport default JobStageMenu;\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport NavItem from \"@ats/src/components/shared/NavItem\";\nimport FormCheckbox from \"@ats/src/components/forms/FormCheckbox\";\n\ninterface Props {\n id: number;\n to: string;\n icon: string;\n label: string;\n onChange?: (id, applicationsCount) => void;\n checked?: boolean;\n applicationsCount: number;\n}\n\nfunction JobApplicationNavItem({ id, applicationsCount, ...props }: Props) {\n // window.logger(\n // \"%c[JobApplicationNavItem] render\",\n // \"background: #EFDDEF; color: #1976D2\",\n // {\n // id,\n // props,\n // applicationCount\n // },\n // );\n\n const onChangeSelect = () => {\n props.onChange(id, applicationsCount);\n };\n\n return (\n \n \n \n \n );\n}\n\nexport default JobApplicationNavItem;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationNavItem;\n display: flex;\n position: relative;\n width: 100%;\n ${[t.pl(2)]}\n\n a {\n margin-left: -8px;\n width: calc(100% - 32px);\n }\n `;\n});\n","import { useReducer, useCallback } from \"react\";\n\nexport type ListState = {\n itemIdsSet: Set;\n allSelected: boolean;\n itemIdsSetType: \"excluded\" | \"included\";\n};\n\ntype Action =\n | { type: \"SELECT_ITEM\"; payload: number; totalItemsPossible: number }\n | { type: \"DESELECT_ITEM\"; payload: number }\n | { type: \"SELECT_ALL\" }\n | { type: \"DESELECT_ALL\" };\n\nfunction checklistReducer(state: ListState, action: Action): ListState {\n const { itemIdsSet, itemIdsSetType } = state;\n switch (action.type) {\n case \"SELECT_ITEM\": {\n let newState = { ...state };\n if (itemIdsSetType === \"included\") {\n const newIncludedSet = new Set(itemIdsSet).add(action.payload);\n newState = {\n ...state,\n itemIdsSet: newIncludedSet,\n allSelected: newIncludedSet.size === action.totalItemsPossible,\n };\n } else if (itemIdsSetType === \"excluded\") {\n const newExcludedSet = new Set(itemIdsSet);\n newExcludedSet.delete(action.payload);\n newState = {\n ...state,\n itemIdsSet: newExcludedSet,\n allSelected: newExcludedSet.size === 0,\n };\n }\n return newState;\n }\n case \"DESELECT_ITEM\": {\n let newState = { ...state };\n if (itemIdsSetType === \"included\") {\n const newIncludedSet = new Set(itemIdsSet);\n newIncludedSet.delete(action.payload);\n newState = {\n ...state,\n itemIdsSet: newIncludedSet,\n allSelected: false,\n };\n } else if (itemIdsSetType === \"excluded\") {\n const newExcludedSet = new Set(itemIdsSet).add(action.payload);\n newState = {\n ...state,\n itemIdsSet: newExcludedSet,\n allSelected: false,\n };\n }\n return newState;\n }\n case \"SELECT_ALL\":\n return {\n ...state,\n itemIdsSet: new Set(),\n allSelected: true,\n itemIdsSetType: \"excluded\",\n };\n case \"DESELECT_ALL\":\n return { ...state, itemIdsSet: new Set(), allSelected: false, itemIdsSetType: \"included\" };\n default: {\n throw new Error(\"Unhandled action type in checklist reducer\");\n }\n }\n}\n\nexport const useChecklist = () => {\n const [state, dispatch] = useReducer(checklistReducer, {\n itemIdsSet: new Set(),\n allSelected: false,\n itemIdsSetType: \"included\",\n } as ListState);\n\n const selectItem = useCallback((id: number, totalItemsPossible: number) => {\n dispatch({ type: \"SELECT_ITEM\", payload: id, totalItemsPossible: totalItemsPossible });\n }, []);\n\n const deselectItem = useCallback((id: number) => {\n dispatch({ type: \"DESELECT_ITEM\", payload: id });\n }, []);\n\n const selectAll = useCallback(() => {\n dispatch({ type: \"SELECT_ALL\" });\n }, []);\n\n const deselectAll = useCallback(() => {\n dispatch({ type: \"DESELECT_ALL\" });\n }, []);\n\n const { itemIdsSet, allSelected, itemIdsSetType } = state;\n\n return {\n state: {\n itemIdsSet,\n allSelected,\n itemIdsSetType,\n },\n actions: {\n selectItem,\n deselectItem,\n selectAll,\n deselectAll,\n },\n };\n};\n","/* eslint-disable @getify/proper-arrows/return */\nimport React from \"react\";\nimport { Route, Redirect, Switch } from \"react-router-dom\";\nimport isEmpty from \"lodash/isEmpty\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport JobApplicationContainer from \"@ats/src/views/jobApplications/JobApplicationContainer\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\nimport JobStageMenu from \"@ats/src/views/jobApplications/JobStageMenu\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport LoadMoreTrigger from \"@ats/src/components/shared/LoadMoreTrigger\";\nimport FormCheckbox from \"@ats/src/components/forms/FormCheckbox\";\nimport JobApplicationNavItem from \"@ats/src/views/jobApplications/JobApplicationNavItem\";\n\nimport { useInfiniteJobApplicationsForStage } from \"@shared/queryHooks/useJobApplication\";\nimport { useJobStore } from \"@ats/src/lib/store/zustand/jobStore\";\nimport { useChecklist } from \"@shared/hooks/useChecklist\";\n\nimport { arrayToObject } from \"@ats/src/lib/utils/helpers\";\nimport { CandidatePrivacyStatus } from \"@shared/types/candidate\";\n\n// import { useWhyDidYouUpdate } from \"@shared/hooks/useWhyDidYouUpdate\";\n\nfunction JobApplicationListContainer({ match, history, job, hiringStages, orgAdminJobsListUrl, ...props }) {\n // useWhyDidYouUpdate(\" JobApplicationListContainer\", props);\n // const { match, job } = props;\n const stageId = match.params.stageId;\n const candidatesByNameListRef = React.useRef(null);\n const [canLoadMore, setCanLoadMore] = React.useState(true);\n const { state: listState, actions } = useChecklist();\n\n const { selectItem, deselectItem, selectAll, deselectAll } = actions;\n\n const {\n data: jobApplicationsForStageData,\n isLoading: isLoadingJobApplicationsForStage,\n isFetchingNextPage,\n hasNextPage,\n fetchNextPage,\n } = useInfiniteJobApplicationsForStage(\n { jobId: job.id, stageId }, //jobData\n );\n\n const scrollHandler = React.useCallback(() => {\n // window.logger(\"%c[JobApplicationListContainer] scroll event\", \"color: #209425\", {\n // scrollTop: candidatesByNameListRef.current.scrollTop,\n // clientHeight: candidatesByNameListRef.current.clientHeight,\n // heightOfList: candidatesByNameListRef.current.scrollTop + candidatesByNameListRef.current.clientHeight,\n // scrollHeight: candidatesByNameListRef.current.scrollHeight,\n // });\n if (\n candidatesByNameListRef.current.scrollTop +\n candidatesByNameListRef.current.clientHeight +\n 100 >=\n candidatesByNameListRef.current.scrollHeight\n ) {\n if (canLoadMore) fetchNextPage();\n }\n }, [fetchNextPage, canLoadMore]);\n\n React.useEffect(() => {\n const listEl = candidatesByNameListRef.current;\n\n if (listEl) listEl.addEventListener(\"scroll\", scrollHandler);\n\n return () => {\n listEl.removeEventListener(\"scroll\", scrollHandler);\n };\n }, [candidatesByNameListRef, scrollHandler]);\n // }, [candidatesByNameListRef, fetchNextPage, hasNextPage]);\n\n /* Guard against extra loading\n --===================================================-- */\n React.useEffect(() => {\n if (canLoadMore && hasNextPage === false) setCanLoadMore(false);\n }, [hasNextPage, canLoadMore]);\n\n const jobApplications =\n jobApplicationsForStageData != undefined && jobApplicationsForStageData.pages != undefined\n ? jobApplicationsForStageData.pages.reduce((accumulator, currentValue) => {\n return accumulator.concat(currentValue && currentValue.items ? currentValue.items : []);\n }, [])\n : [];\n\n const currentStage = useJobStore(\n React.useCallback((state) => state.hiringStagesById[stageId], [stageId]),\n );\n const setJob = useJobStore((state) => state.set);\n\n const jobApplicationsForStage = React.useMemo(\n () =>\n !isEmpty(jobApplications)\n ? jobApplications.filter((jobApplication: any) => {\n return (\n jobApplication.hiringStageId === currentStage.id // && jobApplication.status === \"status_in_process\"\n );\n })\n : [],\n [jobApplications, currentStage.id],\n );\n\n if (jobApplicationsForStage != undefined) {\n setJob((state) => {\n state.jobApplicationsById = arrayToObject(jobApplicationsForStage);\n });\n }\n\n const firstJobApplicationId = !isEmpty(jobApplicationsForStage)\n ? jobApplicationsForStage[0].id\n : null;\n\n window.logger(\n \"%c[JobApplicationListContainer] Infinite \",\n \"background: #EFDDEF; color: #1976D2\",\n {\n //props\n job,\n stageId,\n // match,\n jobApplications,\n jobApplicationsForStageData,\n jobApplicationsForStage,\n firstJobApplicationId,\n isFetchingNextPage,\n hasNextPage,\n canLoadMore,\n itemIdsSet: listState.itemIdsSet,\n itemIdsSetType: listState.itemIdsSetType,\n },\n );\n /* Handle Selections\n ________________________________*/\n //If stage id changes, reset list\n React.useEffect(() => {\n deselectAll();\n }, [currentStage.id, deselectAll]);\n // Remove ids from selectedIds if no longer in jobApplicationsForStage\n const idsToRemove = React.useMemo(() => {\n if (listState.itemIdsSetType === \"included\") {\n return Array.from(listState.itemIdsSet).filter(\n (id) => !jobApplicationsForStage.some((jobApplication) => jobApplication.id === id),\n );\n } else {\n return [];\n }\n }, [jobApplicationsForStage, listState.itemIdsSet, listState.itemIdsSetType]);\n\n React.useEffect(() => {\n idsToRemove.forEach((id) => {\n deselectItem(id);\n });\n }, [idsToRemove, deselectItem]);\n\n const isChecked = (id: number) => {\n if (listState.itemIdsSetType === \"included\") {\n return listState.itemIdsSet.has(id);\n } else if (listState.itemIdsSetType === \"excluded\") {\n return !listState.itemIdsSet.has(id);\n }\n };\n // Toggle selection functions\n const toggleSelectItem = (jobApplicationId: number, currentStageApplicationsCount: number) => {\n const itemIsChecked = isChecked(jobApplicationId);\n if (itemIsChecked) {\n deselectItem(jobApplicationId);\n } else {\n selectItem(jobApplicationId, currentStageApplicationsCount);\n }\n };\n\n const toggleSelectAll = () => {\n if (listState.allSelected) {\n deselectAll();\n } else {\n selectAll();\n }\n };\n\n /* Candidates list\n ________________________________*/\n\n const candidateList = () => {\n if (isLoadingJobApplicationsForStage) {\n return ;\n }\n\n if (isEmpty(jobApplicationsForStage)) {\n return (\n \n );\n }\n\n return jobApplicationsForStage.map((jobApplication) => {\n const { candidate, id } = jobApplication;\n\n let jobApplicationShowUrl = `/jobs/${jobApplication.jobId}/stages/${currentStage.id}/applicants/${id}`;\n\n return (\n \n );\n });\n };\n\n return (\n \n \n \n \n {currentStage?.jobApplicationsCount > 0 ? (\n \n ) : }\n

    {currentStage.name}

    \n
    \n {!isEmpty(jobApplicationsForStage) && (\n deselectAll()}\n />\n )}\n
    \n \n {candidateList()}\n {isFetchingNextPage && (\n \n \n \n )}\n {/* {canLoadMore && !isFetchingNextPage && ( */}\n {hasNextPage && !isFetchingNextPage && (\n {\n if (hasNextPage) {\n fetchNextPage();\n }\n }}\n />\n )}\n \n
    \n \n \n {\n const params = renderProps.match.params;\n const jobId = Number(params.jobId);\n const jobApplicationId = Number(params.jobApplicationId);\n const hiringStageId = Number(params.stageId);\n const shallowJobApplication = jobApplications.find(\n (ja) => ja.jobId === jobId && ja.id === jobApplicationId,\n );\n\n window.logger(\n \"%c[JobApplicationListContainer] RENDER JOBAPPLICATION CONTAINER\",\n \"background-color: #d25419\",\n { props, renderProps, match, shallowJobApplication },\n );\n\n // if (shallowJobApplication == undefined && jobApplicationId != undefined) {\n // return null;\n // }\n\n // if (shallowJobApplication != undefined) {\n // return (\n // \n // );\n // } else {\n // const redirectUrl = `${match.url}`;\n // // window.logger(\"%c[JALC] no shallowJobApplication\", \"color: #3a7a05\", {\n // // jobApplications,\n // // shallowJobApplication,\n // // jobApplicationId,\n // // redirectUrl,\n // // });\n // return ;\n // }\n\n return (\n \n );\n }}\n />\n {/* Redirect to the first JobApplication in this Stage if there are any */}\n {firstJobApplicationId && }\n \n \n
    \n );\n}\n\nJobApplicationListContainer.propTypes = {};\nJobApplicationListContainer.defaultProps = {};\n\nexport default JobApplicationListContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div`\n label: JobApplicationListContainer;\n display: flex;\n height: 100%;\n overflow-y: hidden;\n`;\n\nStyled.Sidebar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationListContainer_Sidebar;\n ${[t.pb(10)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n border-right: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n flex-shrink: 0;\n width: 50vw;\n\n ${t.mq[\"lg\"]} {\n width: 21.5909091%;\n flex-shrink: 1;\n }\n `;\n});\n\nStyled.Header = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationListContainer_Header;\n ${[t.h(10), t.pl(2)]}\n padding-right: 0.375rem;\n display: flex;\n align-items: center;\n justify-content: space-between;\n `;\n});\n\nStyled.HeaderContent = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationListContainer_HeaderContent;\n display: flex;\n align-items: center;\n overflow: hidden;\n\n h3 {\n ${[t.text.bold, t.mr(1)]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n ${t.pl(2)}\n }\n `;\n});\n\nStyled.CandidateList = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationListContainer_CandidateList;\n height: 100%;\n overflow-y: auto;\n `;\n});\n\nStyled.Content = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationListContainer_Content;\n width: 78.4090909%;\n `;\n});\n\nStyled.PageLoader = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationListContainer_Name;\n display: flex;\n justify-content: center;\n `;\n});\n","import React, { useState, useEffect } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport CopyField from \"@ats/src/components/shared/CopyField\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\n\nexport default function JobCustomShareUrlForm(props) {\n const { jobUrl, onCancel, onFormUpdate, isDirty } = props;\n window.logger(\"%c[JobShareForm] \", \"background: #EFDDEF; color: #1976D2\", { props });\n\n const addToast = useToastContext();\n const [source, setSource] = useState(\"\");\n const [errors, setErrors] = useState([]);\n const [customShareUrl, setCustomShareUrl] = useState(\"\");\n\n const createShareLink = () => {\n const customSource = encodeURIComponent(source);\n const sourceParam = customSource.length > 0 ? `?source=${customSource}` : \"\";\n const shareUrl = `${jobUrl}${sourceParam}`;\n setCustomShareUrl(shareUrl);\n };\n\n const handleChangeSource = (_, value) => {\n setSource(value);\n setErrors([]);\n if (onFormUpdate) {\n onFormUpdate();\n }\n };\n\n /* NOTE REGARDING CHANGING BACK TO USING THE \"Create link\" BUTTON\n\n The below useEffect is to keep the copy url field up to date with the input field IF we decided to remove the \"Create link\" button.\n\n To return to using the \"Create link\" button uncomment all the currently commented out code & remove or comment out the below useEffect\n */\n\n useEffect(() => {\n createShareLink();\n }, [source]);\n\n // const handleSaveUrlState = (event) => {\n // event.preventDefault();\n // createShareLink()\n // }\n\n const Buttons = (\n \n {/* \n Create link\n */}\n \n \n );\n\n const CopyLink = (\n <>\n \n \n \n );\n\n return (\n \n \n \n {CopyLink}\n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.ShareUrl = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobCustomShareUrlForm_ShareUrl;\n ${[t.mb(5), t.h(8), t.pl(2), t.rounded.sm]}\n border: 1px solid ${t.dark ? t.color.gray[600] : t.color.gray[300]};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.gray[100]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n display: flex;\n justify-content: space-between;\n align-items: center;\n overflow: hidden;\n\n > div {\n height: 100%;\n }\n\n span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n `;\n});\n\nStyled.CopyButton = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: JobCustomShareUrlForm_CopyButton;\n ${[t.w(8), t.ml(1)]}\n height: 100%;\n border: none;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n\n &:hover {\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobCustomShareUrlForm_ButtonContainer;\n ${t.mt(4)}\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React from \"react\";\nimport indefinate from \"indefinite\";\nimport { css } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\nexport default function JobShareLinks(props) {\n const { job } = props;\n window.logger(\"%c[JobShareLinks] \", \"background: #EFDDEF; color: #1976D2\", { props });\n const { currentOrganization } = useCurrentSession();\n\n const jobUrl = `${currentOrganization?.careersPageUrl}/${job.id}`;\n\n //names - two versions - of ised anywhere other than in the tweet the subbed name should be used\n const companyName = currentOrganization?.name\n // const subbedCompanyName = companyName.replace(new RegExp(\"&\", \"g\"), \"and\")\n const jobTitle = job?.title\n // const subbedJobTitle = jobTitle.replace(new RegExp(\"&\", \"g\"), \"and\")\n\n //add \"a\" or \"an\"\n const articlerizedJobTitle = (title) => {\n if (title) {\n return indefinate(title)\n } else {\n return title\n };\n };\n\n\n // const metaDescription = `${subbedCompanyName} is hiring ${articlerizedJobTitle(subbedJobTitle)}`\n const tweet = `${companyName} is hiring ${articlerizedJobTitle(jobTitle)}` //Twitter can handle the \"&\" ampersand symbol\n\n // const handleShareToEmailClick = () => {\n // const emailShareUrl = `${jobUrl}?source=employee_email`\n // const emailBody = `Take a look at this job opening at ${subbedCompanyName}: ${emailShareUrl}`\n // window.open(`mailto:?subject=${metaDescription}&body=${emailBody}`, \"_blank\");\n // };\n\n const handleShareToTwitterClick = () => {\n const twitterShareUrl = `${jobUrl}?source=twitter`\n const tweetParam = encodeURIComponent(tweet)\n window.open(`https://twitter.com/intent/tweet?text=${tweetParam}&url=${twitterShareUrl}`, \"_blank\");\n };\n\n const handleShareToLinkedinClick = () => {\n const linkedinShareUrl = `${jobUrl}?source=linkedin`\n window.open(`https://www.linkedin.com/sharing/share-offsite/?url=${linkedinShareUrl}`, \"_blank\");\n };\n\n return (\n <>\n \n {/* \n \n \n */}\n \n \n \n \n )\n};\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.JobShareLinksContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobShareLinks_JobShareLinksContainer;\n ${t.mb(6)};\n display: flex;\n flex-direction: column;\n\n button {\n ${t.mb(3)};\n &:last-of-type {\n ${t.mb(0)};\n }\n }\n\n ${t.mq['md']} {\n flex-direction: row;\n\n button {\n ${[t.mr(3), t.mb(0)]};\n &:last-of-type {\n ${t.mr(0)};\n }\n }\n }\n `;\n});\n\nStyled.ShareLabel = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobShareLinks_ShareLabel;\n display: flex;\n align-items: center;\n svg {\n ${t.mr(2)}\n }\n `;\n});","import React from \"react\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport JobCustomShareUrlForm from \"@ats/src/views/jobApplications/jobSetup/components/JobCustomShareUrlForm\";\nimport JobShareLinks from \"@ats/src/views/jobApplications/jobSetup/components/JobShareLinks\";\n\nfunction ShareJobModal(props) {\n const { job, jobUrl, onCancel } = props;\n const [isDirty, setIsDirty] = React.useState(false);\n\n return (\n \n \n Easily share this job post on social media using the buttons below.\n \n \n \n Or generate a custom link to track applications that originate from it. The source will be displayed in the candidate's application.\n \n setIsDirty(true)} isDirty={isDirty} />\n \n );\n}\n\nexport default ShareJobModal;\n\n/* Styled Components\n======================================================= */\nconst Styled: any = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: NewJobCenterModal_Instructions;\n ${[t.mb(5)]}\n `;\n});","import { useState, useEffect } from \"react\";\n\n// Hook\nlet cachedScripts = [];\nexport default function useScript(src) {\n // Keeping track of script loaded and error state\n const [state, setState] = useState({\n loaded: false,\n error: false,\n });\n\n useEffect(\n () => {\n // If cachedScripts array already includes src that means another instance ...\n // ... of this hook already loaded this script, so no need to load again.\n if (cachedScripts.includes(src)) {\n setState({\n loaded: true,\n error: false,\n });\n } else {\n cachedScripts.push(src);\n\n // Create script\n let script = document.createElement(\"script\");\n script.src = src;\n script.async = true;\n\n // Script event listener callbacks for load and error\n const onScriptLoad = () => {\n setState({\n loaded: true,\n error: false,\n });\n };\n\n const onScriptError = () => {\n // Remove from cachedScripts we can try loading again\n const index = cachedScripts.indexOf(src);\n if (index >= 0) cachedScripts.splice(index, 1);\n script.remove();\n\n setState({\n loaded: true,\n error: true,\n });\n };\n\n script.addEventListener(\"load\", onScriptLoad);\n script.addEventListener(\"error\", onScriptError);\n\n // Add script to document body\n document.body.appendChild(script);\n\n // Remove event listeners on cleanup\n return () => {\n script.removeEventListener(\"load\", onScriptLoad);\n script.removeEventListener(\"error\", onScriptError);\n };\n }\n },\n [src], // Only re-run effect if script src changes\n );\n\n return [state.loaded, state.error];\n}\n","import React, { useState } from \"react\";\nimport useScript from \"@shared/hooks/useScript\";\nimport AsyncSelect from \"react-select/lib/Async\";\nimport { errorTextViaYupOrRailsOrJoi } from \"@shared/lib/formHelpers\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\n\ntype Props = {\n value: string;\n name: string;\n label: string;\n description: string;\n language: string;\n className: string;\n onChange: (value: any) => void;\n isRequired?: boolean;\n children?: any;\n errors: any;\n};\n\nconst FormSelectCity = (props: Props) => {\n let errorText = errorTextViaYupOrRailsOrJoi(props);\n\n const [state, setState] = useState({\n value: props.value || \"\",\n });\n\n // wrkhq.com has a Google cloud account and has the Maps API enabled\n const [mapsScriptLoaded, mapsScriptError] = useScript(\n `https://maps.googleapis.com/maps/api/js?key=${(window as any).GOOGLE_MAPS_API_KEY\n }&libraries=places&language=${props.language}`,\n );\n\n // Geocode based on place_id\n // https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJOV0UiM4sT4gRCxvJBEeoYXY&key=AIzaSyDX-jh453PLhf9_jinTpIbic-PfC_I-SXw\n\n // Timezone from Lat/Long from Geocode\n // https://maps.googleapis.com/maps/api/timezone/json?location=38.3498195,-81.6326234×tamp=1331161200&key=AIzaSyDX-jh453PLhf9_jinTpIbic-PfC_I-SXw\n\n function parsePlacesToOptions(places) {\n if (places === null) return [];\n\n // the types array in the result\n // https://developers.google.com/maps/documentation/geocoding/overview#Types\n\n return places.map((place) => {\n // window.logger(\"%c[FormSelectCity] parsePlacesToOptions\", \"background-color: #1976D2\", {\n // place,\n // });\n return { value: place.description, label: place.description, place };\n // return place.description;\n });\n }\n\n function placeOptions(value, callback) {\n const request = {\n input: value,\n types: [\"(cities)\"],\n // types: [\"address\"],\n // types: [\"(regions)\"],\n };\n\n // if (window.google) {\n if ((window as any).google) {\n const autoComplete = new (window as any).google.maps.places.AutocompleteService();\n\n if (value.length > 0) {\n autoComplete.getPlacePredictions(request, (data) => {\n callback(parsePlacesToOptions(data));\n });\n } else {\n callback([]);\n }\n } else {\n console.error(\n \"[FormSelectCity] placeOptions window.google was not loaded!\",\n (window as any).google,\n );\n }\n }\n\n function handleInputChange(newValue, actionMeta) {\n if (actionMeta.action !== \"input-blur\" && actionMeta.action !== \"menu-close\") {\n setState({ ...state, value: newValue });\n }\n }\n\n function handleChange(newValue, actionMeta) {\n if (actionMeta.action === \"select-option\" && props.onChange !== undefined) {\n props.onChange(newValue);\n }\n }\n\n if (!mapsScriptLoaded || mapsScriptError) {\n return Loading...;\n }\n\n return (\n \n \n {props.description &&

    {props.description}

    }\n \"Search for a City\"}\n />\n {props.children}\n {/* For displaying Joi rendered errors. See NewInviteForm example. */}\n
    \n );\n};\n\nFormSelectCity.defaultProps = {\n language: \"en\",\n};\n\nexport default FormSelectCity;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\n\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormSelectCity;\n ${t.mb(5)}\n > p {\n ${[t.text.xs, t.mt(-1), t.mb(2)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n ${t.mq['md']} {\n ${t.text.xs}\n }\n }\n\n ${t.mq['md']} {\n ${t.mb(5)}\n }\n `;\n});\n\nStyled.Select = styled(AsyncSelect)((props) => {\n const t: any = props.theme;\n return css`\n label: FormSelectCity_UI;\n .form-select-ui {\n &__clear-indicator {\n cursor: pointer;\n }\n &__control {\n ${[t.h(10), t.rounded.sm, t.text.base]}\n min-height: ${t.spacing[10]};\n width: 100%;\n appearance: none;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.white};\n border-width: 1px;\n border-style: solid;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[400]\n : t.color.red[500]\n : t.dark\n ? \"transparent\"\n : t.color.gray[300]};\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n &:hover {\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[400]};\n }\n &:focus {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &:focus:hover,\n &--is-focused,\n &--is-focused:hover {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"box-shadow: none;\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &--is-disabled {\n background-color: ${t.dark ? \"transparent\" : t.color.gray[100]};\n .form-select-ui__single-value {\n color: ${t.dark ? t.color.gray[500] : t.color.gray[600]};\n }\n ${t.dark && `border: 1px solid ${t.color.gray[800]};`}\n\n .form-select-ui__indicator svg {\n fill: ${t.color.gray[500]};\n stroke: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n }\n }\n\n ${t.mq['md']} {\n ${[t.h(8), t.text.sm]}\n min-height: ${t.spacing[8]};\n }\n }\n &__option {\n ${[t.h(10), t.px(2), t.text.base]}\n transition: color 0.2s ease, background-color 0.2s ease;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[700] : t.color.white};\n color: ${t.dark ? t.color.gray[200] : t.color.gray[600]};\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &:hover,\n &--is-focused {\n background-color: ${t.dark ? t.color.gray[500] : t.color.gray[200]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &--is-selected {\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[100]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n\n ${t.mq['md']} {\n ${[t.h(8), t.text.sm]}\n }\n }\n &__placeholder {\n ${[t.mx(0)]}\n color: ${t.color.gray[500]};\n }\n &__indicators {\n ${t.h(8)}\n align-items: center;\n height: 100%;\n span {\n display: none;\n }\n }\n &__indicator svg {\n height: 1.125rem;\n width: 1.125rem;\n fill: ${t.dark ? t.color.gray[300] : t.color.black};\n stroke-width: 1px;\n stroke: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n &__dropdown-indicator {\n ${t.mr(\"px\")}\n padding: 0.3125rem;\n }\n &__clear-indicator svg {\n ${[t.rounded.xs]}\n position: relative;\n right: -${t.spacing[2]};\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n }\n &__clear-indicator:hover svg {\n background-color: ${t.dark ? t.color.orange[200] : t.color.gray[300]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.orange[200] : t.color.gray[300]};\n fill: ${t.color.black};\n }\n &__menu {\n ${[t.my(\"-px\"), t.rounded.sm]};\n border: 1px solid ${t.dark ? t.color.gray[500] : t.color.gray[400]};\n box-shadow: none;\n z-index: 20;\n }\n &__menu-list {\n ${[t.rounded.xs]};\n padding: 0;\n }\n &__value-container {\n ${[t.mx(0)]};\n height: 100%;\n > div {\n ${t.m(0)}\n }\n }\n &__input,\n &__single-value {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n ${t.m(0)};\n }\n &__multi-value {\n ${[t.m(\"px\"), t.rounded.xs]};\n margin-right: 0.25rem !important;\n height: 1.375rem;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n transition: background-color 0.2s ease;\n &__label {\n ${[t.text.sm, t.py(\"px\"), t.pr(0), t.pl(2)]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &__remove {\n height: 1.375rem;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[500]};\n &:hover {\n background: none;\n color: ${t.dark ? t.color.white : t.color.black};\n cursor: pointer;\n }\n }\n }\n &__menu-notice,\n &__menu-notice--no-options {\n color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n }\n `;\n});","import React, { useState } from \"react\";\nimport useScript from \"@shared/hooks/useScript\";\nimport AsyncSelect from \"react-select/lib/Async\";\nimport { errorTextViaYupOrRailsOrJoi } from \"@shared/lib/formHelpers\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\n\ntype Props = {\n value: string;\n name: string;\n label: string;\n description: string;\n language: string;\n className: string;\n onChange: (value: any) => void;\n isRequired?: boolean;\n errors: any;\n};\n\nconst FormSelectGoogleLocation = (props: Props) => {\n let errorText = errorTextViaYupOrRailsOrJoi(props);\n\n const [state, setState] = useState({\n value: props.value || \"\",\n });\n\n // wrkhq.com has a Google cloud account and has the Maps API enabled\n const [mapsScriptLoaded, mapsScriptError] = useScript(\n `https://maps.googleapis.com/maps/api/js?key=${(window as any).GOOGLE_MAPS_API_KEY\n }&libraries=places&language=${props.language}`,\n );\n\n // Geocode based on place_id\n // https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJOV0UiM4sT4gRCxvJBEeoYXY&key=AIzaSyDX-jh453PLhf9_jinTpIbic-PfC_I-SXw\n\n function parsePlacesToOptions(places) {\n if (places === null) return [];\n\n // the types array in the result\n // https://developers.google.com/maps/documentation/geocoding/overview#Types\n\n return places.map((place) => {\n // window.logger(\n // \"%c[FormSelectGoogleLocation] parsePlacesToOptions\",\n // \"background-color: #1976D2\",\n // {\n // place,\n // },\n // );\n return { value: place.description, label: place.description, place };\n });\n }\n\n function placeOptions(value, callback) {\n const request = {\n input: value,\n };\n\n if ((window as any).google) {\n const autoComplete = new (window as any).google.maps.places.AutocompleteService();\n\n if (value.length > 0) {\n autoComplete.getPlacePredictions(request, (data) => {\n callback(parsePlacesToOptions(data));\n });\n } else {\n callback([]);\n }\n } else {\n console.error(\n \"[FormSelectGoogleLocation] placeOptions window.google was not loaded!\",\n (window as any).google,\n );\n }\n }\n\n function handleInputChange(newValue, actionMeta) {\n if (actionMeta.action !== \"input-blur\" && actionMeta.action !== \"menu-close\") {\n setState({ ...state, value: newValue });\n }\n }\n\n function handleChange(newValue, actionMeta) {\n if (actionMeta.action === \"select-option\" && props.onChange !== undefined) {\n props.onChange(newValue);\n }\n }\n\n if (!mapsScriptLoaded || mapsScriptError) {\n return Loading...;\n }\n\n return (\n \n \n {props.description &&

    {props.description}

    }\n \n
    \n );\n};\n\nFormSelectGoogleLocation.defaultProps = {\n language: \"en\",\n};\n\nexport default FormSelectGoogleLocation;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormSelectGoogleLocation;\n ${t.mb(5)}\n > p {\n ${[t.text.xs, t.mt(-1), t.mb(2)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n ${t.mq['md']} {\n ${t.text.xs}\n }\n }\n\n ${t.mq['md']} {\n ${t.mb(5)}\n }\n `;\n});\n\nStyled.Select = styled(AsyncSelect)((props: any) => {\n const t: any = props.theme;\n return css`\n label: FormSelectGoogleLocation_UI;\n .form-select-ui {\n &__clear-indicator {\n cursor: pointer;\n }\n &__control {\n ${[t.h(10), t.rounded.sm, t.text.base]}\n min-height: ${t.spacing[10]};\n width: 100%;\n appearance: none;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.white};\n border-width: 1px;\n border-style: solid;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[400]\n : t.color.red[500]\n : t.dark\n ? \"transparent\"\n : t.color.gray[300]};\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n &:hover {\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[400]};\n }\n &:focus {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &:focus:hover,\n &--is-focused,\n &--is-focused:hover {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"box-shadow: none;\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &--is-disabled {\n background-color: ${t.dark ? \"transparent\" : t.color.gray[100]};\n .form-select-ui__single-value {\n color: ${t.dark ? t.color.gray[500] : t.color.gray[600]};\n }\n ${t.dark && `border: 1px solid ${t.color.gray[800]};`}\n\n .form-select-ui__indicator svg {\n fill: ${t.color.gray[500]};\n stroke: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n }\n }\n\n ${t.mq['md']} {\n ${[t.h(8), t.text.sm]}\n min-height: ${t.spacing[8]};\n }\n }\n &__option {\n ${[t.h(10), t.px(2), t.text.base]}\n transition: color 0.2s ease, background-color 0.2s ease;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[700] : t.color.white};\n color: ${t.dark ? t.color.gray[200] : t.color.gray[600]};\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &:hover,\n &--is-focused {\n background-color: ${t.dark ? t.color.gray[500] : t.color.gray[200]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &--is-selected {\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[100]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n\n ${t.mq['md']} {\n ${[t.h(8), t.text.sm]}\n }\n }\n &__placeholder {\n ${[t.mx(0)]}\n color: ${t.color.gray[500]};\n }\n &__indicators {\n ${t.h(8)}\n align-items: center;\n height: 100%;\n span {\n display: none;\n }\n }\n &__indicator svg {\n height: 1.125rem;\n width: 1.125rem;\n stroke-width: 1px;\n fill: ${t.dark ? t.color.gray[300] : t.color.black};\n stroke: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n &__dropdown-indicator {\n ${t.mr(\"px\")}\n padding: 0.3125rem;\n }\n &__clear-indicator svg {\n ${[t.rounded.xs]}\n position: relative;\n right: -${t.spacing[2]};\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n }\n &__clear-indicator:hover svg {\n background-color: ${t.dark ? t.color.orange[200] : t.color.gray[300]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.orange[200] : t.color.gray[300]};\n fill: ${t.color.black};\n }\n &__menu {\n ${[t.mt(\"-px\"), t.rounded.sm]};\n border: 1px solid ${t.dark ? t.color.gray[500] : t.color.gray[400]};\n box-shadow: none;\n z-index: 20;\n }\n &__menu-list {\n ${[t.rounded.xs]};\n padding: 0;\n }\n &__value-container {\n ${[t.mx(0)]};\n height: 100%;\n > div {\n ${t.m(0)}\n }\n }\n &__input,\n &__single-value {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n ${t.m(0)};\n }\n &__multi-value {\n ${[t.m(\"px\"), t.rounded.xs]};\n margin-right: 0.25rem !important;\n height: 1.375rem;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n transition: background-color 0.2s ease;\n &__label {\n ${[t.text.sm, t.py(\"px\"), t.pr(0), t.pl(2)]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &__remove {\n height: 1.375rem;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[500]};\n &:hover {\n background: none;\n color: ${t.dark ? t.color.white : t.color.black};\n cursor: pointer;\n }\n }\n }\n &__menu-notice,\n &__menu-notice--no-options {\n color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport { jobOverrideSocialShareImageTypeOptions } from \"@ats/src/lib/lookups\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useJob, useUpdateJob, useUpdateJobOptimistic } from \"@shared/queryHooks/useJob\";\n\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport FormUploader from \"@ats/src/components/forms/FormUploader\";\nimport FormConditionalFields from \"@ats/src/components/forms/FormConditionalFields\";\n\n// import { useWhyDidYouUpdate } from \"@shared/hooks/useWhyDidYouUpdate\";\n\nfunction JobSocialShareImageUploader(props: {\n jobId: number;\n // onError: (errors: any) => void;\n errors: any;\n}) {\n // useWhyDidYouUpdate(\"JobSocialShareImageUploader\", props);\n const {\n jobId,\n // onError,\n errors: passedErrors,\n } = props;\n const addToast = useToastContext();\n const [errors, setErrors] = React.useState(passedErrors);\n const { data: job, isFetching: isFetchingJob } = useJob({ jobId, refetchOnWindowFocus: false });\n // const { mutate: updateJob, isLoading: isLoadingUpdateJob } = useUpdateJob();\n const {\n mutate: updateJobOptimistic,\n isLoading: isLoadingUpdateJobOptimistic,\n } = useUpdateJobOptimistic(job);\n\n if (job == undefined) {\n return null;\n }\n\n window.logger(\"%c[JobSocialShareImageUploader] render\", \"color: #1976D2\", { job });\n\n const { socialShareImageUrl, socialShareImageFilename, hasSocialShareImage, settings } = job;\n const { socialShareImageType } = settings;\n const hasFile = socialShareImageType == \"default\" || hasSocialShareImage;\n\n const onCompleteDirectUpload = (blob) => {\n const { signed_id: socialShareImage } = blob;\n const { id } = job;\n\n if (socialShareImage) {\n updateJobOptimistic(\n { id, socialShareImage },\n {\n onSuccess: () => {\n addToast({ title: \"Image uploaded\", kind: \"success\" });\n },\n onError: (data) => {\n addToast({\n title: `Could not upload`,\n kind: \"warning\",\n });\n setErrors(data);\n },\n },\n );\n }\n\n return Promise.resolve(true); // need the true becuase the callback looks for data !== undefined in FormUploader\n };\n\n const onInvalidFile = () => {\n addToast({ title: `Invalid file`, kind: \"warning\" });\n };\n\n const updateJobSettings = (name, value) => {\n updateJobOptimistic({ id: jobId, settings: { [name]: value } });\n };\n\n return (\n <>\n \n\n {socialShareImageType === \"custom\" && (\n \n \n {hasFile ? (\n \n \n \n ) : null}\n \n )}\n \n );\n}\n\nJobSocialShareImageUploader.propTypes = {};\n\nJobSocialShareImageUploader.defaultProps = {};\n\nexport default JobSocialShareImageUploader;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.CardPreview = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountJob_CardPreview;\n ${[t.mt(-2), t.p(2), t.rounded.sm]}\n display: inline-block;\n vertical-align: top;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n > img {\n ${[t.rounded.md]}\n max-width: 32rem;\n overflow: hidden;\n }\n `;\n});\n","import React, { useState } from \"react\";\nimport find from \"lodash/find\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { Link } from \"react-router-dom\";\n\nimport {\n jobKindOptions,\n countryOptions,\n unitedStatesOptions,\n remoteRestrictionOverlapHoursOptions,\n yesOrNoOptions,\n jobRemotenessOptions,\n salaryUnitOptions,\n salaryCurrencyCodeOptions,\n} from \"@ats/src/lib/lookups\";\n\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport FormSelectCity from \"@ats/src/components/forms/FormSelectCity\";\nimport FormSelectGoogleLocation from \"@ats/src/components/forms/FormSelectGoogleLocation\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport FormSection from \"@ats/src/components/forms/FormSection\";\nimport JobSocialShareImageUploader from \"@ats/src/views/jobApplications/jobSetup/components/JobSocialShareImageUploader\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { removeHttpPrefix } from \"@shared/lib/utils\";\nimport useJobCategories from \"@shared/queryHooks/useJobCategories\";\nimport { useUpdateJob } from \"@shared/queryHooks/useJob\";\nimport FormConditionalFields from \"@ats/src/components/forms/FormConditionalFields\";\n\nimport { validateSalaryAmounts } from '@shared/lib/validateWithYup';\n\n// import { useWhyDidYouUpdate } from \"@shared/hooks/useWhyDidYouUpdate\";\n\nfunction JobSettingsDetails(props) {\n // useWhyDidYouUpdate(\"JobSetupDetails\", props);\n const { setIsDirty, job: passedJob } = props;\n const { id: jobId, ...restJob } = passedJob;\n const [job, setJob] = useState({\n ...restJob,\n salaryUnit: restJob.salaryUnit || \"YEAR\",\n salaryCurrency: restJob.salaryCurrency || \"USD\",\n });\n const [salaryType, setSalaryType] = useState(\"\");\n const [errors, setErrors] = useState(null);\n const { data } = useJobCategories();\n const { mutate: updateJob, isLoading: isLoadingUpdateJob } = useUpdateJob();\n const jobCategories = data ? data.items : [];\n const addToast = useToastContext();\n\n const [jobCategory, setJobCategory] = useState(job.jobCategoryName);\n\n const {\n title,\n country,\n stateRegion,\n city,\n mapLocation,\n kind,\n remoteness,\n videoUrl,\n remoteRestrictionOverlapHoursIsRequired,\n remoteRestrictionCity,\n remoteRestrictionCountryResidencyIsRequired,\n remoteRestrictionCountryList,\n remoteRestrictionOverlapHours,\n salaryMin,\n salaryMax,\n salaryUnit,\n salaryCurrency,\n externalListingsEnabled,\n } = job;\n\n const countrySelectOptions = countryOptions();\n const regionSelectOptions = unitedStatesOptions();\n const showRegionSelect = country === \"US\";\n\n const jobCategorySelectOptions = jobCategories.map((cat) => {\n return { value: cat.name, label: cat.name };\n });\n\n React.useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n React.useEffect(() => {\n job.salaryMin && job.salaryMax ? \"Range\" : \"Fixed\";\n if (restJob.salaryMin && restJob.salaryMax) {\n setSalaryType(\"Range\");\n } else if (restJob.salaryMin) {\n setSalaryType(\"Fixed\");\n }\n }, []);\n\n const onFormInputChange = (name, value) => {\n window.logger(\"%c[JobSetupDetails] onFormInputChange\", \"background-color: #5eb65b\", {\n name,\n value,\n });\n\n setIsDirty(true);\n if (errors != undefined) {\n setErrors(null);\n }\n\n let val = value;\n\n if (name === \"videoUrl\") {\n val = removeHttpPrefix(val);\n }\n\n setJob({ ...job, [name]: val });\n };\n\n const handleCountryChange = (name, value) => {\n setIsDirty(true);\n setJob({\n ...job,\n [name]: value,\n stateRegion: null,\n });\n };\n\n const handleLocationChange = (location) => {\n window.logger(\"%c[JobSetupDetails] handleLocationChange\", \"background-color: #5eb65b\", {\n place: location.place,\n });\n setIsDirty(true);\n setJob({\n ...job,\n mapLocation: location.place.description,\n });\n };\n\n // const urlEncodedLocation = () => {\n // return location?.place ? encodeURI(location.place.description) : null;\n // };\n\n // const parsePlaceTermsToLocationData = (place) => {\n // const { terms } = place;\n // const values = terms.map((term) => term.value).reverse();\n // const lastThreeValues = values.slice(0, 2).reverse();\n // const cityStateCountry =\n // lastThreeValues.length > 1 ? lastThreeValues.join(\", \") : lastThreeValues[0];\n // const mapLocation = place.description\n // .replace(cityStateCountry, \"\")\n // .trim() // remove leading or trailing white space\n // .replace(/(^,)|(,$)/g, \"\"); // remove leading or trailing commas (mostly just trailing)\n\n // /*\n // West Avenue, Kingston, Jamaica = [route, geocode]\n\n // --===================================================-- */\n\n // return {\n // country: values[0],\n // stateRegion: values[1],\n // city: values[2],\n // mapLocation,\n // };\n // };\n\n const handleCityChange = (remoteRestrictionCityOption) => {\n setIsDirty(true);\n setJob({\n ...job,\n remoteRestrictionCityOption,\n remoteRestrictionCity: remoteRestrictionCityOption.value,\n });\n };\n\n const handleCountriesChange = (name, value) => {\n setIsDirty(true);\n setJob({ ...job, [name]: value.map((country) => country.value) });\n };\n\n const handleCategoriesChange = (name, value) => {\n setIsDirty(true);\n setJobCategory(value);\n window.logger(\"%c[JobSetupDetails] handleCategoriesChange\", \"color: #F976D2\", {\n name,\n value,\n });\n };\n\n const handleCategoriesInputChange = (name, value) => {\n window.logger(\"%c[JobSetupDetails] handleCategoriesInputChange\", \"color: #1976D2\", {\n name,\n value,\n });\n };\n\n const handleSalaryDropdownChange = (name, value) => {\n setIsDirty(true);\n if (errors != undefined) {\n setErrors(null);\n }\n setJob({ ...job, [name]: value });\n };\n\n const handleSalaryTypeChange = (name, value) => {\n setIsDirty(true);\n if (errors != undefined) {\n setErrors(null);\n }\n setSalaryType(value);\n if (!value) {\n setJob({ ...job, salaryMax: null, salaryMin: null });\n } else if (value === \"Fixed\") {\n setJob({ ...job, salaryMax: null });\n }\n };\n\n /* Social Share Image\n --===================================================-- */\n // const handleSocialShareImageErrors = (errors) => {\n // window.logger(\"%c[JobSetupDetails] errors\", \"color: #1976D2\", { errors });\n // setErrors(errors);\n // };\n\n const onSubmit = async (e) => {\n e.preventDefault();\n // Submit the form here\n console.warn(\"[JobSettingsDetails] onSubmit { job }\", { job });\n\n const {\n title,\n category,\n kind,\n country,\n stateRegion,\n city,\n mapLocation,\n remoteness,\n videoUrl,\n remoteRestrictionOverlapHoursIsRequired,\n remoteRestrictionCityOption,\n remoteRestrictionCity,\n remoteRestrictionCityGooglePlaceId,\n remoteRestrictionCountryResidencyIsRequired,\n remoteRestrictionCountryList,\n remoteRestrictionOverlapHours,\n externalListingsEnabled,\n } = job;\n\n const selectedCategory = find(jobCategories, (cat) => {\n return cat.name === jobCategory;\n });\n const selectedCategoryId = selectedCategory ? selectedCategory.id : null;\n\n window.logger(\"%c[JSD] onSubmit\", \"color: #1976D2\", { selectedCategory });\n const [isValid, validationErrors] = await validateSalaryAmounts({\n salaryMin: salaryMin,\n salaryMax: salaryMax,\n salaryType: salaryType\n });\n\n if (!isValid) {\n setErrors(validationErrors);\n } else { \n updateJob(\n {\n id: jobId,\n title,\n category,\n jobCategoryId: selectedCategoryId,\n kind,\n country,\n stateRegion,\n city,\n mapLocation,\n remoteness,\n videoUrl,\n remoteRestrictionOverlapHoursIsRequired,\n remoteRestrictionOverlapHours,\n remoteRestrictionCity: remoteRestrictionCityOption\n ? remoteRestrictionCityOption.value\n : remoteRestrictionCity\n ? remoteRestrictionCity\n : null,\n remoteRestrictionCityGooglePlaceId: remoteRestrictionCityOption\n ? remoteRestrictionCityOption.place.place_id\n : remoteRestrictionCityGooglePlaceId\n ? remoteRestrictionCityGooglePlaceId\n : null,\n remoteRestrictionCountryResidencyIsRequired,\n remoteRestrictionCountryList,\n salaryMin,\n salaryMax,\n salaryUnit,\n salaryCurrency,\n externalListingsEnabled,\n },\n {\n onSuccess: () => {\n setIsDirty(false);\n setErrors(null);\n addToast({\n title: `Job updated`,\n kind: \"success\",\n });\n },\n onError: (response: any) => {\n window.logger(\"%c[JobSetupDetails] updateJob onError\", \"color: #F97602\", { response });\n setErrors(response.data.errors);\n addToast({\n title: `Could not update job`,\n kind: \"warning\",\n });\n },\n },\n );\n }\n };\n\n const SidebarContent = (\n \n

    Creating a job post

    \n

    \n You can preview your post as you build it using the link in the left column. This will\n create a temporary url you can visit to make sure your post looks exactly the way you want\n it to.\n

    \n
    \n );\n\n const BottomBarContent = (\n \n Save changes\n \n );\n\n const jobCategoriesDescription = (\n \n You can add, remove, and edit job categories in{\" \"}\n App settings.\n \n );\n\n const toggleExternalListingsDescription = (\n \n This job will be distributed to external job boards currently enabled in {\" \"}App settings. Available integrations include LinkedIn and X Hiring. Please disable this option for canddiate pool job posts.\n \n );\n\n return (\n <>\n \n \n \n \n\n \n\n \n \n\n \n \n {showRegionSelect && (\n \n )}\n \n\n {/* */}\n \n\n \n \n\n {/* Working Hours Overlap\n --===================================================-- */}\n {remoteness !== \"remoteness_none\" && (\n \n \n\n {remoteRestrictionOverlapHoursIsRequired && (\n \n \n\n \n \n )}\n\n \n\n {remoteRestrictionCountryResidencyIsRequired && (\n \n \n \n )}\n \n )}\n \n\n \n \n\n {salaryType && (\n \n \n {salaryType === \"Range\" && (\n \n )}\n \n \n \n )}\n \n\n \n \n \n\n \n\n \n \n \n \n \n );\n}\n\nexport default JobSettingsDetails;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Sidebar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupDetails_Sidebar;\n ${t.px(4)};\n position: sticky;\n top: ${t.spacing[4]};\n h3 {\n ${[t.mt(1), t.text.bold]};\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n }\n p {\n ${[t.text.xs, t.mt(3)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n b {\n ${[t.text.bold]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport BottomButtonBar from \"@ats/src/components/shared/BottomButtonBar\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useUpdateJob } from \"@shared/queryHooks/useJob\";\n\nimport ProseMirrorEditor from \"@shared/ProseMirror/Editor\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport AlertModal from \"@ats/src/components/modals/AlertModal\";\n\nfunction JobSettingsDescription(props) {\n const { setIsDirty } = props;\n const [job, setJob] = React.useState(props.job);\n\n const { description, descriptionHtml } = job;\n const { mutate: updateJob, isLoading: isLoadingUpdateJob } = useUpdateJob();\n const addToast = useToastContext();\n const { openModal, removeModal } = useModalContext();\n const editorRef = React.useRef(undefined);\n\n const modal = (\n \n );\n\n const handleChange = (value) => {\n setIsDirty(true);\n // setJob({ ...job, description: value });\n };\n\n // window.logger(\"%c[JobSetupDescription][ProseMirror] RENDER\", \"background-color: #1976D2\", {\n // description,\n // });\n\n const handleSubmit = (event) => {\n event.preventDefault();\n\n // const data = new FormData(event.target);\n\n // window.logger(\"%c[JobSetupDescription][ProseMirror] handleSubmit\", \"background-color: #1976D2\", {\n // event,\n // data,\n // description,\n // tester: data.get(\"tester\"),\n // });\n\n updateJob(\n { id: props.job.id, description: editorRef.current.serializedState() },\n {\n onSuccess: (data) => {\n setIsDirty(false);\n addToast({\n title: `Job updated`,\n kind: \"success\",\n });\n },\n onError: () => {\n addToast({\n title: `Could not update job`,\n kind: \"warning\",\n });\n },\n },\n );\n };\n\n return (\n \n \n \n\n \n \n Save changes\n \n \n \n \n

    Job descriptions

    \n

    \n You can author a description for each job you create in Polymer. This job description will be\n displayed on the public job post that potential candidates will visit.\n

    \n
    \n
    \n );\n}\n\nexport default JobSettingsDescription;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupDescription;\n display: flex;\n height: 100%;\n `;\n});\n\nStyled.Form = styled.form((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupDescription_Form;\n height: 100%;\n display: flex;\n flex-direction: column;\n width: 100vw;\n\n ${t.mq['lg']} {\n width: 50vw;\n }\n `;\n});\n\nStyled.Sidebar = styled.aside((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupDescription_Sidebar;\n ${t.p(4)};\n border-left: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n display: none;\n\n ${t.mq['lg']} {\n display: block;\n flex: 1;\n }\n\n h3 {\n ${[t.mt(1), t.text.bold]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n p {\n ${[t.text.xs, t.mt(3)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n b {\n ${[t.text.bold]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n em {\n ${[t.text.medium]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n font-style: normal;\n }\n a {\n ${[t.text.medium]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n text-decoration: underline;\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport { removeFromArray } from \"@shared/lib/utils\";\n\ntype Props = {\n label: string;\n options: any[];\n updateOptions: (options) => void;\n errors: {};\n};\n\nfunction FormSelectBuilder(props: Props) {\n const { updateOptions, errors, options } = props;\n const [activeValue, setActiveValue] = React.useState(\"\");\n\n const handleClickAdd = (event) => {\n event.preventDefault();\n\n const tempOptions = options.concat(activeValue);\n updateOptions(tempOptions);\n setActiveValue(\"\");\n };\n\n const handleInputChange = (name, value) => {\n setActiveValue(value);\n };\n\n const handleKeyDown = (event) => {\n if (event.key === \"Enter\") {\n handleClickAdd(event);\n }\n };\n\n const removeOption = (option) => {\n const newArr = removeFromArray(options, (a) => a === option);\n window.logger(\"%c[FormSelectBuilder] removeOption\", \"color: #1976D2\", { newArr });\n updateOptions(newArr);\n };\n\n return (\n <>\n \n {options.length > 0 && (\n \n {options.map((option, index) => {\n return (\n \n {option}{\" \"}\n \n \n );\n })}\n \n )}\n \n \n\n \n \n \n );\n}\n\nFormSelectBuilder.propTypes = {};\n\nFormSelectBuilder.defaultProps = {};\n\nexport default FormSelectBuilder;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Field = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormSelectBuilder_Field;\n ${t.mb(6)}\n display: flex;\n justify-content: space-between;\n align-items: center;\n > div {\n ${[t.mb(0), t.pr(3)]}\n flex: 1;\n }\n `;\n});\n\nStyled.Choices = styled.ul((props) => {\n const t: any = props.theme;\n return css`\n label: FormSelectBuilder_Choices;\n ${[t.mb(3), t.rounded.md]}\n border: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[700] : t.color.white};\n `;\n});\n\nStyled.Choice = styled.ul((props) => {\n const t: any = props.theme;\n return css`\n label: FormSelectBuilder_Choice;\n ${[t.px(2), t.py(2)]}\n min-height: ${t.spacing[8]};\n border-bottom: 1px solid ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &:last-of-type {\n border-bottom: none;\n }\n\n button {\n ${[t.mr(1), t.ml(6)]}\n flex-shrink: 0;\n }\n `;\n});\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Joi from \"joi-browser\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport FormSelectBuilder from \"@ats/src/components/forms/FormSelectBuilder\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport { IfAuthorized } from \"@ats/src/components/shared/AuthorizationManager\";\n\nimport {\n jobSettingOptions,\n questionKindOptions,\n questionVisibilityOptions,\n} from \"@ats/src/lib/lookups\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nclass CustomQuestionModal extends Component {\n static displayName = \"CustomQuestionModal\";\n\n static propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func,\n isEditing: PropTypes.bool,\n index: PropTypes.number,\n };\n\n static defaultProps = {\n // key: value,\n };\n\n state = {\n questionText: \"\",\n kind: \"text_short\",\n requirementSetting: \"required\",\n visibilitySetting: \"visibility_public\",\n errors: null,\n selectBuilderOptions: [],\n };\n\n constructor(props) {\n super(props);\n\n if (props.isEditing) {\n const selectBuilderOptions = props.question.options.data;\n const nextState = Object.assign({}, this.state, props.question);\n this.state = Object.assign({}, nextState, { selectBuilderOptions });\n // window.logger(\"%c[CustomQuestionModal] constructor\", \"color: #F906DF\", {\n // props,\n // state: this.state,\n // selectBuilderOptions,\n // });\n }\n }\n\n handleSubmit = (e) => {\n e.preventDefault();\n\n const {\n id,\n questionText,\n kind,\n requirementSetting,\n visibilitySetting,\n position,\n selectBuilderOptions,\n } = this.state;\n\n const schema = Joi.object().keys({\n questionText: Joi.string().required(),\n answerChoices:\n kind === \"single_select\" || kind === \"multi_select\"\n ? Joi.array().min(2).required()\n : Joi.array().required(),\n // department: Joi.string().min(2).required(),\n });\n\n const question = {\n id,\n questionText,\n kind,\n requirementSetting,\n visibilitySetting,\n position,\n options: { data: selectBuilderOptions },\n };\n\n const answerChoices = selectBuilderOptions;\n\n if (this.props.onSubmit) {\n Joi.validate({ questionText, answerChoices }, schema, (err) => {\n if (err !== null) {\n window.logger(\"%c[CQM] Joi validation\", \"color: #1976D2\", { err });\n\n // this.setState({\n // errors: {\n // questionText: [\"cannot be blank\"],\n // options: [\"needs at least 2 options\"],\n // },\n // });\n this.setState({\n errors: err.details,\n });\n } else {\n // window.logger('%c[CustomQuestionModal] handleSubmit is good to go', 'color: #1976D2');\n this.props.onSubmit(question, this.props.isEditing);\n }\n });\n }\n };\n\n handleChange = (key, value) => {\n this.setState({ [key]: value, isDirty: true, errors: null })\n }\n\n handleUpdateSelectBuilderOptions = (options) => {\n window.logger(\"%c[CustomQuestionModal] handleUpdateSelectBuilderOptions\", \"color: #F976D2\", {\n options,\n });\n this.handleChange(\"selectBuilderOptions\", options);\n };\n\n render() {\n // window.logger('%c[CustomQuestionModal] render this.state', 'color: #1976D2', this.state);\n // window.logger(\"%c[CustomQuestionModal] render this.props\", \"color: #1976D2\", this.props);\n\n const { isEditing, onCancel } = this.props;\n const {\n questionText,\n kind,\n requirementSetting,\n visibilitySetting,\n errors,\n selectBuilderOptions,\n isDirty,\n } = this.state;\n const modalTitle = isEditing ? \"Edit custom question\" : \"New custom question\";\n const confirmButtonText = isEditing ? \"Update question\" : \"Create question\";\n const questionTypeDescription =\n kind === \"file_upload\" ? \"Maximum of 10 questions of type file upload.\" : \"\";\n\n const buttons = (\n \n \n \n \n );\n\n return (\n \n \n Set the question text, the question type, and if an answer is required.\n \n \n \n\n \n\n {(kind === \"single_select\" || kind === \"multi_select\") && (\n \n )}\n\n {kind === \"file_upload\" && (\n \n \n \n Candidate file uploads have size and file type restrictions.\n \n \n )}\n\n option.value !== \"hidden\")}\n errors={errors}\n />\n \n \n {visibilitySetting === \"visibility_private\" && (\n \n \n \n \n Questions with this visibility won't be included in CSV exports or in the data sent via\n Polymer webhooks or Slack, Discord and Zapier integrations.\n \n \n \n )}\n \n \n \n );\n }\n}\n\nexport default CustomQuestionModal;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: CustomQuestionModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.Info = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CustomQuestionModal_Info;\n ${[t.text.xs, t.mt(-1), t.mb(5)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n align-items: center;\n line-height: 1.3;\n\n svg {\n ${[t.h(6), t.w(4), t.mr(1)]}\n min-width: 16px;\n }\n\n &:hover {\n cursor: text;\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: CustomQuestionModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Droppable, DragDropContext } from \"react-beautiful-dnd\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nexport default class QuestionList extends Component {\n static propTypes = {\n onDragEndQuestion: PropTypes.func.isRequired,\n };\n\n onDragEnd = (result) => {\n this.props.onDragEndQuestion(result);\n };\n\n render() {\n return (\n \n \n {(provided) => (\n \n {this.props.children}\n {provided.placeholder} {/* Increases space for dropping */}\n \n )}\n \n \n );\n }\n}\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: QuestionList;\n ${t.rounded.sm}\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n `;\n});\n","import React from \"react\";\nimport { Draggable } from \"react-beautiful-dnd\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport { jobSettingNames, questionKindNames } from \"@ats/src/lib/lookups\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { VisibilitySetting } from \"@shared/types/jobApplication\";\n\n/*\n--===================================================-- */\n\nexport default function QuestionListItem(props) {\n const { openModal, removeModal } = useModalContext();\n const { question, index } = props;\n const { questionText, kind, requirementSetting, options, visibilitySetting } = question;\n\n const openQuestionModal = (e) => {\n e.preventDefault();\n\n props.openEditCustomQuestionModal(props.question);\n };\n\n const deleteQuestion = () => {\n props.deleteQuestion(props.question);\n };\n\n const handleClickOnDeleteQuestion = (e) => {\n e.preventDefault();\n\n const modal = (\n {\n removeModal();\n deleteQuestion();\n }}\n onCancel={removeModal}\n isDestructiveConfirm={false}\n />\n );\n\n openModal(modal);\n };\n\n window.logger(\"%c[QuestionListItem] question\", \"background-color: #19d285\", { question });\n\n return (\n \n {(provided) => {\n return (\n \n
    \n \n {questionText}\n {visibilitySetting == VisibilitySetting.PRIVATE && (\n \n Admin only\n \n )}\n \n {`${questionKindNames(kind)}, ${jobSettingNames(\n requirementSetting,\n )}`}\n {options.data.length > 0 && (\n \n {options.data.map((option, index) => {\n return
  • {option}
  • ;\n })}\n
    \n )}\n
    \n \n \n \n Edit question\n \n \n Delete question\n \n \n \n \n );\n }}\n \n );\n}\n\n/* Styled Components\n======================================================= */\nconst Styled: any = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: QuestionListItem;\n ${[t.pl(4), t.pr(3), t.py(3), t.mb(\"-px\")]}\n position: relative;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n transition: border-color 0.2s ease;\n &:first-of-type {\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top-left-radius: 0.4375rem;\n border-top-right-radius: 0.4375rem;\n }\n &:last-of-type {\n border-bottom-left-radius: 0.4375rem;\n border-bottom-right-radius: 0.4375rem;\n }\n &:hover,\n &:active {\n border-color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n z-index: 16;\n }\n `;\n});\n\nStyled.QuestionText = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: QuestionListItem_QuestionText;\n ${t.my(1)}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.QuestionDetails = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: QuestionListItem_QuestionDetails;\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n\nStyled.Options = styled.ul((props) => {\n const t: any = props.theme;\n return css`\n label: QuestionListItem_Options;\n ${[t.ml(6), t.mt(1), t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n list-style-type: circle;\n\n li {\n ${[t.pt(1), t.pb(\"px\")]}\n\n &:last-of-type {\n ${t.pb(0)}\n }\n }\n `;\n});\n\nStyled.DropdownMenu = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: QuestionListItem_DropdownMenu;\n ${[t.mt(\"px\"), t.pt(\"px\")]}\n `;\n});\n\nStyled.Question = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: QuestionListItem_Question;\n display: flex;\n ${[t.mb(1)]}\n `;\n});\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_Label;\n ${[t.mt(\"-px\"), t.mx(2), t.h(6), t.px(2), t.text.xs, t.rounded.xs, t.text.normal]}\n display: inline-flex;\n align-items: center;\n text-wrap: nowrap;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1.4;\n `;\n});\n","import { useQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiGet, apiPut, apiPost, apiDelete } from \"@shared/queryHooks/api\";\n\n/* API requests\n--===================================================-- */\nconst createQuestion = async ({ jobId, ...question }) => {\n window.logger(\"%c[useQuestion] createQuestion\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n question,\n });\n return await apiPost({\n path: `/jobs/${jobId}/questions`,\n variables: { question },\n });\n};\n\nconst updateQuestion = async ({ jobId, id, ...question }) => {\n window.logger(\"%c[useQuestion] updateQuestion\\n\\n\\n\\n\", \"background-color: #FF76D2\", {\n question,\n });\n return await apiPut({\n path: `/jobs/${jobId}/questions/${id}`,\n variables: { question },\n });\n};\n\nconst getQuestion = async ({ id, jobId }) => {\n // window.logger(\"%c[useQuestion] getQuestion\", \"color: #1976D2\", { key, questionId });\n if (id != undefined) {\n return await apiGet({\n path: `/jobs/${jobId}/questions/${id}`,\n });\n }\n};\n\nconst deleteQuestion = async ({ jobId, id, ...question }) => {\n return await apiDelete({ path: `/jobs/${jobId}/questions/${id}`, variables: {} });\n};\n\n/* Hooks\n--===================================================-- */\nfunction useCreateQuestion() {\n const queryClient = useQueryClient();\n return useMutation(createQuestion, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\"%c[useQuestion] useCreateQuestion onSuccess\", \"color: #1976D2\", {\n data,\n mutationVariables,\n });\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n queryClient.invalidateQueries([\"questions\", data.jobId]);\n },\n\n // throwOnError: true,\n });\n}\n\nfunction useDropQuestion() {\n const queryClient = useQueryClient();\n return useMutation(updateQuestion, {\n onSuccess: (data, mutationVariables) => {\n // window.logger(\"%c[useQuestion] useDropQuestion onSuccess\", \"color: #1976D2\", {\n // data,\n // mutationVariables,\n // });\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n queryClient.invalidateQueries([\"questions\", data.jobId]);\n },\n onError: (response: any, variables) => {\n window.logger(\"%c[useQuestion] useDropQuestion onError\", \"color: #FF7602\", {\n variables,\n data: response?.data,\n });\n queryClient.invalidateQueries([\"jobs\", variables.jobId]);\n },\n // throwOnError: true,\n });\n}\n\nfunction useUpdateQuestion() {\n const queryClient = useQueryClient();\n return useMutation(updateQuestion, {\n onSuccess: (data, mutationVariables) => {\n // window.logger(\"%c[useQuestion] useUpdateQuestion onSuccess\", \"color: #1976D2\", {\n // data,\n // mutationVariables,\n // });\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n queryClient.invalidateQueries([\"questions\", data.jobId]);\n },\n // throwOnError: true,\n });\n}\n\nfunction useUpdateQuestionOptimistic(question) {\n const queryClient = useQueryClient();\n return useMutation(updateQuestion, {\n // When mutate is called:\n onMutate: (newQuestion) => {\n window.logger(\"%c[useQuestion] useUpdateQuestionOptimistic onMutate\", \"color: #1976D2\", {\n question,\n newQuestion,\n });\n // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n queryClient.cancelQueries([\"questions\", newQuestion.jobId]);\n\n // Snapshot the previous value\n const previousQuestion = queryClient.getQueryData([\"questions\", newQuestion.jobId]);\n\n // Optimistically update to the new value (combining the full question with whatever the update is)\n queryClient.setQueryData([\"questions\", newQuestion.jobId], { ...question, ...newQuestion });\n\n // Return a rollback function\n return () => queryClient.setQueryData([\"questions\", newQuestion.jobId], previousQuestion);\n },\n\n // onSuccess: (data, mutationVariables) => {\n // window.logger(\"%c[useQuestion] useUpdateQuestion onSuccess\", \"color: #1976D2\", {\n // data,\n // mutationVariables,\n // });\n // queryClient.invalidateQueries([\"questions\", data.id]);\n // },\n\n // If the mutation fails, use the rollback function we returned above in onMutate\n onError: (err: any, newQuestion: any, rollback: any) => rollback(),\n // Always refetch after error or success:\n onSettled: (newQuestion) => {\n queryClient.invalidateQueries([\"questions\", newQuestion.jobId]);\n },\n\n // throwOnError: true,\n });\n}\n\nfunction useDeleteQuestion() {\n const queryClient = useQueryClient();\n return useMutation(deleteQuestion, {\n onSuccess: (data, mutationVariables) => {\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n queryClient.refetchQueries([\"questions\", data.jobId]);\n },\n\n // throwOnError: true,\n });\n}\n\nfunction useQuestion({\n id,\n jobId,\n refetchOnWindowFocus = true,\n}: {\n id: number;\n jobId: number;\n refetchOnWindowFocus?: boolean | \"always\";\n}): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n refetch: () => any;\n} {\n window.logger(\"%c[useQuestion] useQuestion\", \"color: #1976D2\", {\n id,\n jobId,\n refetchOnWindowFocus,\n });\n return useQuery([\"question\", { id, jobId }], () => getQuestion({ id, jobId }), {\n refetchOnWindowFocus: false,\n });\n}\n\nexport {\n useQuestion,\n useCreateQuestion,\n useUpdateQuestion,\n useDropQuestion,\n useUpdateQuestionOptimistic,\n useDeleteQuestion,\n};\n","import React from \"react\";\nimport { Dispatch } from \"redux\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CustomQuestionModal from \"@ats/src/components/modals/CustomQuestionModal\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport QuestionList from \"@ats/src/views/jobs/components/QuestionList\";\nimport QuestionListItem from \"@ats/src/views/jobs/components/QuestionListItem\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nimport { useJobStore } from \"@ats/src/lib/store/zustand/jobStore\";\n\nimport {\n useCreateQuestion,\n useUpdateQuestion,\n useDropQuestion,\n useDeleteQuestion,\n} from \"@shared/queryHooks/useQuestion\";\n\ntype Props = {\n jobId: number;\n questions: [];\n};\n\nfunction JobSetupApplicationFormCustomQuestions(props: Props) {\n const { jobId } = props;\n const setJob = useJobStore((state) => state.set);\n const questions = useJobStore(\n React.useCallback((state) => state.questionsByJobId[jobId], [jobId]),\n );\n const addToast = useToastContext();\n const { openModal, removeModal } = useModalContext();\n\n const { mutate: createQuestion, isLoading: isLoadingCreateQuestion } = useCreateQuestion();\n const { mutate: updateQuestion, isLoading: isLoadingUpdateQuestion } = useUpdateQuestion();\n const { mutate: dropQuestion, isLoading: isLoadingDropQuestion } = useDropQuestion();\n const { mutate: deleteQuestion, isLoading: isLoadingDeleteQuestion } = useDeleteQuestion();\n\n if (questions == undefined) {\n return null;\n }\n\n /* onDragEndQuestion\n --===================================================-- */\n const onDragEndQuestion = (result: { destination: any; source: any; draggableId: number }) => {\n window.logger(\n \"%c[JobSetupApplicationFormCustomQuestions] onDragEndQuestion result\",\n \"color: #1976D2\",\n result,\n );\n // eslint-disable-next-line no-unused-vars\n const { destination, source, draggableId } = result;\n\n window.logger(\"%c[JobSettingsAppliction] \", \"color: #1976D2\");\n\n // If there is no destinatiom then do nothing\n if (!destination) {\n return;\n }\n\n // If the user drops the item back in its original spot then do nothing\n if (destination.droppableId === source.droppableId && destination.index === source.index) {\n return;\n }\n\n // let questions: any[] = [...questions];\n const question: { id: number } = questions[source.index];\n\n const position: number = destination.index + 1;\n\n if (source.index !== destination.index) {\n let tempQuestions = questions;\n tempQuestions.splice(source.index, 1);\n tempQuestions.splice(destination.index, 0, question); // Add question to array in correct location\n\n /* Persist to Store\n --===================================================-- */\n setJob((state) => {\n state.questionsByJobId[jobId] = tempQuestions;\n });\n }\n\n dropQuestion(\n { jobId, id: question.id, position },\n {\n onError: ({ data: { errors } }) => {\n // window.logger(\"%c[JobSetup] useDropQuestion onError\", \"color: #FF7602\", {\n // errors\n // });\n addToast({\n title: errors[0],\n kind: \"warning\",\n delay: 5000,\n });\n },\n },\n );\n };\n\n /* onSubmitCustomQuestion\n --===================================================-- */\n const onSubmitCustomQuestion = (question, isEditingQuestion) => {\n removeModal();\n if (isEditingQuestion) {\n window.logger(\n \"%c[JobSetupApplicationFormCustomQuestions] onSubmitCustomQuestion isEditingQuestion question\",\n \"color: #1906D2\",\n question,\n );\n\n updateQuestion(\n { jobId: jobId, ...question },\n {\n onSuccess: () => {\n addToast({\n title: `Question updated`,\n kind: \"success\",\n });\n },\n onError: ({ data: { errors } }) => {\n const message = errors[\"kind\"] ? errors[\"kind\"] : errors[0];\n addToast({\n title: message,\n kind: \"warning\",\n delay: 5000,\n });\n },\n },\n );\n } else {\n createQuestion(\n { jobId: jobId, ...question },\n {\n onSuccess: () => {\n addToast({\n title: `Question created`,\n kind: \"success\",\n });\n },\n onError: ({ data: { errors } }) => {\n const message = errors[\"kind\"] ? errors[\"kind\"] : \"Error creating question\";\n addToast({\n title: message,\n kind: \"warning\",\n delay: 5000,\n });\n },\n },\n );\n }\n };\n\n /* onDeleteCustomQuestion\n --===================================================-- */\n const onDeleteCustomQuestion = (question) => {\n deleteQuestion(\n { jobId, ...question },\n {\n onSuccess: () => {\n addToast({\n title: `Question deleted`,\n kind: \"success\",\n });\n },\n onError: ({ data: { errors } }) => {\n addToast({\n title: errors[0],\n kind: \"warning\",\n delay: 5000,\n });\n },\n },\n );\n };\n\n /* CustomQuestionMoal\n --===================================================-- */\n const openNewCustomQuestionModal = (e) => {\n e.preventDefault();\n openCustomQuestionModal({}, false);\n };\n\n const openEditCustomQuestionModal = (question) => {\n openCustomQuestionModal(question, true);\n };\n\n const openCustomQuestionModal = (question, isEditingQuestion) => {\n const modal = (\n \n );\n\n openModal(modal);\n };\n\n const onCloseModal = () => {\n removeModal();\n };\n\n const questionNodes = () => {\n window.logger(\n \"%c[JobSetupApplicationFormCustomQuestions] questionNodes RENDER QUESTIONS\",\n \"color: #19FFD2\",\n );\n if (questions.length === 0) {\n return ;\n } else {\n return questions.map((question: { questionText: string }, index: number) => {\n window.logger(\n \"%c[JSAFormCustomQuestions] questionNode QuestionListItem\",\n \"color: #1976D2; border: 1px solid red;\",\n {\n question,\n },\n );\n return (\n \n );\n });\n }\n };\n\n return (\n <>\n Additional questions\n {questionNodes()}\n \n Add additional question\n \n \n );\n}\n\nJobSetupApplicationFormCustomQuestions.propTypes = {};\nJobSetupApplicationFormCustomQuestions.defaultProps = {};\n\nexport default JobSetupApplicationFormCustomQuestions;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupApplicationFormCustomQuestions;\n ${[t.text.xs, t.text.bold, t.mb(2)]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.Button = styled(Button)((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupApplicationFormCustomQuestions_Button;\n ${t.mt(3)}\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport JobSetupApplicationFormCustomQuestions from \"@ats/src/views/jobApplications/jobSetup/JobSetupApplicationFormCustomQuestions\";\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\nimport FormSection from \"@ats/src/components/forms/FormSection\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\n// import FormInput from \"@ats/src/components/forms/FormInput\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\n\nimport { useUpdateJob } from \"@shared/queryHooks/useJob\";\nimport { jobSettingOptions } from \"@ats/src/lib/lookups\";\n\nfunction JobSetupApplicationForm(props) {\n window.logger(\"%c[JobSetupApplicationForm] \", \"background: #EFDDEF; color: #1976D2\", props);\n const [job, setJob] = React.useState(props.job);\n const { questions, setIsDirty } = props;\n const { errors, settings, applyThrough, applicationThirdpartyUrl } = job;\n const { mutate: updateJob, isLoading: isLoadingUpdateJob } = useUpdateJob();\n const addToast = useToastContext();\n\n if (!settings) return null;\n const {\n phone,\n location,\n linkedinUrl,\n githubUrl,\n twitterUrl,\n dribbbleUrl,\n websiteUrl,\n resume,\n } = settings;\n\n /* updateJobSettings\n --===================================================-- */\n const updateJobSettings = (name, value) => {\n setIsDirty(true);\n let { settings } = job;\n settings = Object.assign({}, settings, { [name]: value });\n setJob({ ...job, settings });\n };\n\n // const handleFormInputChange = (name, value) => {\n // setIsDirty(true);\n // setJob({ ...job, [name]: value });\n // };\n\n const onSubmit = (e) => {\n e.preventDefault();\n // Submit the form here\n console.warn(\"[JobSetupApplicationForm] onSubmit job\", job);\n const { settings, applyThrough, applicationThirdpartyUrl } = job;\n\n updateJob(\n { id: props.job.id, settings, applyThrough, applicationThirdpartyUrl },\n {\n onSuccess: (data) => {\n setIsDirty(false);\n addToast({\n title: `Job updated`,\n kind: \"success\",\n });\n },\n onError: (response: any) => {\n setJob({ ...job, errors: response.data.errors });\n addToast({\n title: `Could not update job`,\n kind: \"warning\",\n });\n },\n },\n );\n };\n\n window.logger(\"%c[JobSetupApplicationForm] props\", \"color: #FF76D2\", { props, job });\n // window.logger(\"%c[JobSetupApplicationForm] job\", \"color: #19FFD2\", job);\n\n // const thirdPartyUrlSection = (\n // <>\n // \n // \n // );\n\n const jobApplicationSection = (\n <>\n \n \n Always required\n \n Always required\n\n \n\n \n \n\n \n \n\n \n\n \n\n \n\n \n \n\n \n \n \n\n \n \n \n \n );\n\n const BottomBarContent = (\n \n );\n\n return (\n <>\n \n {/*\n \n \n {applyThrough !== \"apply_through_hire\" && thirdPartyUrlSection}\n \n\n {applyThrough === \"apply_through_hire\" && jobApplicationSection}\n */}\n {jobApplicationSection}\n \n \n );\n}\n\nexport default JobSetupApplicationForm;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.PermaRequired = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupApplicationForm_PermaRequired;\n ${[t.mb(5), t.h(8), t.px(2), t.rounded.sm]}\n display: flex;\n align-items: center;\n color: ${t.dark ? t.color.gray[500] : t.color.gray[600]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[300]};\n background-color: ${t.dark ? t.color.gray[900] : t.color.gray[100]};\n `;\n});\n","import React from \"react\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport ProseMirrorEditor from \"@shared/ProseMirror/Editor\";\n\nimport BottomButtonBar from \"@ats/src/components/shared/BottomButtonBar\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useUpdateJob } from \"@shared/queryHooks/useJob\";\n\nfunction JobSetupDocument(props) {\n const { job, setIsDirty } = props;\n // const [sharedDocumentValue, setSharedDocumentValue] = React.useState(\n // job.sharedDocumentTemplate || \"\",\n // );\n\n const editorRef = React.useRef(undefined);\n\n const { mutate: updateJob, isLoading: isLoadingUpdateJob } = useUpdateJob();\n const addToast = useToastContext();\n\n const handleChange = (value) => {\n setIsDirty(true);\n // setSharedDocumentValue(value);\n };\n\n const handleSubmit = (event) => {\n event.preventDefault();\n\n updateJob(\n { id: job.id, sharedDocumentTemplate: editorRef.current?.serializedState() },\n {\n onSuccess: () => {\n setIsDirty(false);\n addToast({\n title: `Saved template`,\n kind: \"success\",\n });\n },\n onError: () => {\n addToast({\n title: `Could not save template`,\n kind: \"warning\",\n });\n },\n },\n );\n };\n\n return (\n \n \n \n\n \n \n \n \n \n

    Hiring documents

    \n

    \n If content is added to your template, a hiring document will be created for each candidate that applies. Each candidate's document starts as a copy of what you create here.\n

    \n

    \n While optional, it can be a great place to outline your hiring process and objectives.\n

    \n
    \n
    \n );\n}\n\nexport default JobSetupDocument;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupDocument;\n display: flex;\n height: 100%;\n `;\n});\n\nStyled.Form = styled.form((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupDocument_Form;\n height: 100%;\n display: flex;\n flex-direction: column;\n width: 100vw;\n\n ${t.mq['lg']} {\n width: 50vw;\n }\n `;\n});\n\nStyled.Sidebar = styled.aside((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupDocument_Description;\n ${t.p(4)};\n border-left: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n display: none;\n\n ${t.mq['lg']} {\n display: block;\n flex: 1;\n }\n\n h3 {\n ${[t.mt(1), t.text.bold]};\n color: ${t.dark ? t.color.gray[300] : t.color.black}\n }\n p {\n ${[t.text.xs, t.mt(3)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]}\n }\n b {\n ${[t.text.bold]};\n color: ${t.dark ? t.color.gray[300] : t.color.black}\n }\n `;\n});\n","import { useMutation, useQuery, useQueryClient } from \"react-query\";\nimport { apiPost, apiGet, apiDelete } from \"@shared/queryHooks/api\";\n\nconst createHiringTeamInvite = async ({ jobId, inviteId }) => {\n return await apiPost({\n path: `/jobs/${jobId}/hiring_team_invites`,\n variables: { inviteId },\n });\n};\n\nconst getHiringTeamInvites = async (jobId) => {\n window.logger(\"%c[useHiringTeamInvite] jobId\", \"color: #1976D2\", { jobId });\n if (jobId) {\n return await apiGet({ path: `/jobs/${jobId}/hiring_team_invites` });\n }\n};\n\nconst destroyHiringTeamInvite = async ({ id, jobId }) => {\n return await apiDelete({ path: `/jobs/${jobId}/hiring_team_invites/${id}`, variables: {} });\n};\n\n/* Hooks\n--===================================================-- */\n\nexport function useHiringTeamInvites(\n jobId,\n): {\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n isSuccess: boolean;\n} {\n return useQuery([\"hiringTeamInvites\", jobId], () => getHiringTeamInvites(jobId));\n}\n\nexport function useCreateHiringTeamInvite() {\n const queryClient = useQueryClient();\n return useMutation(createHiringTeamInvite, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[useHiringTeamInvite] useCreateHiringTeamInvite onSuccess\",\n \"color: #1976D2\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.invalidateQueries([\"hiringTeamInvites\", mutationVariables.jobId]);\n },\n // throwOnError: true,\n });\n}\n\nexport function useDestroyHiringTeamInvite() {\n const queryClient = useQueryClient();\n return useMutation(destroyHiringTeamInvite, {\n onSuccess: (data, mutationVariables) => {\n queryClient.invalidateQueries([\"hiringTeamInvites\", mutationVariables.jobId]);\n },\n // throwOnError: true,\n });\n}\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\n\nimport { useAddHiringTeamMembership } from \"@shared/queryHooks/useHiringTeamMembership\";\nimport { useAllInvites } from \"@shared/queryHooks/useInvite\";\nimport { useCreateHiringTeamInvite } from \"@shared/queryHooks/useHiringTeamInvite\";\n\ntype Props = {\n onCancel: () => void;\n allUsers: [];\n organizationUsers: any[];\n allInvites: [];\n teamMembers: [];\n hiringTeamInvites: [];\n job: { id; organizationUserIds: any[] };\n};\n\nfunction NewTeamMemberModal(props: Props) {\n window.logger(\"%c[NewTeamMemberModal] render\", \"color: #1976D2\", { props });\n const { onCancel, allUsers, organizationUsers, job, hiringTeamInvites } = props;\n const { mutate: addTeamMember, isLoading: isLoadingAdd } = useAddHiringTeamMembership();\n const [selectedOrganizationUserId, setSelectedOrganizationUserId] = useState(null);\n const [errors, setErrors] = useState([]);\n const [isDirty, setIsDirty] = useState(false);\n\n const {\n mutate: createHiringTeamInvite,\n isLoading: isLoadingCreateHiringTeamInvite,\n } = useCreateHiringTeamInvite();\n\n const { data: invitesData } = useAllInvites();\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (selectedOrganizationUserId.includes(\"organizationUser-\")) {\n addTeamMember(\n {\n jobId: job.id,\n organizationUserId: selectedOrganizationUserId.replace(\"organizationUser-\", \"\"),\n },\n {\n onSuccess: (data) => {\n window.logger(\"%c[NTMM] addTeamMember SUCCESS\", \"color: #1976D2\", { data });\n onCancel();\n },\n },\n );\n } else {\n createHiringTeamInvite(\n { jobId: job.id, inviteId: selectedOrganizationUserId.replace(\"invite-\", \"\") },\n {\n onSuccess: (data) => {\n window.logger(\"%c[NTMM] createHiringteamInvite SUCCESS\", \"color: #1976D2\", { data });\n onCancel();\n },\n },\n );\n }\n };\n\n const availableTeamMembers = () => {\n // return allUsers\n // .filter((user: { isActive }) => user.isActive)\n // .filter((user: { id }) => !job.userIds.includes(user.id));\n\n return organizationUsers\n .filter((organizationUser: { isActive: boolean }) => organizationUser.isActive)\n .filter((organizationUser: { role: string }) => organizationUser.role !== \"org_interviewer\")\n .filter(\n (organizationUser: { id: number }) =>\n !job.organizationUserIds.includes(organizationUser.id),\n );\n };\n\n const availableInvites = () => {\n return invitesData == undefined\n ? []\n : invitesData.items\n // .filter((invite: { isActive }) => invite.isActive);\n .filter((invite: { role }) => invite.role !== \"org_interviewer\")\n .filter(\n (invite: { id }) =>\n !hiringTeamInvites\n .map((hiringTeamInvite: { invite }) => hiringTeamInvite.invite.id)\n .includes(invite.id),\n );\n };\n\n const teamMemberOptions = () => {\n const users = availableTeamMembers().map((organizationUser: { id: number; user: any }) => ({\n id: organizationUser.id,\n value: `organizationUser-${organizationUser.id}`,\n label: organizationUser.user.fullName,\n }));\n\n const invites = availableInvites().map((invite: { id; email }) => ({\n id: invite.id,\n value: `invite-${invite.id}`,\n label: invite.email,\n }));\n\n return [...users, ...invites] as const;\n };\n\n window.logger(\"%c[NewTeamMembershipModal] RENDER \", \"color: #1976D2\", { invitesData });\n\n const handleSelection = (name, value) => {\n window.logger(\"[NewTeamMemberModal] handleSelection\", {\n name,\n value,\n });\n setSelectedOrganizationUserId(value);\n setIsDirty(true);\n };\n\n const submitButton = (\n \n \n Add to team\n \n \n \n );\n\n return (\n \n \n Select the individual to add to this job's hiring team.\n \n \n \n \n \n );\n}\n\nNewTeamMemberModal.propTypes = {\n onCancel: PropTypes.func.isRequired,\n};\n\nexport default NewTeamMemberModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: JobCategoryModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobCategoryModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport UserAvatar from \"@ats/src/components/shared/UserAvatar\";\n\nimport { useAuthorization } from \"@ats/src/components/shared/AuthorizationManager\";\n\n/*\n--===================================================-- */\n\nexport default function TeamMemberListItem(props) {\n const { removeTeamMember, teamMember } = props;\n const authorized = useAuthorization();\n\n const handleRemoveTeamMember = (e) => {\n e.preventDefault();\n removeTeamMember(teamMember.id);\n };\n\n return (\n \n \n \n \n \n

    {teamMember.user.fullName}

    \n {teamMember.isAdmin && Admin}\n
    \n {teamMember.user.email}\n
    \n
    \n {authorized({ minimumRole: \"org_admin\" }) ? (\n \n \n Remove from team\n \n \n ) : null}\n
    \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: TeamMemberListItem;\n ${[t.pl(4), t.pr(3), t.py(3), t.mb(\"-px\")]}\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n &:first-of-type {\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top-left-radius: 0.4375rem;\n border-top-right-radius: 0.4375rem;\n }\n &:last-of-type {\n border-bottom-left-radius: 0.4375rem;\n border-bottom-right-radius: 0.4375rem;\n }\n `;\n});\n\nStyled.Member = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: TeamMemberListItem_Member;\n display: flex;\n align-items: center;\n `;\n});\n\nStyled.MemberInfo = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: TeamMemberListItem_MemberInfo;\n ${t.ml(3)}\n\n h3 {\n ${t.mb(1)};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n\n span {\n ${[t.text.xs]}\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n\nStyled.MemberWrapper = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: TeamMemberListItem_MemberWrapper;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n position: relative;\n `;\n});\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationActivity_Label;\n ${[t.mb(1), t.ml(2), t.h(4), t.px(1), t.rounded.xs, t.text.normal]}\n font-size: 0.625rem;\n flex-shrink: 0;\n flex-grow: 0;\n display: flex;\n align-items: center;\n border: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1;\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\n\nimport { useAuthorization } from \"@ats/src/components/shared/AuthorizationManager\";\n/*\n--===================================================-- */\n\nexport default function TeamMemberInviteListItem(props) {\n const { destroyHiringTeamInvite, email, hiringTeamInviteId } = props;\n const authorized = useAuthorization();\n\n const handleDestroyHiringTeamInvite = (e) => {\n e.preventDefault();\n destroyHiringTeamInvite(hiringTeamInviteId);\n };\n\n return (\n \n \n

    {email}

    \n Organization invite sent—not yet accepted\n
    \n {authorized({ minimumRole: \"org_admin\" }) ? (\n \n \n Remove from team\n \n \n ) : null}\n
    \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: TeamMemberInviteListItem;\n ${[t.pl(4), t.pr(3), t.py(3), t.mb(\"-px\")]}\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n &:first-of-type {\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top-left-radius: 0.4375rem;\n border-top-right-radius: 0.4375rem;\n }\n &:last-of-type {\n border-bottom-left-radius: 0.4375rem;\n border-bottom-right-radius: 0.4375rem;\n }\n `;\n});\n\nStyled.MemberInfo = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: TeamMemberInviteListItem_MemberInfo;\n\n h3 {\n ${t.mb(1)};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n\n span {\n ${[t.text.xs]}\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n","import React from \"react\";\nimport isEmpty from \"lodash/isEmpty\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport FormSection from \"@ats/src/components/forms/FormSection\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport NewTeamMemberModal from \"@ats/src/components/modals/NewTeamMemberModal\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\nimport TeamMemberListItem from \"@ats/src/views/jobApplications/jobSetup/components/TeamMemberListItem\";\nimport TeamMemberInviteListItem from \"./components/TeamMemberInviteListItem\";\nimport { IfAuthorized } from \"@ats/src/components/shared/AuthorizationManager\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nimport { useOrganizationStore } from \"@ats/src/lib/store/zustand/organizationStore\";\n\nimport { useHiringTeamInvites } from \"@shared/queryHooks/useHiringTeamInvite\";\n\nimport { useRemoveHiringTeamMembership } from \"@shared/queryHooks/useHiringTeamMembership\";\nimport { useUpdateJob } from \"@shared/queryHooks/useJob\";\nimport { useDestroyHiringTeamInvite } from \"@shared/queryHooks/useHiringTeamInvite\";\n\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\nfunction JobSetupTeam(props) {\n const { job } = props;\n const addToast = useToastContext();\n const { openModal, removeModal } = useModalContext();\n const { currentOrganization } = useCurrentSession();\n\n const { mutate: removeTeamMember, isLoading: isLoadingRemove } = useRemoveHiringTeamMembership();\n const { mutate: updateJob, isLoading: isLoadingUpdateJob } = useUpdateJob();\n const { mutate: destroyHiringTeamInvite } = useDestroyHiringTeamInvite();\n\n const {\n data: hiringTeamInvitesData,\n isLoading: isLoadingHiringTeamInvites,\n } = useHiringTeamInvites(job?.id);\n const hiringTeamInvites = hiringTeamInvitesData != undefined ? hiringTeamInvitesData?.items : [];\n\n const { organizationUsers } = currentOrganization;\n const hiringTeamMemberships = job.organizationUserIds.map((id) =>\n organizationUsers.find((u) => u.id === id),\n );\n\n const teamMembers = hiringTeamMemberships.filter(\n (organizationUser) => organizationUser && organizationUser.isActive,\n );\n\n window.logger(\"%c[JobSetupTeam] render\", \"color: #1976D2\", {\n props,\n currentOrganization,\n teamMembers,\n hiringTeamMemberships,\n hiringTeamInvites,\n hiringTeamInvitesData,\n });\n\n const handleRemoveAllNonAdmins = () => {\n const nonAdminTeamMembers = teamMembers.filter((member) => member.role === \"org_user\");\n // remove hiring team invited members who were not assigned an admin role\n let invitedNonAdmins = [];\n if (hiringTeamInvites.length > 0) {\n invitedNonAdmins = hiringTeamInvites.filter((invited) => invited.invite.role === \"org_user\");\n }\n\n window.logger(\"%c[JobSetupTeam] handleRemoveAllAdmins\", \"color: #1976D2\", {\n hiringTeamMemberships,\n hiringTeamInvites,\n nonAdminTeamMembers,\n invitedNonAdmins,\n });\n\n if (nonAdminTeamMembers.length > 0) {\n nonAdminTeamMembers.forEach((member) => {\n removeTeamMember({ jobId: job.id, organizationUserId: member.id });\n });\n }\n if (invitedNonAdmins.length > 0) {\n invitedNonAdmins.forEach((invited) => {\n destroyHiringTeamInvite({ id: invited.id, jobId: job.id });\n });\n }\n };\n const handleClickOnRemoveNonAdmins = () => {\n const modal = (\n {\n removeModal();\n handleRemoveAllNonAdmins();\n }}\n onCancel={() => removeModal()}\n isDestructiveConfirm={false}\n />\n );\n openModal(modal);\n };\n\n const handleClickOnRemoveTeamMember = (organizationUserId) => {\n const modal = (\n {\n removeModal();\n removeUserFromTeam(organizationUserId);\n }}\n onCancel={() => removeModal()}\n isDestructiveConfirm={false}\n />\n );\n\n openModal(modal);\n };\n\n const openNewTeamMemberModal = (event) => {\n event.preventDefault();\n openTeamMemberModal();\n };\n\n const openTeamMemberModal = () => {\n const modal = (\n \n );\n\n openModal(modal);\n };\n\n const onCloseModal = () => {\n removeModal();\n };\n\n const removeUserFromTeam = (organizationUserId) => {\n removeTeamMember(\n { jobId: job.id, organizationUserId },\n {\n onSuccess: () => {\n addToast({\n title: `Removed`,\n kind: \"success\",\n });\n },\n },\n );\n };\n\n const handleDestroyHiringTeamInvite = (inviteId) => {\n destroyHiringTeamInvite(\n { id: inviteId, jobId: job.id },\n {\n onSuccess: () => {\n addToast({\n title: `Removed`,\n kind: \"success\",\n });\n },\n },\n );\n };\n\n const teamMemberNodes = () => {\n return teamMembers.length > 0 ? (\n teamMembers.map((teamMember, index) => {\n return (\n \n );\n })\n ) : (\n \n );\n };\n\n const teamInviteNodes = () => {\n return hiringTeamInvites.length > 0\n ? hiringTeamInvites.map((invite, index) => {\n return (\n \n );\n })\n : null;\n };\n\n if (currentOrganization?.organizationUsers == undefined) {\n return ;\n }\n\n return (\n <>\n \n \n \n {teamMemberNodes()}\n {teamInviteNodes()}\n \n\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default JobSetupTeam;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.TeamMemberList = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupTeam_TeamMemberList;\n ${[t.my(8), t.rounded.sm]}\n `;\n});\n\nStyled.Actions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupTeam_Actions;\n display: flex;\n button {\n ${[t.mr(3)]}\n }\n `;\n});\n","import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\n\nimport { useCreateHiringStage, useUpdateHiringStage } from \"@shared/queryHooks/useHiringStage\";\n\nimport { validateHiringStage } from \"@shared/lib/validateWithYup\";\n\ntype Props = {\n onCancel: () => void;\n isEditing: boolean;\n hiringStage: { id; name; jobApplicationsCount };\n jobId: number;\n};\n\nfunction HiringStageModal(props: Props) {\n const { isEditing, onCancel, hiringStage, jobId } = props;\n const {\n mutate: createHiringStage,\n error: errorOnCreate,\n isLoading: isLoadingCreate,\n } = useCreateHiringStage();\n const {\n mutate: updateHiringStage,\n error: errorOnUpdate,\n isLoading: isLoadingUpdate,\n } = useUpdateHiringStage();\n const [hiringStageName, setHiringStageName] = useState(hiringStage.name || \"\");\n const [errors, setErrors] = useState([]);\n const [isDirty, setIsDirty] = useState(false);\n\n const handleChangeHiringStage = (_, value) => {\n setHiringStageName(value);\n setErrors([]);\n setIsDirty(true);\n };\n\n // window.logger(\"%c[HiringStageModal] render\", \"color: #1976D2\", {\n // props,\n // errorOnCreate,\n // errorOnUpdate,\n // });\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n const [isValid, validationErrors] = await validateHiringStage({ hiringStageName });\n\n if (isValid) {\n isEditing ? handleUpdate() : handleCreate();\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleCreate = async () => {\n try {\n await createHiringStage({ name: hiringStageName, jobId });\n // jobHiringStage was successfully created\n onCancel(); // this closes the modal\n } catch (error) {\n // Uh oh, something went wrong\n // window.logger(\"%c[HiringStageModal] handle error when CREATE Job HiringStage\", \"color: #FF7602\", {\n // error: error.response.data,\n // });\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n const handleUpdate = async () => {\n try {\n await updateHiringStage({ id: hiringStage.id, name: hiringStageName, jobId });\n // jobHiringStage was successfully updated\n onCancel(); // this closes the modal\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\n \"%c[HiringStageModal] handle error when updating Job HiringStage\",\n \"color: #FF7602\",\n {\n error,\n },\n );\n if (error.response && error.response.data) setErrors(error.response.data.errors);\n }\n };\n\n const submitButton = (\n \n \n {isEditing ? \"Update stage\" : \"Add stage\"}\n \n \n \n );\n\n const editMessage = null;\n // Number(hiringStage.jobApplicationsCount) > 0\n // ? `This Stage name will be updated for the ${hiringStage.jobApplicationsCount} active job${\n // Number(hiringStage.jobApplicationsCount) === 1 ? \" that is\" : \"s that are\"\n // } currently using it.`\n // : `There are no active jobs that currently use this Stage.`;\n\n return (\n \n \n {isEditing ? editMessage : \"Enter a name for the new stage.\"}\n \n \n \n \n \n );\n}\n\nexport default HiringStageModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: HiringStageModal_Instructions;\n ${[t.mb(5)]}\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: HiringStageModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React from \"react\";\nimport { Droppable, DragDropContext } from \"react-beautiful-dnd\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nexport default function HiringStageList(props) {\n const { onDragEndHiringStage } = props;\n\n const onDragEnd = (result) => {\n onDragEndHiringStage(result);\n };\n\n return (\n \n \n {(provided) => (\n \n {props.children}\n {provided.placeholder} {/* Increases space for dropping */}\n \n )}\n \n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: HiringStageList;\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n `;\n});\n","import React from \"react\";\nimport { Draggable } from \"react-beautiful-dnd\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\n/*\n--===================================================-- */\n\n// export default class HiringStageListItem extends Component {\nexport default function HiringStageListItem(props) {\n const { hiringStage, index, openEditHiringStageModal, deleteHiringStage } = props;\n const { name, jobApplicationsCount } = hiringStage;\n\n // window.logger(\"%c[HiringStageListItem] stage\", \"color: #1976D2\", { hiringStage });\n\n const handleOpenHiringStageModal = (event) => {\n event.preventDefault();\n\n openEditHiringStageModal(hiringStage);\n };\n\n const handleDeleteHiringStage = (event) => {\n event.preventDefault();\n\n deleteHiringStage(hiringStage);\n };\n\n return (\n \n {(provided) => {\n return (\n \n
    \n {name}\n {`${Number(jobApplicationsCount) > 0 ? jobApplicationsCount : \"No\"\n } candidate${Number(jobApplicationsCount) === 1 ? \"\" : \"s\"\n }`}\n
    \n \n \n Edit stage\n \n \n Delete stage\n \n \n \n );\n }}\n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: HiringStageListItem;\n ${[t.pl(4), t.pr(3), t.py(3), t.mb(\"-px\")]}\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n transition: background-color 0.2s ease, border-color 0.2s ease;\n &:hover,\n &:active {\n border-color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n z-index: 16;\n }\n `;\n});\n\nStyled.HiringStageText = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: HiringStageListItem_HiringStageText;\n ${t.mb(1)}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.HiringStageDetails = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: HiringStageListItem_HiringStageDetails;\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n","import React, { useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport FormSection from \"@ats/src/components/forms/FormSection\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport HiringStageModal from \"@ats/src/components/modals/HiringStageModal\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\nimport AlertModal from \"@ats/src/components/modals/AlertModal\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\n\nimport HiringStageList from \"@ats/src/views/accountAdmin/components/HiringStageList\";\nimport HiringStageListItem from \"@ats/src/views/accountAdmin/components/HiringStageListItem\";\n\nimport { useHiringStages } from \"@shared/queryHooks/useHiringStage\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useUpdateHiringStage, useDeleteHiringStage } from \"@shared/queryHooks/useHiringStage\";\nimport { moveFromIndexToIndex } from \"@shared/lib/utils\";\n\nexport default function AccountHiringStages(props) {\n const { job } = props;\n\n const { status, data, error, isFetching } = useHiringStages({ jobId: job.id });\n const { mutate: updateHiringStage, isLoading: isLoadingUpdate } = useUpdateHiringStage();\n const { mutate: deleteHiringStage, isLoading: isLoadingDelete } = useDeleteHiringStage();\n const { openModal, removeModal } = useModalContext();\n const addToast = useToastContext();\n\n const hiringStageItems = data != undefined ? data : [];\n const [hiringStages, setHiringStages] = useState(hiringStageItems);\n const [errors, setErrors] = useState(null);\n\n const inboxStage = hiringStages.filter((stage) => stage.kind === \"kind_inbox\")[0];\n const inProcessStages = hiringStages.filter((stage) => stage.kind === \"kind_in_process\");\n const hiredStage = hiringStages.filter((stage) => stage.kind === \"kind_hired\")[0];\n const archivedStage = hiringStages.filter((stage) => stage.kind === \"kind_archived\")[0];\n\n React.useEffect(() => {\n setHiringStages(hiringStageItems);\n }, [hiringStageItems]);\n\n window.logger(\"%c[AccountHiringStages] render\", \"background: #EFDDEF; color: #1976D2\", {\n props,\n hiringStages,\n inboxStage,\n inProcessStages,\n hiredStage,\n archivedStage,\n });\n\n const handleClickOnDeleteHiringStage = (hiringStage) => {\n let modal;\n\n if (Number(hiringStage.jobApplicationsCount) > 0) {\n modal = (\n \n );\n } else {\n modal = (\n {\n removeModal();\n handleDeleteHiringStage(hiringStage);\n }}\n onCancel={removeModal}\n isDestructiveConfirm={false}\n />\n );\n }\n\n openModal(modal);\n };\n\n const handleDeleteHiringStage = async (hiringStage) => {\n try {\n await deleteHiringStage(hiringStage, {\n onError: ({ response }) => {\n window.logger(\"[HiringStageModal] handle error when deleting HiringStage\", { response });\n\n // setErrors(response.data.errors);\n const generalErrors = response.data.errors[\"general\"];\n\n if (generalErrors) {\n addToast({ title: generalErrors[0], kind: \"warning\", delay: 3000 });\n }\n },\n });\n // hiringStage was successfully deleted\n } catch (error) {\n // Uh oh, something went wrong\n console.error(\"[HiringStageModal] handle error when deleting Job HiringStage\", {\n error,\n });\n }\n };\n\n /* HiringStageModal\n --===================================================-- */\n const openNewHiringStageModal = (event) => {\n event.preventDefault();\n openHiringStageModal({}, false);\n };\n\n const openEditHiringStageModal = (hiringStage) => {\n openHiringStageModal(hiringStage, true);\n };\n\n const openHiringStageModal = (hiringStage, isEditing) => {\n const modal = (\n \n );\n\n openModal(modal);\n };\n\n const onCloseModal = () => {\n removeModal();\n };\n\n /* onDragEndHiringStage\n --===================================================-- */\n const onDragEndHiringStage = (result: { destination: any; source: any; draggableId: number }) => {\n window.logger(\"%c[AccountHiringStages] onDragEndHiringStage result\", \"color: #1976D2\", result);\n // eslint-disable-next-line no-unused-vars\n const { destination, source, draggableId } = result;\n\n // If there is no destinatiom then do nothing\n if (!destination) return;\n\n // If the user drops the item back in its original spot then do nothing\n if (destination.droppableId === source.droppableId && destination.index === source.index)\n return;\n\n const hiringStage: { id: number; jobId: number } = inProcessStages[source.index];\n const position: number = destination.index + 1;\n\n const newHiringStages = moveFromIndexToIndex(inProcessStages, source.index, destination.index);\n\n setHiringStages([inboxStage, ...newHiringStages, hiredStage, archivedStage]);\n\n updateHiringStage({ ...hiringStage, position });\n };\n\n /* HiringStage nodes\n --===================================================-- */\n const hiringStageNodes = () => {\n const positions = inProcessStages.map((hiringStage) => hiringStage.position);\n window.logger(\n \"%c[JobSetupHiringStages] hiringStageNodes RENDER\",\n \"color: #19FFD2\",\n positions,\n // {\n // data,\n // }\n );\n window.logger(\"%c[JobSetupHiringStages] hiringStageNodes RENDER\", \"color: #850596\", {\n data,\n });\n\n if (inProcessStages.length === 0) {\n return ;\n } else {\n return inProcessStages.map(\n (hiringStage: { name: string; position: number }, index: number) => {\n return (\n \n );\n },\n );\n }\n };\n\n if (status === \"loading\") {\n return ;\n }\n\n return (\n <>\n \n \n \n {/* {errors ? (\n
      \n {errors[\"general\"].map((error, index) => (\n
    • \n {error}\n
    • \n ))}\n
    \n ) : null} */}\n\n {inboxStage && (\n \n {inboxStage.name}\n {`${Number(inboxStage.jobApplicationsCount) > 0 ? inboxStage.jobApplicationsCount : \"No\"\n } candidate${Number(inboxStage.jobApplicationsCount) === 1 ? \"\" : \"s\"\n }`}\n \n )}\n\n \n {hiringStageNodes()}\n \n\n {hiredStage && (\n \n {hiredStage.name}\n {`${Number(hiredStage.jobApplicationsCount) > 0\n ? hiredStage.jobApplicationsCount\n : \"No\"\n } candidate${Number(hiredStage.jobApplicationsCount) === 1 ? \"\" : \"s\"\n }`}\n \n )}\n\n {archivedStage && (\n \n {archivedStage.name}\n {`${Number(archivedStage.jobApplicationsCount) > 0\n ? archivedStage.jobApplicationsCount\n : \"No\"\n } candidate${Number(archivedStage.jobApplicationsCount) === 1 ? \"\" : \"s\"\n }`}\n \n )}\n\n \n
    \n \n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.FixedStage = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountHiringStages;\n ${[t.pl(4), t.pr(3), t.py(3), t.mb(\"-px\")]}\n position: relative;\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n &:first-of-type {\n ${t.mt(8)}\n border-top-left-radius: 0.4375rem;\n border-top-right-radius: 0.4375rem;\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n }\n &:last-of-type {\n ${t.mb(8)}\n border-bottom-left-radius: 0.4375rem;\n border-bottom-right-radius: 0.4375rem;\n }\n `;\n});\n\nStyled.FixedStageText = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AccountHiringStages_FixedStageText;\n ${t.mb(1)}\n color: ${t.dark ? t.color.gray[200] : t.color.black}\n `;\n});\n\nStyled.FixedStageDetails = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: AccountHiringStages_FixedStageDetails;\n ${[t.text.xs]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]}\n `;\n});\n","import { useMutation, useQuery, useQueryClient } from \"react-query\";\nimport { apiGet, apiPost, apiPut, apiDelete } from \"@shared/queryHooks/api\";\nimport { HiringStageAutomation } from \"@ats/types/job\";\n\nconst getHiringStageAutomations = async ({ jobId }: { jobId: number }) => {\n return await apiGet({ path: `/jobs/${jobId}/hiring_stage_message_automations` });\n};\n\nconst getHiringStageAutomation = async ({ id, jobId }: { id: number; jobId: number }) => {\n return await apiGet({\n path: `/jobs/${jobId}/hiring_stage_message_automations/${id}`,\n });\n};\n\nconst createHiringStageAutomation = async ({\n jobId,\n channelMessageTemplateId,\n hiringStageId,\n name,\n frequency,\n enabled = true,\n}: HiringStageAutomation) => {\n return await apiPost({\n path: `/jobs/${jobId}/hiring_stage_message_automations`,\n variables: { channelMessageTemplateId, hiringStageId, name: \"\", frequency, enabled },\n });\n};\n\nconst updateHiringStageAutomation = async ({\n id,\n jobId,\n ...hiringStageAutomation\n}: HiringStageAutomation) => {\n return await apiPut({\n path: `/jobs/${jobId}/hiring_stage_message_automations/${id}`,\n variables: { hiringStageMessageAutomation: hiringStageAutomation },\n });\n};\n\nconst deleteHiringStageAutomation = async ({ jobId, id }: { jobId: number; id: number }) => {\n return await apiDelete({\n path: `/jobs/${jobId}/hiring_stage_message_automations/${id}`,\n variables: null,\n });\n};\n\n/* Hooks\n--===================================================-- */\nexport function useHiringStageAutomations({\n jobId,\n}: {\n jobId: number;\n}): {\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n} {\n return useQuery(\"hiringStageAutomations\", () => getHiringStageAutomations({ jobId }));\n}\n\nexport function useHiringStageAutomation({\n id,\n jobId,\n}: {\n id: number;\n jobId: number;\n}): {\n status: any;\n data: any;\n error: any;\n isLoading: boolean;\n} {\n return useQuery([\"hiringStageAutomations\", id], () => getHiringStageAutomation({ id, jobId }));\n}\n\nexport function useCreateHiringStageAutomation() {\n const queryClient = useQueryClient();\n return useMutation(createHiringStageAutomation, {\n // After success or failure, refetch the hiringStageAutomations query\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[useHiringStageAutomation] useCreateHiringStageAutomation onSuccess\",\n \"color: #a05195\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.invalidateQueries(\"hiringStageAutomations\");\n queryClient.invalidateQueries([\"hiringStages\", data.jobId]);\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n },\n });\n}\n\nexport function useUpdateHiringStageAutomation() {\n const queryClient = useQueryClient();\n return useMutation(updateHiringStageAutomation, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\n \"%c[useHiringStageAutomation] useUpdateHiringStageAutomation onSuccess\",\n \"color: #a05195\",\n {\n data,\n mutationVariables,\n },\n );\n queryClient.invalidateQueries(\"hiringStageAutomations\");\n queryClient.invalidateQueries([\"hiringStages\", data.jobId]);\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n },\n });\n}\n\nexport function useDeleteHiringStageAutomation() {\n const queryClient = useQueryClient();\n return useMutation(deleteHiringStageAutomation, {\n onSuccess: (data) => {\n window.logger(\n \"%c[useHiringStageAutomation] useDeleteHiringStageAutomation onSuccess\",\n \"color: #a05195\",\n {\n data,\n },\n );\n queryClient.invalidateQueries(\"hiringStageAutomations\");\n queryClient.invalidateQueries([\"hiringStages\", data.jobId]);\n queryClient.invalidateQueries([\"jobs\", data.jobId]);\n },\n });\n}\n","import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\n\nimport {\n useCreateHiringStageAutomation,\n useUpdateHiringStageAutomation,\n} from \"@shared/queryHooks/useHiringStageAutomation\";\nimport { useChannelMessageTemplates } from \"@shared/queryHooks/useChannelMessageTemplate\";\n\nimport { HiringStageAutomation } from \"@ats/types/job\";\n\ntype HiringStageOption = {\n value: number; // id\n label: string; // name\n};\n\ntype Props = {\n onCancel: () => void;\n isEditing: boolean;\n passedHiringStageAutomation: HiringStageAutomation;\n job: any;\n hiringStageOptions: Array;\n};\n\nfunction HiringStageAutomationModal(props: Props) {\n const { isEditing, onCancel, passedHiringStageAutomation, job, hiringStageOptions } = props;\n const [stageAutomationState, setStageAutomationState] = useState({\n hiringStageId: passedHiringStageAutomation?.hiringStage?.id || null,\n channelMessageTemplateId: passedHiringStageAutomation?.channelMessageTemplateId || null,\n frequency: passedHiringStageAutomation?.frequency || \"\",\n });\n const [errors, setErrors] = useState([]);\n const [isDirty, setIsDirty] = useState(false);\n\n const { data: channelMessageTemplates } = useChannelMessageTemplates();\n const {\n mutate: createHiringStageAutomation,\n isLoading: isLoadingCreate,\n } = useCreateHiringStageAutomation();\n const {\n mutate: updateHiringStageAutomation,\n isLoading: isLoadingUpdate,\n } = useUpdateHiringStageAutomation();\n\n window.logger(\"%c[HiringStageAutomationModal] render\", \"color: #a05195\", {\n props,\n stageAutomationState,\n });\n\n const channelMessageTemplateSelectOptions = channelMessageTemplates\n ? channelMessageTemplates.items.map((template) => {\n return { value: template.id, label: template.name };\n })\n : [];\n\n const frequencyOptions = [\n { value: \"once\", label: \"Once\" },\n { value: \"every_time\", label: \"Every time\" },\n ];\n\n const stageOptionsWithoutInbox = hiringStageOptions.filter(\n (options) => options.label !== \"Inbox\",\n );\n // Do not allow new Automations to be created for Hiring Stages with an existing Automation\n const filteredStageOptionsWithoutInbox = stageOptionsWithoutInbox.filter(\n (option) =>\n !job.hiringStages.some(\n (stage) => stage.hiringStageAutomation !== null && option.value === stage.id,\n ),\n );\n\n const stageOptions = isEditing ? stageOptionsWithoutInbox : filteredStageOptionsWithoutInbox;\n\n const handleChangeHiringStageAutomation = (name, value) => {\n // window.logger(\"%c[HiringStageAutomationModal] onChange\", \"color: #a05195\", {\n // name,\n // value,\n // stageAutomationState,\n // });\n setStageAutomationState({ ...stageAutomationState, [name]: value });\n setErrors([]);\n setIsDirty(true);\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n isEditing ? handleUpdate() : handleCreate();\n };\n\n const handleCreate = async () => {\n await createHiringStageAutomation(\n { jobId: job.id, ...stageAutomationState },\n {\n onSuccess: (data) => {\n window.logger(\"%c[HiringStageAutomationModal] handleCreate onSuccess\", \"color: #a05195\", {\n data,\n });\n onCancel(); // this closes the modal\n },\n onError: (response: any) => {\n window.logger(\"%c[HiringStageAutomationModal] handleCreate onError\", \"color: #FF7602\", {\n response,\n });\n if (response.data && response.data.errors) setErrors(response.data.errors);\n },\n },\n );\n };\n\n const handleUpdate = async () => {\n await updateHiringStageAutomation(\n {\n id: passedHiringStageAutomation.id,\n jobId: job.id,\n ...stageAutomationState,\n },\n {\n onSuccess: (data) => {\n window.logger(\"%c[HiringStageAutomationModal] handleUpdate onSuccess\", \"color: #a05195\", {\n data,\n });\n onCancel(); // this closes the modal\n },\n onError: (response: any) => {\n window.logger(\"%c[HiringStageAutomationModal] handleUpdate onError\", \"color: #FF7602\", {\n response,\n });\n if (response.data && response.data.errors) setErrors(response.data.errors);\n },\n },\n );\n };\n\n const submitButton = (\n \n \n {isEditing ? \"Update automation\" : \"Add automation\"}\n \n \n \n );\n\n const instructions = isEditing ? (\n <>\n Edit the automation for the hiring stage{\" \"}\n {passedHiringStageAutomation?.hiringStage?.name}. Moving a candidate to the\n selected hiring stage will trigger an email message to the candidate using the chosen message\n template.\n \n ) : (\n \"Moving a candidate to the selected hiring stage will trigger an email message to the candidate using the chosen message template.\"\n );\n\n return (\n \n {instructions}\n \n \n \n \n \n \n );\n}\n\nexport default HiringStageAutomationModal;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Instructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: HiringStageAutomationModal_Instructions;\n ${[t.mb(5)]}\n\n span {\n font-weight: 700;\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n }\n `;\n});\n\nStyled.ButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: HiringStageAutomationModal_ButtonContainer;\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\n\nimport { HiringStageAutomation } from \"@ats/types/job\";\n\ntype Props = {\n hiringStageAutomation: HiringStageAutomation;\n openEditHiringStageAutomationModal: (hiringStageAutomation: HiringStageAutomation) => void;\n deleteHiringStageAutomation: (hiringStageAutomation: HiringStageAutomation) => void;\n handleToggleEnable: (hiringStageAutomation: HiringStageAutomation) => void;\n};\n\nexport default function StageAutomationListItem(props: Props) {\n const {\n hiringStageAutomation,\n openEditHiringStageAutomationModal,\n deleteHiringStageAutomation,\n handleToggleEnable,\n } = props;\n const { channelMessageTemplateName, frequency, enabled, hiringStage } = hiringStageAutomation;\n\n const handleOnClickToggleEnable = (event) => {\n event.preventDefault();\n const updatedAutomation = {\n ...hiringStageAutomation,\n enabled: !hiringStageAutomation.enabled,\n };\n handleToggleEnable(updatedAutomation);\n };\n\n const handleOnClickEdit = (event) => {\n event.preventDefault();\n\n openEditHiringStageAutomationModal(hiringStageAutomation);\n };\n\n const handleOnClickDelete = async (event) => {\n event.preventDefault();\n\n deleteHiringStageAutomation(hiringStageAutomation);\n };\n\n return (\n \n
    \n \n {hiringStage.name}\n {enabled ? null : (\n \n Disabled\n \n )}\n \n \n

    Send a message using the

    \n {channelMessageTemplateName}\n

    template

    \n {frequency === \"once\" ? \"the first time\" : \"every time\"}\n

    this stage is entered.

    \n
    \n
    \n \n \n \n {enabled ? \"Disable automation\" : \"Enable automation\"}\n \n \n Edit automation\n \n \n Delete automation\n \n \n \n
    \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.ListItemContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: StageAutomationListItem_Container;\n ${[t.pl(4), t.pr(3), t.py(3), t.mb(\"-px\")]}\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n transition: background-color 0.2s ease, border-color 0.2s ease;\n &:first-of-type {\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top-left-radius: 0.4375rem;\n border-top-right-radius: 0.4375rem;\n }\n &:last-of-type {\n border-bottom-left-radius: 0.4375rem;\n border-bottom-right-radius: 0.4375rem;\n }\n &:hover,\n &:active {\n border-color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n z-index: 16;\n }\n `;\n});\n\nStyled.Info = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: StageAutomationListItem_Info;\n display: flex;\n height: 1.5rem;\n ${t.mb(1)}\n `;\n});\n\nStyled.StageAutomationTitle = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: StageAutomationListItem_StageAutomationTitle;\n ${[t.pr(2)]}\n line-height: 1.25;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n `;\n});\n\nStyled.StageAutomationDetails = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: StageAutomationListItem_Details;\n ${[t.text.xs, t.mb(4)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 40rem;\n display: flex;\n flex-wrap: wrap;\n text-wrap: nowrap;\n\n span {\n ${[t.mt(\"-px\"), t.mx(1), t.px(2), t.mb(1), t.rounded.xs]}\n padding-top: 0.1875rem;\n padding-bottom: 0.125rem;\n height: 1.375rem;\n align-items: center;\n text-wrap: nowrap;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n border: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n }\n `;\n});\n\nStyled.Actions = styled.div`\n label: StageAutomationListItem_Actions;\n display: flex;\n`;\n\nStyled.BrightLabel = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: StageAutomationListItem__BrightLabel;\n ${[t.ml(\"1px\"), t.mb(1), t.pb(1), t.rounded.xs]}\n padding-top: 0.375rem;\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n margin-top: -0.125rem;\n font-size: 0.6875rem;\n label: JobListItem_JobDetailNode;\n display: flex;\n align-items: center;\n border: 1px solid ${t.color.orange[200]};\n background: linear-gradient(120deg, #ffd8d8 30%, #ffdec1 80%);\n color: ${t.color.black};\n height: 1.25rem;\n `;\n});\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport HiringStageAutomationModal from \"@ats/src/components/modals/HiringStageAutomationModal\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\n\nimport HiringStageAutomationListItem from \"@ats/src/views/jobApplications/jobSetup/components/HiringStageAutomationListItem\";\nimport { HiringStageAutomation } from \"@ats/types/job\";\n\nimport {\n useHiringStageAutomations,\n useUpdateHiringStageAutomation,\n useDeleteHiringStageAutomation,\n} from \"@shared/queryHooks/useHiringStageAutomation\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nimport { hiringStagesForJobOptions } from \"@ats/src/lib/utils/helpers\";\n\nexport default function HiringStageAutomations(props) {\n const { job } = props;\n const { status, data } = useHiringStageAutomations({ jobId: job.id });\n const addToast = useToastContext();\n\n const { openModal, removeModal } = useModalContext();\n\n // window.logger(\"%c[HiringStageAutomations] render\", \"background: #a05195; color: #FFFF;\", {\n // props,\n // status,\n // });\n const { mutate: updateHiringStageAutomation } = useUpdateHiringStageAutomation();\n const { mutate: deleteHiringStageAutomation } = useDeleteHiringStageAutomation();\n\n const automationsList = data != undefined ? data : [];\n\n const handleToggleEnable = async (hiringStageAutomation) => {\n const { id } = hiringStageAutomation;\n await updateHiringStageAutomation(\n { id, jobId: job.id, ...hiringStageAutomation },\n {\n onSuccess: (data) => {\n const currentState = data?.enabled ? \"enabled\" : \"disabled\";\n addToast({\n title: `Hiring stage automation ${currentState}.`,\n kind: \"success\",\n });\n },\n onError: () => {\n addToast({\n title: `Hiring stage automation could not be updated`,\n kind: \"warning\",\n });\n },\n },\n );\n };\n\n const handleOnClickDeleteHiringStageAutomation = (hiringStageAutomation) => {\n const { id, jobId, name } = hiringStageAutomation;\n const deleteMessage = `You will no longer be able to use the ${name}.`;\n\n const modal = (\n {\n removeModal();\n handleDeleteHiringStageAutomation(jobId, id);\n }}\n onCancel={removeModal}\n isDestructiveConfirm={false}\n />\n );\n\n openModal(modal);\n };\n\n const handleDeleteHiringStageAutomation = async (jobId: number, id: number) => {\n await deleteHiringStageAutomation(\n { jobId, id },\n {\n onSuccess: () => {\n addToast({\n title: `Hiring stage automation deleted.`,\n kind: \"success\",\n });\n },\n onError: () => {\n addToast({\n title: `Hiring stage automation could not be deleted`,\n kind: \"warning\",\n });\n },\n },\n );\n };\n\n /* HiringStageAutomationModal\n --===================================================-- */\n const openNewHiringStageAutomationModal = (event) => {\n event.preventDefault();\n openHiringStageAutomationModal({}, false);\n };\n\n const openEditHiringStageAutomationModal = (hiringStageAutomation) => {\n openHiringStageAutomationModal(hiringStageAutomation, true);\n };\n\n const openHiringStageAutomationModal = (hiringStageAutomation, isEditing) => {\n const hiringStageOptions = hiringStagesForJobOptions(job);\n\n const modal = (\n \n );\n openModal(modal);\n };\n\n const onCloseModal = () => {\n removeModal();\n };\n\n /* HiringStageAutomation nodes\n --===================================================-- */\n const hiringStageAutomationNodes = () => {\n window.logger(\n \"%c[HiringStageAutomations] hiringStageAutomationNodes\",\n \"background: #a05195; color: #FFFF;\",\n {\n data,\n automationsList,\n },\n );\n\n automationsList.sort((a, b) => {\n const kindOrder = {\n kind_inbox: 1,\n kind_in_process: 2,\n kind_hired: 3,\n kind_archived: 4,\n };\n if (a.hiringStage.kind !== b.hiringStage.kind) {\n return kindOrder[a.hiringStage.kind] - kindOrder[b.hiringStage.kind];\n }\n if (a.hiringStage.kind === \"kind_in_process\") {\n return a.hiringStage.position - b.hiringStage.position;\n }\n return 0;\n });\n\n if (automationsList.length === 0) {\n return ;\n } else {\n return automationsList.map((hiringStageAutomation: HiringStageAutomation) => {\n return (\n \n );\n });\n }\n };\n\n if (status === \"loading\") {\n return ;\n }\n return (\n <>\n \n \n Automatically trigger a template based email message when a candidate is moved to a selected\n hiring stage. Create or edit a message template in{\" \"}\n \n App settings.\n \n \n {hiringStageAutomationNodes()}\n \n \n );\n}\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Description = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Requirements;\n ${[t.text.xs, t.mt(-1), t.mb(2)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1.4;\n max-width: 32rem;\n `;\n});\n\nStyled.ListContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateList;\n ${[t.mb(8), t.mt(1), t.rounded.md]}\n background-color: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n `;\n});\n","import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport FormSection from \"@ats/src/components/forms/FormSection\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport ProseMirrorEditor from \"@shared/ProseMirror/Editor\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useUpdateJob } from \"@shared/queryHooks/useJob\";\nimport FormConditionalFields from \"@ats/src/components/forms/FormConditionalFields\";\nimport { errorTextViaYupOrRailsOrJoi } from \"@shared/lib/formHelpers\";\nimport HiringStageAutomationList from \"@ats/src/views/jobApplications/jobSetup/components/HiringStageAutomationList\";\nimport { FeatureFlipper } from '@ats/src/components/shared/FeatureFlipper';\n\nfunction JobSetupAutomations(props) {\n const { setIsDirty, job: passedJob } = props;\n const [job, setJob] = useState({\n useApplyResponseTemplate: passedJob.useApplyResponseTemplate,\n applyResponseTemplate: passedJob.applyResponseTemplate,\n });\n const [errors, setErrors] = useState(null);\n const editorRef = React.useRef(undefined);\n const { useApplyResponseTemplate, applyResponseTemplate } = job;\n const addToast = useToastContext();\n const { mutate: updateJob, isLoading: isLoadingUpdateJob } = useUpdateJob();\n\n const onFormInputChange = (name, value) => {\n window.logger(\"%c[JobSetupAutomations] onFormInputChange\", \"background-color: #5eb65b\", {\n name,\n value,\n });\n\n setIsDirty(true);\n if (errors != undefined) {\n setErrors(null);\n }\n\n setJob({ ...job, [name]: value });\n };\n\n const handleChangeEditorState = () => {\n setErrors([]);\n setIsDirty(true);\n };\n\n const onSubmit = (e) => {\n e.preventDefault();\n // Submit the form here\n console.warn(\"[JobSetupAutomations] onSubmit { job }\", { job });\n\n updateJob(\n {\n id: passedJob.id,\n useApplyResponseTemplate,\n applyResponseTemplate: editorRef.current\n ? editorRef.current.serializedState()\n : applyResponseTemplate,\n },\n {\n onSuccess: () => {\n setIsDirty(false);\n setErrors(null);\n addToast({\n title: `Job updated`,\n kind: \"success\",\n });\n },\n onError: (response: any) => {\n window.logger(\"%c[JobSetupAutomations] updateJob onError\", \"color: #F97602\", {\n response,\n });\n setErrors(response.data.errors);\n addToast({\n title: `Could not update job`,\n kind: \"warning\",\n });\n },\n },\n );\n };\n\n const applyResponseTemplateError = errorTextViaYupOrRailsOrJoi({\n errors,\n name: \"applyResponseTemplate\",\n });\n\n const BottomBarContent = (\n \n Save changes\n \n );\n\n return (\n <>\n \n \n \n\n \n \n \n \n \n {applyResponseTemplateError && (\n {applyResponseTemplateError}\n )}\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default JobSetupAutomations;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Template = styled.div<{ isDisabled: boolean }>((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupAutomations_Template;\n display: ${props.isDisabled ? \"none\" : \"block\"};\n `;\n});\n\nStyled.TemplateInput = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: ChannelMessageTemplateModal_TemplateInput;\n > div {\n ${[t.mb(0)]}\n }\n textarea {\n min-height: 12rem;\n }\n `;\n});\n\nStyled.Error = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupAutomations_Error;\n ${t.text.sm}\n color: ${t.dark ? t.color.red[400] : t.color.red[600]};\n ${[t.mt(3)]}\n ${t.mq[\"md\"]} {\n ${[t.text.xs]}\n }\n `;\n});\n","import React from \"react\";\nimport { Route, Redirect, NavLink, Switch, Link } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport { removeHttpPrefix } from \"@shared/lib/utils\";\n\nimport NavItem from \"@ats/src/components/shared/NavItem\";\nimport CloningJobModal from \"@ats/src/components/modals/CloningJobModal\";\nimport ArchiveJobModal from \"@ats/src/components/modals/ArchiveJobModal\";\nimport HideJobModal from \"@ats/src/components/modals/HideJobModal\";\nimport SubscriptionRequiredModal from \"@ats/src/components/modals/SubscriptionRequiredModal\";\nimport SubscriptionRequiredModalNew from \"@ats/src/components/modals/SubscriptionRequiredModalNew\";\nimport ShareJobModal from \"@ats/src/components/modals/ShareJobModal\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport JobSetupDetails from \"@ats/src/views/jobApplications/jobSetup/JobSetupDetails\";\nimport JobSetupDescription from \"@ats/src/views/jobApplications/jobSetup/JobSetupDescription\";\nimport JobSetupApplicationForm from \"@ats/src/views/jobApplications/jobSetup/JobSetupApplicationForm\";\nimport JobSetupDocument from \"@ats/src/views/jobApplications/jobSetup/JobSetupDocument\";\nimport JobSetupTeam from \"@ats/src/views/jobApplications/jobSetup/JobSetupTeam\";\nimport JobSetupHiringStages from \"@ats/src/views/jobApplications/jobSetup/JobSetupHiringStages\";\nimport UnsavedChangesGuard from \"@ats/src/components/shared/UnsavedChangesGuard\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\nimport { getTimestamp } from \"@shared/queryHooks/useOrganization\";\nimport {\n useUpdateJob,\n usePublishJob,\n useCloneJob,\n useForceWebflowSyncForJob,\n} from \"@shared/queryHooks/useJob\";\nimport { useCreateSubscription } from \"@shared/queryHooks/useBilling\";\nimport JobSetupAutomations from \"./JobSetupAutomations\";\n\nimport { useFeatureFlipper, Features } from \"@ats/src/components/shared/FeatureFlipper\";\n\nfunction JobSetupContainer(props) {\n const { match, job, location } = props;\n const { currentUser, currentOrganizationUser, currentOrganization } = useCurrentSession();\n\n const addToast = useToastContext();\n const { openModal, removeModal } = useModalContext();\n const [isDirty, setIsDirty] = React.useState(false);\n\n const planBasedBillingEnabled = useFeatureFlipper()({ feature: Features.PLAN_BASED_BILLING });\n\n const { mutate: updateJob, isLoading: isLoadingUpdateJob } = useUpdateJob();\n const { mutate: publishJob, isLoading: isLoadingPublishJob } = usePublishJob();\n const {\n mutate: forceWebflowSyncForJob,\n isLoading: isLoadingForceWebflowSyncForJob,\n } = useForceWebflowSyncForJob();\n const { mutate: cloneJob, isLoading: isLoadingCloneJob } = useCloneJob();\n const {\n mutate: createSubscription,\n isLoading: isLoadingCreateSubscription,\n } = useCreateSubscription();\n\n window.logger(\"%c[JobSetupContainer] \", \"background: #EFDDEF; color: #1976D2\", {\n currentUser,\n currentOrganization,\n props,\n });\n\n const jobUrl = `${currentOrganization?.careersPageUrl}/${job.id}`;\n\n const handleClickOnViewPreview = () => {\n getTimestamp().then((data) => {\n window.logger(\n \"%c[JobSetupContainer] handleClickOnViewPreview getTimestamp\",\n \"color: #1976D2\",\n {\n data,\n },\n );\n window.open(`${jobUrl}/preview/${data.timestamp}`, \"_blank\");\n });\n };\n\n const handleToggleJobVisibility = (event) => {\n event.preventDefault();\n if (job.visible === true) {\n const modal = (\n {\n removeModal();\n toggleJobVisibility();\n }}\n onCancel={() => {\n removeModal();\n }}\n plan={currentOrganization?.plan}\n />\n );\n\n openModal(modal);\n } else {\n toggleJobVisibility();\n }\n };\n\n const toggleJobVisibility = () => {\n updateJob({ id: job.id, visible: !job.visible });\n };\n\n const handleClickOnPublishJob = () => {\n if (currentOrganization.stripeSubscriptionInGoodStanding) {\n handlePublishJob();\n } else if (!planBasedBillingEnabled && currentOrganization.stripeDefaultPaymentMethodOnFile) {\n createSubscription(\n {},\n {\n onSuccess: (data) => {\n window.logger(\"%c[JobSetupContainer] createSubscription SUCCESS\", \"color: #19d219\", {\n data,\n });\n handlePublishJob();\n },\n onError: (response) => {\n window.logger(\"%c[JobSetupContainer] createSubscription FAILURE\", \"color: #990f6b\", {\n response,\n });\n addToast({\n title: \"Unable to create subscription\",\n kind: \"warning\",\n });\n },\n },\n );\n } else {\n const modal = planBasedBillingEnabled ? (\n removeModal()}\n isAdmin={currentOrganizationUser.isAdmin}\n jobId={job.id}\n location={location}\n />\n ) : (\n removeModal()}\n isAdmin={currentOrganizationUser.isAdmin}\n jobId={job.id}\n location={location}\n />\n );\n\n openModal(modal);\n }\n };\n\n const handlePublishJob = () => {\n publishJob(job, {\n onSuccess: (data) => {\n const title =\n data.status && data.status === \"in_review\"\n ? \"This job post will be reviewed by the Polymer team!\"\n : `Published ${props.job.title}`;\n\n addToast({\n title,\n kind: \"success\",\n });\n },\n onError: (data) => {\n addToast({\n title: \"Only admins are allowed to publish\",\n kind: \"warning\",\n });\n },\n });\n };\n\n const onCloseModal = () => {\n removeModal();\n };\n\n const handleClickOnShareJob = (event) => {\n event.preventDefault();\n const modal = (\n {\n removeModal();\n }}\n />\n );\n openModal(modal);\n };\n\n const handleClickOnCloneJob = (e) => {\n e.preventDefault();\n openModal(() => );\n\n cloneJob(job, {\n onSuccess: (data) => {\n removeModal();\n props.history.push(`/jobs/${data.id}/setup`);\n },\n onError: (data) => {\n removeModal();\n\n addToast({\n title: `Could not clone ${job.title}`,\n kind: \"warning\",\n });\n },\n });\n };\n\n const handleClickOnArchive = (event) => {\n event.preventDefault();\n\n const modal = (\n {\n removeModal();\n archiveJob();\n }}\n onCancel={() => {\n removeModal();\n }}\n />\n );\n\n openModal(modal);\n };\n\n const archiveJob = () => {\n updateJob(\n { id: job.id, status: \"status_archived\" },\n {\n onSuccess: (data) => {\n window.logger(\"%c[JobSetupContainer] archiveJob onSuccess\", \"color: #1976D2\");\n addToast({\n title: `Archived ${job.title}`,\n kind: \"success\",\n });\n },\n },\n );\n };\n\n const handleClickOnUpdateOnWebflow = (event) => {\n event.preventDefault();\n // This is effectively a fake update that should trigger the AR callbacks to update on Webflow\n forceWebflowSyncForJob(\n {\n id: job.id,\n },\n {\n onSuccess: () => {\n addToast({\n title: \"Starting sync with Webflow\",\n kind: \"success\",\n });\n },\n },\n );\n };\n\n const jobControlOverflow = () => {\n let archiveJobButtonNode = null;\n let syncWithWebflowButtonNode = null;\n let hideJobButtonNode = null;\n let cloneJobButtonNode = (\n \n );\n\n if (job.status === \"published\") {\n archiveJobButtonNode = ;\n if (job.visible) {\n hideJobButtonNode = ;\n }\n if (currentOrganization.hasWebflowMapping) {\n syncWithWebflowButtonNode = (\n \n );\n }\n }\n\n return (\n (currentOrganizationUser.isAdmin || hideJobButtonNode || syncWithWebflowButtonNode) && (\n \n {currentOrganizationUser.isAdmin && cloneJobButtonNode}\n {hideJobButtonNode}\n {currentOrganizationUser.isAdmin && archiveJobButtonNode}\n {syncWithWebflowButtonNode}\n \n )\n );\n };\n\n const jobControls = () => {\n if (job.status === \"published\" && job.visible) {\n return (\n \n \n {jobControlOverflow()}\n \n );\n } else if (job.status === \"published\" && !job.visible) {\n return (\n \n \n {jobControlOverflow()}\n \n );\n } else if (job.status === \"status_archived\") {\n return (\n \n {/* */}\n {jobControlOverflow()}\n \n );\n } else {\n return (\n \n \n Publish job post\n \n {jobControlOverflow()}\n \n );\n }\n };\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n\n {/* \n \n \n
    Hiring Process
    \n
    \n \n
    */}\n {currentOrganizationUser.role === \"god_admin\" && (\n \n )}\n\n \n \n Job post\n {!currentOrganization.stripeSubscriptionInGoodStanding ||\n job.status !== \"published\" ||\n (job.status === \"published\" && !job.visible) ? (\n \n \n \n \n ) : (\n \n \n e.stopPropagation()}\n data-testid=\"job-post-link\"\n >\n {removeHttpPrefix(jobUrl)}\n \n \n )}\n \n\n \n {jobControls()}\n
    \n\n {\n window.logger(\n \"%c[JobSetupContainer] UnsavedChangesGuard navigate\",\n \"color: #1976D2\",\n pathname,\n );\n setIsDirty(false);\n props.history.push(pathname);\n }}\n />\n\n \n \n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n (\n \n )}\n />\n {currentOrganizationUser.role === \"god_admin\" && (\n
    ADMIN
    }\n />\n )}\n \n
    \n
    \n
    \n \n );\n}\n\nJobSetupContainer.propTypes = {};\n\nJobSetupContainer.defaultProps = {};\n\nexport default JobSetupContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div`\n label: JobSetupContainer;\n display: flex;\n height: 100%;\n overflow-x: auto;\n`;\n\nStyled.Sidebar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupContainer_Sidebar;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n border-right: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n flex-shrink: 0;\n width: 50vw;\n padding-top: 0.375rem;\n\n ${t.mq[\"lg\"]} {\n width: 21.5909091%;\n flex-shrink: 1;\n }\n `;\n});\n\nStyled.Content = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupContainer_Content;\n height: 100%;\n overflow-y: auto;\n position: relative;\n\n ${t.mq[\"lg\"]} {\n width: 78.4090909%;\n }\n `;\n});\n\nStyled.Divider = styled.hr((props) => {\n const t: any = props.theme;\n return css`\n label: JobStagesContainer_Divider;\n ${[t.mb(\"px\")]}\n margin-top: 2.25rem;\n width: 100%;\n border: 0;\n `;\n});\n\nStyled.Controls = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupContainer_Controls;\n ${[t.px(4), t.pb(4)]}\n `;\n});\n\nStyled.Actions = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupContainer_Actions;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n\n > button:first-of-type {\n ${[t.mr(3), t.mb(3)]};\n }\n `;\n});\n\nStyled.Preview = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupContainer_Preview;\n ${[t.px(4)]}\n `;\n});\n\nStyled.PreviewTitle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupContainer_PreviewTitle;\n ${[t.text.xs, t.text.bold, t.mb(2)]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n `;\n});\n\nStyled.PreviewLink = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobSetupContainer_PreviewLink;\n ${[t.text.xs, t.h(6), t.mb(\"px\")]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1.4;\n display: flex;\n align-items: center;\n overflow: hidden;\n svg {\n ${t.mr(2)}\n flex-shrink: 0;\n }\n div,\n a,\n button {\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n text-align: start;\n cursor: pointer;\n padding: 0;\n appearance: none;\n outline: none;\n background: transparent;\n border: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n button:hover,\n button:focus,\n a:hover {\n text-decoration: underline;\n }\n `;\n});\n","import React from \"react\";\nimport isEmpty from \"lodash/isEmpty\";\nimport trim from \"lodash/trim\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport SettingsContainer from \"@ats/src/components/shared/SettingsContainer\";\nimport UnsavedChangesGuard from \"@ats/src/components/shared/UnsavedChangesGuard\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormSection from \"@ats/src/components/forms/FormSection\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport FormTextarea from \"@ats/src/components/forms/FormTextarea\";\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport ConfirmationModal from \"@ats/src/components/modals/ConfirmationModal\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\n\nimport { wwrCategoryOptions, wwrUpgradeCosts } from \"@ats/src/lib/lookups\";\nimport { distanceInWords } from \"@shared/lib/time\";\nimport { capitalizeSingleWord } from \"@ats/src/lib/utils/helpers\";\nimport { validateWwrCategory } from \"@shared/lib/validateWithYup\";\n\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\nimport { useUpdateOrganization } from \"@shared/queryHooks/useOrganization\";\nimport { useCreateBoardWwrListing, useUpdateBoardWwrListing } from \"@shared/queryHooks/useJob\";\n\nconst Upgrade = ({ upgrade, selectedPlan, onSelect, isActive, isPurchasing }) => {\n const upgrades = {\n good: {\n title: \"Good\",\n features: 4,\n price: 59,\n },\n better: {\n title: \"Better\",\n features: 5,\n price: 99,\n },\n best: {\n title: \"Best\",\n features: 7,\n price: 149,\n },\n };\n\n const features = [\n \"Display your company logo\",\n \"Share in WWR Slack channel\",\n \"2x Social media posts\",\n \"Distribute job to Partner Network\",\n \"Highlight your ad\",\n \"Pin ad for 7 days\",\n \"Featured email placement\",\n ];\n\n const selected = selectedPlan === upgrade;\n\n return (\n \n \n {upgrades[upgrade].title}\n +${upgrades[upgrade].price}\n \n {features.map((feature, index) => {\n if (index < upgrades[upgrade].features) {\n return (\n \n \n {feature}\n \n );\n }\n return (\n \n \n {feature}\n \n );\n })}\n {selected ? (\n onSelect(\"standard\")}\n aria-label=\"Select\"\n disabled={isActive || isPurchasing}\n >\n Remove\n \n ) : (\n onSelect(upgrade)}\n aria-label=\"Select\"\n disabled={isActive || isPurchasing}\n >\n Select\n \n )}\n \n );\n};\n\nfunction JobDistributionWeWorkRemotely(props) {\n const { job, location } = props;\n const { activeWwrListing } = job;\n const { currentOrganization } = useCurrentSession();\n const addToast = useToastContext();\n const { openModal, removeModal } = useModalContext();\n\n const {\n mutate: updateOrganization,\n isLoading: isLoadingUpdateOrganization,\n } = useUpdateOrganization();\n const {\n mutate: createBoardWwrListing,\n isLoading: isLoadingCreateBoardWwrListing,\n } = useCreateBoardWwrListing();\n const {\n mutate: updateBoardWwrListing,\n isLoading: isLoadingUpdateBoardWwrListing,\n } = useUpdateBoardWwrListing();\n\n const isLoadingSomething =\n isLoadingUpdateOrganization || isLoadingCreateBoardWwrListing || isLoadingUpdateBoardWwrListing;\n\n const boardWwrListing = activeWwrListing;\n\n const [state, setState] = React.useState({\n wwrCategory: boardWwrListing ? boardWwrListing.wwrCategory : \"\",\n wwrJobListingType:\n boardWwrListing && boardWwrListing.wwrJobListingType\n ? boardWwrListing.wwrJobListingType\n : \"Full-Time\",\n wwrRegion:\n boardWwrListing && boardWwrListing.wwrRegion\n ? boardWwrListing.wwrRegion\n : \"Anywhere in the World\",\n plan: boardWwrListing && boardWwrListing.isActive ? boardWwrListing.plan : \"better\",\n wwrCompanyBio: currentOrganization ? currentOrganization.wwrCompanyBio : null,\n });\n\n const { wwrCategory, wwrJobListingType, wwrCompanyBio, wwrRegion, plan } = state;\n\n const [errors, setErrors] = React.useState(null);\n const [isDirty, setIsDirty] = React.useState(false);\n const [isPurchasing, setIsPurchasing] = React.useState(false);\n const stripeSubscriptionInGoodStanding = currentOrganization\n ? currentOrganization.stripeSubscriptionInGoodStanding\n : false;\n const isPublished = job.status === \"published\";\n const isArchived = job.status === \"status_archived\";\n const isVisible = job.visible;\n const isAllowedRemote = job.isAllowedRemote === true;\n const hasDescription = !isEmpty(trim(job.description));\n const hasCompanyUrl = !isEmpty(trim(currentOrganization.websiteUrl));\n const hasBeenPurchased = boardWwrListing && boardWwrListing.wwrListingId != undefined;\n const isActive = boardWwrListing && boardWwrListing.isActive;\n const publishedAt = boardWwrListing && boardWwrListing.publishedAt;\n const expiresAt = boardWwrListing && boardWwrListing.expiresAt;\n const listingUrl = boardWwrListing && boardWwrListing.listingUrl;\n const hasBeenUpgraded = plan && plan !== \"standard\";\n\n window.logger(\"%c[JobDistributionWeWorkRemotely] \", \"background: #EFDDEF; color: #1976D2\", {\n props,\n state,\n boardWwrListing,\n wwrCompanyBio,\n currentOrganization,\n hasBeenUpgraded,\n });\n\n if (currentOrganization == undefined) {\n return null;\n }\n\n const ViewLink = (\n \n );\n\n const isMissingRequirements = () => {\n return !(\n stripeSubscriptionInGoodStanding &&\n isPublished &&\n isVisible &&\n isAllowedRemote &&\n hasDescription &&\n hasCompanyUrl\n );\n };\n\n const handleClickOnCheckout = async () => {\n const [isValid, validationErrors] = await validateWwrCategory({ wwrCategory });\n if (isValid) {\n handleSubmit();\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleSubmit = () => {\n setIsPurchasing(true);\n if (wwrCompanyBio) {\n updateOrganization(\n { id: currentOrganization.id, wwrCompanyBio },\n {\n onSuccess: () => {\n createOrUpdateWwrListing();\n },\n },\n );\n } else {\n createOrUpdateWwrListing();\n }\n\n window.logger(\"%c[JobDistributionWeWorkRemotely] handleSubmit\", \"color: #1976D2\", {\n wwrCategory,\n wwrJobListingType,\n wwrRegion,\n plan,\n });\n };\n\n const createOrUpdateWwrListing = () => {\n if (isActive) {\n handleUpdateBoardWwrListing({ status: \"approved\" });\n } else {\n handleCreateBoardWwrListing();\n }\n };\n\n const handleCreateBoardWwrListing = () => {\n createBoardWwrListing(\n {\n jobId: job.id,\n wwrCategory,\n wwrJobListingType,\n wwrRegion,\n plan,\n },\n {\n onSuccess: () => {\n setErrors(null);\n setIsDirty(false);\n },\n onError: (response: { data: any }) => {\n setErrors(response.data.errors);\n\n if (response.data.errors[\"general\"] != undefined) {\n window.logger(\n \"%c[JobDistributionWeWorkRemotely] createBoardWwrListing\",\n \"color: #FF0602\",\n {\n response,\n },\n );\n addToast({ title: response.data.errors.general[0], kind: \"warning\" });\n }\n },\n },\n );\n };\n\n const handleUpdateBoardWwrListing = ({ status = \"approved\" }) => {\n updateBoardWwrListing(\n {\n jobId: job.id,\n id: boardWwrListing.id,\n wwrCategory,\n wwrJobListingType,\n wwrRegion,\n plan,\n status,\n },\n {\n onSuccess: () => {\n setErrors(null);\n setIsDirty(false);\n },\n onError: (response: { data: any }) => {\n setErrors(response.data.errors);\n\n if (response.data.errors[\"general\"] != undefined) {\n window.logger(\n \"%c[JobDistributionWeWorkRemotely] updateBoardWwrListing\",\n \"color: #FF0602\",\n {\n response,\n },\n );\n addToast({ title: response.data.errors.general[0], kind: \"warning\" });\n }\n },\n },\n );\n };\n\n const handleClickOnDeletePost = () => {\n const modal = (\n {\n handleUpdateBoardWwrListing({ status: \"canceled\" });\n removeModal();\n setState({ ...state, plan: \"better\" });\n }}\n onCancel={() => {\n removeModal();\n }}\n />\n );\n\n openModal(modal);\n };\n\n const handleInputChange = (name, value) => {\n setState({ ...state, [name]: value });\n setErrors(null);\n setIsDirty(true);\n };\n\n const handleSelectUpgrade = (upgrade) => {\n setState({ ...state, plan: upgrade });\n };\n\n const Purchased = (\n <>\n \n \n {isActive ? (\n <>\n \n {`Purchased ${distanceInWords(publishedAt)}`}{\" \"}\n ({distanceInWords(expiresAt, false)} left)\n \n \n \n {listingUrl != undefined ? (\n \n View post on WWR\n \n ) : (\n
    Could not find URL
    \n )}\n
    \n \n ) : (\n

    Your last listing has expired. That post is no longer visible on WWR.

    \n )}\n
    \n \n );\n\n const Sidebar = (\n \n \n {hasBeenUpgraded ? (\n <>\n \n

    Total price

    \n

    ${wwrUpgradeCosts[plan].total}

    \n
    \n

    \n This ${wwrUpgradeCosts[plan].total} purchase includes the optional,{\" \"}\n {capitalizeSingleWord(plan)} upgrade for ${wwrUpgradeCosts[plan].price}.\n

    \n \n ) : (\n \n

    Purchase price

    \n

    $299

    \n
    \n )}\n {!isMissingRequirements() && (!hasBeenPurchased || (hasBeenPurchased && !isActive)) && (\n

    \n Clicking the purchase button below will immediately create a post on the We Work\n Remotely job board and apply a ${hasBeenUpgraded ? wwrUpgradeCosts[plan].total : \"299\"}{\" \"}\n charge to the payment method associated with your Polymer subscription.\n

    \n )}\n

    \n Your post will be displayed on the We Work Remotely job board for 30 days from the time of\n purchase.\n

    \n {isMissingRequirements() && (\n

    Checkout is disabled until all job board requirements are met.

    \n )}\n {!isActive ? (\n \n Purchase now\n \n ) : (\n \n Remove post\n \n )}\n
    \n {hasBeenPurchased && Purchased}\n
    \n );\n\n const BottomBar = (\n <>\n {\n window.logger(\n \"%c[JobDistributionWeWorkRemotely] UnsavedChangesGuard navigate\",\n \"color: #1976D2\",\n pathname,\n );\n setIsDirty(false);\n props.history.push(pathname);\n }}\n />\n\n \n Save changes\n \n \n );\n\n return (\n <>\n \n {isMissingRequirements() && (\n \n \n \n Your job post does not meet the following requirements for this job board.\n \n
    \n {!stripeSubscriptionInGoodStanding && (\n \n \n \n You must have an active Polymer subscription to post to We Work Remotely.\n \n \n \n )}\n {isArchived ? (\n \n \n \n Job has been archived. You may no longer post it as a listing on WWR.\n \n \n ) : !isPublished ? (\n \n \n \n Job must be published\n \n \n \n ) : !isVisible ? (\n \n \n \n Job must be visible on your company job board (currently hidden).\n \n \n \n ) : null}\n {!isAllowedRemote && (\n \n \n \n Job must be remote-friendly to distribute to this board.\n \n \n Go to job details\n \n \n )}\n {!hasDescription && (\n \n \n \n Job must have a description\n \n \n Go to job description\n \n \n )}\n {!hasCompanyUrl && (\n \n \n \n Organization must have a website URL\n \n \n \n )}\n
    \n
    \n )}\n\n \n \n\n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default JobDistributionWeWorkRemotely;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Requirements = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Requirements;\n ${[t.mt(6), t.mb(8)]}\n display: flex;\n flex-direction: column;\n `;\n});\n\nStyled.RequirementInstructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Requirements;\n ${[t.text.xs, t.mt(-1), t.mb(2)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1.4;\n max-width: 32rem;\n `;\n});\n\nStyled.Requirement = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Requirement;\n ${[t.px(4)]}\n min-height: ${t.spacing[12]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : \"transparent\"};\n border-top: 1px solid ${t.dark ? t.color.gray[700] : \"transparent\"};\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &:first-of-type {\n border-top: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n border-top-left-radius: 0.4375rem;\n border-top-right-radius: 0.4375rem;\n }\n\n &:last-of-type {\n border-bottom-left-radius: 0.4375rem;\n border-bottom-right-radius: 0.4375rem;\n }\n `;\n});\n\nStyled.RequirementTitle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_RequirementTitle;\n ${[t.my(2), t.mr(4)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n align-items: center;\n line-height: 1.4;\n\n svg {\n ${[t.mr(2)]};\n color: ${t.dark ? t.color.red[500] : t.color.red[600]};\n flex-shrink: 0;\n }\n `;\n});\n\nStyled.Upgrades = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Upgrades;\n display: flex;\n `;\n});\n\nStyled.Upgrade = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Upgrade;\n ${[t.mr(4), t.rounded.md, t.p(3)]}\n position: relative;\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n flex: 1;\n ${props.selected\n ? css`\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[400]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n `\n : css`\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? \"transparent\" : t.color.white};\n `}\n &:last-of-type {\n ${t.mr(0)}\n }\n button {\n ${t.mt(3)}\n }\n `;\n});\n\nStyled.Feature = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Feature;\n ${[t.text.xs, t.py(1)]}\n display: flex;\n color: ${t.dark ? t.color.gray[400] : t.color.black};\n line-height: 1.4;\n svg {\n ${[t.mt(\"-px\"), t.mr(1)]}\n }\n `;\n});\n\nStyled.NonFeature = styled(Styled.Feature)((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_NonFeature;\n color: ${t.color.gray[500]};\n line-height: 1.4;\n `;\n});\n\nStyled.Sidebar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Sidebar;\n position: sticky;\n top: ${t.spacing[4]};\n h3 {\n ${[t.mt(1), t.pt(\"px\"), t.text.base, t.text.bold]};\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n }\n p {\n ${[t.text.xs, t.mt(3)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n b {\n ${[t.text.bold]};\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n }\n `;\n});\n\nStyled.SidebarSection = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_SidebarSection;\n ${t.px(4)};\n\n button {\n ${t.mt(4)};\n }\n `;\n});\n\nStyled.Price = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Price;\n ${[t.text.bold, t.text.base, t.mb(2)]}\n display: flex;\n justify-content: space-between;\n `;\n});\n\nStyled.Divider = styled.hr((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Divider;\n ${[t.mb(0)]}\n margin-top: 2.25rem;\n width: 100%;\n border: none;\n `;\n});\n\nStyled.Purchased = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Purchased;\n ${t.px(4)}\n p {\n ${[t.mt(0), t.mb(4), t.text.xs]}\n }\n `;\n});\n\nStyled.PurchasedTitle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_PurchasedTitle;\n ${[t.text.xs, t.text.bold, t.mb(2)]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n span {\n ${[t.text.normal]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n\nStyled.PurchasedLink = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_PurchasedLink;\n ${[t.text.xs, t.h(6)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n display: flex;\n align-items: center;\n overflow: hidden;\n svg {\n ${t.mr(2)}\n flex-shrink: 0;\n }\n div,\n a,\n button {\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n text-align: start;\n padding: 0;\n appearance: none;\n outline: none;\n background: transparent;\n border: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n button:hover,\n button:focus,\n a:hover {\n text-decoration: underline;\n }\n `;\n});\n\nStyled.Delete = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionWWR_Delete;\n\n button {\n ${t.m(4)}\n }\n `;\n});\n","import React from \"react\";\nimport { Route, Redirect, NavLink, Switch } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport NavItem from \"@ats/src/components/shared/NavItem\";\nimport JobDistributionWeWorkRemotely from \"@ats/src/views/jobApplications/jobDistribution/JobDistributionWeWorkRemotely\";\n\nfunction JobDistributionContainer(props) {\n const { match, job } = props;\n\n return (\n <>\n \n \n \n \n \n \n \n (\n \n )}\n />\n \n \n \n \n \n );\n}\n\nexport default JobDistributionContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div`\n label: JobSetupContainer;\n display: flex;\n height: 100%;\n`;\n\nStyled.Sidebar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobDistributionContainer_Sidebar;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n border-right: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n width: 21.5909091%;\n padding-top: 0.375rem;\n `;\n});\n\nStyled.Content = styled.div`\n label: JobDistributionContainer_Content;\n width: 78.4090909%;\n height: 100%;\n overflow-y: auto;\n position: relative;\n`;\n","import { useQuery, useInfiniteQuery, useMutation, useQueryClient } from \"react-query\";\nimport { apiGet, apiPut, apiPost } from \"@shared/queryHooks/api\";\nimport queryString from \"query-string\";\nimport { BasicReportResponse } from \"@shared/types/reporting\";\n\ninterface BasicReportRequest {\n jobId: number;\n startDate?: string;\n endDate?: string;\n source?: string;\n}\n\nconst getBasicReport = async ({ jobId, startDate, endDate, source }) => {\n const startDateParam = startDate ? `&start_date=${startDate}` : \"\";\n const endDateParam = endDate ? `&end_date=${endDate}` : \"\";\n const sourceParam = source ? `&source=${source}` : \"\";\n return await apiGet({\n path: `/analytics/basic_report?job_id=${jobId}${startDateParam}${endDateParam}${sourceParam}`,\n });\n};\n\nexport function useBasicReport({\n jobId,\n startDate,\n endDate,\n source,\n}: BasicReportRequest): {\n status: any;\n data: BasicReportResponse;\n error: any;\n isLoading: boolean;\n refetch: any;\n} {\n return useQuery([\"basicReport\"], () => getBasicReport({ jobId, startDate, endDate, source }));\n}\n","import _debounce from \"lodash/debounce\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\n\n\nimport classNames from 'classnames';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect } from 'react';\nimport ReactResizeDetector from 'react-resize-detector/build/withPolyfill';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n minWidth = _ref.minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className;\n\n var _useState = useState({\n containerWidth: -1,\n containerHeight: -1\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n\n var containerRef = useRef(null);\n useImperativeHandle(ref, function () {\n return containerRef;\n }, [containerRef]);\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n mounted = _useState4[0],\n setMounted = _useState4[1];\n\n var getContainerSize = function getContainerSize() {\n if (!containerRef.current) {\n return null;\n }\n\n return {\n containerWidth: containerRef.current.clientWidth,\n containerHeight: containerRef.current.clientHeight\n };\n };\n\n var updateDimensionsImmediate = function updateDimensionsImmediate() {\n if (!mounted) {\n return;\n }\n\n var newSize = getContainerSize();\n\n if (newSize) {\n var oldWidth = sizes.containerWidth,\n oldHeight = sizes.containerHeight;\n var containerWidth = newSize.containerWidth,\n containerHeight = newSize.containerHeight;\n\n if (containerWidth !== oldWidth || containerHeight !== oldHeight) {\n setSizes({\n containerWidth: containerWidth,\n containerHeight: containerHeight\n });\n }\n }\n };\n\n var handleResize = debounce > 0 ? _debounce(updateDimensionsImmediate, debounce) : updateDimensionsImmediate;\n\n var renderChart = function renderChart() {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n } // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n\n\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return /*#__PURE__*/cloneElement(children, {\n width: calculatedWidth,\n height: calculatedHeight\n });\n };\n\n useEffect(function () {\n if (mounted) {\n var size = getContainerSize();\n\n if (size) {\n setSizes(size);\n }\n }\n }, [mounted]);\n useEffect(function () {\n setMounted(true);\n }, []);\n var style = {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n };\n return /*#__PURE__*/React.createElement(ReactResizeDetector, {\n handleWidth: true,\n handleHeight: true,\n onResize: handleResize,\n targetRef: containerRef\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, id != null ? {\n id: \"\".concat(id)\n } : {}, {\n className: classNames('recharts-responsive-container', className),\n style: style,\n ref: containerRef\n }), renderChart()));\n});","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}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _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\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _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/**\n * @fileOverview Render a group of error bar\n */\n\n\nimport React from 'react';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/types';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"]);\n\n var svgProps = filterProps(others);\n var errorBars = data.map(function (entry, i) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n\n if (!errorVal) {\n return null;\n }\n\n var lineCoordinates = [];\n var lowBound, highBound;\n\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound); // the right line of |--|\n\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n }); // the middle line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n }); // the left line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n\n var _xMin = xMid - width;\n\n var _xMax = xMid + width;\n\n var _yMin = _scale(value - lowBound);\n\n var _yMax = _scale(value + highBound); // the top line\n\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n }); // the middle line\n\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n }); // the bottom line\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, svgProps), lineCoordinates.map(function (coordinates, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(index)\n }))\n );\n }))\n );\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","/**\n * @fileOverview Cross\n */\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _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\nimport React, { cloneElement } from 'react';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n }\n};\nexport function LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n textBreakAll = props.textBreakAll,\n others = _objectWithoutProperties(props, [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"]);\n\n if (!data || !data.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = _isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = _isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n index: index,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(_isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\n\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(label) || _isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n\n return null;\n}\n\nfunction renderCallByParent(parentProps, data) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var explicitChilren = findAllByType(children, LabelList.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n key: \"labelList-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChilren));\n}\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport _isNil from \"lodash/isNil\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Render a group of bar\n */\n\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n\n var _super = _createSuper(Bar);\n\n function Bar() {\n var _this;\n\n _classCallCheck(this, Bar);\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 isAnimationFinished: false\n };\n _this.id = uniqueId('recharts-bar-');\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (onAnimationStart) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n\n var shape = this.props.shape;\n var baseProps = filterProps(this.props);\n return data && data.map(function (entry, i) {\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n index: i\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }), Bar.renderRectangle(shape, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n\n var _this$props = this.props,\n data = _this$props.data,\n layout = _this$props.layout,\n isAnimationActive = _this$props.isAnimationActive,\n animationBegin = _this$props.animationBegin,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n animationId = _this$props.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n\n var h = _interpolatorHeight(t);\n\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props2 = this.props,\n data = _this$props2.data,\n isAnimationActive = _this$props2.isAnimationActive;\n var prevData = this.state.prevData;\n\n if (isAnimationActive && data && data.length && (!prevData || !_isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n\n var data = this.props.data;\n var backgroundProps = filterProps(this.props.background);\n return data.map(function (entry, i) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, [\"value\", \"background\"]);\n\n if (!background) {\n return null;\n }\n\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n\n return Bar.renderRectangle(_this4.props.background, props);\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props3 = this.props,\n data = _this$props3.data,\n xAxis = _this$props3.xAxis,\n yAxis = _this$props3.yAxis,\n layout = _this$props3.layout,\n children = _this$props3.children;\n var errorBarItems = findAllByType(children, ErrorBar.displayName);\n\n if (!errorBarItems) {\n return null;\n }\n\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(i),\n // eslint-disable-line react/no-array-index-key\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n hide = _this$props4.hide,\n data = _this$props4.data,\n className = _this$props4.className,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n left = _this$props4.left,\n top = _this$props4.top,\n width = _this$props4.width,\n height = _this$props4.height,\n isAnimationActive = _this$props4.isAnimationActive,\n background = _this$props4.background,\n id = _this$props4.id;\n\n if (hide || !data || !data.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = classNames('recharts-bar', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n\n return null;\n }\n }, {\n key: \"renderRectangle\",\n value: function renderRectangle(option, props) {\n var rectangle;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = /*#__PURE__*/React.createElement(Rectangle, props);\n }\n\n return rectangle;\n }\n }]);\n\n return Bar;\n}(PureComponent);\nBar.displayName = 'Bar';\nBar.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n // data of bar\n data: [],\n layout: 'vertical',\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n};\n\nBar.getComposedData = function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n\n if (!pos) {\n return null;\n }\n\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell.displayName);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'horizontal') {\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = yAxis.scale(value[1]);\n width = pos.size;\n height = yAxis.scale(value[0]) - yAxis.scale(value[1]);\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n x = xAxis.scale(value[0]);\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = xAxis.scale(value[1]) - xAxis.scale(value[0]);\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n\n width += _delta;\n }\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n};","/**\n * @fileOverview X Axis\n */\n\n/** Define of XAxis props */\nexport var XAxis = function XAxis() {\n return null;\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n domain: [0, 'auto'],\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","/**\n * @fileOverview Y Axis\n */\nexport var YAxis = function YAxis() {\n return null;\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n domain: [0, 'auto'],\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction 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 _objectSpread(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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/**\n * @fileOverview Cartesian Grid\n */\n\n\nimport React, { PureComponent } from 'react';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var CartesianGrid = /*#__PURE__*/function (_PureComponent) {\n _inherits(CartesianGrid, _PureComponent);\n\n var _super = _createSuper(CartesianGrid);\n\n function CartesianGrid() {\n _classCallCheck(this, CartesianGrid);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CartesianGrid, [{\n key: \"renderHorizontal\",\n value:\n /**\n * Draw the horizontal grid lines\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal lines\n */\n function renderHorizontal(horizontalPoints) {\n var _this = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n width = _this$props.width,\n horizontal = _this$props.horizontal;\n\n if (!horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n\n var items = horizontalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this.props), {}, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n\n return CartesianGrid.renderLineItem(horizontal, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n }\n /**\n * Draw vertical grid lines\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical lines\n */\n\n }, {\n key: \"renderVertical\",\n value: function renderVertical(verticalPoints) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n y = _this$props2.y,\n height = _this$props2.height,\n vertical = _this$props2.vertical;\n\n if (!verticalPoints || !verticalPoints.length) {\n return null;\n }\n\n var items = verticalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this2.props), {}, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n\n return CartesianGrid.renderLineItem(vertical, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n }\n /**\n * Draw vertical grid stripes filled by colors\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical stripes\n */\n\n }, {\n key: \"renderVerticalStripes\",\n value: function renderVerticalStripes(verticalPoints) {\n var verticalFill = this.props.verticalFill;\n\n if (!verticalFill || !verticalFill.length) {\n return null;\n }\n\n var _this$props3 = this.props,\n fillOpacity = _this$props3.fillOpacity,\n x = _this$props3.x,\n y = _this$props3.y,\n width = _this$props3.width,\n height = _this$props3.height;\n var verticalPointsUpdated = verticalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (x !== verticalPointsUpdated[0]) {\n verticalPointsUpdated.unshift(0);\n }\n\n var items = verticalPointsUpdated.map(function (entry, i) {\n var lineWidth = verticalPointsUpdated[i + 1] ? verticalPointsUpdated[i + 1] - entry : x + width - entry;\n\n if (lineWidth <= 0) {\n return null;\n }\n\n var colorIndex = i % verticalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n x: Math.round(entry + x - x),\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n }\n /**\n * Draw horizontal grid stripes filled by colors\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal stripes\n */\n\n }, {\n key: \"renderHorizontalStripes\",\n value: function renderHorizontalStripes(horizontalPoints) {\n var horizontalFill = this.props.horizontalFill;\n\n if (!horizontalFill || !horizontalFill.length) {\n return null;\n }\n\n var _this$props4 = this.props,\n fillOpacity = _this$props4.fillOpacity,\n x = _this$props4.x,\n y = _this$props4.y,\n width = _this$props4.width,\n height = _this$props4.height;\n var horizontalPointsUpdated = horizontalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (y !== horizontalPointsUpdated[0]) {\n horizontalPointsUpdated.unshift(0);\n }\n\n var items = horizontalPointsUpdated.map(function (entry, i) {\n var lineHeight = horizontalPointsUpdated[i + 1] ? horizontalPointsUpdated[i + 1] - entry : y + height - entry;\n\n if (lineHeight <= 0) {\n return null;\n }\n\n var colorIndex = i % horizontalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n y: Math.round(entry + y - y),\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var fill = this.props.fill;\n\n if (!fill || fill === 'none') {\n return null;\n }\n\n var _this$props5 = this.props,\n fillOpacity = _this$props5.fillOpacity,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n horizontal = _this$props6.horizontal,\n vertical = _this$props6.vertical,\n horizontalCoordinatesGenerator = _this$props6.horizontalCoordinatesGenerator,\n verticalCoordinatesGenerator = _this$props6.verticalCoordinatesGenerator,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n offset = _this$props6.offset,\n chartWidth = _this$props6.chartWidth,\n chartHeight = _this$props6.chartHeight;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0 || !isNumber(x) || x !== +x || !isNumber(y) || y !== +y) {\n return null;\n }\n\n var _this$props7 = this.props,\n horizontalPoints = _this$props7.horizontalPoints,\n verticalPoints = _this$props7.verticalPoints; // No horizontal points are specified\n\n if ((!horizontalPoints || !horizontalPoints.length) && _isFunction(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({\n yAxis: yAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n } // No vertical points are specified\n\n\n if ((!verticalPoints || !verticalPoints.length) && _isFunction(verticalCoordinatesGenerator)) {\n verticalPoints = verticalCoordinatesGenerator({\n xAxis: xAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n }\n\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, this.renderBackground(), horizontal && this.renderHorizontal(horizontalPoints), vertical && this.renderVertical(verticalPoints), horizontal && this.renderHorizontalStripes(horizontalPoints), vertical && this.renderVerticalStripes(verticalPoints));\n }\n }], [{\n key: \"renderLineItem\",\n value: function renderLineItem(option, props) {\n var lineItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n lineItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n lineItem = option(props);\n } else {\n var x1 = props.x1,\n y1 = props.y1,\n x2 = props.x2,\n y2 = props.y2,\n key = props.key,\n others = _objectWithoutProperties(props, [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"]);\n\n lineItem = /*#__PURE__*/React.createElement(\"line\", _extends({}, filterProps(others), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n\n return lineItem;\n }\n }]);\n\n return CartesianGrid;\n}(PureComponent);\nCartesianGrid.displayName = 'CartesianGrid';\nCartesianGrid.defaultProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: []\n};","import React from \"react\";\nimport { SourceData } from \"@shared/types/reporting\";\nimport { XAxis, YAxis, CartesianGrid, Legend, BarChart, Bar, Label, ResponsiveContainer } from \"recharts\";\nimport theme from \"@ats/styles/theme\";\nimport { useColorSchemeContext } from \"@shared/context/ColorSchemeContext\";\n\ninterface JobMetricsSourceChartProps {\n sourceData: SourceData;\n}\n\nconst yTickFormatter = (value: string, index: number) => {\n const limit = 16; // put your maximum character\n if (!value) return value;\n if (value.length <= limit) return value;\n return `${value.substring(0, limit)}...`;\n};\n\nconst legendFormatter = (value: string) => {\n return value.charAt(0).toUpperCase() + value.slice(1);\n};\n\nfunction JobMetricsSourceChart(props: JobMetricsSourceChartProps) {\n const { sourceData } = props;\n const { isDarkMode } = useColorSchemeContext();\n\n const data = !sourceData\n ? []\n : Object.entries(sourceData)\n .sort((a: any, b: any) => b[1].total - a[1].total)\n .map(([key, value]: [string, any]) => {\n return {\n source: key ? key : \"No Source\",\n total: value.total,\n hired: value.hired,\n };\n });\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default JobMetricsSourceChart;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n","import React from \"react\";\nimport {\n XAxis,\n YAxis,\n CartesianGrid,\n Legend,\n BarChart,\n Bar,\n Label,\n ResponsiveContainer,\n} from \"recharts\";\nimport { StageData } from \"@shared/types/reporting\";\nimport theme from \"@ats/styles/theme\";\nimport { useColorSchemeContext } from \"@shared/context/ColorSchemeContext\";\n\ninterface JobMetricsStageFunnelChartProps {\n stageData: StageData[];\n totalApplications: number;\n}\n\nconst yTickFormatter = (value: string, index: number) => {\n const limit = 16; // put your maximum character\n if (!value) return value;\n if (value.length <= limit) return value;\n return `${value.substring(0, limit)}...`;\n};\n\nconst legendFormatter = (value: string) => {\n return \"Candidate traffic\";\n};\n\nfunction JobMetricsStageFunnelChart(props: JobMetricsStageFunnelChartProps) {\n const { stageData, totalApplications } = props;\n const { isDarkMode } = useColorSchemeContext();\n\n const data = !stageData\n ? []\n : stageData\n .filter((stage) => stage.stageName !== \"Archived\")\n .map((stage) => ({\n count: (stage.funnelCount / totalApplications) * 100,\n stageName: stage.isDeleted ? `${stage.stageName} (deleted)` : stage.stageName,\n }));\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default JobMetricsStageFunnelChart;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n","import React from \"react\";\nimport {\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n BarChart,\n Bar,\n Label,\n ResponsiveContainer,\n} from \"recharts\";\nimport { StageData } from \"@shared/types/reporting\";\nimport theme from \"@ats/styles/theme\";\nimport { useColorSchemeContext } from \"@shared/context/ColorSchemeContext\";\n\ninterface JobMetricsStageTargetProps {\n stageData: StageData[];\n}\n\nconst yTickFormatter = (value: string, index: number) => {\n const limit = 16; // put your maximum character\n if (!value) return value;\n if (value.length <= limit) return value;\n return `${value.substring(0, limit)}...`;\n};\n\nconst legendFormatter = (value: string) => {\n return value === \"promoted\" ? \"Advanced\" : \"Rejected\";\n};\n\nfunction JobMetricsStageTarget(props: JobMetricsStageTargetProps) {\n const { stageData } = props;\n const { isDarkMode } = useColorSchemeContext();\n\n const data = stageData\n .filter((stage) => ![\"Archived\", \"Hired\"].includes(stage.stageName))\n .map((stage) => {\n const promoted = stage.targetStages\n .filter((targetStage) => targetStage.stageName !== \"Archived\")\n .reduce((prev, cur) => prev + cur.count, 0);\n const rejected = stage.targetStages.find(\n (targetStage) => targetStage.stageName === \"Archived\",\n ).count;\n\n const total = promoted + rejected;\n return {\n stageName: stage.isDeleted ? `${stage.stageName} (deleted)` : stage.stageName,\n promoted: total === 0 ? 0 : (promoted / total) * 100,\n rejected: total === 0 ? 0 : (rejected / total) * 100,\n };\n });\n // .filter((stage) => stage.promoted + stage.rejected > 0);\n\n return (\n \n \n {/* */}\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default JobMetricsStageTarget;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n","import React, { useEffect, useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { useBasicReport } from \"@shared/queryHooks/useAnalytics\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\nimport JobMetricsSourceChart from \"./components/JobMetricsSourceChart\";\nimport JobMetricsStageFunnelChart from \"./components/JobMetricsStageFunnelChart\";\nimport JobMetricsTimeInStageChart from \"./components/JobMetricsTimeInStageChart\";\nimport JobMetricsTimeToHire from \"./components/JobMetricsTimeToHire\";\nimport JobMetricsApplicationsByDate from \"./components/JobMetricsApplicationsByDate\";\nimport JobMetricsStageTarget from \"./components/JobMetricsStageTargetPercents\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\n\nfunction JobMetricsContainer(props) {\n const queryStringParams = new URLSearchParams(props.location.search);\n const { job } = props;\n const [startDate, setStartDate] = useState(queryStringParams.get(\"startDate\") || \"\");\n const [endDate, setEndDate] = useState(queryStringParams.get(\"endDate\") || \"\");\n const [source, setSource] = useState(queryStringParams.get(\"source\") || \"\");\n const { data: basicReport, refetch: refetchBasicReport } = useBasicReport({\n jobId: job.id,\n startDate,\n endDate,\n source,\n });\n\n console.log(job);\n\n const onChangeStartDate = (e) => {\n setStartDate(e.target.value);\n };\n\n const onChangeEndDate = (e) => {\n setEndDate(e.target.value);\n };\n\n const handleSourceChange = (name, value) => {\n setSource(value);\n };\n\n const onApplyFilters = () => {\n updateUrl();\n refetchBasicReport();\n };\n\n const updateUrl = () => {\n const newQueryStringParams = new URLSearchParams();\n if (startDate) {\n newQueryStringParams.set(\"startDate\", startDate);\n }\n if (endDate) {\n newQueryStringParams.set(\"endDate\", endDate);\n }\n if (source) {\n newQueryStringParams.set(\"source\", source);\n }\n props.history.push(`/jobs/${job.id}/metrics?${newQueryStringParams.toString()}`);\n };\n\n if (!basicReport) {\n return null;\n }\n\n const {\n totalApplications,\n sourceList,\n activityData: { sourceData, stageData, timeToHire, applicationsAddedByDate },\n } = basicReport;\n\n const sourceOptions = [\n { label: \"All\", value: \"\" },\n ...sourceList.filter((source) => !!source).map((source) => ({ label: source, value: source })),\n { label: \"No source\", value: \"none\" },\n ];\n\n return (\n \n \n\n \n\n \n

    Metrics

    \n \n βeta\n \n
    \n

    \n This page shows hiring metrics for this job. These metrics are gathered from candidate and hiring team activity over the lifetime of the hiring effort.\n

    \n\n \n
    \n \n

    Hiring stage traffic

    \n \n
    \n \n

    Hiring stage results

    \n \n
    \n
    \n
    \n \n

    Applicants by source

    \n {job.jobApplicationsCount === 0 ? (\n No candidates have applied to this job yet\n ) : (\n \n )}\n
    \n
    \n
    \n {/* \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n

    Time in stage

    \n \n
    \n \n

    Time to hire

    \n \n
    \n \n

    Applications by date

    \n \n
    \n */}\n
    \n
    \n );\n}\n\nJobMetricsContainer.propTypes = {};\n\nJobMetricsContainer.defaultProps = {};\n\nexport default JobMetricsContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n width: 100vw;\n height: 100%;\n overflow-y: auto;\n\n ${t.mq[\"lg\"]} {\n width: auto;\n }\n `;\n});\n\nStyled.Filters = styled.div((props) => {\n const t: any = props.theme;\n return css`\n display: flex;\n flex-direction: row;\n align-items: flex-end;\n `;\n});\n\nStyled.Field = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.mb(5)]};\n display: flex;\n flex-direction: column;\n `;\n});\n\nStyled.Page = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.pt(4), t.px(4), t.pb(0)]};\n flex: 1;\n > p {\n ${[t.py(1), t.mb(6)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 40rem;\n line-height: 1.6;\n }\n `;\n});\n\nStyled.TitleWrapper = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_TitleWrapper;\n ${[t.mb(1)]}\n display: flex;\n justify-content: flex-start;\n align-items: center;\n position: relative;\n h1 {\n ${[t.text.h2]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n }\n `;\n});\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobApplicationMessages_Label;\n ${[t.mx(3), t.h(6), t.px(2), t.text.xs, t.rounded.xs, t.text.normal]}\n display: inline-flex;\n align-items: center;\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1.4;\n `;\n});\n\nStyled.Empty = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.text.xs, t.mb(4)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n text-align: center;\n `;\n});\n\nStyled.ChartRow = styled.div((props) => {\n const t: any = props.theme;\n return css`\n\n ${t.mq['lg']} {\n display: flex;\n > div {\n width: 50%;\n &:first-of-type {\n ${t.mr(4)}\n }\n }\n }\n `;\n});\n\nStyled.Chart = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.p(4), t.mb(4), t.rounded.md]};\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : 'transparent'};\n position: relative;\n\n h2 {\n ${[t.text.base, t.text.bold, t.mb(5)]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n }\n\n .recharts-text {\n ${[t.text.xs]}\n }\n\n .recharts-legend-item {\n ${[t.mr(0), t.ml(2)]}\n position: relative;\n right: -10px;\n }\n\n .recharts-legend-item-text {\n ${[t.text.xs]}\n }\n `;\n});","/* eslint-disable @getify/proper-arrows/return */\nimport React from \"react\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { Route, Redirect, NavLink, Switch } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport { useQueryClient } from \"react-query\";\n\nimport { css } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\nimport { useSpring, animated } from \"react-spring\";\n\n// import CandidateListContainer from \"@ats/src/views/jobApplications/CandidateListContainer\";\nimport JobApplicationListContainer from \"@ats/src/views/jobApplications/JobApplicationListContainer\";\nimport JobSetupContainer from \"@ats/src/views/jobApplications/jobSetup/JobSetupContainer\";\nimport JobDistributionContainer from \"@ats/src/views/jobApplications/jobDistribution/JobDistributionContainer\";\nimport JobMetricsContainer from \"@ats/src/views/jobApplications/jobMetrics/JobMetricsContainer\";\nimport NavItem from \"@ats/src/components/shared/NavItem\";\n\nimport { getInfiniteJobApplications } from \"@shared/queryHooks/useJobApplication\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\nimport { hiringStagesForJob } from \"@ats/src/lib/utils/helpers\";\nimport { FeatureFlipper } from \"@ats/src/components/shared/FeatureFlipper\";\n\n// import { useWhyDidYouUpdate } from \"@shared/hooks/useWhyDidYouUpdate\";\n\nfunction JobStagesContainer(props) {\n // useWhyDidYouUpdate(\" JobStagesContainer\", props);\n const { match, job } = props;\n const { currentUser, currentOrganizationUser } = useCurrentSession();\n const spring = useSpring({\n to: { opacity: 1 },\n from: { opacity: 0 },\n });\n\n const hiringStages = React.useMemo(() => hiringStagesForJob(job), [job]);\n\n // window.logger(\"%c[JobStagesContainer] RENDER\", \"background: #e6a7e6; color: #007002\", {\n // props,\n // hiringStages,\n // job,\n // match,\n // });\n\n const queryClient = useQueryClient();\n const prefetchInfiniteJobApplicationsForStage = async (jobId, hiringStageId) => {\n await queryClient.prefetchInfiniteQuery(\n [\"jobApplicationsForStage\", hiringStageId],\n ({ pageParam = 1 }) =>\n getInfiniteJobApplications({\n jobId,\n hiringStageId: Number(hiringStageId),\n page: pageParam,\n }),\n );\n // The results of this query will be cached like a normal query\n };\n\n if (isEmpty(hiringStages) || hiringStages[0] == undefined) {\n return null;\n }\n\n hiringStages.forEach((hiringStage) => {\n /* PREFETCH JOB APPLICATIONS\n --===================================================-- */\n const data = queryClient.getQueryData([\"jobApplicationsForStage\", hiringStage.id]);\n\n // window.logger(\n // \"%c[JobStagesContainer] prefetchJobApplications\",\n // \"background: #c239c2; color: #1976D2\",\n // {\n // hiringStage,\n // data,\n // },\n // );\n\n if (hiringStage.kind !== \"kind_archived\" && data == undefined) {\n prefetchInfiniteJobApplicationsForStage(job.id, hiringStage.id);\n }\n });\n\n // const handleOnUpdateJob = () => {\n // refetchJob()\n // }\n\n const tabItems = hiringStages.map((stage, index) => {\n // window.logger(\"%c[JobStagesContainer] stage\", \"background: #EFDDEF; color: #1976D2\", { stage });\n // Only show the first 5 tabs Inbox, Screen, Interview, Decide, Offer\n\n if (stage == undefined) {\n return;\n }\n\n const tabIcon = () => {\n switch (stage.kind) {\n case \"kind_inbox\":\n return \"inbox\";\n case \"kind_archived\":\n return \"archive\";\n case \"kind_hired\":\n return \"check-square\";\n default:\n return \"folder\";\n }\n };\n\n return (\n \n );\n });\n\n return (\n <>\n \n \n \n {tabItems}\n\n \n \n \n\n \n {currentOrganizationUser.isAdmin && (\n \n )}\n \n \n \n \n \n \n \n \n {/* (\n \n )}\n /> */}\n {\n // window.logger(\n // \"%c[JobStagesContainer] Route to JobApplicationListContainer\",\n // \"color: #1976D2\",\n // { match, renderProps },\n // );\n\n return (\n \n );\n }}\n />\n }\n />\n }\n />\n }\n />\n {hiringStages[0] != undefined && (\n \n )}\n \n \n \n \n );\n}\n\nexport default JobStagesContainer;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled(animated.div)`\n label: JobStagesContainer;\n display: flex;\n height: 100%;\n overflow-y: hidden;\n overflow-x: auto;\n`;\n\nStyled.Sidebar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobStagesContainer_Sidebar;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n border-right: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n overflow-y: auto;\n flex-shrink: 0;\n width: 40vw;\n\n ${t.mq[\"lg\"]} {\n width: 12%;\n flex-shrink: 1;\n }\n `;\n});\n\nStyled.Content = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobStagesContainer_Content;\n width: auto;\n flex-shrink: 0;\n\n ${t.mq[\"lg\"]} {\n width: 88%;\n }\n `;\n});\n\nStyled.List = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobStagesContainer_List;\n margin-top: 0.375rem;\n `;\n});\n\nStyled.Divider = styled.hr((props) => {\n const t: any = props.theme;\n return css`\n label: JobStagesContainer_Divider;\n ${[t.mb(0)]}\n margin-top: 2.25rem;\n width: 100%;\n border: none;\n `;\n});\n\nStyled.Settings = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: JobStagesContainer_Settings;\n display: none;\n\n ${t.mq[\"lg\"]} {\n display: block;\n }\n `;\n});\n","import React from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport queryString from \"query-string\";\n\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport { usePublishJob } from \"@shared/queryHooks/useJob\";\nimport { useSyncWithStripe } from \"@shared/queryHooks/useBilling\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\nfunction JobStripeCheckoutRedirectHandler(props) {\n // window.logger(\"%c[JobStripeCheckoutRedirectHandler] render\", \"color: #1976D2\", { props });\n const [redirectUrl, setRedirectUrl] = React.useState(null);\n const { mutate: publishJob, isLoading: isLoadingPublishJob } = usePublishJob();\n const { mutate: syncWithStripe } = useSyncWithStripe();\n const addToast = useToastContext();\n\n const { currentUser } = useCurrentSession();\n\n window.logger(\"%c[JobStripeCheckoutRedirectHandler] render\", \"background-color: #94c963\", {\n props,\n });\n\n /* Run's once - Check if being redirected from successful stripe checkout for per job pricing\n --===================================================-- */\n React.useEffect(() => {\n const { checkout, job_id, session_id, redirect_url } = queryString.parse(props.location.search);\n\n window.logger(\"%c[JobStripeCheckoutRedirectHandler] useEffect\", \"background-color: #29c282\", {\n checkout,\n job_id,\n session_id,\n redirect_url,\n // customerData,\n // isStripeCustomerSuccess,\n });\n\n if (checkout === \"success\" && session_id != undefined) {\n // Track Conversion Event for Hire Plan Purchase\n // GTM will send to Google Analytics and to Google Ads\n window.dataLayer.push({\n event: \"hirePlanPurchase\",\n transactionId: Date.now().toString(),\n transactionValue: \"119\",\n userData: {\n email: currentUser.email,\n },\n });\n }\n\n syncWithStripe(null, {\n onSuccess: (data) => {\n setRedirectUrl(redirect_url);\n\n if (checkout === \"success\" && job_id != undefined) {\n // Publish the Job\n handlePublishJob(job_id);\n }\n },\n });\n }, []);\n\n const handlePublishJob = (jobId) => {\n const jobData = { id: jobId, status: \"status_published\" };\n publishJob(jobData, {\n onSuccess: (data) => {\n window.logger(\n \"%c[JobStripeCheckoutRedirectHandler] handlePublishJob onSuccess\",\n \"background-color: #29c282\",\n {\n data,\n redirectUrl,\n },\n );\n addToast({\n title: `Published ${data.title}`,\n kind: \"success\",\n delay: 10000,\n externalLink: {\n href: data.jobPostUrl,\n text: \"View post\",\n },\n });\n },\n onError: (response) => {\n window.logger(\n \"%c[JobStripeCheckoutRedirectHandler] handlePublishJob onError\",\n \"color: #FF5002\",\n {\n response,\n redirectUrl,\n },\n );\n addToast({\n title:\n \"There was an unkown error when trying to publish please contact support@polymer.co\",\n kind: \"warning\",\n });\n },\n });\n };\n\n if (redirectUrl == undefined || isLoadingPublishJob) {\n return ;\n }\n\n return ;\n // return
    Huzzah
    ;\n}\n\nexport default JobStripeCheckoutRedirectHandler;\n","import { useMutation } from \"react-query\";\nimport { apiPost } from \"@shared/queryHooks/api\";\n\nconst createJobCandidatesCsvExport = async ({ jobId }) => {\n if (jobId == undefined) {\n return;\n }\n return await apiPost({ path: `/jobs/${jobId}/job_csv_export`, variables: {} });\n};\n\nfunction useCreateJobCandidatesCsvExport() {\n return useMutation(createJobCandidatesCsvExport, {});\n}\n\nexport { useCreateJobCandidatesCsvExport };\n","import { useMutation } from \"react-query\";\nimport { apiPost } from \"@shared/queryHooks/api\";\n\nconst createJobCandidatesCsvImport = async ({\n jobId,\n file,\n hiringStageId,\n}: {\n jobId: number;\n file: File;\n hiringStageId: number;\n}) => {\n if (jobId == undefined) {\n return;\n }\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append(\"hiring_stage_id\", hiringStageId.toString());\n return await apiPost({ path: `/jobs/${jobId}/job_csv_import`, variables: formData });\n};\n\nfunction useCreateJobCandidatesCsvImport() {\n return useMutation(createJobCandidatesCsvImport, {});\n}\n\nexport { useCreateJobCandidatesCsvImport };\n","import { ChangeEvent, useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { FileTypes, isAllowedFileSize, isAllowedFileType } from \"@ats/src/lib/utils/fileUploads\";\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\n\ninterface FormFileProps {\n maxFileSize?: number;\n expectedFileType: FileTypes;\n onChange: (f: File) => void;\n label?: string;\n description?: string;\n}\n\nfunction FormFile({ expectedFileType, maxFileSize, onChange, label, description }: FormFileProps) {\n const [selectedFile, setSelectedFile] = useState(null);\n const [errors, setErrors] = useState([]);\n\n const onChangeUploader = (e: ChangeEvent) => {\n const file = e.target.files[0];\n const isValid = isValidFile(file);\n setSelectedFile(file);\n\n if (!isValid) {\n onChange(null);\n } else {\n onChange(file);\n }\n };\n\n const isValidFile = (file: File | null): boolean => {\n if (!file) {\n setErrors([]);\n return true;\n }\n\n const newErrors = [];\n\n if (!isAllowedFileSize(maxFileSize, file.size)) {\n newErrors.push(`File size must be less than ${maxFileSize}KB.`);\n } else if (!isAllowedFileType(expectedFileType, file.type)) {\n newErrors.push(`File must be a ${expectedFileType}.`);\n }\n setErrors(newErrors);\n return newErrors.length === 0;\n };\n\n return (\n
    \n \n {label && }\n {description &&

    {description}

    }\n \n \n {selectedFile ? (\n <>\n \n {selectedFile.name}\n \n ) : (\n <>Upload\n )}\n \n
    \n {errors.length > 0 && {errors.join(\" \")}}\n
    \n );\n}\n\nexport default FormFile;\n\nconst StyledContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n margin-bottom: 20px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n > p {\n ${[t.text.sm, t.mt(-1), t.mb(2)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.text.xs}\n }\n }\n `\n});\n\nconst StyledInput = styled.input`\n display: none;\n`;\n\nconst StyledLabel = styled.label((props: any) => {\n const t: any = props.theme;\n\n const base = css`\n border: none;\n appearance: none;\n outline: none;\n position: relative;\n cursor: pointer;\n overflow: hidden;\n display: flex;\n align-items: center;\n `;\n\n return css`\n ${[t.h(10), t.text.base, t.rounded.sm, base]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n svg {\n margin-right: ${t.spacing[1]};\n flex-shrink: 0;\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n\n ${props.selectedFile\n ? css`\n ${[t.px(2)]}\n width: 100%;\n border: 1px solid ${t.dark ? \"transparent\" : t.color.gray[300]};\n background-color: ${t.dark ? \"rgba(255,255,255,0.08)\" : t.color.white};\n transition: background-color 0.2s ease, border-color 0.2s ease;\n &:hover {\n border-color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n }\n `\n : css`\n ${[t.px(4), t.text.medium]}\n background-color: ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n transition: background-color 0.2s ease;\n &:hover {\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[300]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n `}\n `;\n});\n\nconst StyledErrors = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.p(2), t.my(6), t.rounded.sm]}\n border: 1px solid ${t.dark ? t.color.red[400] : t.color.red[600]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.red[100]};\n color: ${t.dark ? t.color.red[400] : t.color.red[600]};\n `;\n});\n","import { useState } from \"react\";\nimport CenterModal from \"@ats/src/components/modals/CenterModal\";\nimport { useCreateJobCandidatesCsvImport } from \"@shared/queryHooks/useCsvImport\";\nimport FormFile from \"../forms/FormFile\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { HiringStage } from \"@ats/types/job\";\nimport { HiringStageOption } from \"@ats/src/lib/utils/helpers\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\ninterface JobImportCandidatesModalProps {\n onCancel: () => void;\n jobId: number;\n hiringStageOptions: HiringStageOption[];\n}\n\nfunction JobImportCandidatesModal({\n onCancel,\n jobId,\n hiringStageOptions,\n}: JobImportCandidatesModalProps) {\n const [file, setFile] = useState(null);\n const [hiringStageId, setHiringStageId] = useState(hiringStageOptions[0].value);\n const [errors, setErrors] = useState(null);\n const addToast = useToastContext();\n const { mutate: createJobCandidatesCsvImport } = useCreateJobCandidatesCsvImport();\n\n const onChangeUploader = (file: File) => {\n setErrors(null);\n setFile(file);\n };\n\n const handleChangeStage = (name, value) => {\n setHiringStageId(value);\n };\n\n const onSubmit = () => {\n if (!file) {\n setErrors(\"Please provide a valid CSV file.\");\n return;\n }\n createJobCandidatesCsvImport(\n { jobId, file, hiringStageId },\n {\n onError: (data: any) => {\n setErrors(data.data.errors);\n },\n onSuccess: () => {\n addToast({\n kind: \"success\",\n title:\n \"Your import is processing and may take several minutes. We will notify you when it is complete.\",\n delay: 5000,\n });\n\n onCancel();\n },\n },\n );\n };\n\n return (\n \n \n You can bulk import candidates using a CSV file populated with their information. View our\n template to see the required format.\n \n Download CSV template\n \n \n \n \n The supplied CSV must meet the following requirements:\n
      \n
    • Candidate first names are required
    • \n
    • Email addresses must be a valid format
    • \n
    • \n Email addresses must be unique and not exist for pre-existing candidates for this job\n
    • \n
    • Resumes must be provided as links to PDF files
    • \n
    \n
    \n {/* \n Once you have a populated CSV file, select it for import using the upload button below.\n */}\n \n \n\n {errors && {errors}}\n \n \n \n \n
    \n );\n}\n\nexport default JobImportCandidatesModal;\n\nconst StyledInstructions = styled.p((props) => {\n const t: any = props.theme;\n return css`\n ${[t.mb(5)]}\n\n a {\n ${t.mt(3)}\n }\n `;\n});\n\nconst StyledRequirements = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.mb(5), t.pt(4), t.px(4), t.pb(1), t.rounded.sm]}\n border: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[700] : t.color.white};\n color: ${t.dark ? t.color.gray[300] : t.color.gray[600]};\n\n ul {\n ${[t.pl(8)]}\n margin: 12px 0;\n list-style-type: disc;\n line-height: 1.6;\n }\n\n li {\n margin-bottom: 0.375rem;\n }\n `;\n});\n\nconst StyledButtonContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n display: flex;\n > * {\n ${t.mr(3)}\n\n &:last-of-type {\n ${t.mr(0)}\n }\n }\n\n ${t.mt(10)}\n\n ${t.mq[\"md\"]} {\n ${t.mt(8)}\n }\n `;\n});\n\nconst StyledErrors = styled.div((props) => {\n const t: any = props.theme;\n return css`\n ${[t.p(2), t.my(6), t.rounded.sm]}\n border: 1px solid ${t.dark ? t.color.red[400] : t.color.red[600]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.red[100]};\n color: ${t.dark ? t.color.red[400] : t.color.red[600]};\n `;\n});\n","import React from \"react\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { Route, Switch, Link } from \"react-router-dom\";\n\nimport { JobViewProvider } from \"@ats/src/context/JobViewContext\";\nimport WebsocketJobChannelHandler from \"@ats/src/websockets/WebsocketJobChannelHandler\";\n\nimport Banner from \"@ats/src/components/shared/Banner\";\nimport NavBar from \"@shared/components/NavBar\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport NewCandidateModal from \"@ats/src/views/jobApplications/candidates/NewCandidateModal\";\n\nimport JobStagesContainer from \"@ats/src/views/jobApplications/JobStagesContainer\";\nimport JobStripeCheckoutRedirectHandler from \"@ats/src/views/jobApplications/JobStripeCheckoutRedirectHandler\";\n\nimport { useModalContext } from \"@shared/context/ModalContext\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\nimport { useJob } from \"@shared/queryHooks/useJob\";\nimport { useCreateJobCandidatesCsvExport } from \"@shared/queryHooks/useCsvExport\";\nimport { useJobStore } from \"@ats/src/lib/store/zustand/jobStore\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport FriendlyErrors from \"@ats/src/components/shared/FriendlyErrors\";\nimport JobImportCandidatesModal from \"@ats/src/components/modals/JobImportCandidatesModal\";\nimport { useFeatureFlipper, Features } from \"@ats/src/components/shared/FeatureFlipper\";\nimport { hiringStagesForJob, hiringStagesForJobOptions } from \"@ats/src/lib/utils/helpers\";\nimport { isDeadlineDateAfterCurrent } from \"@shared/lib/time\";\n\n// import { useWhyDidYouUpdate } from \"@shared/hooks/useWhyDidYouUpdate\";\n\nfunction JobContainer(props: any) {\n // useWhyDidYouUpdate(\"JobContainer \", props);\n // window.logger(\"%c[JobContainer] \", \"background: #EFDDEF; color: #1976D2\", props);\n const { match, history, location } = props;\n const memoMatch = React.useMemo(() => match, [match]);\n const { currentOrganization, currentOrganizationUser } = useCurrentSession();\n const webflowUpdatesInfoBannerEnabled = useFeatureFlipper()({ feature: Features.WEBFLOW_UPDATE_ALERTS });\n const hadAnActiveSubscriptionInThePast =\n !currentOrganization.stripeSubscriptionInGoodStanding &&\n currentOrganization.publishedJobsCount > 0;\n const jobId = Number(match.params.jobId);\n const shouldDisplayWebflowUpdatesBanner =\n webflowUpdatesInfoBannerEnabled &&\n currentOrganization?.stripeSubscriptionInGoodStanding &&\n currentOrganization?.hasWebflowAuthentication &&\n !currentOrganization?.webflowAuthenticatedViaApiV2;\n\n const { data: jobData, refetch: refetchJob, isFetching: isFetchingJob, error } = useJob({\n jobId,\n refetchOnWindowFocus: false,\n });\n\n const {\n mutate: createJobCandidatesCsvExport,\n error: errorOnCreateCandidatesCsvExport,\n isLoading: isLoadingCreateCandidatesCsvExport,\n } = useCreateJobCandidatesCsvExport();\n\n const setJob = useJobStore(React.useCallback((state) => state.set, []));\n const { openModal, removeModal } = useModalContext();\n const [orgAdminJobsListUrl, setOrgAdminJobsListUrl] = React.useState(\"\");\n\n React.useEffect(() => {\n // setOrgAdminJobsListUrl once on initial component rende\n if (currentOrganizationUser.isAdmin) {\n setOrgAdminJobsListUrl(location.state?.orgAdminJobsListUrl);\n }\n }, []);\n\n const updateJobStore = React.useCallback(() => {\n // window.logger(\"%c[JobContainer] UPDATE JOB STORE\", \"background: #FF002F; color: #F9FFFF\", {\n // jobData,\n // setJob,\n // });\n setJob((state) => {\n state.jobsById[jobData.id] = jobData;\n state.questionsByJobId[jobData.id] = jobData.questions;\n state.hiringStagesByJobId[jobData.id] = jobData.hiringStages;\n\n jobData.questions.forEach((question) => {\n if (question != undefined) {\n state.questionsById[question.id] = question;\n }\n });\n jobData.hiringStages.forEach((hiringStage) => {\n if (hiringStage != undefined) {\n state.hiringStagesById[hiringStage.id] = hiringStage;\n }\n });\n });\n }, [jobData, setJob]);\n\n if (jobData != undefined) {\n updateJobStore();\n }\n\n React.useEffect(() => {\n // SAVE JOB\n if (jobData != undefined) {\n updateJobStore();\n }\n }, [jobData, jobId, updateJobStore]);\n\n React.useEffect(() => {\n // window.logger(\"%c[JobContainer] useEffect refetchJob\", \"background: #FF002F; color: #F9FFFF\", {\n // jobId,\n // });\n // Get the Job\n refetchJob();\n }, [jobId, refetchJob]);\n\n const job = useJobStore(React.useCallback((state) => state.jobsById[jobId], [jobId])) as any;\n const jobTitle = job && job.title ? job.title : \"\";\n const backUrl = orgAdminJobsListUrl ? orgAdminJobsListUrl : \"/jobs\";\n\n if (error) {\n return (\n \n );\n }\n\n const inboxStage = jobData && jobData.hiringStages.find((stage) => stage.kind === \"kind_inbox\");\n\n // window.logger(\"%c[JobContainer] render\", \"background: #f199f1; color: #1900D2\", {\n // inboxStage,\n // jobData,\n // job,\n // jobId: job?.id,\n // matchSAME: match === memoMatch,\n // });\n\n const exportCandidatesToCsv = (event) => {\n event.preventDefault();\n\n createJobCandidatesCsvExport({ jobId });\n };\n\n const importCandidatesFromCsv = () => {\n const hiringStageOptions = hiringStagesForJobOptions(job);\n const modal = (\n \n );\n\n openModal(modal);\n };\n\n const jobActions = () => {\n return (\n \n \n \n \n \n );\n };\n\n const onCompleteAddingCandidate = (jobApplication) => {\n if (jobApplication) {\n history.push(`/jobs/${jobId}/stages/${inboxStage.id}/applicants/${jobApplication.id}`);\n return removeModal; // Must return uncalled \"removeModal\" function in order to allow this function to be called after the animation to remove the component completes.\n }\n };\n\n /* ADD NEW CANDIDATE\n --===================================================-- */\n const handleClickOnAdd = (e) => {\n e.preventDefault();\n // window.logger(\"%c[JobContainer] handleClickOnAdd props\", \"color: #1976D2\", props);\n\n const modal = (\n \n );\n\n openModal(modal);\n };\n\n const getWebflowBannerMessage = () => {\n const isAfterDeadline = isDeadlineDateAfterCurrent(\"03-17-2025\");\n const bannerLinkToWebflow = {\n pathname: `/hire/settings/integrations/webflow`,\n state: { orginalPathname: location.pathname },\n };\n let message;\n if (isAfterDeadline) {\n message = (\n \n Your jobs are not syncing with Webflow. To resume syncing, reauthenticate your Webflow account in {\" \"}\n {integration settings.}\n \n );\n } else {\n message = (\n \n Webflow integrations must be reauthenticated by March 17, 2025 or job data will no longer sync. Visit{\" \"}\n {integration settings} to reauthenticate.\n \n );\n }\n return message;\n };\n\n const getBanner = () => {\n const bannerLinkToContent = { pathname: `/hire/settings/billing`, state: { orginalPathname: location.pathname } };\n \n if (job?.status === \"status_archived\") {\n return ;\n } else if (job?.status === \"draft\") {\n return ;\n } else if (job?.status === \"published\" && job.visible === false) {\n return
    \n }\n >\n \n\n \n\n {/* */}\n \n );\n}\n\nexport default OrganizationForm;\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport { Link } from \"react-router-dom\";\nimport { useQueryClient } from \"react-query\";\n\n// import Button from \"@ats/src/components/shared/Button\";\nimport OrganizationForm from \"@ats/src/views/sessions/components/OrganizationForm\";\nimport HeaderBar from \"@ats/src/views/sessions/components/HeaderBar\";\nimport Styled from \"@ats/src/views/sessions/components/Styled\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\n\n// import { useChooseOrganizationUser } from \"@shared/queryHooks/useMe\";\n\nfunction NewOrganization(props) {\n const queryClient = useQueryClient();\n const { currentOrganization, currentUser } = useCurrentSession();\n // const {\n // mutate: chooseOrganizationUser,\n // isLoading: isLoadingChooseOrganizationUser,\n // } = useChooseOrganizationUser();\n\n const onComplete = (organizationUser) => {\n window.logger(\"%c[NewOrganization] onComplete organizationUser\", \"color: #1976D2\", {\n organizationUser,\n history: props.history,\n });\n\n window.dataLayer.push({\n event: \"newOrganization\",\n transactionId: Date.now().toString(),\n transactionValue: \"5\",\n userData: {\n email: currentUser.email,\n },\n });\n\n queryClient.clear();\n\n props.history.push(\"/jobs\");\n };\n\n return (\n \n \n \n {props.isLoadingOrganization ? (\n \n ) : (\n <>\n \n \n

    Create new organization

    \n
    \n \n
    \n
    \n \n Log out\n \n \n )}\n
    \n
    \n );\n}\n\nexport default withRouter(NewOrganization);\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withRouter } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport { Link } from \"react-router-dom\";\n\nimport \"./styles\";\n\nclass AccountDeactivated extends Component {\n static displayName = \"AccountDeactivated\";\n\n static propTypes = {\n history: PropTypes.object,\n };\n\n render() {\n return (\n
    \n \n
    \n

    \n Your account has been deactivated. Please contact your company's account administrator.\n

    \n
    \n Log out\n
    \n );\n }\n}\n\nexport default withRouter(AccountDeactivated);\n","import React, { useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { Link } from \"react-router-dom\";\n\nimport Tooltip from \"@ats/src/components/shared/Tooltip\";\nimport DropdownMenu from \"@ats/src/components/shared/DropdownMenu\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nimport Styled from \"@ats/src/views/sessions/components/Styled\";\nimport HeaderBar from \"@ats/src/views/sessions/components/HeaderBar\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useModalContext } from \"@shared/context/ModalContext\";\n\nimport { useChooseOrganizationUser, useMyInvites, useRejectInvite } from \"@shared/queryHooks/useMe\";\nimport { useCurrentSession } from \"@ats/src/context/CurrentSessionContext\";\nimport { useQueryClient } from \"react-query\";\n\nfunction OrganizationSwitcher(props) {\n const queryClient = useQueryClient();\n const { history, isLoadingOrganization } = props;\n const addToast = useToastContext();\n const [showRejectedInvites, setShowRejectedInvites] = useState(false);\n\n const { currentUser, currentOrganization } = useCurrentSession();\n const { mutate: rejectInvite, isLoading: isLoadingRejectInvite } = useRejectInvite();\n\n const { data: invitesData } = useMyInvites();\n const pendingInvites =\n (invitesData && invitesData.items.filter((invite) => invite.status === \"status_pending\")) || [];\n const rejectedInvites =\n (invitesData && invitesData.items.filter((invite) => invite.status === \"status_rejected\")) ||\n [];\n\n const activeOrganizationUsers = currentUser.organizationUsers.filter(\n (organizationUser) => organizationUser.isActive,\n );\n\n window.logger(\n \"%c[OrganizationSwitcher] render\",\n \"background: #EFDDEF; background-color: #1976D2\",\n {\n currentUser,\n currentOrganization,\n invitesData,\n activeOrganizationUsers,\n },\n );\n\n /* Queries\n --===================================================-- */\n const {\n mutate: chooseOrganizationUser,\n isLoading: isLoadingChooseOrganizationUser,\n } = useChooseOrganizationUser();\n\n const handleOrganizationUserChoice = (organizationUser) => {\n chooseOrganizationUser(\n { organization_user_id: organizationUser.id },\n {\n onSuccess: (organizationUser) => {\n window.logger(\"%c[OrganizationSwitcher] handleOrganizationUserChoice\", \"color: #19d228\", {\n organizationUser,\n });\n queryClient.clear();\n history.push(\"/jobs\");\n },\n },\n );\n };\n\n const handleDeclineInvitation = (inviteId) => {\n rejectInvite({\n inviteId,\n });\n };\n\n if (isLoadingChooseOrganizationUser) {\n return ;\n }\n\n return (\n <>\n \n \n \n \n {isLoadingOrganization ? (\n \n ) : (\n <>\n \n \n

    Your organizations

    \n \n \n \n \n \n
    \n

    \n You can join other existing organizations by receiving an invitation from them.\n

    \n {/*
    \n

    Active Organization: {currentOrganization.name}

    \n
    */}\n\n {activeOrganizationUsers.length > 0 ? (\n <>\n

    Memberships

    \n
      \n {activeOrganizationUsers.map((organizationUser) => (\n \n \n {organizationUser.organization.hasLogo ? (\n \n \n \n ) : (\n \n {organizationUser.organization.name.charAt(0)}\n \n )}\n \n

      {organizationUser.organization.name}

      \n \n {organizationUser.organization.usersCount} member\n {organizationUser.organization.usersCount === 1 ? \"\" : \"s\"}\n \n
      \n
      \n handleOrganizationUserChoice(organizationUser)}\n >\n View\n \n
      \n ))}\n
    \n \n ) : (\n \n \n \n )}\n\n {pendingInvites.length > 0 || showRejectedInvites ? (\n <>\n

    Invitations

    \n
      \n {console.log(invitesData)}\n {pendingInvites.map((invite) => (\n \n \n {invite.organization.hasLogo ? (\n \n \n \n ) : (\n {invite.organization.name.charAt(0)}\n )}\n \n

      {invite.organization.name}

      \n \n {invite.organization.usersCount} member\n {invite.organization.usersCount === 1 ? \"\" : \"s\"}\n \n
      \n
      \n\n \n \n handleDeclineInvitation(invite.id)}\n disabled={isLoadingRejectInvite}\n >\n Dismiss invitation\n \n \n handleOrganizationUserChoice(organizationUser)}\n target=\"_self\"\n href={invite.inviteUrl}\n >\n Join\n \n \n
      \n ))}\n\n {rejectedInvites.length > 0 && showRejectedInvites\n ? rejectedInvites.map((invite) => (\n \n \n {invite.organization.hasLogo ? (\n \n \n \n ) : (\n \n {invite.organization.name.charAt(0)}\n \n )}\n \n \n

      {invite.organization.name}

      \n Dismissed\n
      \n \n {invite.organization.usersCount} member\n {invite.organization.usersCount === 1 ? \"\" : \"s\"}\n \n
      \n
      \n\n \n \n Join\n \n \n
      \n ))\n : null}\n
    \n \n ) : null}\n
    \n\n \n Log out\n {rejectedInvites.length > 0 ? (\n showRejectedInvites ? (\n \n ) : (\n \n )\n ) : null}\n \n \n )}\n
    \n
    \n \n );\n}\n\nexport default OrganizationSwitcher;\n\n/* Styled Components\n======================================================= */\n// let Styled: { Form: any };\n// Styled = {};\n\nStyled.ImageAvatar = styled.div((props: any) => {\n const t = props.theme;\n return css`\n label: OrganizationSwitcher_ImageAvatar;\n ${[t.h(12), t.w(12), t.rounded.sm]}\n overflow: hidden;\n flex-shrink: 0;\n transition: opacity 0.2s ease;\n \n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n `;\n});\n\nStyled.Avatar = styled.div((props: any) => {\n const t = props.theme;\n return css`\n label: OrganizationSwitcher_Avatar;\n ${[t.h(12), t.w(12), t.rounded.sm, t.pt(\"px\"), t.text.lg, t.text.bold]}\n display: flex;\n justify-content: center;\n align-items: center;\n color: ${t.color.white};\n background-color: ${t.color.gray[600]};\n text-transform: uppercase;\n flex-shrink: 0;\n transition: opacity 0.2s ease;\n `;\n});\n\nStyled.OrgListItem = styled.li((props: any) => {\n const t = props.theme;\n return css`\n ${[t.mb(6)]}\n label: OrganizationSwitcher_OrgListItem;\n display: flex;\n align-items: center;\n justify-content: space-between;\n max-width: 100%;\n button {\n width: auto;\n }\n `;\n});\n\nStyled.Org = styled.div((props: any) => {\n const t = props.theme;\n return css`\n label: OrganizationSwitcher_Org;\n display: flex;\n align-items: center;\n overflow: hidden;\n `;\n});\n\nStyled.OrgInfo = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: OrganizationSwitcher_OrgInfo;\n ${t.ml(3)};\n overflow: hidden;\n\n h4 {\n ${[t.mb(1), t.mr(2), t.text.bold]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n span {\n ${[t.text.xs]}\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n\nStyled.List = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: OrganizationSwitcher_List;\n ${[t.px(4), t.pt(6)]};\n width: 100%;\n border-bottom: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n\n h2 {\n ${[t.text.h2, t.mt(\"-px\")]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n\n h3 {\n ${[t.text.lg, t.text.bold, t.mt(6), t.mb(5)]};\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n }\n\n > p {\n ${[t.py(1), t.mb(6)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n\n ul {\n ${[t.mb(8)]};\n }\n\n ${t.mq[\"lg\"]} {\n ${[t.p(6), t.pb(0), t.rounded.md]}\n border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n width: 25rem;\n }\n `;\n});\n\nStyled.Header = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: Session_Form;\n ${t.mb(1)}\n display: flex;\n align-items: center;\n justify-content: space-between;\n `;\n});\n\nStyled.Link = styled(Link)((props) => {\n const t: any = props.theme;\n return css`\n ${[t.h(8), t.w(8), t.rounded.sm]}\n label: OrganizationSwitcher_Link;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n transition: background-color 0.2s ease;\n\n &:visited,\n &:link {\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n\n &:hover {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${t.dark ? t.color.gray[700] : t.color.gray[100]};\n }\n `;\n});\n\nStyled.InviteActions = styled.div((props: any) => {\n const t = props.theme;\n return css`\n label: OrganizationSwitcher_InviteActions;\n display: flex;\n align-items: center;\n\n > div:first-of-type {\n ${t.mr(3)}\n }\n `;\n});\n\nStyled.DismissedWrapper = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: OrganizationSwitcher_DismissedWrapper;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n position: relative;\n `;\n});\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: OrganizationSwitcher_Label;\n ${[t.mb(1), t.mr(2), t.h(4), t.px(1), t.rounded.xs, t.text.normal]}\n font-size: 0.625rem;\n flex-shrink: 0;\n flex-grow: 0;\n display: flex;\n align-items: center;\n border: 1px solid ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n line-height: 1;\n `;\n});\n\nStyled.EmptyState = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: OrganizationSwitcher_EmptyState;\n ${[t.mb(8)]}\n `;\n});\n","import React from \"react\";\nimport toLower from \"lodash/toLower\";\nimport trim from \"lodash/trim\";\n\nimport { validateLogin } from \"@shared/lib/validateWithYup\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\n\nimport { useLogin } from \"@shared/queryHooks/useSession\";\n\nfunction LoginForm(props) {\n const [state, setState] = React.useState({\n email: \"\",\n password: \"\",\n errors: [],\n });\n\n const { mutate: login, isLoading } = useLogin();\n const { email, password, errors } = state;\n\n const handleInputChange = (name, value) => {\n setState({ ...state, [name]: value, errors: null });\n };\n\n const handleLogin = async (e) => {\n e.preventDefault();\n\n const [isValid, validationErrors] = await validateLogin({ email, password });\n\n if (isValid) {\n login(\n { email: trim(toLower(email)), password },\n {\n onSuccess: (data) => {\n window.logger(\"[LoginForm] data\", data);\n props.onComplete();\n },\n onError: (response: any) => {\n window.logger(\"[LoginForm] server error\", { response });\n // Handles Devise Errors\n if (response.data.error) {\n setState({ ...state, errors: [response.data.error] });\n }\n // Handles non Devise Errors\n if (response.data.errors) {\n setState({ ...state, errors: response.data.errors });\n }\n },\n },\n );\n } else {\n window.logger(\"[LoginForm] errors\", { validationErrors });\n setState({ ...state, errors: validationErrors });\n }\n };\n\n return (\n \n Log in\n \n }\n >\n \n\n \n \n );\n}\n\nexport default LoginForm;\n","import React from \"react\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport queryString from \"query-string\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport LoginForm from \"@ats/src/views/sessions/components/LoginForm\";\nimport HeaderBar from \"@ats/src/views/sessions/components/HeaderBar\";\nimport Styled from \"@ats/src/views/sessions/components/Styled\";\nimport Banner from \"@ats/src/components/shared/Banner\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nfunction Login(props) {\n const [emailConfirmed, setEmailConfirmed] = React.useState(false);\n\n React.useEffect(() => {\n showEmailConfirmationBannerIfApplicable();\n }, []);\n\n const showEmailConfirmationBannerIfApplicable = () => {\n let emailConfirmedParam = queryString.parse(props.location.search).email_confirmed;\n\n if (emailConfirmedParam != undefined) {\n const emailConfirmed = emailConfirmedParam === \"true\";\n setEmailConfirmed(emailConfirmed);\n }\n };\n\n const loginComplete = (user) => {\n props.history.push(\"/jobs\");\n };\n\n return (\n \n \n {emailConfirmed && }\n \n {/* \n

    Looking for Wrk? We recently rebranded to Polymer!

    \n \n
    */}\n \n \n

    Login

    \n
    \n \n
    \n
    \n \n Don't have an account?\n Forgot your password?\n \n
    \n
    \n );\n}\n\nexport default withRouter(Login);\n\n/* Styled Components\n======================================================= */\n\n// const Announcement = styled.div((props) => {\n// const t: any = props.theme;\n\n// return css`\n// label: Announcement;\n// ${[t.m(4), t.mb(4), t.p(4), t.rounded.md]}\n// color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n// border: 1px solid ${t.dark ? t.color.gray[800] : t.color.gray[200]};\n// background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n// line-height: 1.4;\n// flex: 1;\n\n// ${t.mq[\"lg\"]} {\n// ${[t.mt(-12), t.mb(8), t.p(6)]}\n// width: 25rem;\n// }\n\n// b {\n// ${t.text.bold}\n// color: ${t.dark ? t.color.gray[300] : t.color.black}\n// }\n\n// p {\n// ${t.mb(5)}\n// }\n// `;\n// });\n","import React from \"react\";\nimport toLower from \"lodash/toLower\";\nimport trim from \"lodash/trim\";\nimport queryString from \"query-string\";\nimport ReCAPTCHA from \"react-google-recaptcha\";\n\nimport { validateEmail } from \"@shared/lib/validateWithYup\";\n\nimport Button from \"@ats/src/components/shared/Button\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport Styled from \"@ats/src/views/sessions/components/Styled\";\n\nimport { useMagicLink } from \"@shared/queryHooks/useSession\";\nimport { useGetInvite } from \"@shared/queryHooks/useInvite\";\n\nfunction AuthForm({\n onComplete,\n location,\n inviteToken,\n}: {\n // eslint-disable-next-line no-unused-vars\n onComplete: ({ email }: { email: string }) => void;\n location: any;\n inviteToken?: string;\n}) {\n const [state, setState] = React.useState({\n email: \"\",\n errors: [],\n });\n const path = queryString.parse(location.search).path;\n const redirectPath = path ? path : \"/\";\n // const inviteToken = queryString.parse(location.search).invite_token;\n const [referral, setReferral] = React.useState(queryString.parse(location.search).referral);\n const recaptchaRef = React.useRef(null);\n\n const { mutate: magicLink, isLoading: isLoadingMagicLink } = useMagicLink();\n const { data: inviteData, isLoading: isLoadingInvite } = useGetInvite(inviteToken);\n const inviteEmail = inviteData?.email;\n const { email, errors } = state;\n\n React.useEffect(() => {\n if (inviteEmail != undefined) {\n setState((state) => ({ ...state, email: inviteEmail }));\n setReferral(\"invite\");\n }\n }, [inviteEmail]);\n\n const handleInputChange = (name, value) => {\n setState({ ...state, [name]: value, errors: null });\n };\n\n const handleAuth = async (e) => {\n e.preventDefault();\n\n const [isValid, validationErrors] = await validateEmail({ email });\n\n let cleanedEmail = trim(toLower(email));\n\n if (isValid) {\n const recaptchaToken = window.IS_TEST_ENV\n ? null\n : await recaptchaRef.current.executeAsync();\n magicLink(\n {\n email: cleanedEmail,\n organizationSlug: null,\n inviteToken,\n redirectTo: redirectPath,\n referral,\n loginIntent: \"hire\",\n recaptchaToken: recaptchaToken,\n },\n {\n onSuccess: (data) => {\n window.logger(\"[AuthForm] data\", { ...data });\n onComplete({ email: cleanedEmail, ...data });\n },\n onError: (response: any) => {\n window.logger(\"[AuthForm] server error\", { response });\n // Handles Devise Errors\n if (response.data.error) {\n setState({ ...state, errors: [response.data.error] });\n }\n // Handles non Devise Errors\n if (response.data.errors) {\n setState({ ...state, errors: response.data.errors });\n }\n },\n },\n );\n recaptchaRef?.current?.reset();\n } else {\n window.logger(\"[AuthForm] errors\", { validationErrors });\n setState({ ...state, errors: validationErrors });\n }\n };\n\n const recaptchaElement = (\n \n \n \n );\n\n return (\n \n Continue\n \n }\n >\n \n {recaptchaElement}\n \n );\n}\n\nexport default AuthForm;\n","import React from \"react\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport queryString from \"query-string\";\n\nimport AuthForm from \"@ats/src/views/sessions/components/AuthForm\";\nimport HeaderBar from \"@ats/src/views/sessions/components/HeaderBar\";\nimport Styled from \"@ats/src/views/sessions/components/Styled\";\nimport Banner from \"@ats/src/components/shared/Banner\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\nfunction Auth(props) {\n const errorParam = queryString.parse(location.search).error;\n const inviteToken = queryString.parse(location.search).invite_token;\n const accountDeleted = queryString.parse(props.location.search).account_deleted;\n const [emailConfirmed, setEmailConfirmed] = React.useState(false);\n\n React.useEffect(() => {\n showEmailConfirmationBannerIfApplicable();\n }, []);\n\n const showEmailConfirmationBannerIfApplicable = () => {\n let emailConfirmedParam = queryString.parse(props.location.search).email_confirmed;\n\n if (emailConfirmedParam != undefined) {\n const emailConfirmed = emailConfirmedParam === \"true\";\n setEmailConfirmed(emailConfirmed);\n }\n };\n\n const onComplete = ({ email, needsEmailConfirmation, acceptedAnInvite }) => {\n window.logger(\"%c[Auth] onComplete Auth - Regular Magic Link\", \"color: #1976D2\", {\n acceptedAnInvite,\n email,\n needsEmailConfirmation,\n });\n\n if (needsEmailConfirmation) {\n props.history.push(\"/needs-email-confirmation\");\n }\n // else if (acceptedAnInvite) {\n // window.logger(\"%c[Auth] onComplete Auth - ACCEPTED AN INVITE\", \"color: #1976D2\", {\n // acceptedAnInvite,\n // });\n // props.history.push(\"/jobs\");\n // }\n else {\n const params = new URLSearchParams({ e: btoa(email) });\n props.history.push(`/verify-email?${params.toString()}`);\n }\n };\n\n return (\n \n \n {emailConfirmed ? (\n \n ) : errorParam === \"expired_link\" ? (\n \n ) : errorParam === \"invalid_invite\" ? (\n \n ) : inviteToken != undefined ? (\n \n ) : accountDeleted === \"success\" ? (\n \n ) : null}\n \n {/* \n

    Looking for Wrk? We recently rebranded to Polymer!

    \n \n
    */}\n \n \n

    {inviteToken == undefined ? \"Enter your email to continue\" : \"Accept invitation\"}

    \n
    \n \n
    \n
    \n {/* \n Don't have an account?\n Forgot your password?\n */}\n \n This site is protected by reCAPTCHA and the Google{\" \"}\n Privacy Policy and{\" \"}\n Terms of Service apply.\n \n
    \n
    \n );\n}\n\nexport default withRouter(Auth);\n","import React from \"react\";\nimport toLower from \"lodash/toLower\";\nimport queryString from \"query-string\";\n\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport { validateRegistration } from \"@shared/lib/validateWithYup\";\n\nimport { useRegister } from \"@shared/queryHooks/useSession\";\nimport { useGetInvite } from \"@shared/queryHooks/useInvite\";\n\nfunction SignupForm(props) {\n const [state, setState] = React.useState({\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n password: \"\",\n });\n\n const inviteToken = queryString.parse(props.location.search).invite_token;\n const [referral, setReferral] = React.useState(queryString.parse(props.location.search).referral);\n const [errors, setErrors] = React.useState(null);\n\n const { firstName, lastName, email, password } = state;\n const { mutate: register, isLoading } = useRegister();\n const { data: inviteData, isLoading: isLoadingInvite } = useGetInvite(inviteToken);\n\n const inviteEmail = inviteData?.email;\n React.useEffect(() => {\n if (inviteEmail != undefined) {\n setState((state) => ({ ...state, email: inviteEmail }));\n setReferral(\"invite\");\n }\n }, [inviteEmail]);\n\n const handleSignup = async (e) => {\n e.preventDefault();\n window.logger(\"%c[SignupForm] handleSignup state\", \"color: #1976D2\", state);\n\n setErrors(null);\n\n const [isValid, validationErrors] = await validateRegistration({\n firstName,\n lastName,\n email,\n password,\n });\n\n if (isValid) {\n register(\n {\n firstName,\n lastName,\n email: toLower(email),\n password,\n inviteToken,\n referral,\n },\n {\n onSuccess: (data) => {\n window.logger(\"[SignupForm] register onScucess\", { data });\n props.onComplete();\n },\n onError: (response: any) => {\n window.logger(\"[SignupForm] server error\", { response });\n if (response.data.errors) {\n setErrors(response.data.errors);\n }\n },\n },\n );\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleInputChange = (name, value) => {\n setErrors(null);\n setState({ ...state, [name]: value });\n };\n\n const button = (\n \n );\n\n return (\n \n \n\n \n\n \n\n \n \n );\n}\n\nexport default SignupForm;\n","import React from \"react\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nimport SignupForm from \"@ats/src/views/sessions/components/SignupForm\";\nimport HeaderBar from \"@ats/src/views/sessions/components/HeaderBar\";\nimport Styled from \"@ats/src/views/sessions/components/Styled\";\n\nfunction Signup(props) {\n const signupComplete = (user) => {\n props.history.push(\"/jobs\");\n };\n\n return (\n \n \n \n \n \n

    Create an account

    \n
    \n \n
    \n
    \n \n Already have an account?\n \n
    \n
    \n );\n}\n\nexport default withRouter(Signup);\n","import React from \"react\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport qs from \"query-string\";\n\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport HeaderBar from \"@ats/src/views/sessions/components/HeaderBar\";\nimport Styled from \"@ats/src/views/sessions/components/Styled\";\n\nimport { useToastContext } from \"@shared/context/ToastContext\";\nimport { useResetPassword } from \"@shared/queryHooks/useSession\";\nimport { validatePassword } from \"@shared/lib/validateWithYup\";\n\nfunction PasswordReset(props) {\n const [errors, setErrors] = React.useState(null);\n const [password, setPassword] = React.useState(\"\");\n const [passwordConfirmation, setPasswordConfirmation] = React.useState(\"\");\n const [resetPasswordToken, setResetPasswordToken] = React.useState(\"\");\n const addToast = useToastContext();\n\n const { mutate: resetPassword, isLoading } = useResetPassword();\n\n React.useEffect(() => {\n addResetPasswordTokenFromParams();\n }, []);\n\n /* Add the Reset Password Token from URL\n --===================================================-- */\n const addResetPasswordTokenFromParams = () => {\n const token = qs.parse(props.location.search).reset_password_token;\n\n if (token) {\n setResetPasswordToken(token);\n }\n };\n\n const handleFormInputChange = (name, value) => {\n setErrors(null);\n if (name === \"password\") {\n setPassword(value);\n } else if (name === \"passwordConfirmation\") {\n setPasswordConfirmation(value);\n }\n };\n\n const handleSubmitForm = async (e) => {\n e.preventDefault();\n window.logger(\"%c[PasswordReset] handleSubmitForm\", \"color: #1976D2\", {\n password,\n passwordConfirmation,\n resetPasswordToken,\n });\n\n const [isValid, validationErrors] = await validatePassword({ password, passwordConfirmation });\n\n if (password !== passwordConfirmation) {\n setErrors([\"Passwords must match\"]);\n return;\n }\n\n if (isValid) {\n resetPassword(\n { password, passwordConfirmation, resetPasswordToken },\n {\n onSuccess: () => {\n setPassword(\"\");\n setPasswordConfirmation(\"\");\n setErrors(null);\n setResetPasswordToken(null);\n addToast({ title: `Password reset successfully`, kind: \"success\" });\n props.history.push(`/login`);\n },\n onError: (response: any) => {\n setErrors(response.data.errors);\n },\n },\n );\n } else {\n setErrors(validationErrors);\n }\n };\n\n const submitButton = (\n \n );\n\n return (\n \n \n \n \n \n

    Reset password

    \n \n \n\n \n \n
    \n \n Log in by password\n Log in by email link\n \n
    \n
    \n );\n}\n\nexport default withRouter(PasswordReset);\n","import React from \"react\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport Button from \"@ats/src/components/shared/Button\";\nimport HeaderBar from \"@ats/src/views/sessions/components/HeaderBar\";\nimport Styled from \"@ats/src/views/sessions/components/Styled\";\n\nimport { useSendPasswordResetEmail } from \"@shared/queryHooks/useSession\";\nimport { validateEmail } from \"@shared/lib/validateWithYup\";\nimport { useToastContext } from \"@shared/context/ToastContext\";\n\nfunction PasswordResetRequest(props) {\n const [email, setEmail] = React.useState(\"\");\n const [errors, setErrors] = React.useState(null);\n const addToast = useToastContext();\n\n const { mutate: sendPasswordResetEmail, isLoading } = useSendPasswordResetEmail();\n\n const handleFormInputChange = (name, value) => {\n setEmail(value);\n };\n\n const handleSubmitForm = async (e) => {\n e.preventDefault();\n window.logger(\"%c[PasswordResetRequest] handleSubmitForm\", \"color: #1976D2\", { email });\n\n const [isValid, validationErrors] = await validateEmail({ email });\n\n if (isValid) {\n sendPasswordResetEmail(\n { email },\n {\n onSuccess: () => {\n setEmail(\"\");\n setErrors(null);\n addToast({ title: `Password reset email sent`, kind: \"success\" });\n },\n onError: (response: any) => {\n setErrors(response.data.errors);\n },\n },\n );\n } else {\n setErrors(validationErrors);\n }\n };\n\n const submitButton = (\n \n );\n\n return (\n \n \n \n \n \n

    Request password reset

    \n \n \n \n
    \n \n Log in by password\n Log in by email link\n \n
    \n
    \n );\n}\n\nexport default withRouter(PasswordResetRequest);\n","import React from \"react\";\nimport debounce from \"lodash/debounce\";\n\ntype State = {\n dimensions: {\n height: number;\n width: number;\n };\n size: string;\n};\n\ntype WindowSizeProviderProps = { children: React.ReactNode };\n\nconst WindowSizeContext = React.createContext(undefined);\n\nfunction WindowSizeProvider({ children }: WindowSizeProviderProps) {\n const [dimensions, setDimensions] = React.useState({\n height: window.innerHeight,\n width: window.innerWidth,\n });\n\n const size = () => {\n if (dimensions.width >= 1536) return \"2xl\";\n else if (dimensions.width >= 1280) return \"xl\";\n else if (dimensions.width >= 1024) return \"lg\";\n else if (dimensions.width >= 768) return \"md\";\n else return \"sm\";\n };\n\n React.useEffect(() => {\n const debouncedHandleResize = debounce(function handleResize() {\n setDimensions({\n height: window.innerHeight,\n width: window.innerWidth,\n });\n }, 1000);\n\n window.addEventListener(\"resize\", debouncedHandleResize);\n\n return () => {\n window.removeEventListener(\"resize\", debouncedHandleResize);\n };\n });\n\n return (\n \n {children}\n \n );\n}\n\nfunction useWindowSize() {\n const context = React.useContext(WindowSizeContext);\n if (context === undefined) {\n throw new Error(\"useWindowSize must be used within a WindowSizeProvider\");\n }\n return context;\n}\n\nexport { WindowSizeProvider, useWindowSize };\n","import create, { SetState, GetState } from \"zustand\";\nimport produce from \"immer\";\n\ntype OrganizationStore = {\n organization: {};\n users: [];\n organizationUsers: [];\n usersById: {};\n organizationUsersById: {};\n set: (fn: any) => any;\n};\n\nconst useOrganizationStore = create(\n (set: SetState, get: GetState) => ({\n organization: {},\n users: [],\n organizationUsers: [],\n usersById: {},\n organizationUsersById: {},\n set: (fn) => {\n set(produce(fn));\n },\n }),\n);\n\n// const refetchJob = (jobId) => {\n// queryCache.refetchQueries([\"jobs\", data.jobId], { exact: true });\n// }\n\nexport { useOrganizationStore };\n","import React from \"react\";\nimport queryString from \"query-string\";\n\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport { validateOnboardingProfile } from \"@shared/lib/validateWithYup\";\n\nimport { useUpdateMe } from \"@shared/queryHooks/useMe\";\n\nfunction ProfileForm(props) {\n const [state, setState] = React.useState({\n firstName: \"\",\n lastName: \"\",\n });\n\n const [errors, setErrors] = React.useState(null);\n\n const { firstName, lastName } = state;\n const { mutate: updateMe, isLoading: isLoadingUpdateMe } = useUpdateMe();\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n window.logger(\"%c[ProfileForm] handleSubmit state\", \"color: #1976D2\", state);\n\n setErrors(null);\n\n const [isValid, validationErrors] = await validateOnboardingProfile({\n firstName,\n lastName,\n });\n\n if (isValid) {\n updateMe(\n {\n user: {\n firstName,\n lastName,\n },\n },\n {\n onSuccess: (data) => {\n window.logger(\"[ProfileForm] onScucess\", { data });\n props.onComplete();\n },\n onError: (response: any) => {\n window.logger(\"[ProfileForm] server error\", { response });\n if (response.data.errors) {\n setErrors(response.data.errors);\n }\n },\n },\n );\n } else {\n setErrors(validationErrors);\n }\n };\n\n const handleInputChange = (name, value) => {\n setErrors(null);\n setState({ ...state, [name]: value });\n };\n\n const button = (\n \n Next\n \n );\n\n return (\n \n \n\n \n \n );\n}\n\nexport default ProfileForm;\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport { Link } from \"react-router-dom\";\nimport { useQueryClient } from \"react-query\";\n\nimport HeaderBar from \"@ats/src/views/sessions/components/HeaderBar\";\nimport Styled from \"@ats/src/views/sessions/components/Styled\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\nimport ProfileForm from \"./components/ProfileForm\";\n\nfunction OnboardingProfile(props: any) {\n const [state, setState] = React.useState(\"\");\n\n // const handleClick = (event: React.MouseEvent) => {\n // event.preventDefault();\n // console.log(\"[OnboardingProfile] handleClick\", event.currentTarget);\n // };\n\n const onComplete = () => {\n props.history.push(\"/jobs\");\n };\n\n return (\n \n \n \n {props.isLoadingOrganization ? (\n \n ) : (\n <>\n \n \n

    Tell us about you

    \n
    \n \n {/* */}\n
    \n
    \n \n Log out\n \n \n )}\n
    \n
    \n );\n}\n\nOnboardingProfile.defaultProps = {};\n\nexport default OnboardingProfile;\n","import React from \"react\";\nimport { Route, Switch, Redirect, withRouter } from \"react-router-dom\";\nimport { ThemeProvider } from \"@emotion/react\";\nimport theme from \"@ats/styles/theme\";\nimport lightTheme from \"@shared/styles/lightTheme\";\nimport darkTheme from \"@shared/styles/darkTheme\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport * as Sentry from \"@sentry/react\";\n\nimport AppContainer from \"@ats/src/views/layouts/AppContainer\";\n\nimport Logout from \"@ats/src/views/sessions/Logout\";\nimport NeedsEmailConfirmation from \"@ats/src/views/sessions/NeedsEmailConfirmation\";\nimport VerifyEmail from \"@ats/src/views/sessions/VerifyEmail\";\nimport NewOrganization from \"@ats/src/views/sessions/NewOrganization\";\nimport AccountDeactivated from \"@ats/src/views/accountAdmin/AccountDeactivated\";\nimport OrganizationSwitcher from \"@ats/src/views/accountAdmin/OrganizationSwitcher\";\n\n// unauthed routes\nimport Login from \"@ats/src/views/sessions/Login\";\nimport Auth from \"@ats/src/views/sessions/Auth\";\nimport Signup from \"@ats/src/views/sessions/Signup\";\nimport PasswordReset from \"@ats/src/views/sessions/PasswordReset\";\nimport PasswordResetRequest from \"@ats/src/views/sessions/PasswordResetRequest\";\n\nimport ErrorBoundaryFallback from \"@ats/src/components/shared/ErrorBoundaryFallback\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport { startsWith } from \"@ats/src/lib/utils/helpers\";\n\nimport { CurrentSessionProvider } from \"@ats/src/context/CurrentSessionContext\";\nimport { ToastProvider } from \"@shared/context/ToastContext\";\nimport { ModalProvider } from \"@shared/context/ModalContext\";\nimport { WindowSizeProvider } from \"@ats/src/context/WindowSizeContext\";\nimport { useColorSchemeContext } from \"@shared/context/ColorSchemeContext\";\n\nimport { useOrganization } from \"@shared/queryHooks/useOrganization\";\nimport { useFeatureFlippers } from \"@shared/queryHooks/useFeatureFlippers\";\nimport { useOrganizationStore } from \"@ats/src/lib/store/zustand/organizationStore\";\nimport { useFeatureFlipperStore } from \"@ats/src/lib/store/zustand/featureFlipperStore\";\nimport { useGetMe, useAcceptInvite } from \"@shared/queryHooks/useMe\";\nimport { GlobalChannelContextProvider } from \"@ats/src/context/GlobalChannelContext\";\nimport OnboardingProfile from \"../sessions/OnboardingProfile\";\n\n/*\nIf YES User on Login Redirect to Home\nIf YES User on normal route render Route\nIf NO User and on Home then redirect to LogIn\nIf NO User and on Login render Route\n--===================================================-- */\n\nconst UNAUTHED_ROUTES = [\n \"/auth\",\n \"/verify-email\",\n \"/login\",\n \"/register\",\n \"/password-reset\",\n \"/request-password-reset\",\n];\n\nfunction AppAuthed(props) {\n const { location } = props;\n const search = new URLSearchParams(location?.search);\n const isAcceptingAnInvite = search?.has(\"invite_token\");\n\n const { isDarkMode } = useColorSchemeContext();\n\n /* Fetch Session\n --===================================================-- */\n const isUnauthedRoute = UNAUTHED_ROUTES.includes(location.pathname);\n\n const { data: currentUser, isLoading: isLoadingUser } = useGetMe({\n enabled: !isUnauthedRoute, // || isAcceptingAnInvite,\n refetchOnWindowFocus: !isUnauthedRoute,\n });\n const organizationId = currentUser?.organizationId;\n const hasUser = currentUser != undefined && currentUser.id !== undefined;\n\n /* Accept Invite\n --===================================================-- */\n const { mutate: acceptInvite, isLoading: isLoadingAcceptInvite } = useAcceptInvite();\n\n /* Fetch Organization\n --===================================================-- */\n const { data: currentOrganization, isLoading: isLoadingOrganization } = useOrganization(\n organizationId,\n );\n\n /* Fetch Feature Flags\n --===================================================-- */\n const { data: featureFlagsData, isLoading: isLoadingFeatureFlippers } = useFeatureFlippers();\n\n window.logger(\"%c[AppAuthed] console RENDER\", \"background-color: #FFA500; color: #1976D2\", {\n location,\n // currentUser,\n // organizationId,\n // featureFlagsData,\n // currentOrganization,\n // isLoadingOrganization,\n locationPathname: location.pathname,\n meEnabled: !isUnauthedRoute || isAcceptingAnInvite,\n });\n\n /* Save Organization to Store\n --===================================================-- */\n const setOrganization = useOrganizationStore(React.useCallback((state) => state.set, []));\n\n if (currentOrganization != undefined) {\n setOrganization((state) => {\n state.currentOrganization = currentOrganization;\n state.users = currentOrganization.users || [];\n state.users.forEach((user) => {\n state.usersById[user?.id] = user;\n });\n });\n }\n\n /* Save Feature Flags to Store\n --===================================================-- */\n const setFeatureFlippers = useFeatureFlipperStore(\n React.useCallback((state) => state.setFeatures, []),\n );\n\n if (featureFlagsData != undefined) {\n // window.logger(\"%c[AppAuthed] featureFlagsData\", \"background-color: #FFA500; color: #1976D2\", {\n // featureFlagsData,\n // });\n\n setFeatureFlippers(featureFlagsData.features);\n }\n\n /* Organization Helpers\n --===================================================-- */\n const stripeSubscriptionInGoodStanding = currentOrganization\n ? currentOrganization.stripeSubscriptionInGoodStanding\n : false;\n const organizationName = currentOrganization ? currentOrganization.name : null;\n // const hasOrganization = currentOrganization != undefined && currentOrganization.id !== undefined;\n\n /* HEAP ANALYTICS & PIONEER\n --===================================================-- */\n React.useEffect(() => {\n window.heap.identify(currentUser?.hashId);\n window.heap.addUserProperties({\n // OrganizationName: organization.name,\n OrganizationId: organizationId,\n OrganizationName: organizationName,\n Email: currentUser?.email,\n StripeSubscriptionInGoodStanding: stripeSubscriptionInGoodStanding,\n });\n\n // Pioneer Ticker\n // if (currentUser?.hashId) {\n // window.pioneerAnalytics.identify(currentUser?.hashId);\n // window.pioneerAnalytics.active();\n // }\n }, [currentUser, organizationId]);\n\n /* Google Analytics - on URL change\n --===================================================-- */\n React.useEffect(() => {\n if ((window as any).ga) {\n (window as any).ga(\"send\", \"pageview\", props.location);\n }\n }, [props.location]);\n\n /* Track in Intercom\n --===================================================-- */\n if ((window as any).Intercom) {\n (window as any).Intercom(\"boot\", {\n app_id: (window as any).intercomAppId,\n name: currentUser?.fullName, // Full name\n email: currentUser?.email, // Email address\n role: currentUser?.currentOrganizationUser?.role,\n company_name: organizationName,\n has_active_subscription: stripeSubscriptionInGoodStanding,\n created_at: currentUser?.createdAtTimestamp, // Signup date as a Unix timestamp\n });\n }\n\n /* Routing Helpers\n --===================================================-- */\n const defaultPath =\n currentUser?.currentOrganizationUser?.role === \"org_interviewer\" ? \"/interviewer\" : \"/jobs\";\n const redirectPath = search?.has(\"path\") ? search?.get(\"path\") : defaultPath;\n\n const needsHandleDeactivatedRoute = () => {\n if (currentUser == undefined) {\n return null;\n }\n\n if (\n currentUser?.currentOrganizationUser?.isActive === false &&\n location.pathname != \"/organization/manage\"\n ) {\n return ;\n }\n };\n\n // const needsMagicLinkConfirmation = () => {\n // window.logger(\"%c[AppAuthRouter] needsMagicLinkConfirmation\", \"color: #1976D2\", {\n // currentUser,\n // hasConfirmedEmail: currentUser?.hasConfirmedEmail,\n // location,\n // });\n\n // // if (currentUser == undefined) {\n // // return null;\n // // }\n\n // if (currentUser?.hasConfirmedEmail) {\n // if (location.pathname === \"/verify-email\") {\n // return ;\n // } else {\n // return null;\n // }\n // }\n\n // if (location.pathname !== \"/verify-email\") {\n // // window.logger(\n // // \"%c[AppAuthRouter] needsMagicLinkConfirmation REDIRECT to /verify-email \",\n // // \"color: #1976D2\",\n // // { currentUser, currentOrganization },\n // // );\n // return ;\n // } else {\n // return (\n // (\n // // \n //
    Need to verify the link we just sent you
    \n // )}\n // // exact={true}\n // />\n // );\n // }\n // };\n\n const needsEmailConfirmationRoute = () => {\n // window.logger(\"%c[AppAuthRouter] needsEmailConfirmationRoute\", \"color: #1976D2\", {\n // currentUser,\n // hasConfirmedEmail: currentUser?.hasConfirmedEmail,\n // location,\n // });\n\n if (currentUser == undefined) {\n return null;\n }\n\n if (currentUser?.hasConfirmedEmail) {\n if (location.pathname === \"/needs-email-confirmation\") {\n return ;\n } else {\n return null;\n }\n }\n\n if (location.pathname !== \"/needs-email-confirmation\") {\n // window.logger(\n // \"%c[AppAuthRouter] needsEmailConfirmationRoute REDIRECT to /needs-email-confirmation \",\n // \"color: #1976D2\",\n // { currentUser, currentOrganization },\n // );\n return ;\n } else {\n return (\n (\n \n )}\n // exact={true}\n />\n );\n }\n };\n\n const needsOnboardingProfileRoute = () => {\n // console.log(\"%c[AppAuthRouter] needsOnboardingProfileRoute\\n\\n\\n\\n\\n\\n\\n\\n\", \"color: #9a1569\", {\n // currentUser,\n // });\n if (currentUser == undefined || !currentUser?.email) {\n return null;\n }\n\n if (currentUser?.hasCompletedProfile) {\n if (location.pathname === \"/onboarding/profile\") {\n return ;\n } else {\n return null;\n }\n }\n\n if (!currentUser?.hasCompletedProfile && location.pathname !== \"/onboarding/profile\") {\n console.log(\"%c[AppAuthRouter] TRY TO REDIRECT TO /onboarding/profile\", \"color: #9a1515\", {\n ...currentUser,\n });\n const noredirectPaths = [\"/\", \"/jobs\", \"/interviewer\"];\n const queryParams = !noredirectPaths.includes(location.pathname)\n ? `?path=${location.pathname}`\n : \"\";\n return ;\n } else {\n return (\n }\n // exact={true}\n />\n );\n }\n };\n\n const needsNewOrganizationRoute = () => {\n if (currentUser == undefined) {\n return null;\n }\n\n if (currentUser?.hasConfirmedEmail) {\n if (organizationId == undefined && location.pathname !== \"/organization/new\") {\n return ;\n }\n return null;\n }\n\n return null;\n };\n\n const needsGodAdminRoute = () => {\n if (currentUser == undefined) {\n return null;\n }\n\n if (\n startsWith(location.pathname, \"/admin/\") &&\n currentUser?.currentOrganizationUser?.role !== \"god_admin\"\n ) {\n return ;\n }\n\n return null;\n };\n\n const needsRedirectToJobsRoute = () => {\n if (currentUser == undefined) {\n return null;\n }\n\n if (!!currentUser?.email && UNAUTHED_ROUTES.includes(location.pathname)) {\n return ;\n }\n return null;\n };\n\n const handleRegisterRoute = (renderProps) => {\n // window.logger(\"%c[AppAuthed] console handleRegisterRoute\", \"color: #1976D2\", {\n // pathname: location.pathname,\n // currentUser,\n // });\n return currentUser == undefined ? (\n \n ) : (\n needsHandleAcceptInvite()\n );\n };\n\n const needsHandleAcceptInvite = () => {\n // window.logger(\"%c[AppAuthed] needsHandleAcceptInvite\", \"color: #1976D2\", {\n // pathname: location.pathname,\n // currentUser,\n // });\n\n if (isAcceptingAnInvite) {\n const inviteToken = search.get(\"invite_token\");\n acceptInvite(\n { inviteToken },\n {\n onSuccess: () => {\n // history.push(\"/jobs\");\n },\n },\n );\n }\n\n return ;\n };\n\n return (\n \n \n \n \n }>\n \n \n \n {isLoadingUser || isLoadingOrganization ? (\n \n ) : (\n \n {needsHandleDeactivatedRoute()}\n {needsGodAdminRoute()}\n {needsEmailConfirmationRoute()}\n {needsOnboardingProfileRoute()}\n {needsNewOrganizationRoute()}\n {/* {needsHandleAcceptInvite()} */}\n {needsRedirectToJobsRoute()}\n }\n exact={true}\n />\n }\n exact={true}\n />\n handleRegisterRoute(renderProps)}\n exact={true}\n />\n }\n exact={true}\n />\n (\n \n )}\n exact={true}\n />\n (\n // \n \n )}\n exact={true}\n />\n {location.pathname === \"/\" && hasUser ? (\n \n ) : null}\n }\n exact={true}\n />\n (\n \n )}\n exact={true}\n />\n }\n exact={true}\n />\n }\n exact={true}\n />\n {\n const { match, ...restRenderProps } = renderProps;\n return (\n \n );\n }}\n exact={false}\n />\n \n )}\n \n \n \n \n \n \n \n \n );\n}\n\nfunction AuthedLogoutDecision(props) {\n // window.logger(\"%c[AuthedLogoutDecision] props.location.pathname\", \"color: #d219c9\", {\n // pathname: props.location.pathname,\n // });\n if (props.location.pathname.includes(\"/logout\")) {\n return ;\n } else {\n return ;\n }\n}\n\nexport default withRouter(AuthedLogoutDecision);\n\n/* Styled Components\n======================================================= */\nconst Styled: any = {};\n\nStyled.AppWrapper = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: AppContainer;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n background-color: ${t.dark ? t.color.gray[900] : t.color.white};\n `;\n});\n","import React from \"react\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nimport { ReactQueryDevtools } from \"react-query/devtools\";\nimport { QueryClient, QueryClientProvider } from \"react-query\";\n\nimport AppAuthRouter from \"@ats/src/views/layouts/AppAuthRouter\";\n// import AppUnauthed from \"@ats/src/views/layouts/AppUnauthed\";\n\nimport { ColorSchemeProvider } from \"@shared/context/ColorSchemeContext\";\nimport GlobalScrollbarStyles from '@shared/components/GlobalScrollbarStyles';\n\n// MAIN APP\n/***********************************/\nfunction App(props) {\n /* REACT QUERY\n --===================================================-- */\n const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n });\n\n window.logger(\"%c\\n\\n\\n[App] render\", \"background-color: #b0d219\", {\n props,\n queryClient,\n });\n\n return (\n \n \n \n <>\n \n \n
    \n \n \n\n {window.IS_DEVELOPMENT ? : null}\n \n \n \n \n );\n}\n\nexport default App;\n","import { createStore, applyMiddleware, compose, combineReducers } from \"redux\";\nimport thunk from \"redux-thunk\";\n\nimport persistState, { mergePersistedState } from \"redux-localstorage\";\nimport adapter from \"redux-localstorage/lib/adapters/localStorage\";\nimport filter from \"redux-localstorage-filter\";\n\nimport { composeWithDevTools } from \"redux-devtools-extension\";\n\n// import merge from \"lodash/merge\";\n\nconst middleware = [thunk];\n\n// const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nconst rootReducer = combineReducers({});\n\nconst reducer = compose(\n // This merges localStorage with what is returned by the inflowReducers as the default state.\n // mergePersistedState((initialState, persistedState) => {\n // return merge({}, initialState, persistedState);\n // }),\n mergePersistedState(),\n)(rootReducer);\n\nconst storage = compose(\n filter(\"session\"), // only save session and appData.drafts in localStorage\n // filter(['session', 'appData.drafts']) // only save session and appData.drafts in localStorage\n)(adapter(window.localStorage));\n\nconst enhancer = composeWithDevTools(\n applyMiddleware(...middleware),\n persistState(storage, \"inflow\"), // persisteState must be right after applyMiddleware and before other middleware\n);\n\nconst store = createStore(\n // rootReducer,\n reducer,\n // initialState,\n enhancer,\n);\n\nwindow.logger(\"[store/index.js] store.getState()\", store.getState());\n\nexport default store;\n","// ./src/index.js\n// import \"@babel/polyfill\";\nimport \"core-js/stable\";\nimport \"regenerator-runtime/runtime\";\n\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport * as Sentry from \"@sentry/react\";\nimport { Integrations } from \"@sentry/tracing\";\n\nimport App from \"./views/layouts/App\";\nimport store from \"@ats/src/lib/store\";\n\nif (window.SERVER_ENV !== \"test\") {\n Sentry.init({\n dsn: window.SENTRY_JAVASCRIPT_DSN,\n integrations: [new Integrations.BrowserTracing()],\n\n // We recommend adjusting this value in production, or using tracesSampler\n // for finer control\n tracesSampleRate: 0.5, // 0 is off and 1.0 is all, can do 0.5 to cut the sampling in half or any value between 0 and 1.0\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n const render = (Component = App, store) => {\n ReactDOM.render(, document.getElementById(\"root\"));\n };\n\n render(undefined, store);\n});\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { QueryObserver } from './queryObserver';\nimport { hasNextPage, hasPreviousPage, infiniteQueryBehavior } from './infiniteQueryBehavior';\nexport var InfiniteQueryObserver = /*#__PURE__*/function (_QueryObserver) {\n _inheritsLoose(InfiniteQueryObserver, _QueryObserver); // Type override\n // Type override\n // Type override\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n\n\n function InfiniteQueryObserver(client, options) {\n return _QueryObserver.call(this, client, options) || this;\n }\n\n var _proto = InfiniteQueryObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n _QueryObserver.prototype.bindMethods.call(this);\n\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n };\n\n _proto.setOptions = function setOptions(options) {\n _QueryObserver.prototype.setOptions.call(this, _extends({}, options, {\n behavior: infiniteQueryBehavior()\n }));\n };\n\n _proto.getOptimisticResult = function getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return _QueryObserver.prototype.getOptimisticResult.call(this, options);\n };\n\n _proto.fetchNextPage = function fetchNextPage(options) {\n return this.fetch({\n cancelRefetch: true,\n throwOnError: options == null ? void 0 : options.throwOnError,\n meta: {\n fetchMore: {\n direction: 'forward',\n pageParam: options == null ? void 0 : options.pageParam\n }\n }\n });\n };\n\n _proto.fetchPreviousPage = function fetchPreviousPage(options) {\n return this.fetch({\n cancelRefetch: true,\n throwOnError: options == null ? void 0 : options.throwOnError,\n meta: {\n fetchMore: {\n direction: 'backward',\n pageParam: options == null ? void 0 : options.pageParam\n }\n }\n });\n };\n\n _proto.createResult = function createResult(query, options) {\n var _state$data, _state$data2, _state$fetchMeta, _state$fetchMeta$fetc, _state$fetchMeta2, _state$fetchMeta2$fet;\n\n var state = query.state;\n\n var result = _QueryObserver.prototype.createResult.call(this, query, options);\n\n return _extends({}, result, {\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, (_state$data = state.data) == null ? void 0 : _state$data.pages),\n hasPreviousPage: hasPreviousPage(options, (_state$data2 = state.data) == null ? void 0 : _state$data2.pages),\n isFetchingNextPage: state.isFetching && ((_state$fetchMeta = state.fetchMeta) == null ? void 0 : (_state$fetchMeta$fetc = _state$fetchMeta.fetchMore) == null ? void 0 : _state$fetchMeta$fetc.direction) === 'forward',\n isFetchingPreviousPage: state.isFetching && ((_state$fetchMeta2 = state.fetchMeta) == null ? void 0 : (_state$fetchMeta2$fet = _state$fetchMeta2.fetchMore) == null ? void 0 : _state$fetchMeta2$fet.direction) === 'backward'\n });\n };\n\n return InfiniteQueryObserver;\n}(QueryObserver);","import { InfiniteQueryObserver } from '../core/infiniteQueryObserver';\nimport { parseQueryArgs } from '../core/utils';\nimport { useBaseQuery } from './useBaseQuery'; // HOOK\n\nexport function useInfiniteQuery(arg1, arg2, arg3) {\n var options = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(options, InfiniteQueryObserver);\n}","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n\n this._ = \"\";\n}\n\nfunction path() {\n return new Path();\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function moveTo(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function lineTo(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function quadraticCurveTo(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x1,y1).\n\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) ; // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21; // If the start tangent is not coincident with (x0,y0), line to.\n\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x0,y0).\n\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n } // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n } // Is this arc empty? We’re done.\n\n\n if (!r) return; // Does the angle go the wrong way? Flip the direction.\n\n if (da < 0) da = da % tau + tau; // Is this a complete circle? Draw two arcs to complete the circle.\n\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n } // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function rect(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n },\n toString: function toString() {\n return this._;\n }\n};\nexport default path;","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport var bisectCenter = bisector(number).center;\nexport default bisectRight;","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport var prefixExponent;\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\nexport default {\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": formatDecimal,\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n};","export default function (x) {\n return x;\n}","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport { prefixExponent } from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\nvar map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\nexport default function (locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\"; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type); // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n\n var valueNegative = value < 0 || 1 / value < 0; // Perform the initial formatting.\n\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.\n\n if (trim) value = formatTrim(value); // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n\n return numerals(value);\n }\n\n format.toString = function () {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}","export default function (grouping, thousands) {\n return function (value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}","export default function (numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\n });\n };\n}","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function (s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}"],"sourceRoot":""}