{"version":3,"sources":["webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/misc.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/dom/node.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/misc.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/an-object.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+node-libs-browser@2.2.1/node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/global.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@vue+babel-helper-vue-jsx-merge-props@1.4.0/node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/buildPolyfills/_optionalChain.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vue-i18n@8.22.3_vue@2.6.11/node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/dialog/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/goods-action/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/goods-action-button/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/dialog/Dialog.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/is-object.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/format/number.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/cell/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/global.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/dom/style.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/transaction.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/router.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/mixins/bind-event.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/swipe-item/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/validate/number.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/defaults.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/env.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/cell/shared.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/idletransaction.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/mixins/touch.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/time.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/dom/raf.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/icon/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/picker/shared.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/deep-clone.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/picker/PickerColumn.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/picker/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/axios.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/list/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/create/bem.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/format/string.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/mixins/slots.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/create/component.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/create/i18n.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/create/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/string.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/syncpromise.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vue-router@3.2.0_vue@2.6.11/node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/to-object.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/integrations/node/express.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/integrations/node/postgres.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/integrations/node/mysql.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/integrations/node/mongo.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/backgroundtab.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/web-vitals/lib/bindReporter.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/web-vitals/lib/generateUniqueID.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/web-vitals/lib/initMetric.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/web-vitals/lib/observe.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/web-vitals/lib/onHidden.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/web-vitals/getCLS.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/web-vitals/lib/getVisibilityWatcher.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/web-vitals/getFID.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/web-vitals/getLCP.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/metrics.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/request.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/router.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/browser/browsertracing.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/checkbox/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+core@7.14.2/node_modules/@sentry/core/esm/version.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+core@7.14.2/node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+core@7.14.2/node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+core@7.14.2/node_modules/@sentry/core/esm/integration.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+core@7.14.2/node_modules/@sentry/core/esm/sdk.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/error.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/dsn.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+core@7.14.2/node_modules/@sentry/core/esm/api.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/supports.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/instrument.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/envelope.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+core@7.14.2/node_modules/@sentry/core/esm/envelope.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+core@7.14.2/node_modules/@sentry/core/esm/baseclient.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/clientreport.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/eventbuilder.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/severity.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/url.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/client.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/helpers.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/stack-parsers.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/integrations/dedupe.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/integrations/httpcontext.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/promisebuffer.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/ratelimit.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+core@7.14.2/node_modules/@sentry/core/esm/transports/base.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/transports/utils.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/transports/fetch.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/transports/xhr.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+browser@7.14.2/node_modules/@sentry/browser/esm/sdk.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+vue@7.14.2_vue@2.6.11/node_modules/@sentry/vue/esm/constants.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+vue@7.14.2_vue@2.6.11/node_modules/@sentry/vue/esm/components.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+vue@7.14.2_vue@2.6.11/node_modules/@sentry/vue/esm/errorhandler.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+vue@7.14.2_vue@2.6.11/node_modules/@sentry/vue/esm/tracing.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+vue@7.14.2_vue@2.6.11/node_modules/@sentry/vue/esm/sdk.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/span.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/vnodes.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/mixins/portal.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/normalize.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/radio-group/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/dom/event.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/export.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/tabs/utils.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/interceptor.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/tabs/Title.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/sticky/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/tabs/Content.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/tabs/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/a-function.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/checkbox-group/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/object.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/has.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/path.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/loading/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/mixins/popup/context.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/overlay/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/mixins/popup/overlay.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/mixins/close-on-popstate.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/mixins/popup/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/constant.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/dom/scroll.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/format/unit.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/browser.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+ssr-window@3.0.0/node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+dom7@3.0.0/node_modules/dom7/dom7.esm.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+swiper@6.4.5/node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vue@2.6.11/node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/hubextensions.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/deep-assign.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/locale/lang/zh-CN.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/locale/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/set-global.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/redefine.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/is.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/supports.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/instrument.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+hub@7.14.2/node_modules/@sentry/hub/esm/session.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/cancel/isCancel.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/mixins/field.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+vue@7.14.2_vue@2.6.11/node_modules/@sentry/vue/esm/router.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@didi+cs-h5-bridge@1.5.0/node_modules/@didi/cs-h5-bridge/dist/index.mjs","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/constants.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/tab/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/memo.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/uploader/utils.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/image/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/image-preview/shared.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/image-preview/ImagePreviewItem.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/image-preview/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/image-preview/ImagePreview.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/uploader/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/core/createError.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/utils.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+path-browserify@0.0.1/node_modules/path-browserify/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@vant+touch-emulator@1.4.0/node_modules/@vant/touch-emulator/dist/index.mjs","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/radio/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/to-length.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/cascader/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/logger.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/popup/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/uid.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+tslib@1.14.1/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/mixins/relation.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/validate/system.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/dom/reset-scroll.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/field/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/string.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/shared.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/form/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/utils.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@babel+runtime@7.23.1/node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/object.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/utils/functional.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/stacktrace.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vue-loader@15.10.2_babel-core@7.0.0-bridge.0_cache-loader@4._jkz77aijws7ah226e4for33c2e/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/swipe/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/badge/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/stacktrace.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/core/settle.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/global.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/fails.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/button/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/logger.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@didi+i18n-plugin@1.2.65/node_modules/@didi/i18n-plugin/dist/sdk.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/node.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/action-sheet/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/toast/lock-click.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/toast/Toast.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/toast/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/env.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+lodash@4.17.21/node_modules/lodash/lodash.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/memo.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/mixins/checkbox.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/is.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+hub@7.14.2/node_modules/@sentry/hub/esm/exports.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/cell-group/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/info/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/node.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+hub@7.14.2/node_modules/@sentry/hub/esm/hub.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/syncpromise.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+hub@6.17.2/node_modules/@sentry/hub/esm/scope.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+hub@6.17.2/node_modules/@sentry/hub/esm/session.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+hub@6.17.2/node_modules/@sentry/hub/esm/hub.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@7.14.2/node_modules/@sentry/utils/esm/browser.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+core-js@3.6.5/node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/number-keyboard/DeleteIcon.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/number-keyboard/CollapseIcon.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/number-keyboard/Key.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+vant@2.12.54_vue@2.6.11/node_modules/vant/es/number-keyboard/index.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+hub@7.14.2/node_modules/@sentry/hub/esm/scope.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+axios@0.21.1/node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+tracing@6.17.2/node_modules/@sentry/tracing/esm/errors.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@sentry+utils@6.17.2/node_modules/@sentry/utils/esm/time.js","webpack:///./node_modules/.pnpm/artifactory.intra.xiaojukeji.com+@didi+i18n-plugin@1.2.65/node_modules/@didi/i18n-plugin/dist/loadScript.js"],"names":["uuid4","global","crypto","msCrypto","randomUUID","replace","getRandomByte","getRandomValues","Uint8Array","Math","random","c","toString","getFirstException","event","exception","values","undefined","getEventDescription","message","event_id","eventId","firstException","type","value","addExceptionTypeValue","addExceptionMechanism","newMechanism","defaultMechanism","handled","currentMechanism","mechanism","mergedData","data","checkOrSetAlreadyCaught","__sentry_captured__","err","arrayify","maybeArray","Array","isArray","removeNode","el","parent","parentNode","removeChild","arr","Uint16Array","pad","num","v","length","r","isObject","module","exports","it","TypeError","String","nextTick","fn","args","prototype","slice","call","arguments","shift","setTimeout","apply","platform","arch","execPath","title","pid","browser","env","argv","binding","name","Error","path","cwd","chdir","dir","resolve","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","internalObjectKeys","enumBugKeys","hiddenKeys","concat","f","Object","getOwnPropertyNames","O","error","config","code","request","response","isAxiosError","toJSON","this","description","number","fileName","lineNumber","columnNumber","stack","check","globalThis","window","self","Function","utils","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","target","source","isPlainObject","merge","mergeDeepProperties","prop","isUndefined","forEach","axiosKeys","otherKeys","keys","filter","key","indexOf","_extends","assign","bind","a","b","d","hasOwnProperty","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","reduce","e","g","h","i","mergeFn","InterceptorManager","handlers","use","fulfilled","rejected","push","eject","id","_optionalChain","ops","lastAccessLHS","op","numberFormatKeys","warn","msg","console","obj","isBoolean","val","isString","OBJECT_STRING","isNull","isFunction","parseArgs","len","locale","params","looseClone","JSON","parse","stringify","remove","item","index","splice","includes","hasOwn","arguments$1","output","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","keysA","keysB","escapeHtml","rawText","escapeParams","extend","Vue","defineProperty","get","_i18n","$t","i18n","$i18n","_t","_getMessages","$tc","choice","_tc","$te","_te","$d","ref","$n","n","mixin","beforeCreate","options","$options","__i18n","VueI18n","localeMessages","messages","resource","mergeLocaleMessage","_i18nWatcher","watchI18nData","rootI18n","$root","root","formatter","fallbackLocale","formatFallbackMessages","silentTranslationWarn","silentFallbackWarn","pluralizationRules","preserveDirectiveContent","localeMessages$1","sharedMessages","sync","_localeWatcher","watchLocale","onComponentInstanceCreated","beforeMount","subscribeDataChanging","_subscribing","beforeDestroy","$nextTick","unsubscribeDataChanging","destroyVM","interpolationComponent","functional","props","tag","Boolean","default","required","places","render","slots","children","onlyHasDefaultPlace","useLegacyPlaces","createParamsFromPlaces","child","text","trim","everyPlace","vnodeHasPlaceAttribute","assignChildPlace","assignChildIndex","attrs","place","vnode","numberComponent","Number","format","acc","parts","_ntp","map","part","slot","scopedSlots","staticClass","assert","t","update","oldVNode","context","localeEqual","oldValue","_localeMessage","getLocaleMessage","unbind","vm","modifiers","preserve","textContent","_vt","_locale","ref$1","ref$2","parseValue","tc","makeParams","install","_Vue","installed","version","split","directive","component","strats","optionMergeStrategies","parentVal","childVal","BaseFormatter","_caches","create","interpolate","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","position","char","sub","isClosed","test","compiled","mode","token","parseInt","APPEND","PUSH","INC_SUB_PATH_DEPTH","PUSH_SUB_PATH","BEFORE_PATH","IN_PATH","BEFORE_IDENT","IN_IDENT","IN_SUB_PATH","IN_SINGLE_QUOTE","IN_DOUBLE_QUOTE","AFTER_PATH","ERROR","pathStateMachine","literalValueRE","isLiteral","exp","stripQuotes","str","charCodeAt","getPathCharType","ch","formatSubPath","trimmed","charAt","isNaN","parse$1","newChar","transition","action","typeMap","subPathDepth","actions","maybeUnescapeQuote","nextChar","I18nPath","_cache","parsePath","hit","getPathValue","paths","last","availabilities","htmlTagMatcher","linkKeyMatcher","linkKeyPrefixMatcher","bracketsMatcher","defaultModifiers","toLocaleUpperCase","toLocaleLowerCase","substr","defaultFormatter","this$1","dateTimeFormats","numberFormats","_vm","_formatter","_modifiers","_missing","missing","_root","_sync","_fallbackRoot","fallbackRoot","_formatFallbackMessages","_silentTranslationWarn","_silentFallbackWarn","_dateTimeFormatters","_numberFormatters","_path","_dataListeners","_componentInstanceCreatedListener","componentInstanceCreatedListener","_preserveDirectiveContent","_warnHtmlInMessage","warnHtmlInMessage","_postTranslation","postTranslation","_escapeParameterHtml","escapeParameterHtml","getChoiceIndex","choicesLength","thisPrototype","getPrototypeOf","prototypeGetChoiceIndex","defaultImpl","_choice","_choicesLength","abs","min","_exist","_checkLocaleMessage","_initVM","prototypeAccessors","configurable","availableLocales","level","pop","ret","join","silent","$destroy","$watch","$forceUpdate","deep","$set","immediate","newI18n","_getDateTimeFormats","_getNumberFormats","sort","set","_localeChainCache","fallback","handler","orgLevel","_warnDefault","result","interpolateMode","missingRet","parsedArgs","_render","_isFallbackRoot","_isSilentFallbackWarn","RegExp","_isSilentFallback","_isSilentTranslationWarn","_interpolate","host","visitedLinkStack","pathRet","_link","matches","match","idx","link","linkKeyPrefixMatches","linkPrefix","formatterName","linkPlaceholder","translated","_translate","_createMessageContext","_list","_named","list","named","_appendItemToChain","chain","blocks","follow","_appendLocaleToChain","_appendBlockToChain","block","_getLocaleChain","start","defaults","res","step","_i","predefined","fetchChoice","choices","te","setLocaleMessage","getDateTimeFormat","setDateTimeFormat","_clearDateTimeFormat","mergeDateTimeFormat","_localizeDateTime","formats","Intl","DateTimeFormat","_d","getNumberFormat","setNumberFormat","_clearNumberFormat","mergeNumberFormat","_getNumberFormatter","NumberFormat","_n","numberFormat","nf","formatToParts","defineProperties","intlDefined","dateTimeFormat","toInteger","max","integer","instance","_createNamespace","createComponent","bem","mixins","safeAreaInsetBottom","unfit","icon","color","loading","disabled","computed","isFirst","prev","isLast","next","methods","onClick","$emit","$router","first","theme","width","className","callback","beforeClose","messageAlign","cancelButtonText","cancelButtonColor","confirmButtonText","confirmButtonColor","showCancelButton","overlay","allowHtml","showConfirmButton","closeOnPopstate","closeOnClickOverlay","confirm","cancel","onClickOverlay","handleAction","_this","state","onClose","close","onOpened","_this2","_this2$$refs$dialog","$refs","dialog","focus","onClosed","onKeydown","_this3","onEventType","Enter","Escape","genRoundButtons","_this4","$createElement","genButtons","_ref","_this5","multiple","genContent","hasTitle","messageSlot","_bem","_domProps","class","domProps","isolated","shouldRender","Title","isInDocument","element","document","body","contains","initInstance","createElement","propsData","lazyRender","$on","Promise","reject","$el","currentOptions","defaultOptions","lockScroll","overlayClass","overlayStyle","getContainer","alert","setDefaultOptions","resetDefaultOptions","Component","$dialog","range","trimExtraChar","_char","regExp","prefix","formatNumber","allowDot","allowMinus","aFunction","variable","namespace","method","Cell","ctx","_props$clickable","size","label","isLink","showTitle","Label","showLabel","labelClass","titleClass","titleStyle","Value","showValue","alone","valueClass","LeftIcon","iconPrefix","RightIcon","rightIconSlot","arrowDirection","clickable","classes","center","borderless","border","extra","fallbackGlobalObject","getGlobalObject","isHidden","style","getComputedStyle","hidden","display","parentHidden","offsetParent","Transaction","_super","transactionContext","hub","_measurements","_hub","metadata","_trimEnd","trimEnd","transaction","setName","initSpanRecorder","maxlen","spanRecorder","add","setMeasurements","measurements","setMetadata","newMetadata","finish","endTimestamp","sampled","finishedSpans","spans","s","current","contexts","trace","getTraceContext","start_timestamp","startTimestamp","tags","timestamp","sdkProcessingMetadata","hasMeasurements","log","captureEvent","client","getClient","transport","getTransport","recordLostEvent","toContext","spanContext","updateWithContext","_a","baseURL","relativeURL","isRedundantNavigation","route","router","to","url","promise","catch","location","href","functionalRoute","routeProps","uid","BindEventMixin","mounted","activated","deactivated","offset","inited","_this$parent","vertical","transform","active","activeIndicator","maxActive","count","prevActive","loop","nextActive","$listeners","isNumeric","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","getDefaultAdapter","adapter","XMLHttpRequest","process","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","transformResponse","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","fns","isBrowserBundle","__SENTRY_BROWSER_BUNDLE__","inspectSource","WeakMap","nativePropertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","1","V","descriptor","enumerable","cellProps","DEFAULT_IDLE_TIMEOUT","HEARTBEAT_INTERVAL","IdleTransactionSpanRecorder","_pushActivity","_popActivity","transactionSpanId","span","spanId","IdleTransaction","_idleHub","_idleTimeout","_onScope","activities","_heartbeatCounter","_finished","_beforeFinishCallbacks","clearActiveTransaction","configureScope","scope","setSpan","_initTimeout","e_1","Date","toISOString","_b","_c","done","e_1_1","return","setStatus","keepSpan","registerBeforeFinishCallback","pushActivity","popActivity","_pingHeartbeat","clearTimeout","end_1","setTag","_beat","heartbeatString","_prevHeartbeatString","getScope","getTransaction","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","P","fails","getOwnPropertySymbols","getDirection","x","y","TouchMixin","direction","touchStart","resetTouchStatus","startX","touches","clientX","startY","clientY","touchMove","touch","deltaX","deltaY","offsetX","offsetY","LOCK_DIRECTION_DISTANCE","bindTouchEvent","onTouchStart","onTouchMove","onTouchEnd","replacement","isForced","feature","detection","normalize","POLYFILL","NATIVE","string","toLowerCase","dateTimestampSource","nowSeconds","now","getBrowserPerformance","performance","timeOrigin","getNodePerformance","perfHooks","_","platformPerformance","timestampSource","dateTimestampInSeconds","timestampInSeconds","_browserPerformanceTimeOriginMode","threshold","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","timing","hasNavigationStart","navigationStartDelta","navigationStartIsReliable","curr","ms","iRaf","requestAnimationFrame","cancelAnimationFrame","raf","doubleRaf","isImage","LEGACY_MAP","medel","correctName","Icon","_props$badge","imageIcon","classPrefix","fontSize","dot","badge","info","DEFAULT_ITEM_HEIGHT","pickerProps","readonly","itemHeight","showToolbar","visibleItemCount","swipeDuration","deepClone","DEFAULT_DURATION","MOMENTUM_LIMIT_TIME","MOMENTUM_LIMIT_DISTANCE","getElementTranslateY","webkitTransform","translateY","isOptionDisabled","option","supportMousewheel","mousewheelTimer","valueKey","defaultIndex","initialOptions","duration","currentIndex","created","$parent","setIndex","onMouseWheel","destroyed","watch","baseOffset","setOptions","moving","wrapper","startOffset","transitionEndTrigger","touchStartTime","momentumOffset","distance","allowMomentum","momentum","getIndexByOffset","onTransitionEnd","stopMomentum","onClickItem","adjustIndex","getOptionText","emitChange","trigger","setValue","getValue","round","speed","genOptions","optionStyle","height","role","tabindex","selected","on","click","childData","wrapperStyle","transitionDuration","transitionProperty","columns","toolbarPosition","formattedColumns","itemPxHeight","unit","dataType","firstColumn","formatCascade","formatted","cursor","_cursor$defaultIndex","_cursor","emit","getColumnValue","getColumnIndex","getValues","getIndexes","onCascadeChange","columnIndex","indexes","setColumnValues","onChange","getColumn","column","setColumnValue","setColumnIndex","optionIndex","getColumnValues","setValues","setIndexes","genTitle","titleSlot","genCancel","genConfirm","genToolbar","genColumns","wrapHeight","frameStyle","columnsStyle","maskStyle","backgroundSize","genColumnItems","_item$defaultIndex","PickerColumn","$scopedSlots","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","Cancel","CancelToken","isCancel","all","promises","spread","object","names","definePropertyModule","scroller","model","finished","errorText","loadingText","finishedText","immediateCheck","innerLoading","updated","scrollerRect","getBoundingClientRect","top","bottom","innerHeight","scrollerHeight","isReachEdge","placeholderRect","placeholder","clickErrorText","genLoading","genFinishedText","genErrorText","Placeholder","gen","mods","createBEM","camelizeRE","camelize","toUpperCase","SlotsMixin","$slots","scopedSlot","unifySlots","transformFunctionComponent","pure","sfc","createI18N","_len","_key","createNamespace","truncate","snipLine","line","colno","newLine","lineLength","end","safeJoin","input","delimiter","isMatchingPattern","pattern","States","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","reason","PENDING","RESOLVED","REJECTED","_state","_handlers","executor","__init","__init2","__init3","__init4","__init5","__init6","_resolve","_reject","onfulfilled","onrejected","_executeHandlers","then","onfinally","isRejected","_setResult","_value","cachedHandlers","condition","isError","isExtendedError","constructor","_name","View","routerView","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","matched","components","registerRouteInstance","instances","hook","prepatch","componentInstance","init","propsToPass","resolveProps","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","decode","decodeURIComponent","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parseQuery","param","stringifyQuery","val2","trailingSlashRE","createRoute","record","redirectedFrom","clone","meta","hash","fullPath","getFullPath","formatMatch","freeze","START","unshift","_stringifyQuery","isSameRoute","isObjectEqual","aKeys","bKeys","aVal","bVal","isIncludedRoute","queryIncludes","resolvePath","relative","base","append","firstChar","segments","segment","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","exec","m","escaped","capture","group","modifier","asterisk","partial","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encodeAsterisk","flags","opts","pretty","j","attachKeys","re","sensitive","regexpToRegexp","groups","arrayToRegexp","regexp","stringToRegexp","strict","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","noop","Link","exact","activeClass","exactActiveClass","ariaCurrentValue","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","$hasNormal","navigate","isActive","isExactActive","findAnchor","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","isDef","registerInstance","callVal","_parentVnode","_router","util","defineReactive","history","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","l","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","beforeEnter","childMatchAs","alias","aliases","aliasRoute","createMatcher","addRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","genStateKey","toFixed","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","absolutePath","stateCopy","replaceState","addEventListener","saveScrollPosition","handleScroll","from","isPop","app","behavior","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","pageXOffset","pageYOffset","getElementPosition","docEl","documentElement","docRect","elRect","left","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","selector","getElementById","querySelector","scrollTo","supportsPushState","ua","navigator","userAgent","pushState","runQueue","queue","cb","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","comp","flatten","hasSymbol","Symbol","toStringTag","__esModule","called","NavigationDuplicated","normalizedLocation","writable","__proto__","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","extractGuards","records","reverse","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","cbs","isValid","bindEnterGuard","poll","_isBeingDestroyed","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","abort","beforeHooks","iterator","postEnterCbs","enterGuards","resolveHooks","afterHooks","HTML5History","expectScroll","supportsScroll","initLocation","getLocation","go","fromRoute","getCurrentLocation","decodeURI","pathname","search","HashHistory","checkFallback","ensureSlash","setupListeners","getHash","replaceHash","pushHash","searchIndex","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","registerHook","createHref","$once","setupHashListener","beforeEach","beforeResolve","afterEach","back","forward","getMatchedComponents","normalizedTo","requireObjectCoercible","argument","Express","_methods","setupOnce","instrumentMiddlewares","logger","wrap","arity","req","__sentry_transaction","span_1","startChild","wrapMiddlewareArgs","arg","patchMiddleware","originalCallback","Postgres","_usePgNative","usePgNative","getCurrentHub","pkg","native","Client","orig","parentSpan","getSpan","rv","is","Mysql","sql","fields","OPERATIONS","OPERATION_SIGNATURES","bulkWrite","countDocuments","createIndex","createIndexes","deleteMany","deleteOne","distinct","dropIndex","find","findOne","findOneAndDelete","findOneAndReplace","findOneAndUpdate","indexExists","insertMany","insertOne","mapReduce","rename","replaceOne","updateMany","updateOne","Mongo","_operations","operations","_describeOperations","describeOperations","_useMongoose","useMongoose","moduleName","_instrumentOperations","Collection","collection","operation","_patchOperation","getSpanContext","_getSpanContextFromOperationArguments","lastArg","maybePromise","collectionName","dbName","signature","shouldDescribe","_oO","registerBackgroundTabDetection","activeTransaction","statusType","bindReporter","metric","reportAllChanges","prevValue","forceReport","delta","generateUniqueID","floor","initMetric","entries","observe","PerformanceObserver","supportedEntryTypes","po","getEntries","buffered","onHidden","onHiddenOrPageHide","visibilityState","removeEventListener","getCLS","onReport","report","sessionValue","sessionEntries","entryHandler","entry","hadRecentInput","firstSessionEntry","lastSessionEntry","startTime","takeRecords","firstHiddenTime","initHiddenTime","Infinity","trackChanges","timeStamp","getVisibilityWatcher","getFID","visibilityWatcher","processingStart","disconnect","reportedMetricIDs","getLCP","stopListening_1","MetricsInstrumentation","_reportAllChanges","_performanceCursor","mark","_trackCLS","_trackLCP","_trackFID","addPerformanceEntries","responseStartTimestamp","requestStartTimestamp","entryType","addNavigationSpans","responseStart","requestStart","addMeasureSpans","firstHidden","shouldRecord","resourceName","origin","addResourceSpans","_trackNavigator","timeOrigin_1","measurementTimestamp","normalizedValue","_startChild","cls","tagMetricInfo","_lcpEntry","_clsEntry","connection","effectiveType","isMeasurementValue","rtt","downlink","deviceMemory","hardwareConcurrency","addPerformanceNavigationTiming","addRequest","measureStartTimestamp","measureEndTimestamp","initiatorType","transferSize","encodedBodySize","decodedBodySize","eventEnd","responseEnd","isFinite","lcpEntry","clsEntry","sources","node","DEFAULT_TRACING_ORIGINS","defaultRequestInstrumentationOptions","traceFetch","traceXHR","tracingOrigins","instrumentOutgoingRequests","_options","shouldCreateSpanForRequest","urlMap","defaultShouldCreateSpan","origins","some","shouldCreateSpan","handlerData","fetchCallback","xhrCallback","fetchData","__span","setHttpStatus","Request","toTraceparent","xhr","__sentry_own_request__","__sentry_xhr__","__sentry_xhr_span_id__","status_code","setRequestHeader","instrumentRoutingWithDefaults","customStartTransaction","startTransactionOnPageLoad","startTransactionOnLocationChange","startingUrl","DEFAULT_MAX_TRANSACTION_DURATION_SECONDS","DEFAULT_BROWSER_TRACING_OPTIONS","idleTimeout","markBackgroundTransactions","maxTransactionDuration","routingInstrumentation","BrowserTracing","_emitOptionsWarning","_configuredIdleTimeout","_metricOptions","_metrics","_getCurrentHub","instrumentRouting","_createRouteTransaction","beforeNavigate","parentContextFromHeader","getHeaderContext","expandedContext","modifiedContext","finalContext","idleTransaction","adjustTransactionDuration","header","getMetaContent","metaName","maxDuration","diff","isOutdatedTransaction","IndexedObject","checked","setParentValue","toggle","toggleTask","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","anObject","SDK_VERSION","originalFunctionToString","__initStatic","DEFAULT_IGNORE_ERRORS","InboundFilters","addGlobalEventProcessor","eventProcess","getIntegration","clientOptions","getOptions","_mergeOptions","_shouldDropEvent","internalOptions","allowUrls","denyUrls","ignoreErrors","ignoreInternal","_isSentryError","__SENTRY_DEBUG__","_isIgnoredError","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","_getPossibleEventMessages","oO","_getLastValidUrl","frames","frame","filename","stacktrace","installedIntegrations","filterDuplicates","integrations","integrationsByName","currentInstance","existingInstance","isDefaultInstance","getIntegrationsToSetup","defaultIntegrations","userIntegrations","integration","finalIntegrations","debugIndex","findIndex","debugInstance","setupIntegrations","integrationIndex","initAndBind","clientClass","debug","enable","initialScope","bindClient","SentryError","logLevel","super","setPrototypeOf","DSN_REGEX","isValidProtocol","dsnToString","dsn","withPassword","pass","port","projectId","publicKey","dsnFromString","lastPath","projectMatch","dsnFromComponents","validateDsn","requiredComponents","makeDsn","SENTRY_API_VERSION","getBaseApiEndpoint","_getIngestEndpoint","_encodedAuth","sdkInfo","sentry_key","sentry_version","sentry_client","getEnvelopeEndpointWithUrlEncodedAuth","tunnelOrOptions","tunnel","_metadata","sdk","supportsFetch","Headers","Response","isNativeFetch","func","supportsNativeFetch","fetch","doc","sandbox","head","appendChild","contentWindow","supportsHistory","chrome","isChromePackagedApp","runtime","hasHistoryApi","instrumented","instrument","instrumentConsole","instrumentDOM","instrumentXHR","instrumentFetch","instrumentHistory","instrumentError","instrumentUnhandledRejection","addInstrumentationHandler","triggerHandlers","originalConsoleMethod","originalFetch","getFetchMethod","getFetchUrl","fetchArgs","xhrproto","originalOpen","xhrInfo","onreadystatechangeHandler","readyState","onreadystatechange","original","readyStateArgs","originalSend","lastHref","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","debounceDuration","debounceTimerID","lastCapturedEvent","shouldShortcircuitPreviousDebounce","previous","shouldSkipDOMEvent","tagName","isContentEditable","makeDOMEventHandler","globalListener","triggerDOMHandler","globalDOMEventHandler","proto","originalAddEventListener","listener","__sentry_instrumentation_handlers__","handlerForType","refCount","originalRemoveEventListener","_oldOnErrorHandler","onerror","_oldOnUnhandledRejectionHandler","onunhandledrejection","createEnvelope","items","addItemToEnvelope","envelope","newItem","forEachEnvelopeItem","envelopeItems","envelopeItem","envelopeItemType","encodeUTF8","textEncoder","utf8","TextEncoder","serializeEnvelope","envHeaders","itemHeaders","payload","stringifiedPayload","concatBuffers","buffers","totalLength","buf","merged","createAttachmentEnvelopeItem","attachment","content_type","contentType","attachment_type","attachmentType","ITEM_TYPE_TO_DATA_CATEGORY_MAP","session","sessions","client_report","user_report","envelopeItemTypeToDataCategory","getSdkMetadataForEnvelopeHeader","enhanceEventWithSdkInfo","packages","createSessionEnvelope","envelopeHeaders","sent_at","createEventEnvelope","eventType","createEventEnvelopeHeaders","eventItem","dynamicSamplingContext","ALREADY_SEEN_ERROR","_integrations","_integrationsInitialized","_numProcessing","_outcomes","_dsn","_transport","recordDroppedEvent","transportOptions","hint","_process","eventFromException","_captureEvent","promisedEvent","eventFromMessage","originalException","_isEnabled","release","sendSession","_isClientDoneProcessing","clientFinished","flush","transportFlushed","enabled","integrationId","attachments","_sendEnvelope","category","sendClientReports","crashed","errored","exceptions","ex","sessionNonTerminal","shouldUpdateAndSend","errors","captureSession","ticked","tick","interval","setInterval","clearInterval","normalizeDepth","normalizeMaxBreadth","prepared","_applyClientOptions","_applyIntegrationsMetadata","finalScope","captureContext","getAttachments","applyToEvent","evt","_normalizeEvent","maxBreadth","normalized","breadcrumbs","user","environment","dist","maxValueLength","integrationsArray","_processEvent","finalEvent","sentryError","beforeSend","sampleRate","isTransaction","_prepareEvent","isInternalException","__sentry__","beforeSendResult","_ensureBeforeSendRv","processedEvent","getSession","_updateSessionFromEvent","transactionInfo","transaction_info","changes","propagations","sendEvent","captureException","send","outcomes","quantity","nullErr","createClientReportEnvelope","discarded_events","clientReportItem","exceptionFromError","stackParser","parseStackFrames","extractMessage","eventFromPlainObject","syntheticException","isUnhandledRejection","__serialized__","eventFromError","popSize","getPopSize","reactMinifiedRegexp","framesToPop","attachStacktrace","eventFromUnknownInput","eventFromString","errorEvent","domException","objectException","synthetic","validSeverityLevels","severityLevelFromString","parseUrl","fragment","BREADCRUMB_INTEGRATION_ID","dom","sentry","_consoleBreadcrumb","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","_innerDomBreadcrumb","keyAttrs","serializeAttribute","addBreadcrumb","breadcrumb","parsedLoc","parsedFrom","parsedTo","globalObject","_flushOutcomes","breadcrumbIntegration","getIntegrationById","_clearOutcomes","isRealNavigator","hasSendBeacon","sendBeacon","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","before","__sentry_wrapped__","sentryWrapped","wrappedArguments","addEventProcessor","property","UNKNOWN_FUNCTION","CHROME_PRIORITY","WINJS_PRIORITY","GECKO_PRIORITY","createFrame","lineno","function","in_app","chromeRegex","chromeEvalRegex","isEval","subMatch","extractSafariExtensionDetails","chromeStackLineParser","geckoREgex","geckoEvalRegex","gecko","geckoStackLineParser","winjsRegex","winjs","winjsStackLineParser","defaultStackLineParsers","defaultStackParser","isSafariExtension","isSafariWebExtension","DEFAULT_EVENT_TARGET","eventTarget","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","xmlHttpRequestProps","wrapOptions","originalFunction","eventName","handleEvent","wrappedEventHandler","originalEventHandler","GlobalHandlers","_installFunc","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","stackTraceLimit","installFunc","globalHandlerLog","getHubAndOptions","_eventFromIncompleteOnError","_enhanceEventWithInitialFrame","addMechanismAndCapture","detail","_eventFromRejectionWithPrimitive","ERROR_TYPES_RE","ev","ev0","ev0s","ev0sf","DEFAULT_KEY","DEFAULT_LIMIT","_limit","limit","_handler","parser","linkedErrors","_walkErrorTree","eventProcessor","currentEvent","_previousEvent","previousEvent","_isSameMessageEvent","_isSameExceptionEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","previousException","_getExceptionFromEvent","currentException","currentFrames","_getFramesFromEvent","previousFrames","frameA","frameB","currentFingerprint","fingerprint","previousFingerprint","referrer","Referer","makePromiseBuffer","isReady","task","taskProducer","drain","counter","capturedSetTimeout","$","DEFAULT_RETRY_AFTER","parseRetryAfterHeader","headerDelay","headerDate","disabledUntil","limits","isRateLimited","updateRateLimits","statusCode","updatedRateLimits","rateLimitHeader","retryAfterHeader","retryAfter","categories","delay","DEFAULT_TRANSPORT_BUFFER_SIZE","createTransport","makeRequest","bufferSize","rateLimits","filteredEnvelopeItems","envelopeItemDataCategory","filteredEnvelope","recordEnvelopeLoss","requestTask","cachedFetchImpl","getNativeFetchImplementation","fetchImpl","makeFetchTransport","nativeFetch","requestOptions","referrerPolicy","keepalive","fetchOptions","XHR_READYSTATE_DONE","makeXHRTransport","getResponseHeader","open","FunctionToString","SENTRY_RELEASE","autoSessionTracking","startSessionTracking","startSessionOnHub","startSession","ignoreDuration","DEFAULT_HOOKS","classifyRE","classify","ROOT_COMPONENT_NAME","ANONYMOUS_COMPONENT_NAME","formatComponentName","includeFile","_componentTag","file","__file","generateComponentTrace","_isVue","_2","__isVue","_3","tree","currentRecursiveSequence","formattedTree","attachErrorHandler","errorHandler","warnHandler","lifecycleHook","componentName","attachProps","$props","withScope","setContext","logErrors","hasConsole","VUE_OP","HOOKS","activate","destroy","mount","getActiveTransaction","_4","_5","finishRootSpan","$_sentryRootSpanTimer","_6","_7","$_sentryRootSpan","createTracingMixins","hooks","internalHooks","internalHook","isRoot","shouldTrack","trackComponents","$_sentrySpans","_8","_9","time","DEFAULT_CONFIG","vueInit","tracingOptions","SpanRecorder","_maxlen","Span","traceId","substring","parentSpanId","childSpan","setData","httpStatus","spanStatus","spanStatusfromHttpCode","isSuccess","sampledString","_e","parent_span_id","span_id","trace_id","$reduce","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","forced","callbackfn","flattenVNodes","vnodes","traverse","$children","sortChildren","componentOptions","getElement","PortalMixin","_temp","afterPortal","portal","container","maxProperties","visit","normalizeToSize","maxSize","jsonSize","memo","memoize","unmemoize","stringified","stringifyValue","startsWith","valueWithToJSON","jsonValue","numAdded","visitable","visitKey","visitValue","_events","utf8Length","checkedColor","iconSize","supportsPassive","passive","off","stopPropagation","isStopPropagation","cancelable","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","FORCED","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","EXISTS","scrollLeftTo","scrollLeft","animate","scrollTopTo","isDown","callInterceptor","interceptor","returnVal","scrollable","activeColor","inactiveColor","isCard","borderColor","backgroundColor","titleColor","genText","Text","ellipsis","isBind","observer","onScroll","zIndex","offsetTop","fixed","offsetTopPx","isFixed","IntersectionObserver","intersectionRatio","offsetHeight","scrollTop","topToPageTop","emitScrollEvent","bottomToPageTop","distanceToBottom","MIN_SWIPE_DISTANCE","animated","swipeable","listeners","touchstart","touchmove","touchend","touchcancel","genChildren","resize","scrollspy","inject","vanPopup","sticky","background","lineWidth","lineHeight","beforeChange","titleActiveColor","titleInactiveColor","swipeThreshold","lineStyle","navStyle","currentName","activeTab","computedName","scrollOffset","tabHeight","setCurrentIndexByName","setLine","scrollIntoView","stickyFixed","ceil","onReopen","shouldAnimate","titles","offsetLeft","offsetWidth","borderRadius","tab","setCurrentIndex","newIndex","findAvailableTab","newTab","newName","shouldEmitChange","_this$children$index","scrollToCurrentContent","nav","onSticktScroll","_this6","_this7","getCurrentIndexOnScroll","_this8","Nav","_item$badge","Wrap","complete","Content","toggleAll","skipDisabled","fill","replacementFactory","wrapped","markFunctionWrapped","_Oo","addNonEnumerableProperty","getOriginalFunction","__sentry_original__","urlEncode","convertToPlainObject","getOwnProperties","newObj","serializeEventTarget","CustomEvent","extractedProps","extractExceptionKeysForMessage","maxLength","includedKeys","serialized","dropUndefinedKeys","inputValue","memoizationMap","Map","_dropUndefinedKeys","memoVal","returnValue","LoadingIcon","Spin","LoadingText","_props$textColor","textSize","textColor","Loading","lockCount","preventTouchMove","Overlay","customStyle","animationDuration","show","mountOverlay","updateOverlay","insertBefore","openOverlay","closeOverlay","removeOverlay","CloseOnPopstateMixin","handlePopstate","bindStatus","onPopstate","shouldReopen","$isServer","popupMixinProps","transitionAppear","PopupMixin","provide","onReopenCallback","skipToggleEvent","opened","removeLock","renderOverlay","addLock","classList","scrollHeight","updateZIndex","BORDER","BORDER_TOP","BORDER_LEFT","BORDER_SURROUND","BORDER_TOP_BOTTOM","BORDER_UNSET_TOP_BOTTOM","isWindow","overflowScrollReg","getScroller","nodeType","_window$getComputedSt","overflowY","getScrollTop","setScrollTop","scrollX","getRootScrollTop","setRootScrollTop","getElementTop","getVisibleHeight","getVisibleTop","rootFontSize","addUnit","getRootFontSize","parseFloat","convertRem","convertVw","innerWidth","convertVh","unitToPx","htmlTreeAsString","elem","currentElem","MAX_TRAVERSE_HEIGHT","MAX_OUTPUT_LEN","out","separator","sepLength","nextStr","_htmlElementAsString","attr","keyAttrPairs","keyAttr","keyAttrPair","allowedAttrs","src","ssrDocument","activeElement","blur","nodeName","querySelectorAll","createEvent","initEvent","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","hostname","getDocument","ssrWindow","getPropertyValue","Image","screen","matchMedia","getWindow","win","_inheritsLoose","subClass","superClass","_getPrototypeOf","o","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","Proxy","_construct","Parent","Class","Constructor","_isNativeFunction","_wrapNativeSuper","Wrapper","_assertThisInitialized","ReferenceError","makeReactive","Dom7","_Array","arrayFlat","arrayFilter","arrayUnique","uniqueArray","qsa","html","toCreate","tempParent","innerHTML","addClass","classNames","_el$classList","removeClass","_len2","_key2","_el$classList2","toggleClass","_len3","_key3","hasClass","_len4","_key4","attrName","removeAttr","removeAttribute","_len5","_key5","targetSelector","handleLiveEvent","eventData","dom7EventData","_parents","parents","k","events","_event","dom7LiveListeners","proxyListener","dom7Listeners","_len6","_key6","dom7proxy","_len9","_key9","bubbles","dataIndex","dispatchEvent","transitionEnd","fireCallBack","includeMargins","_styles","styles","_styles2","box","clientTop","clientLeft","scrollY","css","_prop","each","compareWith","webkitMatchesSelector","msMatchesSelector","previousSibling","eq","returnIndex","newChild","tempDiv","firstChild","prepend","nextElementSibling","nextAll","nextEls","_next","previousElementSibling","prevAll","prevEls","_prev","_parent","closest","foundElements","found","noTrigger","shortcut","eventHandler","Methods","outerWidth","outerHeight","methodName","deleteProps","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","nextSource","keysArray","nextIndex","nextKey","desc","bindModuleMethods","subKey","calcSupport","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","passiveListener","gestures","getSupport","calcDevice","support","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","calcBrowser","isSafari","isEdge","isWebView","getBrowser","swiper","resizeHandler","initialized","orientationChangeHandler","Observer","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","$wrapperEl","useParams","instanceParams","modules","useModules","modulesParams","moduleParams","moduleEventName","priority","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventsArray","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","updateSlides","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","slidesForMargin","slideEl","slideIndex","cssMode","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","slidesPerView","slidesPerColumnFill","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","row","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","_slide$","paddingTop","paddingBottom","_boxSizing","_slide$2","swiperSlideSize","centeredSlides","slidesPerGroupSkip","effect","setWrapperSize","slidesGridItem","_i2","_slidesGridItem","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","setTransition","visibleSlides","activeIndex","swiperSlideOffset","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","isVisible","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","wrapperEl","z","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","_wrapperEl$scrollTo","isH","onTranslateToWrapperTransitionEnd","transitionStart","slideTo","indexAsNumber","isValidNumber","initialSlide","allowSlideNext","allowSlidePrev","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","loopedSlides","slideNext","increment","loopPreventsSlide","loopFix","_clientLeft","slidePrev","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","currentSnap","nextSnap","_currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","slideChanged","_slideChanged","loopDestroy","setGrabCursor","simulateTouch","isLocked","unsetGrabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","touchEventsData","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","isTouched","isMoved","swipingClassHasValue","noSwipingClass","shadowRoot","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","swipeDirection","allowThresholdMove","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","pow","touchAngle","atan2","PI","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","velocityEvent","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","autoplay","running","paused","run","preventClicks","preventClicksPropagation","stopImmediatePropagation","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","move","passiveListeners","updateOnWindowResize","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","containerModifierClass","emitContainerClasses","directionChanged","needsReLoop","changeDirection","getBreakpoints","points","point","minRatio","_points$i","addClasses","suffixes","suffix","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","isPicture","onload","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","wasLocked","lastSlidePosition","uniqueNavElements","wrapperClass","_emitClasses","_defineProperties","_createClass","protoProps","staticProps","prototypes","modular","eventsEmitter","manipulation","images","extendedDefaults","Swiper","moduleParamName","swiperParams","passedParams","swipers","containerEl","newParams","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","getSlideClasses","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","prototypeGroup","protoMethod","emptyObject","isUndef","isTrue","isFalse","isPrimitive","_toString","isRegExp","isValidArrayIndex","isPromise","toNumber","makeMap","expectsLowerCase","isReservedAttribute","cached","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","_length","nativeBind","toArray","_from","toObject","no","identity","getTime","looseIndexOf","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","productionTip","devtools","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","bailRE","_isServer","hasProto","inWeex","WXEnvironment","weexPlatform","UA","isIE","isIE9","isIOS","isFF","nativeWatch","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","ownKeys","Set","clear","Dep","subs","addSub","removeSub","depend","addDep","notify","targetStack","pushTarget","popTarget","VNode","elm","asyncFactory","ns","fnContext","fnOptions","fnScopeId","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","createTextVNode","cloneVNode","cloned","arrayProto","arrayMethods","methodsToPatch","inserted","ob","__ob__","observeArray","dep","arrayKeys","shouldObserve","toggleObserving","vmCount","protoAugment","copyAugment","walk","asRootData","isExtensible","defineReactive$$1","customSetter","shallow","getter","setter","childOb","dependArray","newVal","del","mergeData","toVal","fromVal","mergeDataOrFn","instanceData","defaultData","mergeHook","dedupeHooks","mergeAssets","key$1","defaultStrat","normalizeProps","normalizeInject","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","extends","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","_props","getType","isSameType","expectedTypes","handleError","cur","errorCaptured","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","flushCallbacks","copies","setImmediate","textNode","createTextNode","seenObjects","_traverse","seen","isA","isFrozen","depId","normalizeEvent","once$$1","createFnInvoker","invoker","updateListeners","oldOn","remove$$1","createOnceHandler","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","extractPropsFromVNodeData","checkProp","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","lastIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","renderSlot","bindObject","nodes","scopedSlotFn","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","staticRenderFns","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","existing","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_s","_l","_q","_m","_f","_k","_v","_u","_g","_p","FunctionalRenderContext","contextVm","_original","isCompiled","_compiled","needNormalization","injections","_scopeId","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","componentVNodeHooks","hydrating","_isDestroyed","mountedNode","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","insert","_isMounted","callHook","queueActivatedComponent","activateChildComponent","deactivateChildComponent","hooksToMerge","baseCtor","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","force","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","ensureCtor","factory","errorComp","owner","owners","loadingComp","timerLoading","timerTimeout","forceRender","renderCompleted","getFirstComponentChild","initEvents","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","oldListeners","eventsMixin","hookRE","i$1","setActiveInstance","prevActiveInstance","initLifecycle","_watcher","lifecycleMixin","_update","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","_data","mountComponent","updateComponent","Watcher","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","propKeys","_propKeys","isInInactiveTree","direct","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueWatcher","uid$2","expOrFn","isRenderWatcher","lazy","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","tmp","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","stateMixin","dataDef","propsDef","$delete","uid$3","initMixin","_init","_uid","initInternalComponent","_self","vnodeComponentOptions","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","modified","latest","sealed","sealedOptions","initUse","plugin","installedPlugins","_installedPlugins","initMixin$1","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","patternTypes","KeepAlive","include","exclude","builtInComponents","initGlobalAPI","configDef","delete","observable","ssrContext","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","childNode","mergeClassData","renderClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","createElement$1","createComment","newNode","referenceNode","nextSibling","setTextContent","setStyleScope","scopeId","nodeOps","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","emptyNodeAt","createRmCb","childElm","createElm","insertedVnodeQueue","parentElm","refElm","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","updateClass","oldData","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","change","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","ownerDocument","updateDOMListeners","svgContainer","updateDOMProps","oldProps","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","_vOptions","setSelected","onCompositionStart","onCompositionEnd","prevOptions","curOptions","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","selectedIndex","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","kept","prevChildren","rawChildren","transitionData","removed","c$1","pos","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","WebkitTransform","_moveCb","propertyName","_hasMove","newPos","oldPos","dx","dy","platformComponents","METHOD_NAME","ignoreDuplicateOf","parsed","traceHeaders","sample","samplingContext","transactionSampling","tracesSampler","rate","parentSampled","tracesSampleRate","isValidSampleRate","_startTransaction","customSamplingContext","_experiments","maxSpans","startIdleTransaction","onScope","_addTracingExtensions","carrier","__SENTRY__","extensions","startTransaction","_autoloadDatabaseIntegrations","packageToIntegrationMapping","mongodb","mongoose","mysql","pg","mappedPackages","addExtensionMethods","isAbsoluteURL","combineURLs","requestedURL","store","functionToString","assignKey","deepAssign","tel","save","telEmpty","nameEmpty","nameInvalid","confirmDelete","telInvalid","vanCalendar","startEnd","weekdays","monthTitle","year","month","rangePrompt","maxRange","vanCascader","select","vanContactCard","addText","vanContactList","vanPagination","vanPullRefresh","pulling","loosing","vanSubmitBar","vanCoupon","unlimited","discount","_discount","_condition","vanCouponCell","tips","_count","vanCouponList","empty","exchange","vanAddressEdit","area","postal","areaEmpty","addressEmpty","postalEmpty","defaultAddress","telPlaceholder","namePlaceholder","areaPlaceholder","vanAddressEditDetail","vanAddressList","$vantMessages","$vantLang","lang","_this$add","resolvePromise","throwIfRequested","paramsSerializer","serializedParams","isDate","hashmarkIndex","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","objectToString","wat","isInstanceOf","isBuiltin","isErrorEvent","isDOMError","isDOMException","isEvent","Event","isElement","Element","isThenable","isSyntheticEvent","originalConsoleLevel","handlers_1","handlers_2","makeSession","startingTime","sid","started","sessionToJSON","updateSession","ipAddress","ip_address","did","email","username","closeSession","user_agent","__CANCEL__","originalModule","webpackPolyfill","FieldMixin","vanField","field","resetValidation","validateWithTrigger","vueRouterInstrumentation","isPageLoadNavigation","transactionName","transactionSource","isSoda","openPage","Soda","Fusion","loadModule","openNativeWebPage","openNewPage","newWindow","closePage","setTitle","navi_title","FINISH_REASON_TAG","IDLE_TRANSACTION_FINISH_REASONS","_this$name","slotContent","memoBuilder","hasWeakSet","WeakSet","inner","bitmap","getOwnPropertyDescriptorModule","resultType","reader","FileReader","readAsDataURL","readAsText","isOversize","files","IMAGE_REGEXP","isImageUrl","isImageFile","content","fit","alt","radius","lazyLoad","showError","showLoading","errorIcon","loadingIcon","overflow","$Lazyload","onLazyLoaded","onLazyLoadError","onLoad","_ref2","genPlaceholder","genImage","imgData","objectFit","getDistance","minZoom","maxZoom","rootWidth","rootHeight","scale","moveX","moveY","zooming","imageRatio","displayWidth","displayHeight","rootRatio","imageStyle","maxMoveX","maxMoveY","resetScale","setScale","toggleScale","_this$offsetX","fingerNum","startMoveX","startMoveY","startScale","startDistance","checkTap","_this$offsetX2","_this$offsetY","deltaTime","TAP_TIME","TAP_OFFSET","doubleTapTimer","_event$target","naturalWidth","naturalHeight","imageSlots","closeable","asyncClose","showIndicators","showIndex","startPosition","closeIcon","closeIconPosition","doubleClickTimer","setActive","swipe","swipeTo","rect","emitClose","emitScale","genIndex","genCover","cover","genImages","ImagePreviewItem","genClose","onScale","uploadText","afterRead","beforeRead","beforeDelete","previewSize","previewOptions","accept","fileList","MAX_VALUE","maxCount","deletable","showUpload","previewImage","previewFullImage","imageFit","uploadIcon","previewSizeWithUnit","urls","URL","revokeObjectURL","getDetail","resetInput","readFile","oversize","contents","onAfterRead","validFiles","oversizeFiles","isValidFiles","onDelete","_file$beforeDelete","deleteFile","onClickUpload","onPreviewImage","imageFiles","imageContents","createObjectURL","imagePreview","closeImagePreview","chooseFile","genPreviewMask","MaskIcon","showMessage","genPreviewItem","_item$deletable","_item$previewSize","_item$imageFit","deleteAble","showDelete","DeleteIcon","PreviewCoverContent","PreviewCover","Preview","genPreviewList","genUpload","Input","enhanceError","FormData","ArrayBuffer","isView","pipe","URLSearchParams","isStandardBrowserEnv","product","assignValue","thisArg","stripBOM","normalizeArray","allowAboveRoot","up","basename","matchedSlash","xs","resolvedAbsolute","isAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","sep","dirname","hasRoot","ext","extname","startDot","startPart","preDotState","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","password","unescape","Authorization","btoa","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onabort","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","onDownloadProgress","onUploadProgress","upload","cancelToken","supportTouch","createTouch","view","identifier","screenX","screenY","Touch","createTouchList","touchList","TouchList","parentElement","initiated","TouchEmulator","onMouse","touchType","triggerTouch","mouseEv","touchEvent","getActiveTouches","currentValue","SHARED","fieldNames","showHeader","tabs","textKey","_this$fieldNames","_this$fieldNames2","childrenKey","_this$fieldNames3","_tab$selectedOption","selectedOption","updateTabs","getSelectedOptionsByValue","selectedOptions","optionsCursor","onSelect","tabIndex","nextTab","eventParams","renderHeader","renderOptions","renderOption","isSelected","renderTab","unselected","renderTabs","$$v","write","expires","domain","secure","cookie","toGMTString","NATIVE_WEAK_MAP","objectHas","sharedKey","getterFor","TYPE","wmget","wmhas","wmset","STATE","PREFIX","consoleSandbox","levels","originalConsole","wrappedLevels","Logger","_enabled","disable","createEmitter","onClickCloseIcon","isCenter","transitionName","postfix","thrower","ACCESSORS","argument0","argument1","extendStatics","__extends","__","__assign","__rest","__values","__read","ar","__spread","ChildrenMixin","_inject","_computed","indexKey","disableBindRelation","bindRelation","ParentMixin","resetScroll","vanForm","rules","autosize","leftIcon","rightIcon","clearable","maxlength","labelWidth","labelAlign","inputAlign","errorMessage","errorMessageAlign","showWordLimit","colon","clearTrigger","formatTrigger","focused","validateFailed","validateMessage","updateValue","adjustSize","addField","removeField","showClear","getProp","hasValue","onBlur","onFocus","onInput","onClickInput","keypress","onKeypress","labelStyle","formValue","runValidator","rule","validator","isEmptyValue","runSyncRule","getRuleMessage","runRules","validate","defaultTrigger","validateTrigger","onClickLeftIcon","onClickRightIcon","onClear","ENTER_CODE","keyCode","submitOnEnter","_this$autosize","maxHeight","minHeight","genInput","inputSlot","inputProps","inputMode","inputType","genLeftIcon","showLeftIcon","genRightIcon","showRightIcon","genWordLimit","genMessage","showErrorMessage","genLabel","IS_PURE","copyright","scrollToError","validateFirst","getFieldsByNames","validateSeq","validateFields","validateField","scrollToField","form","onSubmit","submit","isServer","_result$key","TRACEPARENT_REGEXP","hasTracingEnabled","maybeOptions","extractTraceparentData","traceparent","maybeHub","msToSec","secToMs","deprecate","classof","originURL","msie","urlParsingNode","resolveURL","requestURL","inheritKey","mapInheritKey","inherit","inheritListeners","defaultFunctionName","getFunctionName","normalizeComponent","scriptExports","functionalTemplate","injectStyles","moduleIdentifier","shadowMode","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","_injectStyles","originalRender","onVisibilityChange","initialize","indicatorColor","touchable","initialSwipe","swiping","computedWidth","computedHeight","_autoplay","autoPlay","minOffset","trackSize","isCorrectDirection","trackStyle","mainAxis","crossAxis","indicatorStyle","track","timer","getTargetOffset","correctPosition","shouldSwipe","pace","getTargetActive","targetActive","currentPosition","targetOffset","_ref$pace","_ref$offset","outRightBound","outLeftBound","genIndicator","nativeDefineProperty","Attributes","hasContent","renderContent","renderBadge","STACKTRACE_LIMIT","createStackParser","parsers","sortedParsers","skipFirst","cleanedLine","stripSentryFramesAndReverse","stackParserFromStackParserOptions","localStack","firstFrameFunction","lastFrameFunction","isGlobalObj","getGlobalSingleton","creator","singleton","Button","plain","hairline","iconPosition","onTouchstart","square","renderIcon","loadingSize","loadingType","nativeType","CONSOLE_LEVELS","originalWrappedFunc","makeLogger","_typeof","_defineProperty","_isDev","_require","loadScript","_info","_langs","_lang","i18nInit","i18nReady","script","i18nGet","langText","langType","i18nArabicRTL","i18nPluginH5DiffCopywriter","langDiff","keyStr","keyArr","noParse","i18nLoading","errCallback","retryCount","i18nPluginH5DiffCopywriterLoaded","loadTime","i18nStart","langs","failedLangs","i18nSetLang","i18nTranslate","isNodeEnv","dynamicRequire","mod","require","ActionSheet","cancelText","onCancel","Header","Option","onClickOption","closeOnClickAction","OptionContent","subname","CancelText","Description","lockClick","lock","forbidClick","closeOnClick","toggleClickable","onAfterEnter","onAfterLeave","genIcon","hasIcon","mask","defaultOptionsMap","parseOptions","toast","transformOptions","allowMultiple","$toast","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","IS_RIGHT","that","argumentsLength","right","isDebugBuild","__SENTRY_NO_DEBUG__","VERSION","LARGE_ARRAY_SIZE","CORE_ERROR_TEXT","FUNC_ERROR_TEXT","INVALID_TEMPL_VAR_ERROR_TEXT","HASH_UNDEFINED","MAX_MEMOIZE_SIZE","PLACEHOLDER","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","WRAP_BIND_FLAG","WRAP_BIND_KEY_FLAG","WRAP_CURRY_BOUND_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","HOT_COUNT","HOT_SPAN","LAZY_FILTER_FLAG","LAZY_MAP_FLAG","LAZY_WHILE_FLAG","INFINITY","MAX_SAFE_INTEGER","MAX_INTEGER","NAN","MAX_ARRAY_LENGTH","MAX_ARRAY_INDEX","HALF_MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","asyncTag","boolTag","dateTag","domExcTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","promiseTag","proxyTag","regexpTag","stringTag","symbolTag","undefinedTag","weakMapTag","weakSetTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","deburredLetters","htmlEscapes","htmlUnescapes","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","types","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","isMap","nodeIsRegExp","nodeIsSet","isSet","nodeIsTypedArray","isTypedArray","arrayAggregator","array","iteratee","accumulator","arrayEach","arrayEachRight","arrayEvery","predicate","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","asciiToArray","asciiWords","baseFindKey","eachFunc","baseFindIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseSortBy","comparer","baseTimes","baseToPairs","baseTrim","trimmedEndIndex","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","deburrLetter","escapeHtmlChar","escapeStringChar","chr","hasUnicode","hasUnicodeWord","iteratorToArray","mapToArray","overArg","replaceHolders","setToArray","setToPairs","strictLastIndexOf","stringSize","unicodeSize","stringToArray","unicodeToArray","unescapeHtmlChar","unicodeWords","runInContext","pick","funcProto","objectProto","coreJsData","funcToString","idCounter","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","oldDash","reIsNative","Buffer","allocUnsafe","getPrototype","objectCreate","spreadableSymbol","isConcatSpreadable","symIterator","symToStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","DataView","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","symbolToString","lodash","isObjectLike","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","lazyClone","copyArray","lazyReverse","lazyValue","isArr","isRight","arrLength","getView","iteratees","iterLength","takeCount","baseWrapperValue","outer","iterIndex","Hash","hashClear","__data__","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","SetCache","setCacheAdd","setCacheHas","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","assignMergeValue","baseAssignValue","objValue","baseAggregator","baseEach","baseAssign","copyObject","baseAssignIn","keysIn","baseAt","lower","upper","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","getTag","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","copySymbols","initCloneByTag","stacked","subValue","keysFunc","getAllKeysIn","getAllKeys","baseConforms","baseConformsTo","baseDelay","wait","baseDifference","isCommon","valuesLength","valuesIndex","templateSettings","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFill","baseFilter","baseFlatten","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","symbolsFunc","baseGetTag","getRawTag","baseGt","other","baseHas","baseHasIn","baseInRange","baseIntersection","arrays","othLength","othIndex","caches","baseInverter","baseInvoke","baseIsArguments","baseIsArrayBuffer","baseIsDate","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsMap","baseIsMatch","matchData","noCustomizer","srcValue","baseIsNative","isMasked","baseIsRegExp","baseIsSet","baseIsTypedArray","isLength","baseIteratee","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","baseMergeDeep","newValue","safeGet","mergeFunc","isTyped","isArrayLikeObject","cloneTypedArray","toPlainObject","baseNth","baseOrderBy","orders","getIteratee","criteria","compareMultiple","basePick","basePickBy","baseSet","basePropertyDeep","basePullAll","basePullAt","baseUnset","baseRange","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","low","high","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","copy","cloneArrayBuffer","arrayBuffer","byteLength","cloneDataView","dataView","byteOffset","cloneRegExp","cloneSymbol","typedArray","compareAscending","valIsDefined","valIsReflexive","objCriteria","othCriteria","ordersLength","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","getSymbols","getSymbolsIn","createAggregator","initializer","createAssigner","assigner","isIterateeCall","iterable","createBind","createCtor","createCaseFirst","trailing","createCompounder","words","deburr","thisBinding","createCurry","getHolder","createRecurry","createHybrid","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","getFuncName","funcName","isLaziable","plant","partialsRight","holdersRight","argPos","ary","isAry","isBindKey","isFlip","holdersCount","newHolders","reorder","createInverter","toIteratee","createMathOperation","operator","defaultValue","createOver","arrayFunc","createPadding","chars","charsLength","createPartial","createRange","toFinite","createRelationalOperation","wrapFunc","isCurry","newHoldersRight","newPartials","newPartialsRight","newData","setWrapToString","createRound","precision","pair","createToPairs","createWrap","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","isPartial","arrStacked","othStacked","arrValue","othValue","compared","convert","objProps","objLength","othProps","objStacked","skipCtor","objCtor","othCtor","otherFunc","isKeyable","isOwn","unmasked","stubArray","transforms","getWrapDetails","hasPath","hasFunc","insertWrapDetails","details","ctorString","isMaskable","stubFalse","memoizeCapped","srcBitmask","newBitmask","isCombo","otherArgs","oldArray","shortOut","reference","updateWrapDetails","lastCalled","stamp","remaining","rand","quote","subString","chunk","compact","difference","differenceBy","differenceWith","drop","dropRight","dropRightWhile","dropWhile","findLastIndex","flattenDeep","flattenDepth","fromPairs","intersection","mapped","intersectionBy","intersectionWith","lastIndexOf","nth","pull","pullAll","pullAllBy","pullAllWith","pullAt","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sortedUniq","sortedUniqBy","tail","take","takeRight","takeRightWhile","takeWhile","union","unionBy","unionWith","uniq","uniqBy","uniqWith","unzip","unzipWith","without","xor","xorBy","xorWith","zip","zipObject","zipObjectDeep","zipWith","tap","wrapperAt","wrapperChain","wrapperCommit","wrapperNext","wrapperToIterator","wrapperPlant","wrapperReverse","wrapperValue","countBy","findLast","flatMap","flatMapDeep","flatMapDepth","forEachRight","groupBy","invokeMap","keyBy","orderBy","partition","reduceRight","negate","sampleSize","shuffle","sortBy","after","bindKey","curry","curryRight","debounce","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","debounced","isInvoking","defer","flip","resolver","memoized","Cache","overArgs","funcsLength","partialRight","rearg","rest","throttle","unary","castArray","cloneWith","cloneDeep","cloneDeepWith","conformsTo","gt","gte","isEmpty","isEqual","isEqualWith","isInteger","isMatch","isMatchWith","isNil","isSafeInteger","isWeakMap","isWeakSet","lt","lte","sign","remainder","isBinary","toSafeInteger","assignIn","assignInWith","assignWith","at","properties","propsIndex","propsLength","defaultsDeep","mergeWith","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","functions","functionsIn","invert","invertBy","invoke","mapKeys","mapValues","omit","omitBy","pickBy","setWith","toPairs","toPairsIn","isArrLike","unset","updateWith","valuesIn","clamp","inRange","floating","temp","camelCase","word","upperFirst","endsWith","escape","escapeRegExp","kebabCase","lowerCase","lowerFirst","strLength","padEnd","padStart","radix","snakeCase","startCase","template","settings","isEscaping","isEvaluating","imports","importsKeys","importsValues","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","attempt","toLower","toUpper","trimStart","omission","newEnd","upperCase","bindAll","methodNames","cond","conforms","defaultTo","flow","flowRight","matchesProperty","methodOf","noConflict","nthArg","over","overEvery","overSome","propertyOf","rangeRight","stubObject","stubString","stubTrue","times","toPath","uniqueId","augend","addend","divide","dividend","divisor","maxBy","mean","meanBy","minBy","multiply","multiplicand","subtract","minuend","subtrahend","sum","sumBy","entriesIn","extendWith","eachRight","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","commit","CheckboxMixin","labelPosition","labelDisabled","shape","bindGroup","isDisabled","iconStyle","iconClicked","Children","transformData","throwIfCancellationRequested","ty","setUser","CellGroup","Group","inset","Info","showInfo","API_VERSION","DEFAULT_BREADCRUMBS","Hub","_stack","_version","getStackTop","getStack","pushScope","popScope","_lastEventId","_withClient","captureMessage","beforeBreadcrumb","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","setTags","extras","setExtras","setExtra","oldHub","makeMain","_callExtensionMethod","endSession","_sendSessionUpdate","layer","setSession","getUser","currentSession","sendDefaultPii","getMainCarrier","registry","getHubFromCarrier","setHubOnCarrier","hasHubOnCarrier","isOlderThan","getHubFromActiveDomain","activeDomain","registryHubTopStack","shared","finally","MAX_BREADCRUMBS","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","newScope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","setLevel","setTransactionName","setTransaction","updatedScope","maxCrumbs","clearBreadcrumbs","_applyFingerprint","_notifyEventProcessors","getGlobalEventProcessors","setSDKProcessingMetadata","processors","processor","final","globalEventProcessors","Session","finalHint","_invokeClient","lastEventId","startSpan","getLocationHref","PREFERRED_STRING","wider","large","isExtra","isDelete","CollapseIcon","hideOnClickOutside","randomKeyOrder","closeButtonText","deleteButtonText","closeButtonLoading","extraKey","showDeleteKey","genCustomKeys","genDefaultKeys","genBasicKeys","extraKeys","onAnimationEnd","onPress","titleLeft","showClose","genKeys","Key","genSidebar","DEFAULT_MAX_BREADCRUMBS","_attachments","dispatchRequest","interceptors","getUri","registerErrorInstrumentation","errorCallback","status_1","timestampWithMs","browserPerformanceTimeOrigin"],"mappings":"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","file":"js/chunk-vendors.768c83f0.js","sourcesContent":["import { getGlobalObject } from './global.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n var global = getGlobalObject() ;\n var crypto = (global.crypto || global.msCrypto) ;\n\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n\n var getRandomByte =\n crypto && crypto.getRandomValues ? () => crypto.getRandomValues(new Uint8Array(1))[0] : () => Math.random() * 16;\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\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 */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n var firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n var exception = (event.exception = event.exception || {});\n var values = (exception.values = exception.values || []);\n var firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n var firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n var defaultMechanism = { type: 'generic', handled: true };\n var currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n var mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction 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}\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 */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","export function removeNode(el) {\n var parent = el.parentNode;\n\n if (parent) {\n parent.removeChild(el);\n }\n}","import { __assign } from \"tslib\";\nimport { getGlobalObject } from './global';\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\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 }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\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 */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\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}\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event) {\n var message = event.message, eventId = event.event_id;\n if (message) {\n return message;\n }\n var firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return firstException.type + \": \" + firstException.value;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event, value, type) {\n var exception = (event.exception = event.exception || {});\n var values = (exception.values = exception.values || []);\n var firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event, newMechanism) {\n var firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n var defaultMechanism = { type: 'generic', handled: true };\n var currentMechanism = firstException.mechanism;\n firstException.mechanism = __assign(__assign(__assign({}, defaultMechanism), currentMechanism), newMechanism);\n if (newMechanism && 'data' in newMechanism) {\n var mergedData = __assign(__assign({}, (currentMechanism && currentMechanism.data)), newMechanism.data);\n firstException.mechanism.data = mergedData;\n }\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\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 */\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 * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\nexport function parseRetryAfterHeader(now, header) {\n if (!header) {\n return defaultRetryAfter;\n }\n var headerDelay = parseInt(\"\" + header, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n var headerDate = Date.parse(\"\" + header);\n if (!isNaN(headerDate)) {\n return headerDate - now;\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 */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\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\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\n}\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && exception.__sentry_captured__) {\n return true;\n }\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception, '__sentry_captured__', true);\n }\n catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n return false;\n}\n//# sourceMappingURL=misc.js.map","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","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\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","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","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","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","\"use strict\";function _extends(){return _extends=Object.assign?Object.assign.bind():function(a){for(var b,c=1;c (value ).call(lastAccessLHS, ...args));\n lastAccessLHS = undefined;\n }\n }\n return value;\n}\n\n// Sucrase version\n// function _optionalChain(ops) {\n// let lastAccessLHS = undefined;\n// let value = ops[0];\n// let i = 1;\n// while (i < ops.length) {\n// var op = ops[i];\n// var fn = ops[i + 1];\n// i += 2;\n// if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n// return undefined;\n// }\n// if (op === 'access' || op === 'optionalAccess') {\n// lastAccessLHS = value;\n// value = fn(value);\n// } else if (op === 'call' || op === 'optionalCall') {\n// value = fn((...args) => value.call(lastAccessLHS, ...args));\n// lastAccessLHS = undefined;\n// }\n// }\n// return value;\n// }\n\nexport { _optionalChain };\n//# sourceMappingURL=_optionalChain.js.map\n","/*!\n * vue-i18n v8.22.3 \n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'compactDisplay',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'localeMatcher',\n 'notation',\n 'numberingSystem',\n 'signDisplay',\n 'style',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits'\n];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction isFunction (val) {\n return typeof val === 'function'\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\nfunction includes (arr, item) {\n return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\n\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = isArray(a);\n var isArrayB = isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Sanitizes html special characters from input strings. For mitigating risk of XSS attacks.\n * @param rawText The raw input from the user that should be escaped.\n */\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\n/**\n * Escapes html tags and special symbols from all provided params which were returned from parseArgs().params.\n * This method performs an in-place operation on the params object.\n *\n * @param {any} params Parameters as provided from `parseArgs().params`.\n * May be either an array of strings or a string->any map.\n *\n * @returns The manipulated `params` object.\n */\nfunction escapeParams(params) {\n if(params != null) {\n Object.keys(params).forEach(function (key) {\n if(typeof(params[key]) == 'string') {\n params[key] = escapeHtml(params[key]);\n }\n });\n }\n return params\n}\n\n/* */\n\nfunction extend (Vue) {\n if (!Vue.prototype.hasOwnProperty('$i18n')) {\n // $FlowFixMe\n Object.defineProperty(Vue.prototype, '$i18n', {\n get: function get () { return this._i18n }\n });\n }\n\n Vue.prototype.$t = function (key) {\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n var i18n = this.$i18n;\n return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n };\n\n Vue.prototype.$tc = function (key, choice) {\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n var i18n = this.$i18n;\n return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n };\n\n Vue.prototype.$te = function (key, locale) {\n var i18n = this.$i18n;\n return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n };\n\n Vue.prototype.$d = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n };\n\n Vue.prototype.$n = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n };\n}\n\n/* */\n\nvar mixin = {\n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n options.__i18n.forEach(function (resource) {\n localeMessages = merge(localeMessages, JSON.parse(resource));\n });\n Object.keys(localeMessages).forEach(function (locale) {\n options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n this._i18n = options.i18n;\n this._i18nWatcher = this._i18n.watchI18nData();\n } else if (isPlainObject(options.i18n)) {\n var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n ? this.$root.$i18n\n : null;\n // component local i18n\n if (rootI18n) {\n options.i18n.root = this.$root;\n options.i18n.formatter = rootI18n.formatter;\n options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n }\n\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages$1 = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n options.__i18n.forEach(function (resource) {\n localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n });\n options.i18n.messages = localeMessages$1;\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n\n var ref = options.i18n;\n var sharedMessages = ref.sharedMessages;\n if (sharedMessages && isPlainObject(sharedMessages)) {\n options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n }\n\n this._i18n = new VueI18n(options.i18n);\n this._i18nWatcher = this._i18n.watchI18nData();\n\n if (options.i18n.sync === undefined || !!options.i18n.sync) {\n this._localeWatcher = this.$i18n.watchLocale();\n }\n\n if (rootI18n) {\n rootI18n.onComponentInstanceCreated(this._i18n);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n // root i18n\n this._i18n = this.$root.$i18n;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n // parent i18n\n this._i18n = options.parent.$i18n;\n }\n },\n\n beforeMount: function beforeMount () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (isPlainObject(options.i18n)) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n }\n },\n\n beforeDestroy: function beforeDestroy () {\n if (!this._i18n) { return }\n\n var self = this;\n this.$nextTick(function () {\n if (self._subscribing) {\n self._i18n.unsubscribeDataChanging(self);\n delete self._subscribing;\n }\n\n if (self._i18nWatcher) {\n self._i18nWatcher();\n self._i18n.destroyVM();\n delete self._i18nWatcher;\n }\n\n if (self._localeWatcher) {\n self._localeWatcher();\n delete self._localeWatcher;\n }\n });\n }\n};\n\n/* */\n\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n path: {\n type: String,\n required: true\n },\n locale: {\n type: String\n },\n places: {\n type: [Array, Object]\n }\n },\n render: function render (h, ref) {\n var data = ref.data;\n var parent = ref.parent;\n var props = ref.props;\n var slots = ref.slots;\n\n var $i18n = parent.$i18n;\n if (!$i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return\n }\n\n var path = props.path;\n var locale = props.locale;\n var places = props.places;\n var params = slots();\n var children = $i18n.i(\n path,\n locale,\n onlyHasDefaultPlace(params) || places\n ? useLegacyPlaces(params.default, places)\n : params\n );\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag ? h(tag, data, children) : children\n }\n};\n\nfunction onlyHasDefaultPlace (params) {\n var prop;\n for (prop in params) {\n if (prop !== 'default') { return false }\n }\n return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n var params = places ? createParamsFromPlaces(places) : {};\n\n if (!children) { return params }\n\n // Filter empty text nodes\n children = children.filter(function (child) {\n return child.tag || child.text.trim() !== ''\n });\n\n var everyPlace = children.every(vnodeHasPlaceAttribute);\n if (process.env.NODE_ENV !== 'production' && everyPlace) {\n warn('`place` attribute is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return children.reduce(\n everyPlace ? assignChildPlace : assignChildIndex,\n params\n )\n}\n\nfunction createParamsFromPlaces (places) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`places` prop is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return Array.isArray(places)\n ? places.reduce(assignChildIndex, {})\n : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n if (child.data && child.data.attrs && child.data.attrs.place) {\n params[child.data.attrs.place] = child;\n }\n return params\n}\n\nfunction assignChildIndex (params, child, index) {\n params[index] = child;\n return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/* */\n\nvar numberComponent = {\n name: 'i18n-n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n },\n locale: {\n type: String\n }\n },\n render: function render (h, ref) {\n var props = ref.props;\n var parent = ref.parent;\n var data = ref.data;\n\n var i18n = parent.$i18n;\n\n if (!i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return null\n }\n\n var key = null;\n var options = null;\n\n if (isString(props.format)) {\n key = props.format;\n } else if (isObject(props.format)) {\n if (props.format.key) {\n key = props.format.key;\n }\n\n // Filter out number format options only\n options = Object.keys(props.format).reduce(function (acc, prop) {\n var obj;\n\n if (includes(numberFormatKeys, prop)) {\n return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n }\n return acc\n }, null);\n }\n\n var locale = props.locale || i18n.locale;\n var parts = i18n._ntp(props.value, locale, key, options);\n\n var values = parts.map(function (part, index) {\n var obj;\n\n var slot = data.scopedSlots && data.scopedSlots[part.type];\n return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n });\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag\n ? h(tag, {\n attrs: data.attrs,\n 'class': data['class'],\n staticClass: data.staticClass\n }, values)\n : values\n }\n};\n\n/* */\n\nfunction bind (el, binding, vnode) {\n if (!assert(el, vnode)) { return }\n\n t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n if (!assert(el, vnode)) { return }\n\n var i18n = vnode.context.$i18n;\n if (localeEqual(el, vnode) &&\n (looseEqual(binding.value, binding.oldValue) &&\n looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return\n }\n\n var i18n = vnode.context.$i18n || {};\n if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n el.textContent = '';\n }\n el._vt = undefined;\n delete el['_vt'];\n el._locale = undefined;\n delete el['_locale'];\n el._localeMessage = undefined;\n delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return false\n }\n\n if (!vm.$i18n) {\n warn('VueI18n instance does not exists in Vue instance');\n return false\n }\n\n return true\n}\n\nfunction localeEqual (el, vnode) {\n var vm = vnode.context;\n return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n var ref$1, ref$2;\n\n var value = binding.value;\n\n var ref = parseValue(value);\n var path = ref.path;\n var locale = ref.locale;\n var args = ref.args;\n var choice = ref.choice;\n if (!path && !locale && !args) {\n warn('value type not supported');\n return\n }\n\n if (!path) {\n warn('`path` is required in v-t directive');\n return\n }\n\n var vm = vnode.context;\n if (choice != null) {\n el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n } else {\n el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n }\n el._locale = vm.$i18n.locale;\n el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n var path;\n var locale;\n var args;\n var choice;\n\n if (isString(value)) {\n path = value;\n } else if (isPlainObject(value)) {\n path = value.path;\n locale = value.locale;\n args = value.args;\n choice = value.choice;\n }\n\n return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n var params = [];\n\n locale && params.push(locale);\n if (args && (Array.isArray(args) || isPlainObject(args))) {\n params.push(args);\n }\n\n return params\n}\n\nvar Vue;\n\nfunction install (_Vue) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && install.installed && _Vue === Vue) {\n warn('already installed.');\n return\n }\n install.installed = true;\n\n Vue = _Vue;\n\n var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && version < 2) {\n warn((\"vue-i18n (\" + (install.version) + \") need to use Vue 2.0 or later (Vue: \" + (Vue.version) + \").\"));\n return\n }\n\n extend(Vue);\n Vue.mixin(mixin);\n Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n Vue.component(interpolationComponent.name, interpolationComponent);\n Vue.component(numberComponent.name, numberComponent);\n\n // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n var strats = Vue.config.optionMergeStrategies;\n strats.i18n = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n}\n\n/* */\n\nvar BaseFormatter = function BaseFormatter () {\n this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n if (!values) {\n return [message]\n }\n var tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message);\n this._caches[message] = tokens;\n }\n return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n var tokens = [];\n var position = 0;\n\n var text = '';\n while (position < format.length) {\n var char = format[position++];\n if (char === '{') {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n\n text = '';\n var sub = '';\n char = format[position++];\n while (char !== undefined && char !== '}') {\n sub += char;\n char = format[position++];\n }\n var isClosed = char === '}';\n\n var type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type: type });\n } else if (char === '%') {\n // when found rails i18n syntax, skip text capture\n if (format[(position)] !== '{') {\n text += char;\n }\n } else {\n text += char;\n }\n }\n\n text && tokens.push({ type: 'text', value: text });\n\n return tokens\n}\n\nfunction compile (tokens, values) {\n var compiled = [];\n var index = 0;\n\n var mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') { return compiled }\n\n while (index < tokens.length) {\n var token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break\n case 'named':\n if (mode === 'named') {\n compiled.push((values)[token.value]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Type of token '\" + (token.type) + \"' and format of value '\" + mode + \"' don't match!\"));\n }\n }\n break\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Detect 'unknown' type of token!\");\n }\n break\n }\n index++;\n }\n\n return compiled\n}\n\n/* */\n\n/**\n * Path parser\n * - Inspired:\n * Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27)\n ? str.slice(1, -1)\n : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n if (ch === undefined || ch === null) { return 'eof' }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n return ch\n\n case 0x5F: // _\n case 0x24: // $\n case 0x2D: // -\n return 'ident'\n\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029: // Paragraph Separator\n return 'ws'\n }\n\n return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c;\n var key;\n var newChar;\n var type;\n var transition;\n var action;\n var typeMap;\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n if (key === undefined) { return false }\n key = formatSubPath(key);\n if (key === false) {\n return false\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote () {\n var nextChar = path[index + 1];\n if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true\n }\n }\n\n while (mode !== null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined\n ? c\n : newChar;\n if (action() === false) {\n return\n }\n }\n\n if (mode === AFTER_PATH) {\n return keys\n }\n }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n var hit = this._cache[path];\n if (!hit) {\n hit = parse$1(path);\n if (hit) {\n this._cache[path] = hit;\n }\n }\n return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n if (!isObject(obj)) { return null }\n\n var paths = this.parsePath(path);\n if (paths.length === 0) {\n return null\n } else {\n var length = paths.length;\n var last = obj;\n var i = 0;\n while (i < length) {\n var value = last[paths[i]];\n if (value === undefined) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-z]+)?:(?:[\\w\\-_|.]+|\\([\\w\\-_|.]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); },\n 'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale === false\n ? false\n : options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._modifiers = options.modifiers || {};\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = [];\n this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n ? false\n : !!options.preserveDirectiveContent;\n this.pluralizationRules = options.pluralizationRules || {};\n this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n this._postTranslation = options.postTranslation || null;\n this._escapeParameterHtml = options.escapeParameterHtml || false;\n\n /**\n * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n * @param choicesLength {number} an overall amount of available choices\n * @returns a final choice index\n */\n this.getChoiceIndex = function (choice, choicesLength) {\n var thisPrototype = Object.getPrototypeOf(this$1);\n if (thisPrototype && thisPrototype.getChoiceIndex) {\n var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n }\n\n // Default (old) getChoiceIndex implementation - english-compatible\n var defaultImpl = function (_choice, _choicesLength) {\n _choice = Math.abs(_choice);\n\n if (_choicesLength === 2) {\n return _choice\n ? _choice > 1\n ? 1\n : 0\n : 1\n }\n\n return _choice ? Math.min(_choice, 2) : 0\n };\n\n if (this$1.locale in this$1.pluralizationRules) {\n return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n } else {\n return defaultImpl(choice, choicesLength)\n }\n };\n\n\n this._exist = function (message, key) {\n if (!message || !key) { return false }\n if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n // fallback for flat key\n if (message[key]) { return true }\n return false\n };\n\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n\n this._initVM({\n locale: locale,\n fallbackLocale: fallbackLocale,\n messages: messages,\n dateTimeFormats: dateTimeFormats,\n numberFormats: numberFormats\n });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n var paths = [];\n\n var fn = function (level, locale, message, paths) {\n if (isPlainObject(message)) {\n Object.keys(message).forEach(function (key) {\n var val = message[key];\n if (isPlainObject(val)) {\n paths.push(key);\n paths.push('.');\n fn(level, locale, val, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push(key);\n fn(level, locale, val, paths);\n paths.pop();\n }\n });\n } else if (isArray(message)) {\n message.forEach(function (item, index) {\n if (isPlainObject(item)) {\n paths.push((\"[\" + index + \"]\"));\n paths.push('.');\n fn(level, locale, item, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push((\"[\" + index + \"]\"));\n fn(level, locale, item, paths);\n paths.pop();\n }\n });\n } else if (isString(message)) {\n var ret = htmlTagMatcher.test(message);\n if (ret) {\n var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n if (level === 'warn') {\n warn(msg);\n } else if (level === 'error') {\n error(msg);\n }\n }\n }\n };\n\n fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n this._vm = new Vue({ data: data });\n Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n this._dataListeners.push(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var self = this;\n return this._vm.$watch('$data', function () {\n var i = self._dataListeners.length;\n while (i--) {\n Vue.nextTick(function () {\n self._dataListeners[i] && self._dataListeners[i].$forceUpdate();\n });\n }\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale () {\n /* istanbul ignore if */\n if (!this._sync || !this._root) { return null }\n var target = this._vm;\n return this._root.$i18n.vm.$watch('locale', function (val) {\n target.$set(target, 'locale', val);\n target.$forceUpdate();\n }, { immediate: true })\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n if (this._componentInstanceCreatedListener) {\n this._componentInstanceCreatedListener(newI18n, this);\n }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n this._localeChainCache = {};\n this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n var this$1 = this;\n\n var orgLevel = this._warnHtmlInMessage;\n this._warnHtmlInMessage = level;\n if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n var messages = this._getMessages();\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (isString(missingRet)) {\n return missingRet\n }\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn(\n \"Cannot translate the value of keypath '\" + key + \"'. \" +\n 'Use the value of keypath as default.'\n );\n }\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, interpolateMode, parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return !val && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n var ret;\n if (isNull(pathRet)) {\n /* istanbul ignore else */\n if (isPlainObject(message)) {\n ret = message[key];\n if (!(isString(ret) || isFunction(ret))) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function !\"));\n }\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (isString(pathRet) || isFunction(pathRet)) {\n ret = pathRet;\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function!\"));\n }\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (isString(ret) && (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0)) {\n ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n }\n\n return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n locale,\n message,\n str,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n var ret = str;\n\n // Match all the links within the local\n // We are going to replace each of\n // them with its translation\n var matches = ret.match(linkKeyMatcher);\n for (var idx in matches) {\n // ie compatible: filter custom array\n // prototype method\n if (!matches.hasOwnProperty(idx)) {\n continue\n }\n var link = matches[idx];\n var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n var linkPrefix = linkKeyPrefixMatches[0];\n var formatterName = linkKeyPrefixMatches[1];\n\n // Remove the leading @:, @.case: and the brackets\n var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n if (includes(visitedLinkStack, linkPlaceholder)) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Circular reference found. \\\"\" + link + \"\\\" is already visited in the chain of \" + (visitedLinkStack.reverse().join(' <- '))));\n }\n return ret\n }\n visitedLinkStack.push(linkPlaceholder);\n\n // Translate the link\n var translated = this._interpolate(\n locale, message, linkPlaceholder, host,\n interpolateMode === 'raw' ? 'string' : interpolateMode,\n interpolateMode === 'raw' ? undefined : values,\n visitedLinkStack\n );\n\n if (this._isFallbackRoot(translated)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(linkPlaceholder)) {\n warn((\"Fall back to translate the link placeholder '\" + linkPlaceholder + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n var root = this._root.$i18n;\n translated = root._translate(\n root._getMessages(), root.locale, root.fallbackLocale,\n linkPlaceholder, host, interpolateMode, values\n );\n }\n translated = this._warnDefault(\n locale, linkPlaceholder, translated, host,\n isArray(values) ? values : [values],\n interpolateMode\n );\n\n if (this._modifiers.hasOwnProperty(formatterName)) {\n translated = this._modifiers[formatterName](translated);\n } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n translated = defaultModifiers[formatterName](translated);\n }\n\n visitedLinkStack.pop();\n\n // Replace the link with the translated\n ret = !translated ? ret : ret.replace(link, translated);\n }\n\n return ret\n};\n\nVueI18n.prototype._createMessageContext = function _createMessageContext (values) {\n var _list = isArray(values) ? values : [];\n var _named = isObject(values) ? values : {};\n var list = function (index) { return _list[index]; };\n var named = function (key) { return _named[key]; };\n return {\n list: list,\n named: named\n }\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n if (isFunction(message)) {\n return message(this._createMessageContext(values))\n }\n\n var ret = this._formatter.interpolate(message, values, path);\n\n // If the custom formatter refuses to work - apply the default one\n if (!ret) {\n ret = defaultFormatter.interpolate(message, values, path);\n }\n\n // if interpolateMode is **not** 'string' ('row'),\n // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n var follow = false;\n if (!includes(chain, item)) {\n follow = true;\n if (item) {\n follow = item[item.length - 1] !== '!';\n item = item.replace(/!/g, '');\n chain.push(item);\n if (blocks && blocks[item]) {\n follow = blocks[item];\n }\n }\n }\n return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n var follow;\n var tokens = locale.split('-');\n do {\n var item = tokens.join('-');\n follow = this._appendItemToChain(chain, item, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && (follow === true))\n return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n var follow = true;\n for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n var locale = block[i];\n if (isString(locale)) {\n follow = this._appendLocaleToChain(chain, locale, blocks);\n }\n }\n return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n if (start === '') { return [] }\n\n if (!this._localeChainCache) {\n this._localeChainCache = {};\n }\n\n var chain = this._localeChainCache[start];\n if (!chain) {\n if (!fallbackLocale) {\n fallbackLocale = this.fallbackLocale;\n }\n chain = [];\n\n // first block defined by start\n var block = [start];\n\n // while any intervening block found\n while (isArray(block)) {\n block = this._appendBlockToChain(\n chain,\n block,\n fallbackLocale\n );\n }\n\n // last block defined by default\n var defaults;\n if (isArray(fallbackLocale)) {\n defaults = fallbackLocale;\n } else if (isObject(fallbackLocale)) {\n /* $FlowFixMe */\n if (fallbackLocale['default']) {\n defaults = fallbackLocale['default'];\n } else {\n defaults = null;\n }\n } else {\n defaults = fallbackLocale;\n }\n\n // convert defaults to array\n if (isString(defaults)) {\n block = [defaults];\n } else {\n block = defaults;\n }\n if (block) {\n this._appendBlockToChain(\n chain,\n block,\n null\n );\n }\n this._localeChainCache[start] = chain;\n }\n return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n messages,\n locale,\n fallback,\n key,\n host,\n interpolateMode,\n args\n) {\n var chain = this._getLocaleChain(locale, fallback);\n var res;\n for (var i = 0; i < chain.length; i++) {\n var step = chain[i];\n res =\n this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n }\n return res\n }\n }\n return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n var ref;\n\n var values = [], len = arguments.length - 4;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n if (!key) { return '' }\n\n var parsedArgs = parseArgs.apply(void 0, values);\n if(this._escapeParameterHtml) {\n parsedArgs.params = escapeParams(parsedArgs.params);\n }\n\n var locale = parsedArgs.locale || _locale;\n\n var ret = this._translate(\n messages, locale, this.fallbackLocale, key,\n host, 'string', parsedArgs.params\n );\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n } else {\n ret = this._warnDefault(locale, key, ret, host, values, 'string');\n if (this._postTranslation && ret !== null && ret !== undefined) {\n ret = this._postTranslation(ret, key);\n }\n return ret\n }\n};\n\nVueI18n.prototype.t = function t (key) {\n var ref;\n\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n var ret =\n this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to interpolate the keypath '\" + key + \"' with root locale.\"));\n }\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.i(key, locale, values)\n } else {\n return this._warnDefault(locale, key, ret, host, [values], 'raw')\n }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n /* istanbul ignore if */\n if (!key) { return '' }\n\n if (!isString(locale)) {\n locale = this.locale;\n }\n\n return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n key,\n _locale,\n messages,\n host,\n choice\n) {\n var ref;\n\n var values = [], len = arguments.length - 5;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n if (!key) { return '' }\n if (choice === undefined) {\n choice = 1;\n }\n\n var predefined = { 'count': choice, 'n': choice };\n var parsedArgs = parseArgs.apply(void 0, values);\n parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n /* istanbul ignore if */\n if (!message || !isString(message)) { return null }\n var choices = message.split('|');\n\n choice = this.getChoiceIndex(choice, choices.length);\n if (!choices[choice]) { return message }\n return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n var ref;\n\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n var args = [], len = arguments.length - 3;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n var _locale = parseArgs.apply(void 0, args).locale || locale;\n return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, merge({}, this._vm.messages[locale] || {}, message));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, format);\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._dateTimeFormatters[id];\n }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = dateTimeFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n var id = _locale + \"__\" + key;\n var formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n return ''\n }\n\n if (!key) {\n return new Intl.DateTimeFormat(locale).format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._numberFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._numberFormatters[id];\n }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n value,\n locale,\n fallback,\n numberFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = numberFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = numberFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n // If options specified - create one time number formatter\n formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._numberFormatters[id];\n if (!formatter) {\n formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n }\n }\n return formatter\n }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format a Number value due to not supported Intl.NumberFormat.');\n }\n return ''\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.format(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.format(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to number localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.n = function n (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n\n // Filter out number format options only\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(numberFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format to parts a Number value due to not supported Intl.NumberFormat.');\n }\n return []\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.formatToParts(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.formatToParts(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to format number to parts of root: key '\" + key + \"' .\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n._ntp(value, locale, key, options)\n } else {\n return ret || []\n }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n get: function get () {\n if (!availabilities) {\n var intlDefined = typeof Intl !== 'undefined';\n availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n };\n }\n\n return availabilities\n }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.22.3';\n\nexport default VueI18n;\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","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanDialog from './Dialog';\nimport { isServer } from '../utils';\nvar instance;\n\nfunction isInDocument(element) {\n return document.body.contains(element);\n}\n\nfunction initInstance() {\n if (instance) {\n instance.$destroy();\n }\n\n instance = new (Vue.extend(VanDialog))({\n el: document.createElement('div'),\n // avoid missing animation when first rendered\n propsData: {\n lazyRender: false\n }\n });\n instance.$on('input', function (value) {\n instance.value = value;\n });\n}\n\nfunction Dialog(options) {\n /* istanbul ignore if */\n if (isServer) {\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n if (!instance || !isInDocument(instance.$el)) {\n initInstance();\n }\n\n _extends(instance, Dialog.currentOptions, options, {\n resolve: resolve,\n reject: reject\n });\n });\n}\n\nDialog.defaultOptions = {\n value: true,\n title: '',\n width: '',\n theme: null,\n message: '',\n overlay: true,\n className: '',\n allowHtml: true,\n lockScroll: true,\n transition: 'van-dialog-bounce',\n beforeClose: null,\n overlayClass: '',\n overlayStyle: null,\n messageAlign: '',\n getContainer: 'body',\n cancelButtonText: '',\n cancelButtonColor: null,\n confirmButtonText: '',\n confirmButtonColor: null,\n showConfirmButton: true,\n showCancelButton: false,\n closeOnPopstate: true,\n closeOnClickOverlay: false,\n callback: function callback(action) {\n instance[action === 'confirm' ? 'resolve' : 'reject'](action);\n }\n};\nDialog.alert = Dialog;\n\nDialog.confirm = function (options) {\n return Dialog(_extends({\n showCancelButton: true\n }, options));\n};\n\nDialog.close = function () {\n if (instance) {\n instance.value = false;\n }\n};\n\nDialog.setDefaultOptions = function (options) {\n _extends(Dialog.currentOptions, options);\n};\n\nDialog.resetDefaultOptions = function () {\n Dialog.currentOptions = _extends({}, Dialog.defaultOptions);\n};\n\nDialog.resetDefaultOptions();\n\nDialog.install = function () {\n Vue.use(VanDialog);\n};\n\nDialog.Component = VanDialog;\nVue.prototype.$dialog = Dialog;\nexport default Dialog;","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('goods-action'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanGoodsAction')],\n props: {\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem({\n unfit: !this.safeAreaInsetBottom\n })\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { route, routeProps } from '../utils/router';\nimport { ChildrenMixin } from '../mixins/relation';\nimport Button from '../button';\n\nvar _createNamespace = createNamespace('goods-action-button'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanGoodsAction')],\n props: _extends({}, routeProps, {\n type: String,\n text: String,\n icon: String,\n color: String,\n loading: Boolean,\n disabled: Boolean\n }),\n computed: {\n isFirst: function isFirst() {\n var prev = this.parent && this.parent.children[this.index - 1];\n return !prev || prev.$options.name !== this.$options.name;\n },\n isLast: function isLast() {\n var next = this.parent && this.parent.children[this.index + 1];\n return !next || next.$options.name !== this.$options.name;\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n route(this.$router, this);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(Button, {\n \"class\": bem([{\n first: this.isFirst,\n last: this.isLast\n }, this.type]),\n \"attrs\": {\n \"size\": \"large\",\n \"type\": this.type,\n \"icon\": this.icon,\n \"color\": this.color,\n \"loading\": this.loading,\n \"disabled\": this.disabled\n },\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots() || this.text]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { createNamespace, addUnit, noop } from '../utils';\nimport { BORDER_TOP, BORDER_LEFT } from '../utils/constant';\nimport { PopupMixin } from '../mixins/popup';\nimport Button from '../button';\nimport GoodsAction from '../goods-action';\nimport GoodsActionButton from '../goods-action-button';\n\nvar _createNamespace = createNamespace('dialog'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n title: String,\n theme: String,\n width: [Number, String],\n message: String,\n className: null,\n callback: Function,\n beforeClose: Function,\n messageAlign: String,\n cancelButtonText: String,\n cancelButtonColor: String,\n confirmButtonText: String,\n confirmButtonColor: String,\n showCancelButton: Boolean,\n overlay: {\n type: Boolean,\n default: true\n },\n allowHtml: {\n type: Boolean,\n default: true\n },\n transition: {\n type: String,\n default: 'van-dialog-bounce'\n },\n showConfirmButton: {\n type: Boolean,\n default: true\n },\n closeOnPopstate: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n loading: {\n confirm: false,\n cancel: false\n }\n };\n },\n methods: {\n onClickOverlay: function onClickOverlay() {\n this.handleAction('overlay');\n },\n handleAction: function handleAction(action) {\n var _this = this;\n\n this.$emit(action); // show not trigger close event when hidden\n\n if (!this.value) {\n return;\n }\n\n if (this.beforeClose) {\n this.loading[action] = true;\n this.beforeClose(action, function (state) {\n if (state !== false && _this.loading[action]) {\n _this.onClose(action);\n }\n\n _this.loading.confirm = false;\n _this.loading.cancel = false;\n });\n } else {\n this.onClose(action);\n }\n },\n onClose: function onClose(action) {\n this.close();\n\n if (this.callback) {\n this.callback(action);\n }\n },\n onOpened: function onOpened() {\n var _this2 = this;\n\n this.$emit('opened');\n this.$nextTick(function () {\n var _this2$$refs$dialog;\n\n (_this2$$refs$dialog = _this2.$refs.dialog) == null ? void 0 : _this2$$refs$dialog.focus();\n });\n },\n onClosed: function onClosed() {\n this.$emit('closed');\n },\n onKeydown: function onKeydown(event) {\n var _this3 = this;\n\n if (event.key === 'Escape' || event.key === 'Enter') {\n // skip keyboard events of child elements\n if (event.target !== this.$refs.dialog) {\n return;\n }\n\n var onEventType = {\n Enter: this.showConfirmButton ? function () {\n return _this3.handleAction('confirm');\n } : noop,\n Escape: this.showCancelButton ? function () {\n return _this3.handleAction('cancel');\n } : noop\n };\n onEventType[event.key]();\n this.$emit('keydown', event);\n }\n },\n genRoundButtons: function genRoundButtons() {\n var _this4 = this;\n\n var h = this.$createElement;\n return h(GoodsAction, {\n \"class\": bem('footer')\n }, [this.showCancelButton && h(GoodsActionButton, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"warning\",\n \"text\": this.cancelButtonText || t('cancel'),\n \"color\": this.cancelButtonColor,\n \"loading\": this.loading.cancel\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": function click() {\n _this4.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(GoodsActionButton, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"danger\",\n \"text\": this.confirmButtonText || t('confirm'),\n \"color\": this.confirmButtonColor,\n \"loading\": this.loading.confirm\n },\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": function click() {\n _this4.handleAction('confirm');\n }\n }\n })]);\n },\n genButtons: function genButtons() {\n var _this5 = this,\n _ref;\n\n var h = this.$createElement;\n var multiple = this.showCancelButton && this.showConfirmButton;\n return h(\"div\", {\n \"class\": [BORDER_TOP, bem('footer')]\n }, [this.showCancelButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.cancel,\n \"text\": this.cancelButtonText || t('cancel'),\n \"nativeType\": \"button\"\n },\n \"class\": bem('cancel'),\n \"style\": {\n color: this.cancelButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this5.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.confirm,\n \"text\": this.confirmButtonText || t('confirm'),\n \"nativeType\": \"button\"\n },\n \"class\": [bem('confirm'), (_ref = {}, _ref[BORDER_LEFT] = multiple, _ref)],\n \"style\": {\n color: this.confirmButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this5.handleAction('confirm');\n }\n }\n })]);\n },\n genContent: function genContent(hasTitle, messageSlot) {\n var h = this.$createElement;\n\n if (messageSlot) {\n return h(\"div\", {\n \"class\": bem('content')\n }, [messageSlot]);\n }\n\n var message = this.message,\n messageAlign = this.messageAlign;\n\n if (message) {\n var _bem, _domProps;\n\n var data = {\n class: bem('message', (_bem = {\n 'has-title': hasTitle\n }, _bem[messageAlign] = messageAlign, _bem)),\n domProps: (_domProps = {}, _domProps[this.allowHtml ? 'innerHTML' : 'textContent'] = message, _domProps)\n };\n return h(\"div\", {\n \"class\": bem('content', {\n isolated: !hasTitle\n })\n }, [h(\"div\", _mergeJSXProps([{}, data]))]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n var message = this.message;\n var messageSlot = this.slots();\n var title = this.slots('title') || this.title;\n var Title = title && h(\"div\", {\n \"class\": bem('header', {\n isolated: !message && !messageSlot\n })\n }, [title]);\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition\n },\n \"on\": {\n \"afterEnter\": this.onOpened,\n \"afterLeave\": this.onClosed\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"attrs\": {\n \"role\": \"dialog\",\n \"aria-labelledby\": this.title || message,\n \"tabIndex\": 0\n },\n \"class\": [bem([this.theme]), this.className],\n \"style\": {\n width: addUnit(this.width)\n },\n \"ref\": \"dialog\",\n \"on\": {\n \"keydown\": this.onKeydown\n }\n }, [Title, this.genContent(title, messageSlot), this.theme === 'round-button' ? this.genRoundButtons() : this.genButtons()])]);\n }\n});","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","export function range(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\n\nfunction trimExtraChar(value, _char, regExp) {\n var index = value.indexOf(_char);\n var prefix = '';\n\n if (index === -1) {\n return value;\n }\n\n if (_char === '-' && index !== 0) {\n return value.slice(0, index);\n }\n\n if (_char === '.' && value.match(/^(\\.|-\\.)/)) {\n prefix = index ? '-0' : '0';\n }\n\n return prefix + value.slice(0, index + 1) + value.slice(index).replace(regExp, '');\n}\n\nexport function formatNumber(value, allowDot, allowMinus) {\n if (allowDot === void 0) {\n allowDot = true;\n }\n\n if (allowMinus === void 0) {\n allowMinus = true;\n }\n\n if (allowDot) {\n value = trimExtraChar(value, '.', /\\./g);\n } else {\n value = value.split('.')[0];\n }\n\n if (allowMinus) {\n value = trimExtraChar(value, '-', /-/g);\n } else {\n value = value.replace(/-/, '');\n }\n\n var regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g;\n return value.replace(regExp, '');\n} // add num and avoid float number\n\nexport function addNumber(num1, num2) {\n var cardinal = Math.pow(10, 10);\n return Math.round((num1 + num2) * cardinal) / cardinal;\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","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { routeProps, functionalRoute } from '../utils/router';\nimport { cellProps } from './shared'; // Components\n\nimport Icon from '../icon'; // Types\n\nvar _createNamespace = createNamespace('cell'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Cell(h, props, slots, ctx) {\n var _props$clickable;\n\n var icon = props.icon,\n size = props.size,\n title = props.title,\n label = props.label,\n value = props.value,\n isLink = props.isLink;\n var showTitle = slots.title || isDef(title);\n\n function Label() {\n var showLabel = slots.label || isDef(label);\n\n if (showLabel) {\n return h(\"div\", {\n \"class\": [bem('label'), props.labelClass]\n }, [slots.label ? slots.label() : label]);\n }\n }\n\n function Title() {\n if (showTitle) {\n return h(\"div\", {\n \"class\": [bem('title'), props.titleClass],\n \"style\": props.titleStyle\n }, [slots.title ? slots.title() : h(\"span\", [title]), Label()]);\n }\n }\n\n function Value() {\n var showValue = slots.default || isDef(value);\n\n if (showValue) {\n return h(\"div\", {\n \"class\": [bem('value', {\n alone: !showTitle\n }), props.valueClass]\n }, [slots.default ? slots.default() : h(\"span\", [value])]);\n }\n }\n\n function LeftIcon() {\n if (slots.icon) {\n return slots.icon();\n }\n\n if (icon) {\n return h(Icon, {\n \"class\": bem('left-icon'),\n \"attrs\": {\n \"name\": icon,\n \"classPrefix\": props.iconPrefix\n }\n });\n }\n }\n\n function RightIcon() {\n var rightIconSlot = slots['right-icon'];\n\n if (rightIconSlot) {\n return rightIconSlot();\n }\n\n if (isLink) {\n var arrowDirection = props.arrowDirection;\n return h(Icon, {\n \"class\": bem('right-icon'),\n \"attrs\": {\n \"name\": arrowDirection ? \"arrow-\" + arrowDirection : 'arrow'\n }\n });\n }\n }\n\n function onClick(event) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n }\n\n var clickable = (_props$clickable = props.clickable) != null ? _props$clickable : isLink;\n var classes = {\n clickable: clickable,\n center: props.center,\n required: props.required,\n borderless: !props.border\n };\n\n if (size) {\n classes[size] = size;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem(classes),\n \"attrs\": {\n \"role\": clickable ? 'button' : null,\n \"tabindex\": clickable ? 0 : null\n },\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [LeftIcon(), Title(), Value(), RightIcon(), slots.extra == null ? void 0 : slots.extra()]);\n}\n\nCell.props = _extends({}, cellProps, routeProps);\nexport default createComponent(Cell);","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\nimport { isNodeEnv } from './node';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined' // eslint-disable-line no-restricted-globals\n ? window // eslint-disable-line no-restricted-globals\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n//# sourceMappingURL=global.js.map","export function isHidden(el) {\n var style = window.getComputedStyle(el);\n var hidden = style.display === 'none'; // offsetParent returns null in the following situations:\n // 1. The element or its parent element has the display property set to none.\n // 2. The element has the position property set to fixed\n\n var parentHidden = el.offsetParent === null && style.position !== 'fixed';\n return hidden || parentHidden;\n}","import { __assign, __extends } from \"tslib\";\nimport { getCurrentHub, Hub } from '@sentry/hub';\nimport { dropUndefinedKeys, isInstanceOf, logger } from '@sentry/utils';\nimport { Span as SpanClass, SpanRecorder } from './span';\n/** JSDoc */\nvar Transaction = /** @class */ (function (_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 function Transaction(transactionContext, hub) {\n var _this = _super.call(this, transactionContext) || this;\n _this._measurements = {};\n /**\n * The reference to the current hub.\n */\n _this._hub = getCurrentHub();\n if (isInstanceOf(hub, Hub)) {\n _this._hub = hub;\n }\n _this.name = transactionContext.name || '';\n _this.metadata = transactionContext.metadata || {};\n _this._trimEnd = transactionContext.trimEnd;\n // this is because transactions are also spans, and spans have a transaction pointer\n _this.transaction = _this;\n return _this;\n }\n /**\n * JSDoc\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 Transaction.prototype.initSpanRecorder = function (maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n };\n /**\n * Set observed measurements for this transaction.\n * @hidden\n */\n Transaction.prototype.setMeasurements = function (measurements) {\n this._measurements = __assign({}, measurements);\n };\n /**\n * Set metadata for this transaction.\n * @hidden\n */\n Transaction.prototype.setMetadata = function (newMetadata) {\n this.metadata = __assign(__assign({}, this.metadata), newMetadata);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.finish = function (endTimestamp) {\n var _this = this;\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n if (!this.name) {\n logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n }\n // just sets the end timestamp\n _super.prototype.finish.call(this, endTimestamp);\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 var client = this._hub.getClient();\n var transport = client && client.getTransport && client.getTransport();\n if (transport && transport.recordLostEvent) {\n transport.recordLostEvent('sample_rate', 'transaction');\n }\n return undefined;\n }\n var finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(function (s) { return s !== _this && s.endTimestamp; }) : [];\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 return prev;\n }).endTimestamp;\n }\n var transaction = {\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 sdkProcessingMetadata: this.metadata,\n };\n var hasMeasurements = Object.keys(this._measurements).length > 0;\n if (hasMeasurements) {\n logger.log('[Measurements] Adding measurements to transaction', JSON.stringify(this._measurements, undefined, 2));\n transaction.measurements = this._measurements;\n }\n logger.log(\"[Tracing] Finishing \" + this.op + \" transaction: \" + this.name + \".\");\n return this._hub.captureEvent(transaction);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.toContext = function () {\n var spanContext = _super.prototype.toContext.call(this);\n return dropUndefinedKeys(__assign(__assign({}, spanContext), { name: this.name, trimEnd: this._trimEnd }));\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.updateWithContext = function (transactionContext) {\n var _a;\n _super.prototype.updateWithContext.call(this, transactionContext);\n this.name = (_a = transactionContext.name, (_a !== null && _a !== void 0 ? _a : ''));\n this._trimEnd = transactionContext.trimEnd;\n return this;\n };\n return Transaction;\n}(SpanClass));\nexport { Transaction };\n//# sourceMappingURL=transaction.js.map","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","/**\n * Vue Router support\n */\nfunction isRedundantNavigation(err) {\n return err.name === 'NavigationDuplicated' || // compatible with vue-router@3.3\n err.message && err.message.indexOf('redundant navigation') !== -1;\n}\n\nexport function route(router, config) {\n var to = config.to,\n url = config.url,\n replace = config.replace;\n\n if (to && router) {\n var promise = router[replace ? 'replace' : 'push'](to);\n /* istanbul ignore else */\n\n if (promise && promise.catch) {\n promise.catch(function (err) {\n if (err && !isRedundantNavigation(err)) {\n throw err;\n }\n });\n }\n } else if (url) {\n replace ? location.replace(url) : location.href = url;\n }\n}\nexport function functionalRoute(context) {\n route(context.parent && context.parent.$router, context.props);\n}\nexport var routeProps = {\n url: String,\n replace: Boolean,\n to: [String, Object]\n};","/**\n * Bind event when mounted or activated\n */\nimport { on, off } from '../utils/dom/event';\nvar uid = 0;\nexport function BindEventMixin(handler) {\n var key = \"binded_\" + uid++;\n\n function bind() {\n if (!this[key]) {\n handler.call(this, on, true);\n this[key] = true;\n }\n }\n\n function unbind() {\n if (this[key]) {\n handler.call(this, off, false);\n this[key] = false;\n }\n }\n\n return {\n mounted: bind,\n activated: bind,\n deactivated: unbind,\n beforeDestroy: unbind\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('swipe-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanSwipe')],\n data: function data() {\n return {\n offset: 0,\n inited: false,\n mounted: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.mounted = true;\n });\n },\n computed: {\n style: function style() {\n var style = {};\n var _this$parent = this.parent,\n size = _this$parent.size,\n vertical = _this$parent.vertical;\n\n if (size) {\n style[vertical ? 'height' : 'width'] = size + \"px\";\n }\n\n if (this.offset) {\n style.transform = \"translate\" + (vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\";\n }\n\n return style;\n },\n shouldRender: function shouldRender() {\n var index = this.index,\n inited = this.inited,\n parent = this.parent,\n mounted = this.mounted;\n\n if (!parent.lazyRender || inited) {\n return true;\n } // wait for all item to mount, so we can get the exact count\n\n\n if (!mounted) {\n return false;\n }\n\n var active = parent.activeIndicator;\n var maxActive = parent.count - 1;\n var prevActive = active === 0 && parent.loop ? maxActive : active - 1;\n var nextActive = active === maxActive && parent.loop ? 0 : active + 1;\n var shouldRender = index === active || index === prevActive || index === nextActive;\n\n if (shouldRender) {\n this.inited = true;\n }\n\n return shouldRender;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem(),\n \"style\": this.style,\n \"on\": _extends({}, this.$listeners)\n }, [this.shouldRender && this.slots()]);\n }\n});","export function isNumeric(val) {\n return /^\\d+(\\.\\d+)?$/.test(val);\n}\nexport function isNaN(val) {\n if (Number.isNaN) {\n return Number.isNaN(val);\n } // eslint-disable-next-line no-self-compare\n\n\n return val !== val;\n}","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\nexport { isBrowserBundle };\n//# sourceMappingURL=env.js.map\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","'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","export var cellProps = {\n icon: String,\n size: String,\n center: Boolean,\n isLink: Boolean,\n required: Boolean,\n iconPrefix: String,\n titleStyle: null,\n titleClass: null,\n valueClass: null,\n labelClass: null,\n title: [Number, String],\n value: [Number, String],\n label: [Number, String],\n arrowDirection: String,\n border: {\n type: Boolean,\n default: true\n },\n clickable: {\n type: Boolean,\n default: null\n }\n};","import { __extends, __values } from \"tslib\";\nimport { logger, timestampWithMs } from '@sentry/utils';\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from './constants';\nimport { SpanRecorder } from './span';\nimport { Transaction } from './transaction';\nexport var DEFAULT_IDLE_TIMEOUT = 1000;\nexport var HEARTBEAT_INTERVAL = 5000;\n/**\n * @inheritDoc\n */\nvar IdleTransactionSpanRecorder = /** @class */ (function (_super) {\n __extends(IdleTransactionSpanRecorder, _super);\n function IdleTransactionSpanRecorder(_pushActivity, _popActivity, transactionSpanId, maxlen) {\n if (transactionSpanId === void 0) { transactionSpanId = ''; }\n var _this = _super.call(this, maxlen) || this;\n _this._pushActivity = _pushActivity;\n _this._popActivity = _popActivity;\n _this.transactionSpanId = transactionSpanId;\n return _this;\n }\n /**\n * @inheritDoc\n */\n IdleTransactionSpanRecorder.prototype.add = function (span) {\n var _this = this;\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\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 _this._popActivity(span.spanId);\n };\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n _super.prototype.add.call(this, span);\n };\n return IdleTransactionSpanRecorder;\n}(SpanRecorder));\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 */\nvar IdleTransaction = /** @class */ (function (_super) {\n __extends(IdleTransaction, _super);\n function IdleTransaction(transactionContext, _idleHub, \n /**\n * The time to wait in ms until the idle transaction will be finished.\n * @default 1000\n */\n _idleTimeout, \n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n _onScope) {\n if (_idleTimeout === void 0) { _idleTimeout = DEFAULT_IDLE_TIMEOUT; }\n if (_onScope === void 0) { _onScope = false; }\n var _this = _super.call(this, transactionContext, _idleHub) || this;\n _this._idleHub = _idleHub;\n _this._idleTimeout = _idleTimeout;\n _this._onScope = _onScope;\n // Activities store a list of active spans\n _this.activities = {};\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n _this._heartbeatCounter = 0;\n // We should not use heartbeat if we finished a transaction\n _this._finished = false;\n _this._beforeFinishCallbacks = [];\n if (_idleHub && _onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n logger.log(\"Setting idle transaction on scope. Span ID: \" + _this.spanId);\n _idleHub.configureScope(function (scope) { return scope.setSpan(_this); });\n }\n _this._initTimeout = setTimeout(function () {\n if (!_this._finished) {\n _this.finish();\n }\n }, _this._idleTimeout);\n return _this;\n }\n /** {@inheritDoc} */\n IdleTransaction.prototype.finish = function (endTimestamp) {\n var e_1, _a;\n var _this = this;\n if (endTimestamp === void 0) { endTimestamp = timestampWithMs(); }\n this._finished = true;\n this.activities = {};\n if (this.spanRecorder) {\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\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 }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n 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 }\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n var keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', JSON.stringify(span, undefined, 2));\n }\n return keepSpan;\n });\n logger.log('[Tracing] flushing IdleTransaction');\n }\n else {\n logger.log('[Tracing] No active IdleTransaction');\n }\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\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 IdleTransaction.prototype.registerBeforeFinishCallback = function (callback) {\n this._beforeFinishCallbacks.push(callback);\n };\n /**\n * @inheritDoc\n */\n IdleTransaction.prototype.initSpanRecorder = function (maxlen) {\n var _this = this;\n if (!this.spanRecorder) {\n var pushActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._pushActivity(id);\n };\n var popActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._popActivity(id);\n };\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n // Start heartbeat so that transactions do not run forever.\n logger.log('Starting heartbeat');\n this._pingHeartbeat();\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 IdleTransaction.prototype._pushActivity = function (spanId) {\n if (this._initTimeout) {\n clearTimeout(this._initTimeout);\n this._initTimeout = undefined;\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 IdleTransaction.prototype._popActivity = function (spanId) {\n var _this = this;\n if (this.activities[spanId]) {\n logger.log(\"[Tracing] popActivity \" + spanId);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n if (Object.keys(this.activities).length === 0) {\n var timeout = this._idleTimeout;\n // 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 var end_1 = timestampWithMs() + timeout / 1000;\n setTimeout(function () {\n if (!_this._finished) {\n _this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[1]);\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 IdleTransaction.prototype._beat = function () {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n var heartbeatString = Object.keys(this.activities).join('');\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n }\n else {\n this._heartbeatCounter = 1;\n }\n this._prevHeartbeatString = heartbeatString;\n if (this._heartbeatCounter >= 3) {\n logger.log(\"[Tracing] Transaction finished because of no change for 3 heart beats\");\n this.setStatus('deadline_exceeded');\n this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[0]);\n this.finish();\n }\n else {\n this._pingHeartbeat();\n }\n };\n /**\n * Pings the heartbeat\n */\n IdleTransaction.prototype._pingHeartbeat = function () {\n var _this = this;\n logger.log(\"pinging Heartbeat -> current counter: \" + this._heartbeatCounter);\n setTimeout(function () {\n _this._beat();\n }, HEARTBEAT_INTERVAL);\n };\n return IdleTransaction;\n}(Transaction));\nexport { IdleTransaction };\n/**\n * Reset transaction on scope to `undefined`\n */\nfunction clearActiveTransaction(hub) {\n if (hub) {\n var scope = hub.getScope();\n if (scope) {\n var transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n }\n}\n//# sourceMappingURL=idletransaction.js.map","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 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","exports.f = Object.getOwnPropertySymbols;\n","import { on } from '../utils/dom/event';\n\nfunction getDirection(x, y) {\n if (x > y) {\n return 'horizontal';\n }\n\n if (y > x) {\n return 'vertical';\n }\n\n return '';\n}\n\nexport var TouchMixin = {\n data: function data() {\n return {\n direction: ''\n };\n },\n methods: {\n touchStart: function touchStart(event) {\n this.resetTouchStatus();\n this.startX = event.touches[0].clientX;\n this.startY = event.touches[0].clientY;\n },\n touchMove: function touchMove(event) {\n var touch = event.touches[0]; // safari back will set clientX to negative number\n\n this.deltaX = touch.clientX < 0 ? 0 : touch.clientX - this.startX;\n this.deltaY = touch.clientY - this.startY;\n this.offsetX = Math.abs(this.deltaX);\n this.offsetY = Math.abs(this.deltaY); // lock direction when distance is greater than a certain value\n\n var LOCK_DIRECTION_DISTANCE = 10;\n\n if (!this.direction || this.offsetX < LOCK_DIRECTION_DISTANCE && this.offsetY < LOCK_DIRECTION_DISTANCE) {\n this.direction = getDirection(this.offsetX, this.offsetY);\n }\n },\n resetTouchStatus: function resetTouchStatus() {\n this.direction = '';\n this.deltaX = 0;\n this.deltaY = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n },\n // avoid Vue 2.6 event bubble issues by manually binding events\n // https://github.com/vant-ui/vant/issues/3015\n bindTouchEvent: function bindTouchEvent(el) {\n var onTouchStart = this.onTouchStart,\n onTouchMove = this.onTouchMove,\n onTouchEnd = this.onTouchEnd;\n on(el, 'touchstart', onTouchStart);\n on(el, 'touchmove', onTouchMove);\n\n if (onTouchEnd) {\n on(el, 'touchend', onTouchEnd);\n on(el, 'touchcancel', onTouchEnd);\n }\n }\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","import { getGlobalObject } from './global.js';\nimport { dynamicRequire, isNodeEnv } from './node.js';\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nvar timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nvar dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nvar timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nvar timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nvar usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nvar browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\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 // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\n","/**\n * requestAnimationFrame polyfill\n */\nimport { isServer } from '..';\nvar prev = Date.now();\n/* istanbul ignore next */\n\nfunction fallback(fn) {\n var curr = Date.now();\n var ms = Math.max(0, 16 - (curr - prev));\n var id = setTimeout(fn, ms);\n prev = curr + ms;\n return id;\n}\n/* istanbul ignore next */\n\n\nvar root = isServer ? global : window;\n/* istanbul ignore next */\n\nvar iRaf = root.requestAnimationFrame || fallback;\n/* istanbul ignore next */\n\nvar iCancel = root.cancelAnimationFrame || root.clearTimeout;\nexport function raf(fn) {\n return iRaf.call(root, fn);\n} // double raf for animation\n\nexport function doubleRaf(fn) {\n raf(function () {\n raf(fn);\n });\n}\nexport function cancelRaf(id) {\n iCancel.call(root, id);\n}","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { inherit } from '../utils/functional'; // Components\n\nimport Info from '../info'; // Types\n\nvar _createNamespace = createNamespace('icon'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction isImage(name) {\n return name ? name.indexOf('/') !== -1 : false;\n} // compatible with legacy usage, should be removed in next major version\n\n\nvar LEGACY_MAP = {\n medel: 'medal',\n 'medel-o': 'medal-o',\n 'calender-o': 'calendar-o'\n};\n\nfunction correctName(name) {\n return name && LEGACY_MAP[name] || name;\n}\n\nfunction Icon(h, props, slots, ctx) {\n var _props$badge;\n\n var name = correctName(props.name);\n var imageIcon = isImage(name);\n\n if (process.env.NODE_ENV === 'development' && props.info) {\n console.warn('[Vant] Icon: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n return h(props.tag, _mergeJSXProps([{\n \"class\": [props.classPrefix, imageIcon ? '' : props.classPrefix + \"-\" + name],\n \"style\": {\n color: props.color,\n fontSize: addUnit(props.size)\n }\n }, inherit(ctx, true)]), [slots.default && slots.default(), imageIcon && h(\"img\", {\n \"class\": bem('image'),\n \"attrs\": {\n \"src\": name\n }\n }), h(Info, {\n \"attrs\": {\n \"dot\": props.dot,\n \"info\": (_props$badge = props.badge) != null ? _props$badge : props.info\n }\n })]);\n}\n\nIcon.props = {\n dot: Boolean,\n name: String,\n size: [Number, String],\n // @deprecated\n // should be removed in next major version\n info: [Number, String],\n badge: [Number, String],\n color: String,\n tag: {\n type: String,\n default: 'i'\n },\n classPrefix: {\n type: String,\n default: bem()\n }\n};\nexport default createComponent(Icon);","export var DEFAULT_ITEM_HEIGHT = 44;\nexport var pickerProps = {\n title: String,\n loading: Boolean,\n readonly: Boolean,\n itemHeight: [Number, String],\n showToolbar: Boolean,\n cancelButtonText: String,\n confirmButtonText: String,\n allowHtml: {\n type: Boolean,\n default: true\n },\n visibleItemCount: {\n type: [Number, String],\n default: 6\n },\n swipeDuration: {\n type: [Number, String],\n default: 1000\n }\n};","import { isDef } from './index';\nexport function deepClone(obj) {\n if (!isDef(obj)) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (item) {\n return deepClone(item);\n });\n }\n\n if (typeof obj === 'object') {\n var to = {};\n Object.keys(obj).forEach(function (key) {\n to[key] = deepClone(obj[key]);\n });\n return to;\n }\n\n return obj;\n}","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { deepClone } from '../utils/deep-clone';\nimport { createNamespace, inBrowser, isObject } from '../utils';\nimport { range } from '../utils/format/number';\nimport { preventDefault, on, off } from '../utils/dom/event';\nimport { TouchMixin } from '../mixins/touch';\nvar DEFAULT_DURATION = 200; // 惯性滑动思路:\n// 在手指离开屏幕时,如果和上一次 move 时的间隔小于 `MOMENTUM_LIMIT_TIME` 且 move\n// 距离大于 `MOMENTUM_LIMIT_DISTANCE` 时,执行惯性滑动\n\nexport var MOMENTUM_LIMIT_TIME = 300;\nexport var MOMENTUM_LIMIT_DISTANCE = 15;\n\nvar _createNamespace = createNamespace('picker-column'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction getElementTranslateY(element) {\n var style = window.getComputedStyle(element);\n var transform = style.transform || style.webkitTransform;\n var translateY = transform.slice(7, transform.length - 1).split(', ')[5];\n return Number(translateY);\n}\n\nfunction isOptionDisabled(option) {\n return isObject(option) && option.disabled;\n} // use standard WheelEvent:\n// https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent\n\n\nvar supportMousewheel = inBrowser && 'onwheel' in window;\nvar mousewheelTimer = null;\nexport default createComponent({\n mixins: [TouchMixin],\n props: {\n valueKey: String,\n readonly: Boolean,\n allowHtml: Boolean,\n className: String,\n itemHeight: Number,\n defaultIndex: Number,\n swipeDuration: [Number, String],\n visibleItemCount: [Number, String],\n initialOptions: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n offset: 0,\n duration: 0,\n options: deepClone(this.initialOptions),\n currentIndex: this.defaultIndex\n };\n },\n created: function created() {\n if (this.$parent.children) {\n this.$parent.children.push(this);\n }\n\n this.setIndex(this.currentIndex);\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n\n if (supportMousewheel) {\n on(this.$el, 'wheel', this.onMouseWheel, false);\n }\n },\n destroyed: function destroyed() {\n var children = this.$parent.children;\n\n if (children) {\n children.splice(children.indexOf(this), 1);\n }\n\n if (supportMousewheel) {\n off(this.$el, 'wheel');\n }\n },\n watch: {\n initialOptions: 'setOptions',\n defaultIndex: function defaultIndex(val) {\n this.setIndex(val);\n }\n },\n computed: {\n count: function count() {\n return this.options.length;\n },\n baseOffset: function baseOffset() {\n return this.itemHeight * (this.visibleItemCount - 1) / 2;\n }\n },\n methods: {\n setOptions: function setOptions(options) {\n if (JSON.stringify(options) !== JSON.stringify(this.options)) {\n this.options = deepClone(options);\n this.setIndex(this.defaultIndex);\n }\n },\n onTouchStart: function onTouchStart(event) {\n if (this.readonly) {\n return;\n }\n\n this.touchStart(event);\n\n if (this.moving) {\n var translateY = getElementTranslateY(this.$refs.wrapper);\n this.offset = Math.min(0, translateY - this.baseOffset);\n this.startOffset = this.offset;\n } else {\n this.startOffset = this.offset;\n }\n\n this.duration = 0;\n this.transitionEndTrigger = null;\n this.touchStartTime = Date.now();\n this.momentumOffset = this.startOffset;\n },\n onTouchMove: function onTouchMove(event) {\n if (this.readonly) {\n return;\n }\n\n this.touchMove(event);\n\n if (this.direction === 'vertical') {\n this.moving = true;\n preventDefault(event, true);\n }\n\n this.offset = range(this.startOffset + this.deltaY, -(this.count * this.itemHeight), this.itemHeight);\n var now = Date.now();\n\n if (now - this.touchStartTime > MOMENTUM_LIMIT_TIME) {\n this.touchStartTime = now;\n this.momentumOffset = this.offset;\n }\n },\n onTouchEnd: function onTouchEnd() {\n var _this = this;\n\n if (this.readonly) {\n return;\n }\n\n var distance = this.offset - this.momentumOffset;\n var duration = Date.now() - this.touchStartTime;\n var allowMomentum = duration < MOMENTUM_LIMIT_TIME && Math.abs(distance) > MOMENTUM_LIMIT_DISTANCE;\n\n if (allowMomentum) {\n this.momentum(distance, duration);\n return;\n }\n\n var index = this.getIndexByOffset(this.offset);\n this.duration = DEFAULT_DURATION;\n this.setIndex(index, true); // compatible with desktop scenario\n // use setTimeout to skip the click event Emitted after touchstart\n\n setTimeout(function () {\n _this.moving = false;\n }, 0);\n },\n onMouseWheel: function onMouseWheel(event) {\n var _this2 = this;\n\n if (this.readonly) {\n return;\n }\n\n preventDefault(event, true); // simply combine touchstart and touchmove\n\n var translateY = getElementTranslateY(this.$refs.wrapper);\n this.startOffset = Math.min(0, translateY - this.baseOffset);\n this.momentumOffset = this.startOffset;\n this.transitionEndTrigger = null; // directly use deltaY, see https://caniuse.com/?search=deltaY\n // use deltaY to detect direction for not special setting device\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event\n\n var deltaY = event.deltaY;\n\n if (this.startOffset === 0 && deltaY < 0) {\n return;\n } // get offset\n // if necessary, can adjust distance value to make scrolling smoother\n\n\n var distance = -deltaY;\n this.offset = range(this.startOffset + distance, -(this.count * this.itemHeight), this.itemHeight);\n\n if (mousewheelTimer) {\n clearTimeout(mousewheelTimer);\n }\n\n mousewheelTimer = setTimeout(function () {\n _this2.onTouchEnd();\n\n _this2.touchStartTime = 0;\n }, MOMENTUM_LIMIT_TIME);\n },\n onTransitionEnd: function onTransitionEnd() {\n this.stopMomentum();\n },\n onClickItem: function onClickItem(index) {\n if (this.moving || this.readonly) {\n return;\n }\n\n this.transitionEndTrigger = null;\n this.duration = DEFAULT_DURATION;\n this.setIndex(index, true);\n },\n adjustIndex: function adjustIndex(index) {\n index = range(index, 0, this.count);\n\n for (var i = index; i < this.count; i++) {\n if (!isOptionDisabled(this.options[i])) return i;\n }\n\n for (var _i = index - 1; _i >= 0; _i--) {\n if (!isOptionDisabled(this.options[_i])) return _i;\n }\n },\n getOptionText: function getOptionText(option) {\n if (isObject(option) && this.valueKey in option) {\n return option[this.valueKey];\n }\n\n return option;\n },\n setIndex: function setIndex(index, emitChange) {\n var _this3 = this;\n\n index = this.adjustIndex(index) || 0;\n var offset = -index * this.itemHeight;\n\n var trigger = function trigger() {\n if (index !== _this3.currentIndex) {\n _this3.currentIndex = index;\n\n if (emitChange) {\n _this3.$emit('change', index);\n }\n }\n }; // trigger the change event after transitionend when moving\n\n\n if (this.moving && offset !== this.offset) {\n this.transitionEndTrigger = trigger;\n } else {\n trigger();\n }\n\n this.offset = offset;\n },\n setValue: function setValue(value) {\n var options = this.options;\n\n for (var i = 0; i < options.length; i++) {\n if (this.getOptionText(options[i]) === value) {\n return this.setIndex(i);\n }\n }\n },\n getValue: function getValue() {\n return this.options[this.currentIndex];\n },\n getIndexByOffset: function getIndexByOffset(offset) {\n return range(Math.round(-offset / this.itemHeight), 0, this.count - 1);\n },\n momentum: function momentum(distance, duration) {\n var speed = Math.abs(distance / duration);\n distance = this.offset + speed / 0.003 * (distance < 0 ? -1 : 1);\n var index = this.getIndexByOffset(distance);\n this.duration = +this.swipeDuration;\n this.setIndex(index, true);\n },\n stopMomentum: function stopMomentum() {\n this.moving = false;\n this.duration = 0;\n\n if (this.transitionEndTrigger) {\n this.transitionEndTrigger();\n this.transitionEndTrigger = null;\n }\n },\n genOptions: function genOptions() {\n var _this4 = this;\n\n var h = this.$createElement;\n var optionStyle = {\n height: this.itemHeight + \"px\"\n };\n return this.options.map(function (option, index) {\n var _domProps;\n\n var text = _this4.getOptionText(option);\n\n var disabled = isOptionDisabled(option);\n var data = {\n style: optionStyle,\n attrs: {\n role: 'button',\n tabindex: disabled ? -1 : 0\n },\n class: [bem('item', {\n disabled: disabled,\n selected: index === _this4.currentIndex\n })],\n on: {\n click: function click() {\n _this4.onClickItem(index);\n }\n }\n };\n var childData = {\n class: 'van-ellipsis',\n domProps: (_domProps = {}, _domProps[_this4.allowHtml ? 'innerHTML' : 'textContent'] = text, _domProps)\n };\n return h(\"li\", _mergeJSXProps([{}, data]), [_this4.slots('option', option) || h(\"div\", _mergeJSXProps2([{}, childData]))]);\n });\n }\n },\n render: function render() {\n var h = arguments[0];\n var wrapperStyle = {\n transform: \"translate3d(0, \" + (this.offset + this.baseOffset) + \"px, 0)\",\n transitionDuration: this.duration + \"ms\",\n transitionProperty: this.duration ? 'all' : 'none'\n };\n return h(\"div\", {\n \"class\": [bem(), this.className]\n }, [h(\"ul\", {\n \"ref\": \"wrapper\",\n \"style\": wrapperStyle,\n \"class\": bem('wrapper'),\n \"on\": {\n \"transitionend\": this.onTransitionEnd\n }\n }, [this.genOptions()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { preventDefault } from '../utils/dom/event';\nimport { BORDER_UNSET_TOP_BOTTOM } from '../utils/constant';\nimport { pickerProps, DEFAULT_ITEM_HEIGHT } from './shared';\nimport { unitToPx } from '../utils/format/unit'; // Components\n\nimport Loading from '../loading';\nimport PickerColumn from './PickerColumn';\n\nvar _createNamespace = createNamespace('picker'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n props: _extends({}, pickerProps, {\n defaultIndex: {\n type: [Number, String],\n default: 0\n },\n columns: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n toolbarPosition: {\n type: String,\n default: 'top'\n },\n valueKey: {\n type: String,\n default: 'text'\n }\n }),\n data: function data() {\n return {\n children: [],\n formattedColumns: []\n };\n },\n computed: {\n itemPxHeight: function itemPxHeight() {\n return this.itemHeight ? unitToPx(this.itemHeight) : DEFAULT_ITEM_HEIGHT;\n },\n dataType: function dataType() {\n var columns = this.columns;\n var firstColumn = columns[0] || {};\n\n if (firstColumn.children) {\n return 'cascade';\n }\n\n if (firstColumn.values) {\n return 'object';\n }\n\n return 'text';\n }\n },\n watch: {\n columns: {\n handler: 'format',\n immediate: true\n }\n },\n methods: {\n format: function format() {\n var columns = this.columns,\n dataType = this.dataType;\n\n if (dataType === 'text') {\n this.formattedColumns = [{\n values: columns\n }];\n } else if (dataType === 'cascade') {\n this.formatCascade();\n } else {\n this.formattedColumns = columns;\n }\n },\n formatCascade: function formatCascade() {\n var formatted = [];\n var cursor = {\n children: this.columns\n };\n\n while (cursor && cursor.children) {\n var _cursor$defaultIndex;\n\n var _cursor = cursor,\n children = _cursor.children;\n var defaultIndex = (_cursor$defaultIndex = cursor.defaultIndex) != null ? _cursor$defaultIndex : +this.defaultIndex;\n\n while (children[defaultIndex] && children[defaultIndex].disabled) {\n if (defaultIndex < children.length - 1) {\n defaultIndex++;\n } else {\n defaultIndex = 0;\n break;\n }\n }\n\n formatted.push({\n values: cursor.children,\n className: cursor.className,\n defaultIndex: defaultIndex\n });\n cursor = children[defaultIndex];\n }\n\n this.formattedColumns = formatted;\n },\n emit: function emit(event) {\n var _this = this;\n\n if (this.dataType === 'text') {\n this.$emit(event, this.getColumnValue(0), this.getColumnIndex(0));\n } else {\n var values = this.getValues(); // compatible with old version of wrong parameters\n // should be removed in next major version\n // see: https://github.com/vant-ui/vant/issues/5905\n\n if (this.dataType === 'cascade') {\n values = values.map(function (item) {\n return item[_this.valueKey];\n });\n }\n\n this.$emit(event, values, this.getIndexes());\n }\n },\n onCascadeChange: function onCascadeChange(columnIndex) {\n var cursor = {\n children: this.columns\n };\n var indexes = this.getIndexes();\n\n for (var i = 0; i <= columnIndex; i++) {\n cursor = cursor.children[indexes[i]];\n }\n\n while (cursor && cursor.children) {\n columnIndex++;\n this.setColumnValues(columnIndex, cursor.children);\n cursor = cursor.children[cursor.defaultIndex || 0];\n }\n },\n onChange: function onChange(columnIndex) {\n var _this2 = this;\n\n if (this.dataType === 'cascade') {\n this.onCascadeChange(columnIndex);\n }\n\n if (this.dataType === 'text') {\n this.$emit('change', this, this.getColumnValue(0), this.getColumnIndex(0));\n } else {\n var values = this.getValues(); // compatible with old version of wrong parameters\n // should be removed in next major version\n // see: https://github.com/vant-ui/vant/issues/5905\n\n if (this.dataType === 'cascade') {\n values = values.map(function (item) {\n return item[_this2.valueKey];\n });\n }\n\n this.$emit('change', this, values, columnIndex);\n }\n },\n // get column instance by index\n getColumn: function getColumn(index) {\n return this.children[index];\n },\n // @exposed-api\n // get column value by index\n getColumnValue: function getColumnValue(index) {\n var column = this.getColumn(index);\n return column && column.getValue();\n },\n // @exposed-api\n // set column value by index\n setColumnValue: function setColumnValue(index, value) {\n var column = this.getColumn(index);\n\n if (column) {\n column.setValue(value);\n\n if (this.dataType === 'cascade') {\n this.onCascadeChange(index);\n }\n }\n },\n // @exposed-api\n // get column option index by column index\n getColumnIndex: function getColumnIndex(columnIndex) {\n return (this.getColumn(columnIndex) || {}).currentIndex;\n },\n // @exposed-api\n // set column option index by column index\n setColumnIndex: function setColumnIndex(columnIndex, optionIndex) {\n var column = this.getColumn(columnIndex);\n\n if (column) {\n column.setIndex(optionIndex);\n\n if (this.dataType === 'cascade') {\n this.onCascadeChange(columnIndex);\n }\n }\n },\n // @exposed-api\n // get options of column by index\n getColumnValues: function getColumnValues(index) {\n return (this.children[index] || {}).options;\n },\n // @exposed-api\n // set options of column by index\n setColumnValues: function setColumnValues(index, options) {\n var column = this.children[index];\n\n if (column) {\n column.setOptions(options);\n }\n },\n // @exposed-api\n // get values of all columns\n getValues: function getValues() {\n return this.children.map(function (child) {\n return child.getValue();\n });\n },\n // @exposed-api\n // set values of all columns\n setValues: function setValues(values) {\n var _this3 = this;\n\n values.forEach(function (value, index) {\n _this3.setColumnValue(index, value);\n });\n },\n // @exposed-api\n // get indexes of all columns\n getIndexes: function getIndexes() {\n return this.children.map(function (child) {\n return child.currentIndex;\n });\n },\n // @exposed-api\n // set indexes of all columns\n setIndexes: function setIndexes(indexes) {\n var _this4 = this;\n\n indexes.forEach(function (optionIndex, columnIndex) {\n _this4.setColumnIndex(columnIndex, optionIndex);\n });\n },\n // @exposed-api\n confirm: function confirm() {\n this.children.forEach(function (child) {\n return child.stopMomentum();\n });\n this.emit('confirm');\n },\n cancel: function cancel() {\n this.emit('cancel');\n },\n genTitle: function genTitle() {\n var h = this.$createElement;\n var titleSlot = this.slots('title');\n\n if (titleSlot) {\n return titleSlot;\n }\n\n if (this.title) {\n return h(\"div\", {\n \"class\": ['van-ellipsis', bem('title')]\n }, [this.title]);\n }\n },\n genCancel: function genCancel() {\n var h = this.$createElement;\n return h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": this.cancel\n }\n }, [this.slots('cancel') || this.cancelButtonText || t('cancel')]);\n },\n genConfirm: function genConfirm() {\n var h = this.$createElement;\n return h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": this.confirm\n }\n }, [this.slots('confirm') || this.confirmButtonText || t('confirm')]);\n },\n genToolbar: function genToolbar() {\n var h = this.$createElement;\n\n if (this.showToolbar) {\n return h(\"div\", {\n \"class\": bem('toolbar')\n }, [this.slots() || [this.genCancel(), this.genTitle(), this.genConfirm()]]);\n }\n },\n genColumns: function genColumns() {\n var h = this.$createElement;\n var itemPxHeight = this.itemPxHeight;\n var wrapHeight = itemPxHeight * this.visibleItemCount;\n var frameStyle = {\n height: itemPxHeight + \"px\"\n };\n var columnsStyle = {\n height: wrapHeight + \"px\"\n };\n var maskStyle = {\n backgroundSize: \"100% \" + (wrapHeight - itemPxHeight) / 2 + \"px\"\n };\n return h(\"div\", {\n \"class\": bem('columns'),\n \"style\": columnsStyle,\n \"on\": {\n \"touchmove\": preventDefault\n }\n }, [this.genColumnItems(), h(\"div\", {\n \"class\": bem('mask'),\n \"style\": maskStyle\n }), h(\"div\", {\n \"class\": [BORDER_UNSET_TOP_BOTTOM, bem('frame')],\n \"style\": frameStyle\n })]);\n },\n genColumnItems: function genColumnItems() {\n var _this5 = this;\n\n var h = this.$createElement;\n return this.formattedColumns.map(function (item, columnIndex) {\n var _item$defaultIndex;\n\n return h(PickerColumn, {\n \"attrs\": {\n \"readonly\": _this5.readonly,\n \"valueKey\": _this5.valueKey,\n \"allowHtml\": _this5.allowHtml,\n \"className\": item.className,\n \"itemHeight\": _this5.itemPxHeight,\n \"defaultIndex\": (_item$defaultIndex = item.defaultIndex) != null ? _item$defaultIndex : +_this5.defaultIndex,\n \"swipeDuration\": _this5.swipeDuration,\n \"visibleItemCount\": _this5.visibleItemCount,\n \"initialOptions\": item.values\n },\n \"scopedSlots\": {\n option: _this5.$scopedSlots.option\n },\n \"on\": {\n \"change\": function change() {\n _this5.onChange(columnIndex);\n }\n }\n });\n });\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": bem()\n }, [this.toolbarPosition === 'top' ? this.genToolbar() : h(), this.loading ? h(Loading, {\n \"class\": bem('loading')\n }) : h(), this.slots('columns-top'), this.genColumns(), this.slots('columns-bottom'), this.toolbarPosition === 'bottom' ? this.genToolbar() : h()]);\n }\n});","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\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 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","// Utils\nimport { createNamespace } from '../utils';\nimport { isHidden } from '../utils/dom/style';\nimport { getScroller } from '../utils/dom/scroll'; // Mixins\n\nimport { BindEventMixin } from '../mixins/bind-event'; // Components\n\nimport Loading from '../loading';\n\nvar _createNamespace = createNamespace('list'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n mixins: [BindEventMixin(function (bind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n bind(this.scroller, 'scroll', this.check);\n })],\n model: {\n prop: 'loading'\n },\n props: {\n error: Boolean,\n loading: Boolean,\n finished: Boolean,\n errorText: String,\n loadingText: String,\n finishedText: String,\n immediateCheck: {\n type: Boolean,\n default: true\n },\n offset: {\n type: [Number, String],\n default: 300\n },\n direction: {\n type: String,\n default: 'down'\n }\n },\n data: function data() {\n return {\n // use sync innerLoading state to avoid repeated loading in some edge cases\n innerLoading: this.loading\n };\n },\n updated: function updated() {\n this.innerLoading = this.loading;\n },\n mounted: function mounted() {\n if (this.immediateCheck) {\n this.check();\n }\n },\n watch: {\n loading: 'check',\n finished: 'check'\n },\n methods: {\n // @exposed-api\n check: function check() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.innerLoading || _this.finished || _this.error) {\n return;\n }\n\n var el = _this.$el,\n scroller = _this.scroller,\n offset = _this.offset,\n direction = _this.direction;\n var scrollerRect;\n\n if (scroller.getBoundingClientRect) {\n scrollerRect = scroller.getBoundingClientRect();\n } else {\n scrollerRect = {\n top: 0,\n bottom: scroller.innerHeight\n };\n }\n\n var scrollerHeight = scrollerRect.bottom - scrollerRect.top;\n /* istanbul ignore next */\n\n if (!scrollerHeight || isHidden(el)) {\n return false;\n }\n\n var isReachEdge = false;\n\n var placeholderRect = _this.$refs.placeholder.getBoundingClientRect();\n\n if (direction === 'up') {\n isReachEdge = scrollerRect.top - placeholderRect.top <= offset;\n } else {\n isReachEdge = placeholderRect.bottom - scrollerRect.bottom <= offset;\n }\n\n if (isReachEdge) {\n _this.innerLoading = true;\n\n _this.$emit('input', true);\n\n _this.$emit('load');\n }\n });\n },\n clickErrorText: function clickErrorText() {\n this.$emit('update:error', false);\n this.check();\n },\n genLoading: function genLoading() {\n var h = this.$createElement;\n\n if (this.innerLoading && !this.finished) {\n return h(\"div\", {\n \"key\": \"loading\",\n \"class\": bem('loading')\n }, [this.slots('loading') || h(Loading, {\n \"attrs\": {\n \"size\": \"16\"\n }\n }, [this.loadingText || t('loading')])]);\n }\n },\n genFinishedText: function genFinishedText() {\n var h = this.$createElement;\n\n if (this.finished) {\n var text = this.slots('finished') || this.finishedText;\n\n if (text) {\n return h(\"div\", {\n \"class\": bem('finished-text')\n }, [text]);\n }\n }\n },\n genErrorText: function genErrorText() {\n var h = this.$createElement;\n\n if (this.error) {\n var text = this.slots('error') || this.errorText;\n\n if (text) {\n return h(\"div\", {\n \"on\": {\n \"click\": this.clickErrorText\n },\n \"class\": bem('error-text')\n }, [text]);\n }\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var Placeholder = h(\"div\", {\n \"ref\": \"placeholder\",\n \"key\": \"placeholder\",\n \"class\": bem('placeholder')\n });\n return h(\"div\", {\n \"class\": bem(),\n \"attrs\": {\n \"role\": \"feed\",\n \"aria-busy\": this.innerLoading\n }\n }, [this.direction === 'down' ? this.slots() : Placeholder, this.genLoading(), this.genFinishedText(), this.genErrorText(), this.direction === 'up' ? this.slots() : Placeholder]);\n }\n});","/**\n * bem helper\n * b() // 'button'\n * b('text') // 'button__text'\n * b({ disabled }) // 'button button--disabled'\n * b('text', { disabled }) // 'button__text button__text--disabled'\n * b(['disabled', 'primary']) // 'button button--disabled button--primary'\n */\nfunction gen(name, mods) {\n if (!mods) {\n return '';\n }\n\n if (typeof mods === 'string') {\n return \" \" + name + \"--\" + mods;\n }\n\n if (Array.isArray(mods)) {\n return mods.reduce(function (ret, item) {\n return ret + gen(name, item);\n }, '');\n }\n\n return Object.keys(mods).reduce(function (ret, key) {\n return ret + (mods[key] ? gen(name, key) : '');\n }, '');\n}\n\nexport function createBEM(name) {\n return function (el, mods) {\n if (el && typeof el !== 'string') {\n mods = el;\n el = '';\n }\n\n el = el ? name + \"__\" + el : name;\n return \"\" + el + gen(el, mods);\n };\n}","var camelizeRE = /-(\\w)/g;\nexport function camelize(str) {\n return str.replace(camelizeRE, function (_, c) {\n return c.toUpperCase();\n });\n}\nexport function padZero(num, targetLength) {\n if (targetLength === void 0) {\n targetLength = 2;\n }\n\n var str = num + '';\n\n while (str.length < targetLength) {\n str = '0' + str;\n }\n\n return str;\n}","/**\n * Use scopedSlots in Vue 2.6+\n * downgrade to slots in lower version\n */\nexport var SlotsMixin = {\n methods: {\n slots: function slots(name, props) {\n if (name === void 0) {\n name = 'default';\n }\n\n var $slots = this.$slots,\n $scopedSlots = this.$scopedSlots;\n var scopedSlot = $scopedSlots[name];\n\n if (scopedSlot) {\n return scopedSlot(props);\n }\n\n return $slots[name];\n }\n }\n};","/**\n * Create a basic component with common options\n */\nimport '../../locale';\nimport { isFunction } from '..';\nimport { camelize } from '../format/string';\nimport { SlotsMixin } from '../../mixins/slots';\nimport Vue from 'vue';\n\nfunction install(Vue) {\n var name = this.name;\n Vue.component(name, this);\n Vue.component(camelize(\"-\" + name), this);\n} // unify slots & scopedSlots\n\n\nexport function unifySlots(context) {\n // use data.scopedSlots in lower Vue version\n var scopedSlots = context.scopedSlots || context.data.scopedSlots || {};\n var slots = context.slots();\n Object.keys(slots).forEach(function (key) {\n if (!scopedSlots[key]) {\n scopedSlots[key] = function () {\n return slots[key];\n };\n }\n });\n return scopedSlots;\n} // should be removed after Vue 3\n\nfunction transformFunctionComponent(pure) {\n return {\n functional: true,\n props: pure.props,\n model: pure.model,\n render: function render(h, context) {\n return pure(h, context.props, unifySlots(context), context);\n }\n };\n}\n\nexport function createComponent(name) {\n return function (sfc) {\n if (isFunction(sfc)) {\n sfc = transformFunctionComponent(sfc);\n }\n\n if (!sfc.functional) {\n sfc.mixins = sfc.mixins || [];\n sfc.mixins.push(SlotsMixin);\n }\n\n sfc.name = name;\n sfc.install = install;\n return sfc;\n };\n}","import { get, isFunction } from '..';\nimport { camelize } from '../format/string';\nimport locale from '../../locale';\nexport function createI18N(name) {\n var prefix = camelize(name) + '.';\n return function (path) {\n var messages = locale.messages();\n var message = get(messages, prefix + path) || get(messages, path);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return isFunction(message) ? message.apply(void 0, args) : message;\n };\n}","import { createBEM } from './bem';\nimport { createComponent } from './component';\nimport { createI18N } from './i18n';\nexport function createNamespace(name) {\n name = 'van-' + name;\n return [createComponent(name), createBEM(name), createI18N(name)];\n}","import { isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n var lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n var output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nfunction isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nfunction escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n\nexport { escapeStringForRegex, isMatchingPattern, safeJoin, snipLine, truncate };\n//# sourceMappingURL=string.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n var PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n var RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n var REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n\n constructor(\n executor,\n ) {;SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n var cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","/*!\n * vue-router v3.2.0\n * (c) 2020 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isExtendedError (constructor, err) {\n return (\n err instanceof constructor ||\n // _name is to support IE9 too\n (err && (err.name === constructor.name || err._name === constructor._name))\n )\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cachce\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n parsedQuery[key] = extraQuery[key];\n }\n return parsedQuery\n}\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0\n ? decode(parts.join('='))\n : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj ? Object.keys(obj).map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n }).filter(function (x) { return x.length > 0; }).join('&') : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\"RouterLink with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n instances: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = val;\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', function (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n });\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n window.scrollTo(position.x, position.y);\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\nvar NavigationDuplicated = /*@__PURE__*/(function (Error) {\n function NavigationDuplicated (normalizedLocation) {\n Error.call(this);\n this.name = this._name = 'NavigationDuplicated';\n // passing the message to super() doesn't seem to work in the transpiled version\n this.message = \"Navigating to current location (\\\"\" + (normalizedLocation.fullPath) + \"\\\") is not allowed\";\n // add a stack property so services like Sentry can correctly display it\n Object.defineProperty(this, 'stack', {\n value: new Error().stack,\n writable: true,\n configurable: true\n });\n // we could also have used\n // Error.captureStackTrace(this, this.constructor)\n // but it only exists on node and chrome\n }\n\n if ( Error ) NavigationDuplicated.__proto__ = Error;\n NavigationDuplicated.prototype = Object.create( Error && Error.prototype );\n NavigationDuplicated.prototype.constructor = NavigationDuplicated;\n\n return NavigationDuplicated;\n}(Error));\n\n// support IE9\nNavigationDuplicated._name = 'NavigationDuplicated';\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route = this.router.match(location, this.current);\n this.confirmTransition(\n route,\n function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n var abort = function (err) {\n // after merging https://github.com/vuejs/vue-router/pull/2771 we\n // When the user navigates through history through back/forward buttons\n // we do not want to throw the error. We only throw it if directly calling\n // push/replace. That's why it's not included in isError\n if (!isExtendedError(NavigationDuplicated, err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n route.matched.length === current.matched.length\n ) {\n this.ensureURL();\n return abort(new NavigationDuplicated(route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort()\n }\n try {\n hook(route, current, function (to) {\n if (to === false || isError(to)) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort();\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort()\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) {\n cb();\n });\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n var prev = this.current;\n this.current = route;\n this.cb && this.cb(route);\n this.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated,\n cbs,\n isValid\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n next(cb);\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (\n instances[key] &&\n !instances[key]._isBeingDestroyed // do not reuse being destroyed instance\n ) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n var this$1 = this;\n\n History.call(this, router, base);\n\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n var initLocation = getLocation(this.base);\n window.addEventListener('popstate', function (e) {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === initLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n });\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = decodeURI(window.location.pathname);\n if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n window.addEventListener(\n supportsPushState ? 'popstate' : 'hashchange',\n function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n }\n );\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n // decode the hash but not the search or hash\n // as search(query) is already decoded\n // https://github.com/vuejs/vue-router/issues/2708\n var searchIndex = href.indexOf('?');\n if (searchIndex < 0) {\n var hashIndex = href.indexOf('#');\n if (hashIndex > -1) {\n href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex);\n } else { href = decodeURI(href); }\n } else {\n href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex);\n }\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n },\n function (err) {\n if (isExtendedError(NavigationDuplicated, err)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (\n raw,\n current,\n redirectedFrom\n) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' && assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History) {\n history.transitionTo(history.getCurrentLocation());\n } else if (history instanceof HashHistory) {\n var setupHashListener = function () {\n history.setupListeners();\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupHashListener,\n setupHashListener\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply([], route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(\n to,\n current,\n append,\n this\n );\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.2.0';\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","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","import { __read, __spread } from \"tslib\";\nimport { logger } from '@sentry/utils';\n/**\n * Express integration\n *\n * Provides an request and error handler for Express framework as well as tracing capabilities\n */\nvar Express = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Express(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = Express.id;\n this._router = options.router || options.app;\n this._methods = (Array.isArray(options.methods) ? options.methods : []).concat('use');\n }\n /**\n * @inheritDoc\n */\n Express.prototype.setupOnce = function () {\n if (!this._router) {\n logger.error('ExpressIntegration is missing an Express instance');\n return;\n }\n instrumentMiddlewares(this._router, this._methods);\n };\n /**\n * @inheritDoc\n */\n Express.id = 'Express';\n return Express;\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 * They all internally delegate to the `router[method]` of the given application instance.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any\nfunction wrap(fn, method) {\n var arity = fn.length;\n switch (arity) {\n case 2: {\n return function (req, res) {\n var transaction = res.__sentry_transaction;\n if (transaction) {\n var span_1 = transaction.startChild({\n description: fn.name,\n op: \"express.middleware.\" + method,\n });\n res.once('finish', function () {\n span_1.finish();\n });\n }\n return fn.call(this, req, res);\n };\n }\n case 3: {\n return function (req, res, next) {\n var _a;\n var transaction = res.__sentry_transaction;\n var span = (_a = transaction) === null || _a === void 0 ? void 0 : _a.startChild({\n description: fn.name,\n op: \"express.middleware.\" + method,\n });\n fn.call(this, req, res, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n next.call.apply(next, __spread([this], args));\n });\n };\n }\n case 4: {\n return function (err, req, res, next) {\n var _a;\n var transaction = res.__sentry_transaction;\n var span = (_a = transaction) === null || _a === void 0 ? void 0 : _a.startChild({\n description: fn.name,\n op: \"express.middleware.\" + method,\n });\n fn.call(this, err, req, res, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n next.call.apply(next, __spread([this], args));\n });\n };\n }\n default: {\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` or `router` method, eg. `app.use` or `router.use`\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 */\nfunction wrapMiddlewareArgs(args, method) {\n return args.map(function (arg) {\n if (typeof arg === 'function') {\n return wrap(arg, method);\n }\n if (Array.isArray(arg)) {\n return arg.map(function (a) {\n if (typeof a === 'function') {\n return wrap(a, method);\n }\n return a;\n });\n }\n return arg;\n });\n}\n/**\n * Patches original router to utilize our tracing functionality\n */\nfunction patchMiddleware(router, method) {\n var originalCallback = router[method];\n router[method] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return originalCallback.call.apply(originalCallback, __spread([this], wrapMiddlewareArgs(args, method)));\n };\n return router;\n}\n/**\n * Patches original router methods\n */\nfunction instrumentMiddlewares(router, methods) {\n if (methods === void 0) { methods = []; }\n methods.forEach(function (method) { return patchMiddleware(router, method); });\n}\n//# sourceMappingURL=express.js.map","import { fill, isThenable, loadModule, logger } from '@sentry/utils';\n/** Tracing integration for node-postgres package */\nvar Postgres = /** @class */ (function () {\n function Postgres(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = Postgres.id;\n this._usePgNative = !!options.usePgNative;\n }\n /**\n * @inheritDoc\n */\n Postgres.prototype.setupOnce = function (_, getCurrentHub) {\n var _a;\n var pkg = loadModule('pg');\n if (!pkg) {\n logger.error('Postgres Integration was unable to require `pg` package.');\n return;\n }\n if (this._usePgNative && !((_a = pkg.native) === null || _a === void 0 ? void 0 : _a.Client)) {\n logger.error(\"Postgres Integration was unable to access 'pg-native' bindings.\");\n return;\n }\n var Client = (this._usePgNative ? pkg.native : pkg).Client;\n /**\n * function (query, callback) => void\n * function (query, params, callback) => void\n * function (query) => Promise\n * function (query, params) => Promise\n * function (pg.Cursor) => pg.Cursor\n */\n fill(Client.prototype, 'query', function (orig) {\n return function (config, values, callback) {\n var _a, _b, _c;\n var scope = getCurrentHub().getScope();\n var parentSpan = (_a = scope) === null || _a === void 0 ? void 0 : _a.getSpan();\n var span = (_b = parentSpan) === null || _b === void 0 ? void 0 : _b.startChild({\n description: typeof config === 'string' ? config : config.text,\n op: \"db\",\n });\n if (typeof callback === 'function') {\n return orig.call(this, config, values, function (err, result) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n callback(err, result);\n });\n }\n if (typeof values === 'function') {\n return orig.call(this, config, function (err, result) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n values(err, result);\n });\n }\n var rv = typeof values !== 'undefined' ? orig.call(this, config, values) : orig.call(this, config);\n if (isThenable(rv)) {\n return rv.then(function (res) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n return res;\n });\n }\n (_c = span) === null || _c === void 0 ? void 0 : _c.finish();\n return rv;\n };\n });\n };\n /**\n * @inheritDoc\n */\n Postgres.id = 'Postgres';\n return Postgres;\n}());\nexport { Postgres };\n//# sourceMappingURL=postgres.js.map","import { fill, loadModule, logger } from '@sentry/utils';\n/** Tracing integration for node-mysql package */\nvar Mysql = /** @class */ (function () {\n function Mysql() {\n /**\n * @inheritDoc\n */\n this.name = Mysql.id;\n }\n /**\n * @inheritDoc\n */\n Mysql.prototype.setupOnce = function (_, getCurrentHub) {\n var pkg = loadModule('mysql/lib/Connection.js');\n if (!pkg) {\n logger.error('Mysql Integration was unable to require `mysql` package.');\n return;\n }\n // The original function will have one of these signatures:\n // function (callback) => void\n // function (options, callback) => void\n // function (options, values, callback) => void\n fill(pkg, 'createQuery', function (orig) {\n return function (options, values, callback) {\n var _a, _b;\n var scope = getCurrentHub().getScope();\n var parentSpan = (_a = scope) === null || _a === void 0 ? void 0 : _a.getSpan();\n var span = (_b = parentSpan) === null || _b === void 0 ? void 0 : _b.startChild({\n description: typeof options === 'string' ? options : options.sql,\n op: \"db\",\n });\n if (typeof callback === 'function') {\n return orig.call(this, options, values, function (err, result, fields) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n callback(err, result, fields);\n });\n }\n if (typeof values === 'function') {\n return orig.call(this, options, function (err, result, fields) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n values(err, result, fields);\n });\n }\n return orig.call(this, options, values, callback);\n };\n });\n };\n /**\n * @inheritDoc\n */\n Mysql.id = 'Mysql';\n return Mysql;\n}());\nexport { Mysql };\n//# sourceMappingURL=mysql.js.map","import { __read, __spread } from \"tslib\";\nimport { fill, isThenable, loadModule, logger } from '@sentry/utils';\nvar OPERATIONS = [\n 'aggregate',\n 'bulkWrite',\n 'countDocuments',\n 'createIndex',\n 'createIndexes',\n 'deleteMany',\n 'deleteOne',\n 'distinct',\n 'drop',\n 'dropIndex',\n 'dropIndexes',\n 'estimatedDocumentCount',\n 'find',\n 'findOne',\n 'findOneAndDelete',\n 'findOneAndReplace',\n 'findOneAndUpdate',\n 'indexes',\n 'indexExists',\n 'indexInformation',\n 'initializeOrderedBulkOp',\n 'insertMany',\n 'insertOne',\n 'isCapped',\n 'mapReduce',\n 'options',\n 'parallelCollectionScan',\n 'rename',\n 'replaceOne',\n 'stats',\n 'updateMany',\n 'updateOne',\n];\n// All of the operations above take `options` and `callback` as their final parameters, but some of them\n// take additional parameters as well. For those operations, this is a map of\n// { : [] }, as a way to know what to call the operation's\n// positional arguments when we add them to the span's `data` object later\nvar OPERATION_SIGNATURES = {\n // aggregate intentionally not included because `pipeline` arguments are too complex to serialize well\n // see https://github.com/getsentry/sentry-javascript/pull/3102\n bulkWrite: ['operations'],\n countDocuments: ['query'],\n createIndex: ['fieldOrSpec'],\n createIndexes: ['indexSpecs'],\n deleteMany: ['filter'],\n deleteOne: ['filter'],\n distinct: ['key', 'query'],\n dropIndex: ['indexName'],\n find: ['query'],\n findOne: ['query'],\n findOneAndDelete: ['filter'],\n findOneAndReplace: ['filter', 'replacement'],\n findOneAndUpdate: ['filter', 'update'],\n indexExists: ['indexes'],\n insertMany: ['docs'],\n insertOne: ['doc'],\n mapReduce: ['map', 'reduce'],\n rename: ['newName'],\n replaceOne: ['filter', 'doc'],\n updateMany: ['filter', 'update'],\n updateOne: ['filter', 'update'],\n};\n/** Tracing integration for mongo package */\nvar Mongo = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Mongo(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = Mongo.id;\n this._operations = Array.isArray(options.operations)\n ? options.operations\n : OPERATIONS;\n this._describeOperations = 'describeOperations' in options ? options.describeOperations : true;\n this._useMongoose = !!options.useMongoose;\n }\n /**\n * @inheritDoc\n */\n Mongo.prototype.setupOnce = function (_, getCurrentHub) {\n var moduleName = this._useMongoose ? 'mongoose' : 'mongodb';\n var pkg = loadModule(moduleName);\n if (!pkg) {\n logger.error(\"Mongo Integration was unable to require `\" + moduleName + \"` package.\");\n return;\n }\n this._instrumentOperations(pkg.Collection, this._operations, getCurrentHub);\n };\n /**\n * Patches original collection methods\n */\n Mongo.prototype._instrumentOperations = function (collection, operations, getCurrentHub) {\n var _this = this;\n operations.forEach(function (operation) { return _this._patchOperation(collection, operation, getCurrentHub); });\n };\n /**\n * Patches original collection to utilize our tracing functionality\n */\n Mongo.prototype._patchOperation = function (collection, operation, getCurrentHub) {\n if (!(operation in collection.prototype))\n return;\n var getSpanContext = this._getSpanContextFromOperationArguments.bind(this);\n fill(collection.prototype, operation, function (orig) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a, _b, _c, _d;\n var lastArg = args[args.length - 1];\n var scope = getCurrentHub().getScope();\n var parentSpan = (_a = scope) === null || _a === void 0 ? void 0 : _a.getSpan();\n // Check if the operation was passed a callback. (mapReduce requires a different check, as\n // its (non-callback) arguments can also be functions.)\n if (typeof lastArg !== 'function' || (operation === 'mapReduce' && args.length === 2)) {\n var span_1 = (_b = parentSpan) === null || _b === void 0 ? void 0 : _b.startChild(getSpanContext(this, operation, args));\n var maybePromise = orig.call.apply(orig, __spread([this], args));\n if (isThenable(maybePromise)) {\n return maybePromise.then(function (res) {\n var _a;\n (_a = span_1) === null || _a === void 0 ? void 0 : _a.finish();\n return res;\n });\n }\n else {\n (_c = span_1) === null || _c === void 0 ? void 0 : _c.finish();\n return maybePromise;\n }\n }\n var span = (_d = parentSpan) === null || _d === void 0 ? void 0 : _d.startChild(getSpanContext(this, operation, args.slice(0, -1)));\n return orig.call.apply(orig, __spread([this], args.slice(0, -1), [function (err, result) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n lastArg(err, result);\n }]));\n };\n });\n };\n /**\n * Form a SpanContext based on the user input to a given operation.\n */\n Mongo.prototype._getSpanContextFromOperationArguments = function (collection, operation, args) {\n var data = {\n collectionName: collection.collectionName,\n dbName: collection.dbName,\n namespace: collection.namespace,\n };\n var spanContext = {\n op: \"db\",\n description: operation,\n data: data,\n };\n // If the operation takes no arguments besides `options` and `callback`, or if argument\n // collection is disabled for this operation, just return early.\n var signature = OPERATION_SIGNATURES[operation];\n var shouldDescribe = Array.isArray(this._describeOperations)\n ? this._describeOperations.includes(operation)\n : this._describeOperations;\n if (!signature || !shouldDescribe) {\n return spanContext;\n }\n try {\n // Special case for `mapReduce`, as the only one accepting functions as arguments.\n if (operation === 'mapReduce') {\n var _a = __read(args, 2), map = _a[0], reduce = _a[1];\n data[signature[0]] = typeof map === 'string' ? map : map.name || '';\n data[signature[1]] = typeof reduce === 'string' ? reduce : reduce.name || '';\n }\n else {\n for (var i = 0; i < signature.length; i++) {\n data[signature[i]] = JSON.stringify(args[i]);\n }\n }\n }\n catch (_oO) {\n // no-empty\n }\n return spanContext;\n };\n /**\n * @inheritDoc\n */\n Mongo.id = 'Mongo';\n return Mongo;\n}());\nexport { Mongo };\n//# sourceMappingURL=mongo.js.map","import { getGlobalObject, logger } from '@sentry/utils';\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from '../constants';\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 */\nexport function registerBackgroundTabDetection() {\n if (global && global.document) {\n global.document.addEventListener('visibilitychange', function () {\n var activeTransaction = getActiveTransaction();\n if (global.document.hidden && activeTransaction) {\n var statusType = 'cancelled';\n logger.log(\"[Tracing] Transaction: \" + statusType + \" -> since tab moved to the background, op: \" + activeTransaction.op);\n // 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 if (!activeTransaction.status) {\n activeTransaction.setStatus(statusType);\n }\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[2]);\n activeTransaction.finish();\n }\n });\n }\n else {\n logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n//# sourceMappingURL=backgroundtab.js.map","/*\n * Copyright 2020 Google LLC\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 * https://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 */\nexport var bindReporter = function (callback, metric, reportAllChanges) {\n var prevValue;\n return function (forceReport) {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n metric.delta = metric.value - (prevValue || 0);\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (metric.delta || prevValue === undefined) {\n prevValue = metric.value;\n callback(metric);\n }\n }\n }\n };\n};\n//# sourceMappingURL=bindReporter.js.map","/*\n * Copyright 2020 Google LLC\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 * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nexport var generateUniqueID = function () {\n return \"v2-\" + Date.now() + \"-\" + (Math.floor(Math.random() * (9e12 - 1)) + 1e12);\n};\n//# sourceMappingURL=generateUniqueID.js.map","/*\n * Copyright 2020 Google LLC\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 * https://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 */\nimport { generateUniqueID } from './generateUniqueID';\nexport var initMetric = function (name, value) {\n return {\n name: name,\n value: (value !== null && value !== void 0 ? value : -1),\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n };\n};\n//# sourceMappingURL=initMetric.js.map","/*\n * Copyright 2020 Google LLC\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 * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport var observe = function (type, callback) {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n // More extensive feature detect needed for Firefox due to:\n // https://github.com/GoogleChrome/web-vitals/issues/142\n if (type === 'first-input' && !('PerformanceEventTiming' in self)) {\n return;\n }\n var po = new PerformanceObserver(function (l) { return l.getEntries().map(callback); });\n po.observe({ type: type, buffered: true });\n return po;\n }\n }\n catch (e) {\n // Do nothing.\n }\n return;\n};\n//# sourceMappingURL=observe.js.map","/*\n * Copyright 2020 Google LLC\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 * https://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 */\nimport { getGlobalObject } from '@sentry/utils';\nexport var onHidden = function (cb, once) {\n var onHiddenOrPageHide = function (event) {\n if (event.type === 'pagehide' || getGlobalObject().document.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n};\n//# sourceMappingURL=onHidden.js.map","/*\n * Copyright 2020 Google LLC\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 * https://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 */\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nexport var getCLS = function (onReport, reportAllChanges) {\n var metric = initMetric('CLS', 0);\n var report;\n var sessionValue = 0;\n var sessionEntries = [];\n var entryHandler = function (entry) {\n // Only count layout shifts without recent user input.\n // TODO: Figure out why entry can be undefined\n if (entry && !entry.hadRecentInput) {\n var firstSessionEntry = sessionEntries[0];\n var lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n }\n else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n };\n var po = observe('layout-shift', entryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n onHidden(function () {\n po.takeRecords().map(entryHandler);\n report(true);\n });\n }\n};\n//# sourceMappingURL=getCLS.js.map","/*\n * Copyright 2020 Google LLC\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 * https://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 */\nimport { getGlobalObject } from '@sentry/utils';\nimport { onHidden } from './onHidden';\nvar firstHiddenTime = -1;\nvar initHiddenTime = function () {\n return getGlobalObject().document.visibilityState === 'hidden' ? 0 : Infinity;\n};\nvar trackChanges = function () {\n // Update the time if/when the document becomes hidden.\n onHidden(function (_a) {\n var timeStamp = _a.timeStamp;\n firstHiddenTime = timeStamp;\n }, true);\n};\nexport var getVisibilityWatcher = function () {\n if (firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n firstHiddenTime = initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n//# sourceMappingURL=getVisibilityWatcher.js.map","/*\n * Copyright 2020 Google LLC\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 * https://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 */\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nexport var getFID = function (onReport, reportAllChanges) {\n var visibilityWatcher = getVisibilityWatcher();\n var metric = initMetric('FID');\n var report;\n var entryHandler = function (entry) {\n // Only report if the page wasn't hidden prior to the first input.\n if (report && entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n var po = observe('first-input', entryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n onHidden(function () {\n po.takeRecords().map(entryHandler);\n po.disconnect();\n }, true);\n }\n};\n//# sourceMappingURL=getFID.js.map","/*\n * Copyright 2020 Google LLC\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 * https://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 */\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nvar reportedMetricIDs = {};\nexport var getLCP = function (onReport, reportAllChanges) {\n var visibilityWatcher = getVisibilityWatcher();\n var metric = initMetric('LCP');\n var report;\n var entryHandler = function (entry) {\n // The startTime attribute returns the value of the renderTime if it is not 0,\n // and the value of the loadTime otherwise.\n var value = entry.startTime;\n // If the page was hidden prior to paint time of the entry,\n // ignore it and mark the metric as final, otherwise add the entry.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries.push(entry);\n }\n if (report) {\n report();\n }\n };\n var po = observe('largest-contentful-paint', entryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n var stopListening_1 = function () {\n if (!reportedMetricIDs[metric.id]) {\n po.takeRecords().map(entryHandler);\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(function (type) {\n addEventListener(type, stopListening_1, { once: true, capture: true });\n });\n onHidden(stopListening_1, true);\n }\n};\n//# sourceMappingURL=getLCP.js.map","import { __assign, __rest } from \"tslib\";\nimport { browserPerformanceTimeOrigin, getGlobalObject, htmlTreeAsString, isNodeEnv, logger } from '@sentry/utils';\nimport { msToSec } from '../utils';\nimport { getCLS } from './web-vitals/getCLS';\nimport { getFID } from './web-vitals/getFID';\nimport { getLCP } from './web-vitals/getLCP';\nimport { getVisibilityWatcher } from './web-vitals/lib/getVisibilityWatcher';\nvar global = getGlobalObject();\n/** Class tracking metrics */\nvar MetricsInstrumentation = /** @class */ (function () {\n function MetricsInstrumentation(_reportAllChanges) {\n if (_reportAllChanges === void 0) { _reportAllChanges = false; }\n this._reportAllChanges = _reportAllChanges;\n this._measurements = {};\n this._performanceCursor = 0;\n if (!isNodeEnv() && global && global.performance && global.document) {\n if (global.performance.mark) {\n global.performance.mark('sentry-tracing-init');\n }\n this._trackCLS();\n this._trackLCP();\n this._trackFID();\n }\n }\n /** Add performance related spans to a transaction */\n MetricsInstrumentation.prototype.addPerformanceEntries = function (transaction) {\n var _this = this;\n if (!global || !global.performance || !global.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n logger.log('[Tracing] Adding & adjusting spans using Performance API');\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var responseStartTimestamp;\n var requestStartTimestamp;\n global.performance\n .getEntries()\n .slice(this._performanceCursor)\n .forEach(function (entry) {\n var startTime = msToSec(entry.startTime);\n var duration = msToSec(entry.duration);\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n switch (entry.entryType) {\n case 'navigation': {\n addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n var startTimestamp = addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n // capture web vitals\n var firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n var shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n if (entry.name === 'first-paint' && shouldRecord) {\n logger.log('[Measurements] Adding FP');\n _this._measurements['fp'] = { value: entry.startTime };\n _this._measurements['mark.fp'] = { value: startTimestamp };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n logger.log('[Measurements] Adding FCP');\n _this._measurements['fcp'] = { value: entry.startTime };\n _this._measurements['mark.fcp'] = { value: startTimestamp };\n }\n break;\n }\n case 'resource': {\n var resourceName = entry.name.replace(global.location.origin, '');\n addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n this._performanceCursor = Math.max(performance.getEntries().length - 1, 0);\n this._trackNavigator(transaction);\n // Measurements are only available for pageload transactions\n if (transaction.op === 'pageload') {\n // normalize applicable web vital values to be relative to transaction.startTimestamp\n var timeOrigin_1 = msToSec(browserPerformanceTimeOrigin);\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n logger.log('[Measurements] Adding TTFB');\n this._measurements['ttfb'] = { value: (responseStartTimestamp - transaction.startTimestamp) * 1000 };\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n this._measurements['ttfb.requestTime'] = { value: (responseStartTimestamp - requestStartTimestamp) * 1000 };\n }\n }\n ['fcp', 'fp', 'lcp'].forEach(function (name) {\n if (!_this._measurements[name] || timeOrigin_1 >= transaction.startTimestamp) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n var oldValue = _this._measurements[name].value;\n var measurementTimestamp = timeOrigin_1 + msToSec(oldValue);\n // normalizedValue should be in milliseconds\n var normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n var delta = normalizedValue - oldValue;\n logger.log(\"[Measurements] Normalized \" + name + \" from \" + oldValue + \" to \" + normalizedValue + \" (\" + delta + \")\");\n _this._measurements[name].value = normalizedValue;\n });\n if (this._measurements['mark.fid'] && this._measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: this._measurements['mark.fid'].value + msToSec(this._measurements['fid'].value),\n op: 'web.vitals',\n startTimestamp: this._measurements['mark.fid'].value,\n });\n }\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in this._measurements)) {\n delete this._measurements.cls;\n }\n transaction.setMeasurements(this._measurements);\n tagMetricInfo(transaction, this._lcpEntry, this._clsEntry);\n transaction.setTag('sentry_reportAllChanges', this._reportAllChanges);\n }\n };\n /**\n * Capture the information of the user agent.\n */\n MetricsInstrumentation.prototype._trackNavigator = function (transaction) {\n var navigator = global.navigator;\n if (!navigator) {\n return;\n }\n // track network connectivity\n var connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n if (connection.type) {\n transaction.setTag('connectionType', connection.type);\n }\n if (isMeasurementValue(connection.rtt)) {\n this._measurements['connection.rtt'] = { value: connection.rtt };\n }\n if (isMeasurementValue(connection.downlink)) {\n this._measurements['connection.downlink'] = { value: connection.downlink };\n }\n }\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', String(navigator.deviceMemory));\n }\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n };\n /** Starts tracking the Cumulative Layout Shift on the current page. */\n MetricsInstrumentation.prototype._trackCLS = function () {\n var _this = this;\n // See:\n // https://web.dev/evolving-cls/\n // https://web.dev/cls-web-tooling/\n getCLS(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n logger.log('[Measurements] Adding CLS');\n _this._measurements['cls'] = { value: metric.value };\n _this._clsEntry = entry;\n });\n };\n /** Starts tracking the Largest Contentful Paint on the current page. */\n MetricsInstrumentation.prototype._trackLCP = function () {\n var _this = this;\n getLCP(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var startTime = msToSec(entry.startTime);\n logger.log('[Measurements] Adding LCP');\n _this._measurements['lcp'] = { value: metric.value };\n _this._measurements['mark.lcp'] = { value: timeOrigin + startTime };\n _this._lcpEntry = entry;\n }, this._reportAllChanges);\n };\n /** Starts tracking the First Input Delay on the current page. */\n MetricsInstrumentation.prototype._trackFID = function () {\n var _this = this;\n getFID(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var startTime = msToSec(entry.startTime);\n logger.log('[Measurements] Adding FID');\n _this._measurements['fid'] = { value: metric.value };\n _this._measurements['mark.fid'] = { value: timeOrigin + startTime };\n });\n };\n return MetricsInstrumentation;\n}());\nexport { MetricsInstrumentation };\n/** Instrument navigation entries */\nfunction addNavigationSpans(transaction, entry, timeOrigin) {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(function (event) {\n addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n addRequest(transaction, entry, timeOrigin);\n}\n/** Create measure related spans */\nfunction addMeasureSpans(transaction, entry, startTime, duration, timeOrigin) {\n var measureStartTimestamp = timeOrigin + startTime;\n var measureEndTimestamp = measureStartTimestamp + duration;\n _startChild(transaction, {\n description: entry.name,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType,\n startTimestamp: measureStartTimestamp,\n });\n return measureStartTimestamp;\n}\n/** Create resource-related spans */\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;\n }\n var data = {};\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n var startTimestamp = timeOrigin + startTime;\n var endTimestamp = startTimestamp + duration;\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/** Create performance navigation related spans */\nfunction addPerformanceNavigationTiming(transaction, entry, event, timeOrigin, description, eventEnd) {\n var end = eventEnd ? entry[eventEnd] : entry[event + \"End\"];\n var start = entry[event + \"Start\"];\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n description: (description !== null && description !== void 0 ? description : event),\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n/** Create request and response related spans */\nfunction addRequest(transaction, entry, timeOrigin) {\n _startChild(transaction, {\n op: 'browser',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd),\n });\n _startChild(transaction, {\n op: 'browser',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd),\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 */\nexport function _startChild(transaction, _a) {\n var startTimestamp = _a.startTimestamp, ctx = __rest(_a, [\"startTimestamp\"]);\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n transaction.startTimestamp = startTimestamp;\n }\n return transaction.startChild(__assign({ startTimestamp: startTimestamp }, ctx));\n}\n/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value) {\n return typeof value === 'number' && isFinite(value);\n}\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction tagMetricInfo(transaction, lcpEntry, clsEntry) {\n if (lcpEntry) {\n logger.log('[Measurements] Adding LCP Data');\n // Capture Properties of the LCP element that contributes to the LCP.\n if (lcpEntry.element) {\n transaction.setTag('lcp.element', htmlTreeAsString(lcpEntry.element));\n }\n if (lcpEntry.id) {\n transaction.setTag('lcp.id', lcpEntry.id);\n }\n if (lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', lcpEntry.url.trim().slice(0, 200));\n }\n transaction.setTag('lcp.size', lcpEntry.size);\n }\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (clsEntry && clsEntry.sources) {\n logger.log('[Measurements] Adding CLS Data');\n clsEntry.sources.forEach(function (source, index) {\n return transaction.setTag(\"cls.source.\" + (index + 1), htmlTreeAsString(source.node));\n });\n }\n}\n//# sourceMappingURL=metrics.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { addInstrumentationHandler, isInstanceOf, isMatchingPattern } from '@sentry/utils';\nimport { getActiveTransaction, hasTracingEnabled } from '../utils';\nexport var DEFAULT_TRACING_ORIGINS = ['localhost', /^\\//];\nexport var defaultRequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n tracingOrigins: DEFAULT_TRACING_ORIGINS,\n};\n/** Registers span creators for xhr and fetch requests */\nexport function instrumentOutgoingRequests(_options) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = __assign(__assign({}, defaultRequestInstrumentationOptions), _options), traceFetch = _a.traceFetch, traceXHR = _a.traceXHR, tracingOrigins = _a.tracingOrigins, shouldCreateSpanForRequest = _a.shouldCreateSpanForRequest;\n // We should cache url -> decision so that we don't have to compute\n // regexp everytime we create a request.\n var urlMap = {};\n var defaultShouldCreateSpan = function (url) {\n if (urlMap[url]) {\n return urlMap[url];\n }\n var origins = tracingOrigins;\n urlMap[url] =\n origins.some(function (origin) { return isMatchingPattern(url, origin); }) &&\n !isMatchingPattern(url, 'sentry_key');\n return urlMap[url];\n };\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 var shouldCreateSpan = defaultShouldCreateSpan;\n if (typeof shouldCreateSpanForRequest === 'function') {\n shouldCreateSpan = function (url) {\n return defaultShouldCreateSpan(url) && shouldCreateSpanForRequest(url);\n };\n }\n var spans = {};\n if (traceFetch) {\n addInstrumentationHandler('fetch', function (handlerData) {\n fetchCallback(handlerData, shouldCreateSpan, spans);\n });\n }\n if (traceXHR) {\n addInstrumentationHandler('xhr', function (handlerData) {\n xhrCallback(handlerData, shouldCreateSpan, spans);\n });\n }\n}\n/**\n * Create and track fetch request spans\n */\nexport function fetchCallback(handlerData, shouldCreateSpan, spans) {\n if (!hasTracingEnabled() || !(handlerData.fetchData && shouldCreateSpan(handlerData.fetchData.url))) {\n return;\n }\n if (handlerData.endTimestamp) {\n var spanId = handlerData.fetchData.__span;\n if (!spanId)\n return;\n var span = spans[spanId];\n if (span) {\n if (handlerData.response) {\n // TODO (kmclb) remove this once types PR goes through\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n span.setHttpStatus(handlerData.response.status);\n }\n else if (handlerData.error) {\n span.setStatus('internal_error');\n }\n span.finish();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return;\n }\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: __assign(__assign({}, handlerData.fetchData), { type: 'fetch' }),\n description: handlerData.fetchData.method + \" \" + handlerData.fetchData.url,\n op: 'http.client',\n });\n handlerData.fetchData.__span = span.spanId;\n spans[span.spanId] = span;\n var request = (handlerData.args[0] = handlerData.args[0]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var options = (handlerData.args[1] = handlerData.args[1] || {});\n var headers = options.headers;\n if (isInstanceOf(request, Request)) {\n headers = request.headers;\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 }\n else if (Array.isArray(headers)) {\n headers = __spread(headers, [['sentry-trace', span.toTraceparent()]]);\n }\n else {\n headers = __assign(__assign({}, headers), { 'sentry-trace': span.toTraceparent() });\n }\n }\n else {\n headers = { 'sentry-trace': span.toTraceparent() };\n }\n options.headers = headers;\n }\n}\n/**\n * Create and track xhr request spans\n */\nexport function xhrCallback(handlerData, shouldCreateSpan, spans) {\n if (!hasTracingEnabled() ||\n (handlerData.xhr && handlerData.xhr.__sentry_own_request__) ||\n !(handlerData.xhr && handlerData.xhr.__sentry_xhr__ && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url))) {\n return;\n }\n var xhr = handlerData.xhr.__sentry_xhr__;\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp) {\n var spanId = handlerData.xhr.__sentry_xhr_span_id__;\n if (!spanId)\n return;\n var span = spans[spanId];\n if (span) {\n span.setHttpStatus(xhr.status_code);\n span.finish();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return;\n }\n // if not, create a new span to track it\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: __assign(__assign({}, xhr.data), { type: 'xhr', method: xhr.method, url: xhr.url }),\n description: xhr.method + \" \" + xhr.url,\n op: 'http.client',\n });\n handlerData.xhr.__sentry_xhr_span_id__ = span.spanId;\n spans[handlerData.xhr.__sentry_xhr_span_id__] = span;\n if (handlerData.xhr.setRequestHeader) {\n try {\n handlerData.xhr.setRequestHeader('sentry-trace', span.toTraceparent());\n }\n catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n }\n }\n}\n//# sourceMappingURL=request.js.map","import { addInstrumentationHandler, getGlobalObject, logger } from '@sentry/utils';\nvar global = getGlobalObject();\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults(customStartTransaction, startTransactionOnPageLoad, startTransactionOnLocationChange) {\n if (startTransactionOnPageLoad === void 0) { startTransactionOnPageLoad = true; }\n if (startTransactionOnLocationChange === void 0) { startTransactionOnLocationChange = true; }\n if (!global || !global.location) {\n logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n var startingUrl = global.location.href;\n var activeTransaction;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'pageload' });\n }\n if (startTransactionOnLocationChange) {\n addInstrumentationHandler('history', function (_a) {\n var to = _a.to, 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 if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n logger.log(\"[Tracing] Finishing current transaction with op: \" + activeTransaction.op);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.finish();\n }\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'navigation' });\n }\n });\n }\n}\n//# sourceMappingURL=router.js.map","import { __assign } from \"tslib\";\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { startIdleTransaction } from '../hubextensions';\nimport { DEFAULT_IDLE_TIMEOUT } from '../idletransaction';\nimport { extractTraceparentData, secToMs } from '../utils';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { MetricsInstrumentation } from './metrics';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests, } from './request';\nimport { instrumentRoutingWithDefaults } from './router';\nexport var DEFAULT_MAX_TRANSACTION_DURATION_SECONDS = 600;\nvar DEFAULT_BROWSER_TRACING_OPTIONS = __assign({ idleTimeout: DEFAULT_IDLE_TIMEOUT, markBackgroundTransactions: true, maxTransactionDuration: DEFAULT_MAX_TRANSACTION_DURATION_SECONDS, routingInstrumentation: instrumentRoutingWithDefaults, startTransactionOnLocationChange: true, startTransactionOnPageLoad: true }, defaultRequestInstrumentationOptions);\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 */\nvar BrowserTracing = /** @class */ (function () {\n function BrowserTracing(_options) {\n /**\n * @inheritDoc\n */\n this.name = BrowserTracing.id;\n this._emitOptionsWarning = false;\n /** Store configured idle timeout so that it can be added as a tag to transactions */\n this._configuredIdleTimeout = undefined;\n var tracingOrigins = defaultRequestInstrumentationOptions.tracingOrigins;\n // NOTE: Logger doesn't work in constructors, as it's initialized after integrations instances\n if (_options) {\n this._configuredIdleTimeout = _options.idleTimeout;\n if (_options.tracingOrigins && Array.isArray(_options.tracingOrigins) && _options.tracingOrigins.length !== 0) {\n tracingOrigins = _options.tracingOrigins;\n }\n else {\n this._emitOptionsWarning = true;\n }\n }\n this.options = __assign(__assign(__assign({}, DEFAULT_BROWSER_TRACING_OPTIONS), _options), { tracingOrigins: tracingOrigins });\n var _metricOptions = this.options._metricOptions;\n this._metrics = new MetricsInstrumentation(_metricOptions && _metricOptions._reportAllChanges);\n }\n /**\n * @inheritDoc\n */\n BrowserTracing.prototype.setupOnce = function (_, getCurrentHub) {\n var _this = this;\n this._getCurrentHub = getCurrentHub;\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: \" + defaultRequestInstrumentationOptions.tracingOrigins);\n }\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.options, instrumentRouting = _a.routingInstrumentation, startTransactionOnLocationChange = _a.startTransactionOnLocationChange, startTransactionOnPageLoad = _a.startTransactionOnPageLoad, markBackgroundTransactions = _a.markBackgroundTransactions, traceFetch = _a.traceFetch, traceXHR = _a.traceXHR, tracingOrigins = _a.tracingOrigins, shouldCreateSpanForRequest = _a.shouldCreateSpanForRequest;\n instrumentRouting(function (context) { return _this._createRouteTransaction(context); }, startTransactionOnPageLoad, startTransactionOnLocationChange);\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n instrumentOutgoingRequests({ traceFetch: traceFetch, traceXHR: traceXHR, tracingOrigins: tracingOrigins, shouldCreateSpanForRequest: shouldCreateSpanForRequest });\n };\n /** Create routing idle transaction. */\n BrowserTracing.prototype._createRouteTransaction = function (context) {\n var _this = this;\n if (!this._getCurrentHub) {\n logger.warn(\"[Tracing] Did not create \" + context.op + \" transaction because _getCurrentHub is invalid.\");\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.options, beforeNavigate = _a.beforeNavigate, idleTimeout = _a.idleTimeout, maxTransactionDuration = _a.maxTransactionDuration;\n var parentContextFromHeader = context.op === 'pageload' ? getHeaderContext() : undefined;\n var expandedContext = __assign(__assign(__assign({}, context), parentContextFromHeader), { trimEnd: true });\n var modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n var finalContext = modifiedContext === undefined ? __assign(__assign({}, expandedContext), { sampled: false }) : modifiedContext;\n if (finalContext.sampled === false) {\n logger.log(\"[Tracing] Will not send \" + finalContext.op + \" transaction because of beforeNavigate.\");\n }\n logger.log(\"[Tracing] Starting \" + finalContext.op + \" transaction on scope\");\n var hub = this._getCurrentHub();\n var location = getGlobalObject().location;\n var idleTransaction = startIdleTransaction(hub, finalContext, idleTimeout, true, { location: location });\n idleTransaction.registerBeforeFinishCallback(function (transaction, endTimestamp) {\n _this._metrics.addPerformanceEntries(transaction);\n adjustTransactionDuration(secToMs(maxTransactionDuration), transaction, endTimestamp);\n });\n idleTransaction.setTag('idleTimeout', this._configuredIdleTimeout);\n return idleTransaction;\n };\n /**\n * @inheritDoc\n */\n BrowserTracing.id = 'BrowserTracing';\n return BrowserTracing;\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 */\nexport function getHeaderContext() {\n var header = getMetaContent('sentry-trace');\n if (header) {\n return extractTraceparentData(header);\n }\n return undefined;\n}\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName) {\n var el = getGlobalObject().document.querySelector(\"meta[name=\" + metaName + \"]\");\n return el ? el.getAttribute('content') : null;\n}\n/** Adjusts transaction value based on max transaction duration */\nfunction adjustTransactionDuration(maxDuration, transaction, endTimestamp) {\n var diff = endTimestamp - transaction.startTimestamp;\n var isOutdatedTransaction = endTimestamp && (diff > maxDuration || diff < 0);\n if (isOutdatedTransaction) {\n transaction.setStatus('deadline_exceeded');\n transaction.setTag('maxTransactionDurationExceeded', 'true');\n }\n}\n//# sourceMappingURL=browsertracing.js.map","import { addExtensionMethods } from './hubextensions';\nimport * as Integrations from './integrations';\nexport { Integrations };\n// This is already exported as part of `Integrations` above (and for the moment will remain so for\n// backwards compatibility), but that interferes with treeshaking, so we also export it separately\n// here.\n//\n// Previously we expected users to import tracing integrations like\n//\n// import { Integrations } from '@sentry/tracing';\n// const instance = new Integrations.BrowserTracing();\n//\n// This makes the integrations unable to be treeshaken though. To address this, we now have\n// this individual export. We now expect users to consume BrowserTracing like so:\n//\n// import { BrowserTracing } from '@sentry/tracing';\n// const instance = new BrowserTracing();\n//\n// For an example of of the new usage of BrowserTracing, see @sentry/nextjs index.client.ts\nexport { BrowserTracing } from './browser';\nexport { Span, spanStatusfromHttpCode } from './span';\nexport { Transaction } from './transaction';\nexport { \n// TODO deprecate old name in v7\ninstrumentOutgoingRequests as registerRequestInstrumentation, defaultRequestInstrumentationOptions, } from './browser';\nexport { IdleTransaction } from './idletransaction';\nexport { startIdleTransaction } from './hubextensions';\n// We are patching the global object with our hub extension methods\naddExtensionMethods();\nexport { addExtensionMethods };\nexport { extractTraceparentData, getActiveTransaction, hasTracingEnabled, stripUrlQueryAndFragment, TRACEPARENT_REGEXP, } from './utils';\n//# sourceMappingURL=index.js.map","// 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","import { createNamespace } from '../utils';\nimport { CheckboxMixin } from '../mixins/checkbox';\n\nvar _createNamespace = createNamespace('checkbox'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [CheckboxMixin({\n bem: bem,\n role: 'checkbox',\n parent: 'vanCheckbox'\n })],\n computed: {\n checked: {\n get: function get() {\n if (this.parent) {\n return this.parent.value.indexOf(this.name) !== -1;\n }\n\n return this.value;\n },\n set: function set(val) {\n if (this.parent) {\n this.setParentValue(val);\n } else {\n this.$emit('input', val);\n }\n }\n }\n },\n watch: {\n value: function value(val) {\n this.$emit('change', val);\n }\n },\n methods: {\n // @exposed-api\n toggle: function toggle(checked) {\n var _this = this;\n\n if (checked === void 0) {\n checked = !this.checked;\n }\n\n // When toggle method is called multiple times at the same time,\n // only the last call is valid.\n // This is a hack for usage inside Cell.\n clearTimeout(this.toggleTask);\n this.toggleTask = setTimeout(function () {\n _this.checked = checked;\n });\n },\n setParentValue: function setParentValue(val) {\n var parent = this.parent;\n var value = parent.value.slice();\n\n if (val) {\n if (parent.max && value.length >= parent.max) {\n return;\n }\n /* istanbul ignore else */\n\n\n if (value.indexOf(this.name) === -1) {\n value.push(this.name);\n parent.$emit('input', value);\n }\n } else {\n var index = value.indexOf(this.name);\n /* istanbul ignore else */\n\n if (index !== -1) {\n value.splice(index, 1);\n parent.$emit('input', value);\n }\n }\n }\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","var SDK_VERSION = '7.14.2';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString;\n\n/** Patch toString calls to return proper name for wrapped functions */\nclass FunctionToString {constructor() { FunctionToString.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'FunctionToString';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = FunctionToString.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function ( ...args) {\n var context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n} FunctionToString.__initStatic();\n\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map\n","import { logger, getEventDescription, isMatchingPattern } from '@sentry/utils';\n\n// \"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.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\n\n/** Inbound filters configurable by the user */\nclass InboundFilters {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'InboundFilters';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = InboundFilters.id;}\n\n constructor( _options = {}) {;this._options = _options;InboundFilters.prototype.__init.call(this);}\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcess = (event) => {\n var hub = getCurrentHub();\n if (hub) {\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n var options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n };\n\n eventProcess.id = this.name;\n addGlobalEventProcessor(eventProcess);\n }\n} InboundFilters.__initStatic();\n\n/** JSDoc */\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message =>\n ignoreErrors.some(pattern => isMatchingPattern(message, pattern)),\n );\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n var url = _getEventFilterUrl(event);\n return !url ? false : denyUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n var url = _getEventFilterUrl(event);\n return !url ? true : allowUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _getPossibleEventMessages(event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nexport { InboundFilters, _mergeOptions, _shouldDropEvent };\n//# sourceMappingURL=inboundfilters.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { arrayify, logger } from '@sentry/utils';\n\nvar installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preseve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations) {\n var integrationsByName = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n var existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nfunction getIntegrationsToSetup(options) {\n var defaultIntegrations = options.defaultIntegrations || [];\n var userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations;\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n var finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend`. It therefore\n // has to run after all other integrations, so that the changes of all event processors will be reflected in the\n // printed values. For lack of a more elegant way to guarantee that, we therefore locate it and, assuming it exists,\n // pop it out of its current spot and shove it onto the end of the array.\n var debugIndex = finalIntegrations.findIndex(integration => integration.name === 'Debug');\n if (debugIndex !== -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1);\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\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 */\nfunction setupIntegrations(integrations) {\n var integrationIndex = {};\n\n integrations.forEach(integration => {\n integrationIndex[integration.name] = integration;\n\n if (installedIntegrations.indexOf(integration.name) === -1) {\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Integration installed: ${integration.name}`);\n }\n });\n\n return integrationIndex;\n}\n\nexport { getIntegrationsToSetup, installedIntegrations, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n\n/** A class object that can instantiate Client objects. */\n\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 instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n var hub = getCurrentHub();\n var scope = hub.getScope();\n if (scope) {\n scope.update(options.initialScope);\n }\n\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n\nexport { initAndBind };\n//# sourceMappingURL=sdk.js.map\n","/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n\n constructor( message, logLevel = 'warn') {\n super(message);this.message = message;;\n\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n","import { SentryError } from './error.js';\n\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\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 */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents\n */\nfunction dsnFromString(str) {\n var match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n var split = projectId.split('/');\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 if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n var requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nfunction makeDsn(from) {\n var components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n validateDsn(components);\n return components;\n}\n\nexport { dsnFromString, dsnToString, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","import { urlEncode, makeDsn, dsnToString } from '@sentry/utils';\n\nvar SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\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\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\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 */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(\n dsn,\n // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below\n // options: ClientOptions = {} as ClientOptions,\n tunnelOrOptions = {} ,\n) {\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n\n var tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n var sdkInfo =\n typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;\n\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n var dsn = makeDsn(dsnLike);\n var endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n var user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","import { getGlobalObject } from './global.js';\nimport { logger } from './logger.js';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction 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/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\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\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\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 */\nfunction supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n\n var global = getGlobalObject();\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n\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 let result = false;\n var doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\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 if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\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/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\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/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction 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 var chrome = (global ).chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { isNativeFetch, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsHistory, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n","import { getGlobalObject } from './global.js';\nimport { isInstanceOf, isString } from './is.js';\nimport { logger, CONSOLE_LEVELS } from './logger.js';\nimport { fill } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\nimport { supportsNativeFetch, supportsHistory } from './supports.js';\n\nvar global = getGlobalObject();\n\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\n/** Instruments given API */\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 case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('unknown instrumentation type:', type);\n return;\n }\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 */\nfunction addInstrumentationHandler(type, callback) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (var handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleMethod) {\n return function (...args) {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(global.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch) {\n return function (...args) {\n var handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(\n (response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\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 throw error;\n },\n );\n };\n });\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs = []) {\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs = []) {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n\n var xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen) {\n return function ( ...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var url = args[1];\n var xhrInfo = (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 });\n\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 if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function (...readyStateArgs) {\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\n fill(xhrproto, 'send', function (originalSend) {\n return function ( ...args) {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref;\n\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function ( ...args) {\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\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\nvar debounceDuration = 1000;\nlet debounceTimerID;\nlet lastCapturedEvent;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n var target = event.target ;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener = false) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n var name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = (global )[target] && (global )[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this ;\n var handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this ;\n var handlers = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n 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\nlet _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\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}\n\nexport { addInstrumentationHandler };\n//# sourceMappingURL=instrument.js.map\n","import { normalize } from './normalize.js';\nimport { dropUndefinedKeys } from './object.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n var envelopeItems = envelope[1];\n envelopeItems.forEach((envelopeItem) => {\n var envelopeItemType = envelopeItem[0].type;\n callback(envelopeItem, envelopeItemType);\n });\n}\n\nfunction encodeUTF8(input, textEncoder) {\n var utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope, textEncoder) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (var item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n var totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n var merged = new Uint8Array(totalLength);\n let offset = 0;\n for (var buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(\n attachment,\n textEncoder,\n) {\n var buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nvar ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, envelopeItemTypeToDataCategory, forEachEnvelopeItem, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { dsnToString, createEnvelope, dropUndefinedKeys } from '@sentry/utils';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(metadata) {\n if (!metadata || !metadata.sdk) {\n return;\n }\n const { name, version } = metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n var envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n };\n\n var envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n var eventType = event.type || 'event';\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n var envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n var eventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n var dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n ...(event.type === 'transaction' &&\n dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n\nexport { createEventEnvelope, createSessionEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { updateSession, Scope } from '@sentry/hub';\nimport { makeDsn, logger, checkOrSetAlreadyCaught, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, uuid4, dateTimestampInSeconds, normalize, truncate, rejectedSyncPromise, SentryError, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegrations } from './integration.js';\n\n/* eslint-disable max-lines */\n\nvar ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\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, 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(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n\n /** Array of set up integrations. */\n __init() {this._integrations = {};}\n\n /** Indicates whether this client's integrations have been set up. */\n __init2() {this._integrationsInitialized = false;}\n\n /** Number of calls being processed */\n __init3() {this._numProcessing = 0;}\n\n /** Holds flushable */\n __init4() {this._outcomes = {};}\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {;BaseClient.prototype.__init.call(this);BaseClient.prototype.__init2.call(this);BaseClient.prototype.__init3.call(this);BaseClient.prototype.__init4.call(this);\n this._options = options;\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('No DSN provided, client will not do anything.');\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n captureException(exception, hint, scope) {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level,\n hint,\n scope,\n ) {\n let eventId = hint && hint.event_id;\n\n var promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(String(message), level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!this._isEnabled()) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n var transport = this._transport;\n if (transport) {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n setupIntegrations() {\n if (this._isEnabled() && !this._integrationsInitialized) {\n this._integrations = setupIntegrations(this._options.integrations);\n this._integrationsInitialized = true;\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n */\n getIntegrationById(integrationId) {\n return this._integrations[integrationId];\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n try {\n return (this._integrations[integration.id] ) || null;\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n if (this._dsn) {\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (var attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n if (this._dsn) {\n var env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category) {\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n var key = `${reason}:${category}`;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Adding outcome: \"${key}\"`);\n\n // The following works because undefined + 1 === NaN and NaN is falsy\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n var exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (var ex of exceptions) {\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n var sessionNonTerminal = session.status === 'ok';\n var shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n var tick = 1;\n\n var interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\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 _prepareEvent(event, hint, scope) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = this.getOptions();\n var prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // 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 let finalScope = scope;\n if (hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // Collect attachments from the hint and scope\n var attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];\n\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\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 _normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n var normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\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 if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable\n if (span.data) {\n span.data = normalize(span.data, depth, maxBreadth);\n }\n return span;\n });\n }\n\n return normalized;\n }\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 _applyClientOptions(event) {\n var options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\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 if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n _applyIntegrationsMetadata(event) {\n var integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n var sentryError = reason ;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\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 _processEvent(event, hint, scope) {\n const { beforeSend, sampleRate } = this.getOptions();\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.', 'log'));\n }\n\n var isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error');\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n return this._prepareEvent(event, hint, scope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', event.type || 'error');\n throw new SentryError('An event processor returned null, will not send event.', 'log');\n }\n\n var isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n var beforeSendResult = beforeSend(prepared, hint);\n return _ensureBeforeSendRv(beforeSendResult);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', event.type || 'error');\n throw new SentryError('`beforeSend` returned `null`, will not send event.', 'log');\n }\n\n var session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n var transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n var source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n changes: [\n ...transactionInfo.changes,\n {\n source,\n // use the same timestamp as the processed event.\n timestamp: processedEvent.timestamp ,\n propagations: transactionInfo.propagations,\n },\n ],\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason ,\n });\n throw new SentryError(\n `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 /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing += 1;\n void promise.then(\n value => {\n this._numProcessing -= 1;\n return value;\n },\n reason => {\n this._numProcessing -= 1;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n _sendEnvelope(envelope) {\n if (this._transport && this._dsn) {\n this._transport.send(envelope).then(null, reason => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Error while sending event:', reason);\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n var outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\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\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv) {\n var nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(\n event => {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n },\n e => {\n throw new SentryError(`beforeSend rejected with ${e}`);\n },\n );\n } else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n var clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { isEvent, extractExceptionKeysForMessage, normalizeToSize, addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n var frames = parseStackFrames(stackParser, ex);\n\n var exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n var hub = getCurrentHub();\n var client = hub.getClient();\n var normalizeDepth = client && client.getOptions().normalizeDepth;\n\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n },\n };\n\n if (syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception ).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\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 var stacktrace = ex.stacktrace || ex.stack || '';\n\n var popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex) {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\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 */\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n // eslint-disable-next-line deprecation/deprecation\n level = 'info',\n hint,\n attachStacktrace,\n) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let 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 ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception ) || isDOMException(exception )) {\n var domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n var name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n var objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\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 event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromString(\n stackParser,\n input,\n syntheticException,\n attachStacktrace,\n) {\n var event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: input, stacktrace: { frames } }],\n };\n }\n }\n\n return event;\n}\n\nexport { eventFromError, eventFromException, eventFromMessage, eventFromPlainObject, eventFromString, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nvar validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nfunction severityFromString(level) {\n return severityLevelFromString(level) ;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityFromString, severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\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 */\nfunction parseUrl(url)\n\n {\n if (!url) {\n return {};\n }\n\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n 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, // everything minus origin\n };\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 */\nfunction stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nfunction getNumberOfUrlSegments(url) {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\nexport { getNumberOfUrlSegments, parseUrl, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, htmlTreeAsString, severityLevelFromString, safeJoin, getGlobalObject, parseUrl } from '@sentry/utils';\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\n\nvar BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nclass Breadcrumbs {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = BREADCRUMB_INTEGRATION_ID;}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Breadcrumbs.id;}\n\n /**\n * Options of the breadcrumbs integration.\n */\n // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n\n /**\n * @inheritDoc\n */\n constructor(options) {;Breadcrumbs.prototype.__init.call(this);\n this.options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\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 setupOnce() {\n if (this.options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this.options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n }\n if (this.options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this.options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this.options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n} Breadcrumbs.__initStatic();\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _domBreadcrumb(dom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _innerDomBreadcrumb(handlerData) {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target , keyAttrs)\n : htmlTreeAsString(handlerData.event , keyAttrs);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _consoleBreadcrumb(handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(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/**\n * Creates breadcrumbs from XHR API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _xhrBreadcrumb(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 const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _fetchBreadcrumb(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 {\n category: 'fetch',\n data: handlerData.fetchData,\n level: 'error',\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _historyBreadcrumb(handlerData) {\n var global = getGlobalObject();\n let from = handlerData.from;\n let to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n let parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\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 if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\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,\n to,\n },\n });\n}\n\nexport { BREADCRUMB_INTEGRATION_ID, Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { BaseClient, SDK_VERSION, getCurrentHub, getEnvelopeEndpointWithUrlEncodedAuth } from '@sentry/core';\nimport { getGlobalObject, getEventDescription, logger, createClientReportEnvelope, dsnToString, serializeEnvelope } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs.js';\n\nvar globalObject = getGlobalObject();\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(options);\n\n if (options.sendClientReports && globalObject.document) {\n globalObject.document.addEventListener('visibilitychange', () => {\n if (globalObject.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint) {\n // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n // activated its `sentry` option.\n // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n // bundles, if it is not used by the SDK.\n // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n // way for now.\n var breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID) ;\n if (\n breadcrumbIntegration &&\n // We check for definedness of `options`, even though it is not strictly necessary, because that access to\n // `.sentry` below does not throw, in case users provided their own integration with id \"Breadcrumbs\" that does\n // not have an`options` field\n breadcrumbIntegration.options &&\n breadcrumbIntegration.options.sentry\n ) {\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n super.sendEvent(event, hint);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n var outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No outcomes to send');\n return;\n }\n\n if (!this._dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Sending outcomes:', outcomes);\n\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options);\n var envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n try {\n var global = getGlobalObject();\n var isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n var hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n // Make sure beacon is not used if user configures custom transport options\n if (hasSendBeacon && !this._options.transportOptions) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n var sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n sendBeacon(url, serializeEnvelope(envelope));\n } else {\n // If beacon is not supported or if they are using the tunnel option\n // use our regular transport to send client reports to Sentry.\n this._sendEnvelope(envelope);\n }\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(e);\n }\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n","import { withScope, captureException } from '@sentry/core';\nimport { getOriginalFunction, addExceptionTypeValue, addExceptionMechanism, markFunctionWrapped, addNonEnumerableProperty } from '@sentry/utils';\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\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. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n var wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\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\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n var wrappedArguments = args.map((arg) => wrap(arg, options));\n\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 return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope) => {\n scope.addEventProcessor((event) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\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 // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\n\nexport { ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","import { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n\nvar OPERA10_PRIORITY = 10;\nvar OPERA11_PRIORITY = 20;\nvar CHROME_PRIORITY = 30;\nvar WINJS_PRIORITY = 40;\nvar GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n var frame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chromeRegex =\n /^\\s*at (?:(.*\\).*?|.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nvar chrome = line => {\n var parts = chromeRegex.exec(line);\n\n if (parts) {\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n var subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nvar chromeStackLineParser = [CHROME_PRIORITY, chrome];\n\n// 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.\nvar geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nvar gecko = line => {\n var parts = geckoREgex.exec(line);\n\n if (parts) {\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n var subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\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 }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nvar geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nvar winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nvar winjs = line => {\n var parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nvar winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nvar opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nvar opera10 = line => {\n var parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nvar opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nvar opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nvar opera11 = line => {\n var parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nvar opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nvar defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nvar defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nvar extractSafariExtensionDetails = (func, filename) => {\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n","import { getGlobalObject, fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { wrap } from '../helpers.js';\n\nvar DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nclass TryCatch {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'TryCatch';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = TryCatch.id;}\n\n /** JSDoc */\n\n /**\n * @inheritDoc\n */\n constructor(options) {;TryCatch.prototype.__init.call(this);\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n setupOnce() {\n var global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n var eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n var eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n} TryCatch.__initStatic();\n\n/** JSDoc */\nfunction _wrapTimeFunction(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(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.apply(this, [\n 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}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(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 };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n var originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var global = getGlobalObject() ;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original)\n\n {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // 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,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\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 var wrappedEventHandler = fn ;\n try {\n var originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, isString, isPrimitive, isErrorEvent, getLocationHref, logger, addExceptionMechanism } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** Global handlers */\nclass GlobalHandlers {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'GlobalHandlers';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = GlobalHandlers.id;}\n\n /** JSDoc */\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n __init2() {this._installFunc = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };}\n\n /** JSDoc */\n constructor(options) {;GlobalHandlers.prototype.__init.call(this);GlobalHandlers.prototype.__init2.call(this);\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n setupOnce() {\n Error.stackTraceLimit = 50;\n var options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (var key in options) {\n var installFunc = this._installFunc[key ];\n if (installFunc && options[key ]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key ] = undefined;\n }\n }\n }\n} GlobalHandlers.__initStatic();\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler() {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n var event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler() {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\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 }\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) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n var event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\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\nfunction _eventFromIncompleteOnError(msg, url, line, column) {\n var ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n var event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n var e = (event.exception = event.exception || {});\n // event.exception.values\n var ev = (e.values = e.values || []);\n // event.exception.values[0]\n var ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n var ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n var ev0sf = (ev0s.frames = ev0s.frames || []);\n\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 // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub, error, event, type) {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndOptions() {\n var hub = getCurrentHub();\n var client = hub.getClient();\n var options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map\n","import { getCurrentHub, addGlobalEventProcessor } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nclass LinkedErrors {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'LinkedErrors';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = LinkedErrors.id;}\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n constructor(options = {}) {;LinkedErrors.prototype.__init.call(this);\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n var client = getCurrentHub().getClient();\n if (!client) {\n return;\n }\n addGlobalEventProcessor((event, hint) => {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n });\n }\n} LinkedErrors.__initStatic();\n\n/**\n * @inheritDoc\n */\nfunction _handler(\n parser,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = _walkErrorTree(parser, limit, hint.originalException , key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nfunction _walkErrorTree(\n parser,\n limit,\n error,\n key,\n stack = [],\n) {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n var exception = exceptionFromError(parser, error[key]);\n return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);\n}\n\nexport { LinkedErrors, _handler, _walkErrorTree };\n//# sourceMappingURL=linkederrors.js.map\n","import { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nclass Dedupe {constructor() { Dedupe.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Dedupe';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Dedupe.id;}\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcessor = currentEvent => {\n var self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n };\n\n eventProcessor.id = this.name;\n addGlobalEventProcessor(eventProcessor);\n }\n} Dedupe.__initStatic();\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n var currentMessage = currentEvent.message;\n var previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n var previousException = _getExceptionFromEvent(previousEvent);\n var currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n var frameA = previousFrames[i];\n var frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event) {\n var exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\n\nvar global = getGlobalObject();\n\n/** HttpContext integration collects information about HTTP request headers */\nclass HttpContext {constructor() { HttpContext.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'HttpContext';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = HttpContext.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n addGlobalEventProcessor((event) => {\n if (getCurrentHub().getIntegration(HttpContext)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n var url = (event.request && event.request.url) || (global.location && global.location.href);\n const { referrer } = global.document || {};\n const { userAgent } = global.navigator || {};\n\n var headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n var request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n} HttpContext.__initStatic();\n\nexport { HttpContext };\n//# sourceMappingURL=httpcontext.js.map\n","import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n var buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n var task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n var capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n // eslint-disable-next-line no-plusplus\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n\nexport { makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n","// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nvar DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n var headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n var headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nfunction disabledUntil(limits, category) {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, category, now = Date.now()) {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n var updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n var rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n var retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (var limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories] = limit.split(':', 2);\n var headerDelay = parseInt(retryAfter, 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (var category of categories.split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","import { makePromiseBuffer, forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, serializeEnvelope, logger, updateRateLimits, SentryError } from '@sentry/utils';\n\nvar DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n) {\n let rateLimits = {};\n\n var flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n var filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n var envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n var recordEnvelopeLoss = (reason) => {\n forEachEnvelopeItem(filteredEnvelope, (_, type) => {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n\n var requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n },\n error => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Failed while sending event:', error);\n recordEnvelopeLoss('network_error');\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n","import { getGlobalObject, isNativeFetch, logger } from '@sentry/utils';\n\nvar global = getGlobalObject();\nlet cachedFetchImpl;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * var f = window.fetch;\n * window.fetch = function () {\n * var p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n\n var document = global.document;\n let fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n var contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(global));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\nexport { getNativeFetchImplementation };\n//# sourceMappingURL=utils.js.map\n","import { createTransport } from '@sentry/core';\nimport { getNativeFetchImplementation } from './utils.js';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n options,\n nativeFetch = getNativeFetchImplementation(),\n) {\n function makeRequest(request) {\n var requestOptions = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch), a request with `keepalive: true`\n // and a content length of > 64 kibibytes returns a network error. We will therefore only activate the flag when\n // we're below that limit.\n keepalive: request.body.length <= 65536,\n ...options.fetchOptions,\n };\n\n return nativeFetch(options.url, requestOptions).then(response => ({\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n }));\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n","import { createTransport } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nvar XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nfunction makeXHRTransport(options) {\n function makeRequest(request) {\n return new SyncPromise((resolve, reject) => {\n var xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (var header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeXHRTransport };\n//# sourceMappingURL=xhr.js.map\n","import { Integrations, getIntegrationsToSetup, initAndBind, getCurrentHub, getReportDialogEndpoint } from '@sentry/core';\nimport { getGlobalObject, stackParserFromStackParserOptions, supportsFetch, logger, resolvedSyncPromise, addInstrumentationHandler } from '@sentry/utils';\nimport { BrowserClient } from './client.js';\nimport { wrap as wrap$1 } from './helpers.js';\nimport './integrations/index.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport './transports/index.js';\nimport { TryCatch } from './integrations/trycatch.js';\nimport { Breadcrumbs } from './integrations/breadcrumbs.js';\nimport { GlobalHandlers } from './integrations/globalhandlers.js';\nimport { LinkedErrors } from './integrations/linkederrors.js';\nimport { Dedupe } from './integrations/dedupe.js';\nimport { HttpContext } from './integrations/httpcontext.js';\nimport { makeFetchTransport } from './transports/fetch.js';\nimport { makeXHRTransport } from './transports/xhr.js';\n\nvar defaultIntegrations = [\n new Integrations.InboundFilters(),\n new Integrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new HttpContext(),\n];\n\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 */\nfunction init(options = {}) {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window.SENTRY_RELEASE && window.SENTRY_RELEASE.id) {\n options.release = window.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n var clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\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 */\nfunction showReportDialog(options = {}, hub = getCurrentHub()) {\n // doesn't work without a document (React Native)\n var global = getGlobalObject();\n if (!global.document) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const { client, scope } = hub.getStackTop();\n var dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n\n var script = global.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n var injectionPoint = global.document.head || global.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nfunction lastEventId() {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\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\nfunction wrap(fn) {\n return wrap$1(fn)();\n}\n\nfunction startSessionOnHub(hub) {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n\n if (typeof document === 'undefined') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n var hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n\nexport { close, defaultIntegrations, flush, forceLoad, init, lastEventId, onLoad, showReportDialog, wrap };\n//# sourceMappingURL=sdk.js.map\n","var DEFAULT_HOOKS = ['activate', 'mount', 'update'];\n\nexport { DEFAULT_HOOKS };\n//# sourceMappingURL=constants.js.map\n","import { _optionalChain } from '@sentry/utils/esm/buildPolyfills';\n\n// Vendored directly from https://github.com/vuejs/vue/blob/master/src/core/util/debug.js with types only changes.\nvar classifyRE = /(?:^|[-_])(\\w)/g;\nvar classify = (str) => str.replace(classifyRE, c => c.toUpperCase()).replace(/[-_]/g, '');\n\nvar ROOT_COMPONENT_NAME = '';\nvar ANONYMOUS_COMPONENT_NAME = '';\n\nvar repeat = (str, n) => {\n let res = '';\n while (n) {\n if (n % 2 === 1) {\n res += str;\n }\n if (n > 1) {\n str += str; // eslint-disable-line no-param-reassign\n }\n n >>= 1; // eslint-disable-line no-bitwise, no-param-reassign\n }\n return res;\n};\n\nvar formatComponentName = (vm, includeFile) => {\n if (!vm) {\n return ANONYMOUS_COMPONENT_NAME;\n }\n\n if (vm.$root === vm) {\n return ROOT_COMPONENT_NAME;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5204 $options can be undefined\n if (!vm.$options) {\n return ANONYMOUS_COMPONENT_NAME;\n }\n\n var options = vm.$options;\n\n let name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n if (match) {\n name = match[1];\n }\n }\n\n return (\n (name ? `<${classify(name)}>` : ANONYMOUS_COMPONENT_NAME) + (file && includeFile !== false ? ` at ${file}` : '')\n );\n};\n\nvar generateComponentTrace = (vm) => {\n if ((_optionalChain([vm, 'optionalAccess', _ => _._isVue]) || _optionalChain([vm, 'optionalAccess', _2 => _2.__isVue])) && _optionalChain([vm, 'optionalAccess', _3 => _3.$parent])) {\n var tree = [];\n let currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var last = tree[tree.length - 1] ;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence += 1;\n vm = vm.$parent; // eslint-disable-line no-param-reassign\n continue;\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent; // eslint-disable-line no-param-reassign\n }\n\n var formattedTree = tree\n .map(\n (vm, i) =>\n `${\n (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) +\n (Array.isArray(vm)\n ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`\n : formatComponentName(vm))\n }`,\n )\n .join('\\n');\n\n return `\\n\\nfound in\\n\\n${formattedTree}`;\n }\n\n return `\\n\\n(found in ${formatComponentName(vm)})`;\n};\n\nexport { formatComponentName, generateComponentTrace };\n//# sourceMappingURL=components.js.map\n","import { getCurrentHub } from '@sentry/browser';\nimport { formatComponentName, generateComponentTrace } from './components.js';\n\nvar attachErrorHandler = (app, options) => {\n const { errorHandler, warnHandler, silent } = app.config;\n\n app.config.errorHandler = (error, vm, lifecycleHook) => {\n var componentName = formatComponentName(vm, false);\n var trace = vm ? generateComponentTrace(vm) : '';\n var metadata = {\n componentName,\n lifecycleHook,\n trace,\n };\n\n if (options.attachProps && vm) {\n // Vue2 - $options.propsData\n // Vue3 - $props\n if (vm.$options && vm.$options.propsData) {\n metadata.propsData = vm.$options.propsData;\n } else if (vm.$props) {\n metadata.propsData = vm.$props;\n }\n }\n\n // Capture exception in the next event loop, to make sure that all breadcrumbs are recorded in time.\n setTimeout(() => {\n getCurrentHub().withScope(scope => {\n scope.setContext('vue', metadata);\n getCurrentHub().captureException(error);\n });\n });\n\n if (typeof errorHandler === 'function') {\n (errorHandler ).call(app, error, vm, lifecycleHook);\n }\n\n if (options.logErrors) {\n var hasConsole = typeof console !== 'undefined';\n var message = `Error in ${lifecycleHook}: \"${error && error.toString()}\"`;\n\n if (warnHandler) {\n (warnHandler ).call(null, message, vm, trace);\n } else if (hasConsole && !silent) {\n // eslint-disable-next-line no-console\n console.error(`[Vue warn]: ${message}${trace}`);\n }\n }\n };\n};\n\nexport { attachErrorHandler };\n//# sourceMappingURL=errorhandler.js.map\n","import { _optionalChain } from '@sentry/utils/esm/buildPolyfills';\nimport { getCurrentHub } from '@sentry/browser';\nimport { logger, timestampInSeconds } from '@sentry/utils';\nimport { formatComponentName } from './components.js';\nimport { DEFAULT_HOOKS } from './constants.js';\n\nvar VUE_OP = 'ui.vue';\n\n// Mappings from operation to corresponding lifecycle hook.\nvar HOOKS = {\n activate: ['activated', 'deactivated'],\n create: ['beforeCreate', 'created'],\n destroy: ['beforeDestroy', 'destroyed'],\n mount: ['beforeMount', 'mounted'],\n update: ['beforeUpdate', 'updated'],\n};\n\n/** Grabs active transaction off scope, if any */\nfunction getActiveTransaction() {\n return _optionalChain([getCurrentHub, 'call', _ => _(), 'access', _2 => _2.getScope, 'call', _3 => _3(), 'optionalAccess', _4 => _4.getTransaction, 'call', _5 => _5()]);\n}\n\n/** Finish top-level span and activity with a debounce configured using `timeout` option */\nfunction finishRootSpan(vm, timestamp, timeout) {\n if (vm.$_sentryRootSpanTimer) {\n clearTimeout(vm.$_sentryRootSpanTimer);\n }\n\n vm.$_sentryRootSpanTimer = setTimeout(() => {\n if (_optionalChain([vm, 'access', _6 => _6.$root, 'optionalAccess', _7 => _7.$_sentryRootSpan])) {\n vm.$root.$_sentryRootSpan.finish(timestamp);\n vm.$root.$_sentryRootSpan = undefined;\n }\n }, timeout);\n}\n\nvar createTracingMixins = (options) => {\n var hooks = (options.hooks || [])\n .concat(DEFAULT_HOOKS)\n // Removing potential duplicates\n .filter((value, index, self) => self.indexOf(value) === index);\n\n var mixins = {};\n\n for (var operation of hooks) {\n // Retrieve corresponding hooks from Vue lifecycle.\n // eg. mount => ['beforeMount', 'mounted']\n var internalHooks = HOOKS[operation];\n if (!internalHooks) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Unknown hook: ${operation}`);\n continue;\n }\n\n for (var internalHook of internalHooks) {\n mixins[internalHook] = function () {\n var isRoot = this.$root === this;\n\n if (isRoot) {\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n this.$_sentryRootSpan =\n this.$_sentryRootSpan ||\n activeTransaction.startChild({\n description: 'Application Render',\n op: `${VUE_OP}.render`,\n });\n }\n }\n\n // Skip components that we don't want to track to minimize the noise and give a more granular control to the user\n var name = formatComponentName(this, false);\n var shouldTrack = Array.isArray(options.trackComponents)\n ? options.trackComponents.indexOf(name) > -1\n : options.trackComponents;\n\n // We always want to track root component\n if (!isRoot && !shouldTrack) {\n return;\n }\n\n this.$_sentrySpans = this.$_sentrySpans || {};\n\n // Start a new span if current hook is a 'before' hook.\n // Otherwise, retrieve the current span and finish it.\n if (internalHook == internalHooks[0]) {\n var activeTransaction = _optionalChain([this, 'access', _8 => _8.$root, 'optionalAccess', _9 => _9.$_sentryRootSpan]) || getActiveTransaction();\n if (activeTransaction) {\n this.$_sentrySpans[operation] = activeTransaction.startChild({\n description: `Vue <${name}>`,\n op: `${VUE_OP}.${operation}`,\n });\n }\n } else {\n // The span should already be added via the first handler call (in the 'before' hook)\n var span = this.$_sentrySpans[operation];\n // The before hook did not start the tracking span, so the span was not added.\n // This is probably because it happened before there is an active transaction\n if (!span) return;\n\n span.finish();\n finishRootSpan(this, timestampInSeconds(), options.timeout);\n }\n };\n }\n }\n\n return mixins;\n};\n\nexport { createTracingMixins };\n//# sourceMappingURL=tracing.js.map\n","import { SDK_VERSION, init as init$1 } from '@sentry/browser';\nimport { getGlobalObject, logger, arrayify } from '@sentry/utils';\nimport { DEFAULT_HOOKS } from './constants.js';\nimport { attachErrorHandler } from './errorhandler.js';\nimport { createTracingMixins } from './tracing.js';\n\nvar DEFAULT_CONFIG = {\n Vue: getGlobalObject().Vue,\n attachProps: true,\n logErrors: false,\n hooks: DEFAULT_HOOKS,\n timeout: 2000,\n trackComponents: false,\n _metadata: {\n sdk: {\n name: 'sentry.javascript.vue',\n packages: [\n {\n name: 'npm:@sentry/vue',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n },\n },\n};\n\n/**\n * Inits the Vue SDK\n */\nfunction init(\n config = {},\n) {\n var options = {\n ...DEFAULT_CONFIG,\n ...config,\n };\n\n init$1(options);\n\n if (!options.Vue && !options.app) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n 'Misconfigured SDK. Vue specific errors will not be captured.\\n' +\n 'Update your `Sentry.init` call with an appropriate config option:\\n' +\n '`app` (Application Instance - Vue 3) or `Vue` (Vue Constructor - Vue 2).',\n );\n return;\n }\n\n if (options.app) {\n var apps = arrayify(options.app);\n apps.forEach(app => vueInit(app, options));\n } else if (options.Vue) {\n vueInit(options.Vue, options);\n }\n}\n\nvar vueInit = (app, options) => {\n attachErrorHandler(app, options);\n\n if ('tracesSampleRate' in options || 'tracesSampler' in options) {\n app.mixin(\n createTracingMixins({\n ...options,\n ...options.tracingOptions,\n }),\n );\n }\n};\n\nexport { init };\n//# sourceMappingURL=sdk.js.map\n","import { __assign } from \"tslib\";\nimport { dropUndefinedKeys, timestampWithMs, uuid4 } from '@sentry/utils';\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nvar SpanRecorder = /** @class */ (function () {\n function SpanRecorder(maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\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 SpanRecorder.prototype.add = function (span) {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n }\n else {\n this.spans.push(span);\n }\n };\n return SpanRecorder;\n}());\nexport { SpanRecorder };\n/**\n * Span contains all data about a span\n */\nvar Span = /** @class */ (function () {\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Span(spanContext) {\n /**\n * @inheritDoc\n */\n this.traceId = uuid4();\n /**\n * @inheritDoc\n */\n this.spanId = uuid4().substring(16);\n /**\n * Timestamp in seconds when the span was created.\n */\n this.startTimestamp = timestampWithMs();\n /**\n * @inheritDoc\n */\n this.tags = {};\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.data = {};\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n /**\n * @inheritDoc\n * @deprecated\n */\n Span.prototype.child = function (spanContext) {\n return this.startChild(spanContext);\n };\n /**\n * @inheritDoc\n */\n Span.prototype.startChild = function (spanContext) {\n var childSpan = new Span(__assign(__assign({}, spanContext), { parentSpanId: this.spanId, sampled: this.sampled, traceId: this.traceId }));\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n childSpan.transaction = this.transaction;\n return childSpan;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setTag = function (key, value) {\n var _a;\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 Span.prototype.setData = function (key, value) {\n var _a;\n this.data = __assign(__assign({}, this.data), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setStatus = function (value) {\n this.status = value;\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setHttpStatus = function (httpStatus) {\n this.setTag('http.status_code', String(httpStatus));\n var spanStatus = spanStatusfromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n this.setStatus(spanStatus);\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.isSuccess = function () {\n return this.status === 'ok';\n };\n /**\n * @inheritDoc\n */\n Span.prototype.finish = function (endTimestamp) {\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toTraceparent = function () {\n var sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return this.traceId + \"-\" + this.spanId + sampledString;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toContext = function () {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n };\n /**\n * @inheritDoc\n */\n Span.prototype.updateWithContext = function (spanContext) {\n var _a, _b, _c, _d, _e;\n this.data = (_a = spanContext.data, (_a !== null && _a !== void 0 ? _a : {}));\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = (_b = spanContext.spanId, (_b !== null && _b !== void 0 ? _b : this.spanId));\n this.startTimestamp = (_c = spanContext.startTimestamp, (_c !== null && _c !== void 0 ? _c : this.startTimestamp));\n this.status = spanContext.status;\n this.tags = (_d = spanContext.tags, (_d !== null && _d !== void 0 ? _d : {}));\n this.traceId = (_e = spanContext.traceId, (_e !== null && _e !== void 0 ? _e : this.traceId));\n return this;\n };\n /**\n * @inheritDoc\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 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 return Span;\n}());\nexport { Span };\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport function spanStatusfromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n return 'unknown_error';\n}\n//# sourceMappingURL=span.js.map","'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","function flattenVNodes(vnodes) {\n var result = [];\n\n function traverse(vnodes) {\n vnodes.forEach(function (vnode) {\n result.push(vnode);\n\n if (vnode.componentInstance) {\n traverse(vnode.componentInstance.$children.map(function (item) {\n return item.$vnode;\n }));\n }\n\n if (vnode.children) {\n traverse(vnode.children);\n }\n });\n }\n\n traverse(vnodes);\n return result;\n} // sort children instances by vnodes order\n\n\nexport function sortChildren(children, parent) {\n var componentOptions = parent.$vnode.componentOptions;\n\n if (!componentOptions || !componentOptions.children) {\n return;\n }\n\n var vnodes = flattenVNodes(componentOptions.children);\n children.sort(function (a, b) {\n return vnodes.indexOf(a.$vnode) - vnodes.indexOf(b.$vnode);\n });\n}","function getElement(selector) {\n if (typeof selector === 'string') {\n return document.querySelector(selector);\n }\n\n return selector();\n}\n\nexport function PortalMixin(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n ref = _ref.ref,\n afterPortal = _ref.afterPortal;\n\n return {\n props: {\n getContainer: [String, Function]\n },\n watch: {\n getContainer: 'portal'\n },\n mounted: function mounted() {\n if (this.getContainer) {\n this.portal();\n }\n },\n methods: {\n portal: function portal() {\n var getContainer = this.getContainer;\n var el = ref ? this.$refs[ref] : this.$el;\n var container;\n\n if (getContainer) {\n container = getElement(getContainer);\n } else if (this.$parent) {\n container = this.$parent.$el;\n }\n\n if (container && container !== el.parentNode) {\n container.appendChild(el);\n }\n\n if (afterPortal) {\n afterPortal.call(this);\n }\n }\n }\n };\n}","import { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = +Infinity, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n var normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value ;\n }\n\n var stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n var valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n var jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, depth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n var normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n var visitable = convertToPlainObject(value );\n\n for (var visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n var visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\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 // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) ).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\nexport { normalize, normalizeToSize, visit as walk };\n//# sourceMappingURL=normalize.js.map\n","import { createNamespace } from '../utils';\nimport { FieldMixin } from '../mixins/field';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('radio-group'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanRadio'), FieldMixin],\n props: {\n value: null,\n disabled: Boolean,\n direction: String,\n checkedColor: String,\n iconSize: [Number, String]\n },\n watch: {\n value: function value(_value) {\n this.$emit('change', _value);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem([this.direction]),\n \"attrs\": {\n \"role\": \"radiogroup\"\n }\n }, [this.slots()]);\n }\n});","import { isServer } from '..';\n// eslint-disable-next-line import/no-mutable-exports\nexport var supportsPassive = false;\n\nif (!isServer) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n // eslint-disable-next-line getter-return\n get: function get() {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n });\n window.addEventListener('test-passive', null, opts); // eslint-disable-next-line no-empty\n } catch (e) {}\n}\n\nexport function on(target, event, handler, passive) {\n if (passive === void 0) {\n passive = false;\n }\n\n if (!isServer) {\n target.addEventListener(event, handler, supportsPassive ? {\n capture: false,\n passive: passive\n } : false);\n }\n}\nexport function off(target, event, handler) {\n if (!isServer) {\n target.removeEventListener(event, handler);\n }\n}\nexport function stopPropagation(event) {\n event.stopPropagation();\n}\nexport function preventDefault(event, isStopPropagation) {\n /* istanbul ignore else */\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n\n if (isStopPropagation) {\n stopPropagation(event);\n }\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","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","import { raf } from '../utils/dom/raf';\nimport { getScrollTop, setScrollTop } from '../utils/dom/scroll';\nexport function scrollLeftTo(scroller, to, duration) {\n var count = 0;\n var from = scroller.scrollLeft;\n var frames = duration === 0 ? 1 : Math.round(duration * 1000 / 16);\n\n function animate() {\n scroller.scrollLeft += (to - from) / frames;\n\n if (++count < frames) {\n raf(animate);\n }\n }\n\n animate();\n}\nexport function scrollTopTo(scroller, to, duration, callback) {\n var current = getScrollTop(scroller);\n var isDown = current < to;\n var frames = duration === 0 ? 1 : Math.round(duration * 1000 / 16);\n var step = (to - current) / frames;\n\n function animate() {\n current += step;\n\n if (isDown && current > to || !isDown && current < to) {\n current = to;\n }\n\n setScrollTop(scroller, current);\n\n if (isDown && current < to || !isDown && current > to) {\n raf(animate);\n } else if (callback) {\n raf(callback);\n }\n }\n\n animate();\n}","import { isPromise, noop } from '.';\nexport function callInterceptor(options) {\n var interceptor = options.interceptor,\n args = options.args,\n done = options.done;\n\n if (interceptor) {\n var returnVal = interceptor.apply(void 0, args);\n\n if (isPromise(returnVal)) {\n returnVal.then(function (value) {\n if (value) {\n done();\n }\n }).catch(noop);\n } else if (returnVal) {\n done();\n }\n } else {\n done();\n }\n}","import { createNamespace, isDef } from '../utils';\nimport Info from '../info';\n\nvar _createNamespace = createNamespace('tab'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n dot: Boolean,\n type: String,\n info: [Number, String],\n color: String,\n title: String,\n isActive: Boolean,\n disabled: Boolean,\n scrollable: Boolean,\n activeColor: String,\n inactiveColor: String\n },\n computed: {\n style: function style() {\n var style = {};\n var color = this.color,\n isActive = this.isActive;\n var isCard = this.type === 'card'; // card theme color\n\n if (color && isCard) {\n style.borderColor = color;\n\n if (!this.disabled) {\n if (isActive) {\n style.backgroundColor = color;\n } else {\n style.color = color;\n }\n }\n }\n\n var titleColor = isActive ? this.activeColor : this.inactiveColor;\n\n if (titleColor) {\n style.color = titleColor;\n }\n\n return style;\n }\n },\n methods: {\n onClick: function onClick() {\n this.$emit('click');\n },\n genText: function genText() {\n var h = this.$createElement;\n var Text = h(\"span\", {\n \"class\": bem('text', {\n ellipsis: !this.scrollable\n })\n }, [this.slots() || this.title]);\n\n if (this.dot || isDef(this.info) && this.info !== '') {\n return h(\"span\", {\n \"class\": bem('text-wrapper')\n }, [Text, h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": this.info\n }\n })]);\n }\n\n return Text;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"tab\",\n \"aria-selected\": this.isActive\n },\n \"class\": [bem({\n active: this.isActive,\n disabled: this.disabled\n })],\n \"style\": this.style,\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genText()]);\n }\n});","import { isHidden } from '../utils/dom/style';\nimport { unitToPx } from '../utils/format/unit';\nimport { createNamespace, isDef, isServer } from '../utils';\nimport { getScrollTop, getElementTop, getScroller } from '../utils/dom/scroll';\nimport { BindEventMixin } from '../mixins/bind-event';\n\nvar _createNamespace = createNamespace('sticky'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [BindEventMixin(function (bind, isBind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n if (this.observer) {\n var method = isBind ? 'observe' : 'unobserve';\n this.observer[method](this.$el);\n }\n\n bind(this.scroller, 'scroll', this.onScroll, true);\n this.onScroll();\n })],\n props: {\n zIndex: [Number, String],\n container: null,\n offsetTop: {\n type: [Number, String],\n default: 0\n }\n },\n data: function data() {\n return {\n fixed: false,\n height: 0,\n transform: 0\n };\n },\n computed: {\n offsetTopPx: function offsetTopPx() {\n return unitToPx(this.offsetTop);\n },\n style: function style() {\n if (!this.fixed) {\n return;\n }\n\n var style = {};\n\n if (isDef(this.zIndex)) {\n style.zIndex = this.zIndex;\n }\n\n if (this.offsetTopPx && this.fixed) {\n style.top = this.offsetTopPx + \"px\";\n }\n\n if (this.transform) {\n style.transform = \"translate3d(0, \" + this.transform + \"px, 0)\";\n }\n\n return style;\n }\n },\n watch: {\n fixed: function fixed(isFixed) {\n this.$emit('change', isFixed);\n }\n },\n created: function created() {\n var _this = this;\n\n // compatibility: https://caniuse.com/#feat=intersectionobserver\n if (!isServer && window.IntersectionObserver) {\n this.observer = new IntersectionObserver(function (entries) {\n // trigger scroll when visibility changed\n if (entries[0].intersectionRatio > 0) {\n _this.onScroll();\n }\n }, {\n root: document.body\n });\n }\n },\n methods: {\n onScroll: function onScroll() {\n var _this2 = this;\n\n if (isHidden(this.$el)) {\n return;\n }\n\n this.height = this.$el.offsetHeight;\n var container = this.container,\n offsetTopPx = this.offsetTopPx;\n var scrollTop = getScrollTop(window);\n var topToPageTop = getElementTop(this.$el);\n\n var emitScrollEvent = function emitScrollEvent() {\n _this2.$emit('scroll', {\n scrollTop: scrollTop,\n isFixed: _this2.fixed\n });\n }; // The sticky component should be kept inside the container element\n\n\n if (container) {\n var bottomToPageTop = topToPageTop + container.offsetHeight;\n\n if (scrollTop + offsetTopPx + this.height > bottomToPageTop) {\n var distanceToBottom = this.height + scrollTop - bottomToPageTop;\n\n if (distanceToBottom < this.height) {\n this.fixed = true;\n this.transform = -(distanceToBottom + offsetTopPx);\n } else {\n this.fixed = false;\n }\n\n emitScrollEvent();\n return;\n }\n }\n\n if (scrollTop + offsetTopPx > topToPageTop) {\n this.fixed = true;\n this.transform = 0;\n } else {\n this.fixed = false;\n }\n\n emitScrollEvent();\n }\n },\n render: function render() {\n var h = arguments[0];\n var fixed = this.fixed;\n var style = {\n height: fixed ? this.height + \"px\" : null\n };\n return h(\"div\", {\n \"style\": style\n }, [h(\"div\", {\n \"class\": bem({\n fixed: fixed\n }),\n \"style\": this.style\n }, [this.slots()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { TouchMixin } from '../mixins/touch';\n\nvar _createNamespace = createNamespace('tabs'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar MIN_SWIPE_DISTANCE = 50;\nexport default createComponent({\n mixins: [TouchMixin],\n props: {\n count: Number,\n duration: [Number, String],\n animated: Boolean,\n swipeable: Boolean,\n currentIndex: Number\n },\n computed: {\n style: function style() {\n if (this.animated) {\n return {\n transform: \"translate3d(\" + -1 * this.currentIndex * 100 + \"%, 0, 0)\",\n transitionDuration: this.duration + \"s\"\n };\n }\n },\n listeners: function listeners() {\n if (this.swipeable) {\n return {\n touchstart: this.touchStart,\n touchmove: this.touchMove,\n touchend: this.onTouchEnd,\n touchcancel: this.onTouchEnd\n };\n }\n }\n },\n methods: {\n // watch swipe touch end\n onTouchEnd: function onTouchEnd() {\n var direction = this.direction,\n deltaX = this.deltaX,\n currentIndex = this.currentIndex;\n /* istanbul ignore else */\n\n if (direction === 'horizontal' && this.offsetX >= MIN_SWIPE_DISTANCE) {\n /* istanbul ignore else */\n if (deltaX > 0 && currentIndex !== 0) {\n this.$emit('change', currentIndex - 1);\n } else if (deltaX < 0 && currentIndex !== this.count - 1) {\n this.$emit('change', currentIndex + 1);\n }\n }\n },\n genChildren: function genChildren() {\n var h = this.$createElement;\n\n if (this.animated) {\n return h(\"div\", {\n \"class\": bem('track'),\n \"style\": this.style\n }, [this.slots()]);\n }\n\n return this.slots();\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem('content', {\n animated: this.animated\n }),\n \"on\": _extends({}, this.listeners)\n }, [this.genChildren()]);\n }\n});","// Utils\nimport { createNamespace, isDef, addUnit } from '../utils';\nimport { scrollLeftTo, scrollTopTo } from './utils';\nimport { route } from '../utils/router';\nimport { isHidden } from '../utils/dom/style';\nimport { on, off } from '../utils/dom/event';\nimport { unitToPx } from '../utils/format/unit';\nimport { BORDER_TOP_BOTTOM } from '../utils/constant';\nimport { callInterceptor } from '../utils/interceptor';\nimport { getScroller, getVisibleTop, getElementTop, getVisibleHeight, setRootScrollTop } from '../utils/dom/scroll'; // Mixins\n\nimport { ParentMixin } from '../mixins/relation';\nimport { BindEventMixin } from '../mixins/bind-event'; // Components\n\nimport Title from './Title';\nimport Sticky from '../sticky';\nimport Content from './Content';\n\nvar _createNamespace = createNamespace('tabs'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanTabs'), BindEventMixin(function (bind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n bind(window, 'resize', this.resize, true);\n\n if (this.scrollspy) {\n bind(this.scroller, 'scroll', this.onScroll, true);\n }\n })],\n inject: {\n vanPopup: {\n default: null\n }\n },\n model: {\n prop: 'active'\n },\n props: {\n color: String,\n border: Boolean,\n sticky: Boolean,\n animated: Boolean,\n swipeable: Boolean,\n scrollspy: Boolean,\n background: String,\n lineWidth: [Number, String],\n lineHeight: [Number, String],\n beforeChange: Function,\n titleActiveColor: String,\n titleInactiveColor: String,\n type: {\n type: String,\n default: 'line'\n },\n active: {\n type: [Number, String],\n default: 0\n },\n ellipsis: {\n type: Boolean,\n default: true\n },\n duration: {\n type: [Number, String],\n default: 0.3\n },\n offsetTop: {\n type: [Number, String],\n default: 0\n },\n lazyRender: {\n type: Boolean,\n default: true\n },\n swipeThreshold: {\n type: [Number, String],\n default: 5\n }\n },\n data: function data() {\n return {\n position: '',\n currentIndex: null,\n lineStyle: {\n backgroundColor: this.color\n }\n };\n },\n computed: {\n // whether the nav is scrollable\n scrollable: function scrollable() {\n return this.children.length > this.swipeThreshold || !this.ellipsis;\n },\n navStyle: function navStyle() {\n return {\n borderColor: this.color,\n background: this.background\n };\n },\n currentName: function currentName() {\n var activeTab = this.children[this.currentIndex];\n\n if (activeTab) {\n return activeTab.computedName;\n }\n },\n offsetTopPx: function offsetTopPx() {\n return unitToPx(this.offsetTop);\n },\n scrollOffset: function scrollOffset() {\n if (this.sticky) {\n return this.offsetTopPx + this.tabHeight;\n }\n\n return 0;\n }\n },\n watch: {\n color: 'setLine',\n active: function active(name) {\n if (name !== this.currentName) {\n this.setCurrentIndexByName(name);\n }\n },\n children: function children() {\n var _this = this;\n\n this.setCurrentIndexByName(this.active);\n this.setLine();\n this.$nextTick(function () {\n _this.scrollIntoView(true);\n });\n },\n currentIndex: function currentIndex() {\n this.scrollIntoView();\n this.setLine(); // scroll to correct position\n\n if (this.stickyFixed && !this.scrollspy) {\n setRootScrollTop(Math.ceil(getElementTop(this.$el) - this.offsetTopPx));\n }\n },\n scrollspy: function scrollspy(val) {\n if (val) {\n on(this.scroller, 'scroll', this.onScroll, true);\n } else {\n off(this.scroller, 'scroll', this.onScroll);\n }\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.init(); // https://github.com/vant-ui/vant/issues/7959\n\n if (this.vanPopup) {\n this.vanPopup.onReopen(function () {\n _this2.setLine();\n });\n }\n },\n activated: function activated() {\n this.init();\n this.setLine();\n },\n methods: {\n // @exposed-api\n resize: function resize() {\n this.setLine();\n },\n init: function init() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.inited = true;\n _this3.tabHeight = getVisibleHeight(_this3.$refs.wrap);\n\n _this3.scrollIntoView(true);\n });\n },\n // update nav bar style\n setLine: function setLine() {\n var _this4 = this;\n\n var shouldAnimate = this.inited;\n this.$nextTick(function () {\n var titles = _this4.$refs.titles;\n\n if (!titles || !titles[_this4.currentIndex] || _this4.type !== 'line' || isHidden(_this4.$el)) {\n return;\n }\n\n var title = titles[_this4.currentIndex].$el;\n var lineWidth = _this4.lineWidth,\n lineHeight = _this4.lineHeight;\n var left = title.offsetLeft + title.offsetWidth / 2;\n var lineStyle = {\n width: addUnit(lineWidth),\n backgroundColor: _this4.color,\n transform: \"translateX(\" + left + \"px) translateX(-50%)\"\n };\n\n if (shouldAnimate) {\n lineStyle.transitionDuration = _this4.duration + \"s\";\n }\n\n if (isDef(lineHeight)) {\n var height = addUnit(lineHeight);\n lineStyle.height = height;\n lineStyle.borderRadius = height;\n }\n\n _this4.lineStyle = lineStyle;\n });\n },\n // correct the index of active tab\n setCurrentIndexByName: function setCurrentIndexByName(name) {\n var matched = this.children.filter(function (tab) {\n return tab.computedName === name;\n });\n var defaultIndex = (this.children[0] || {}).index || 0;\n this.setCurrentIndex(matched.length ? matched[0].index : defaultIndex);\n },\n setCurrentIndex: function setCurrentIndex(currentIndex) {\n var newIndex = this.findAvailableTab(currentIndex);\n\n if (!isDef(newIndex)) {\n return;\n }\n\n var newTab = this.children[newIndex];\n var newName = newTab.computedName;\n var shouldEmitChange = this.currentIndex !== null;\n this.currentIndex = newIndex;\n\n if (newName !== this.active) {\n this.$emit('input', newName);\n\n if (shouldEmitChange) {\n this.$emit('change', newName, newTab.title);\n }\n }\n },\n findAvailableTab: function findAvailableTab(index) {\n var diff = index < this.currentIndex ? -1 : 1;\n\n while (index >= 0 && index < this.children.length) {\n if (!this.children[index].disabled) {\n return index;\n }\n\n index += diff;\n }\n },\n // emit event when clicked\n onClick: function onClick(item, index) {\n var _this5 = this;\n\n var _this$children$index = this.children[index],\n title = _this$children$index.title,\n disabled = _this$children$index.disabled,\n computedName = _this$children$index.computedName;\n\n if (disabled) {\n this.$emit('disabled', computedName, title);\n } else {\n callInterceptor({\n interceptor: this.beforeChange,\n args: [computedName],\n done: function done() {\n _this5.setCurrentIndex(index);\n\n _this5.scrollToCurrentContent();\n }\n });\n this.$emit('click', computedName, title);\n route(item.$router, item);\n }\n },\n // scroll active tab into view\n scrollIntoView: function scrollIntoView(immediate) {\n var titles = this.$refs.titles;\n\n if (!this.scrollable || !titles || !titles[this.currentIndex]) {\n return;\n }\n\n var nav = this.$refs.nav;\n var title = titles[this.currentIndex].$el;\n var to = title.offsetLeft - (nav.offsetWidth - title.offsetWidth) / 2;\n scrollLeftTo(nav, to, immediate ? 0 : +this.duration);\n },\n onSticktScroll: function onSticktScroll(params) {\n this.stickyFixed = params.isFixed;\n this.$emit('scroll', params);\n },\n // @exposed-api\n scrollTo: function scrollTo(name) {\n var _this6 = this;\n\n this.$nextTick(function () {\n _this6.setCurrentIndexByName(name);\n\n _this6.scrollToCurrentContent(true);\n });\n },\n scrollToCurrentContent: function scrollToCurrentContent(immediate) {\n var _this7 = this;\n\n if (immediate === void 0) {\n immediate = false;\n }\n\n if (this.scrollspy) {\n var target = this.children[this.currentIndex];\n var el = target == null ? void 0 : target.$el;\n\n if (el) {\n var to = getElementTop(el, this.scroller) - this.scrollOffset;\n this.lockScroll = true;\n scrollTopTo(this.scroller, to, immediate ? 0 : +this.duration, function () {\n _this7.lockScroll = false;\n });\n }\n }\n },\n onScroll: function onScroll() {\n if (this.scrollspy && !this.lockScroll) {\n var index = this.getCurrentIndexOnScroll();\n this.setCurrentIndex(index);\n }\n },\n getCurrentIndexOnScroll: function getCurrentIndexOnScroll() {\n var children = this.children;\n\n for (var index = 0; index < children.length; index++) {\n var top = getVisibleTop(children[index].$el);\n\n if (top > this.scrollOffset) {\n return index === 0 ? 0 : index - 1;\n }\n }\n\n return children.length - 1;\n }\n },\n render: function render() {\n var _this8 = this,\n _ref;\n\n var h = arguments[0];\n var type = this.type,\n animated = this.animated,\n scrollable = this.scrollable;\n var Nav = this.children.map(function (item, index) {\n var _item$badge;\n\n return h(Title, {\n \"ref\": \"titles\",\n \"refInFor\": true,\n \"attrs\": {\n \"type\": type,\n \"dot\": item.dot,\n \"info\": (_item$badge = item.badge) != null ? _item$badge : item.info,\n \"title\": item.title,\n \"color\": _this8.color,\n \"isActive\": index === _this8.currentIndex,\n \"disabled\": item.disabled,\n \"scrollable\": scrollable,\n \"activeColor\": _this8.titleActiveColor,\n \"inactiveColor\": _this8.titleInactiveColor\n },\n \"style\": item.titleStyle,\n \"class\": item.titleClass,\n \"scopedSlots\": {\n default: function _default() {\n return item.slots('title');\n }\n },\n \"on\": {\n \"click\": function click() {\n _this8.onClick(item, index);\n }\n }\n });\n });\n var Wrap = h(\"div\", {\n \"ref\": \"wrap\",\n \"class\": [bem('wrap', {\n scrollable: scrollable\n }), (_ref = {}, _ref[BORDER_TOP_BOTTOM] = type === 'line' && this.border, _ref)]\n }, [h(\"div\", {\n \"ref\": \"nav\",\n \"attrs\": {\n \"role\": \"tablist\"\n },\n \"class\": bem('nav', [type, {\n complete: this.scrollable\n }]),\n \"style\": this.navStyle\n }, [this.slots('nav-left'), Nav, type === 'line' && h(\"div\", {\n \"class\": bem('line'),\n \"style\": this.lineStyle\n }), this.slots('nav-right')])]);\n return h(\"div\", {\n \"class\": bem([type])\n }, [this.sticky ? h(Sticky, {\n \"attrs\": {\n \"container\": this.$el,\n \"offsetTop\": this.offsetTop\n },\n \"on\": {\n \"scroll\": this.onSticktScroll\n }\n }, [Wrap]) : Wrap, h(Content, {\n \"attrs\": {\n \"count\": this.children.length,\n \"animated\": animated,\n \"duration\": this.duration,\n \"swipeable\": this.swipeable,\n \"currentIndex\": this.currentIndex\n },\n \"on\": {\n \"change\": this.setCurrentIndex\n }\n }, [this.slots()])]);\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","import { createNamespace } from '../utils';\nimport { FieldMixin } from '../mixins/field';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('checkbox-group'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanCheckbox'), FieldMixin],\n props: {\n max: [Number, String],\n disabled: Boolean,\n direction: String,\n iconSize: [Number, String],\n checkedColor: String,\n value: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n watch: {\n value: function value(val) {\n this.$emit('change', val);\n }\n },\n methods: {\n // @exposed-api\n toggleAll: function toggleAll(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === 'boolean') {\n options = {\n checked: options\n };\n }\n\n var _options = options,\n checked = _options.checked,\n skipDisabled = _options.skipDisabled;\n var children = this.children.filter(function (item) {\n if (item.disabled && skipDisabled) {\n return item.checked;\n }\n\n return checked != null ? checked : !item.checked;\n });\n var names = children.map(function (item) {\n return item.name;\n });\n this.$emit('input', names);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem([this.direction])\n }, [this.slots()]);\n }\n});","import { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n var original = source[name] ;\n var wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n var proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(\n value,\n)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n var newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n var extractedProps = {};\n for (var property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n var keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n var memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n var memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n var returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (var key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n var memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n var returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('loading'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction LoadingIcon(h, props) {\n if (props.type === 'spinner') {\n var Spin = [];\n\n for (var i = 0; i < 12; i++) {\n Spin.push(h(\"i\"));\n }\n\n return Spin;\n }\n\n return h(\"svg\", {\n \"class\": bem('circular'),\n \"attrs\": {\n \"viewBox\": \"25 25 50 50\"\n }\n }, [h(\"circle\", {\n \"attrs\": {\n \"cx\": \"50\",\n \"cy\": \"50\",\n \"r\": \"20\",\n \"fill\": \"none\"\n }\n })]);\n}\n\nfunction LoadingText(h, props, slots) {\n if (slots.default) {\n var _props$textColor;\n\n var style = {\n fontSize: addUnit(props.textSize),\n color: (_props$textColor = props.textColor) != null ? _props$textColor : props.color\n };\n return h(\"span\", {\n \"class\": bem('text'),\n \"style\": style\n }, [slots.default()]);\n }\n}\n\nfunction Loading(h, props, slots, ctx) {\n var color = props.color,\n size = props.size,\n type = props.type;\n var style = {\n color: color\n };\n\n if (size) {\n var iconSize = addUnit(size);\n style.width = iconSize;\n style.height = iconSize;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem([type, {\n vertical: props.vertical\n }])\n }, inherit(ctx, true)]), [h(\"span\", {\n \"class\": bem('spinner', type),\n \"style\": style\n }, [LoadingIcon(h, props)]), LoadingText(h, props, slots)]);\n}\n\nLoading.props = {\n color: String,\n size: [Number, String],\n vertical: Boolean,\n textSize: [Number, String],\n textColor: String,\n type: {\n type: String,\n default: 'circular'\n }\n};\nexport default createComponent(Loading);","export var context = {\n zIndex: 2000,\n lockCount: 0,\n stack: [],\n find: function find(vm) {\n return this.stack.filter(function (item) {\n return item.vm === vm;\n })[0];\n },\n remove: function remove(vm) {\n var item = this.find(vm);\n if (!item) return;\n item.vm = null;\n item.overlay = null;\n var index = this.stack.indexOf(item);\n this.stack.splice(index, 1);\n }\n};","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, isDef, noop } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { preventDefault } from '../utils/dom/event'; // Types\n\nvar _createNamespace = createNamespace('overlay'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction preventTouchMove(event) {\n preventDefault(event, true);\n}\n\nfunction Overlay(h, props, slots, ctx) {\n var style = _extends({\n zIndex: props.zIndex\n }, props.customStyle);\n\n if (isDef(props.duration)) {\n style.animationDuration = props.duration + \"s\";\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", _mergeJSXProps([{\n \"directives\": [{\n name: \"show\",\n value: props.show\n }],\n \"style\": style,\n \"class\": [bem(), props.className],\n \"on\": {\n \"touchmove\": props.lockScroll ? preventTouchMove : noop\n }\n }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default()])]);\n}\n\nOverlay.props = {\n show: Boolean,\n zIndex: [Number, String],\n duration: [Number, String],\n className: null,\n customStyle: Object,\n lockScroll: {\n type: Boolean,\n default: true\n }\n};\nexport default createComponent(Overlay);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Overlay from '../../overlay';\nimport { context } from './context';\nimport { mount } from '../../utils/functional';\nimport { removeNode } from '../../utils/dom/node';\nvar defaultConfig = {\n className: '',\n customStyle: {}\n};\n\nfunction mountOverlay(vm) {\n return mount(Overlay, {\n on: {\n // close popup when overlay clicked & closeOnClickOverlay is true\n click: function click() {\n vm.$emit('click-overlay');\n\n if (vm.closeOnClickOverlay) {\n if (vm.onClickOverlay) {\n vm.onClickOverlay();\n } else {\n vm.close();\n }\n }\n }\n }\n });\n}\n\nexport function updateOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n var el = vm.$el;\n var config = item.config,\n overlay = item.overlay;\n\n if (el && el.parentNode) {\n el.parentNode.insertBefore(overlay.$el, el);\n }\n\n _extends(overlay, defaultConfig, config, {\n show: true\n });\n }\n}\nexport function openOverlay(vm, config) {\n var item = context.find(vm);\n\n if (item) {\n item.config = config;\n } else {\n var overlay = mountOverlay(vm);\n context.stack.push({\n vm: vm,\n config: config,\n overlay: overlay\n });\n }\n\n updateOverlay(vm);\n}\nexport function closeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n item.overlay.show = false;\n }\n}\nexport function removeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n removeNode(item.overlay.$el);\n context.remove(vm);\n }\n}","import { on, off } from '../utils/dom/event';\nimport { BindEventMixin } from './bind-event';\nexport var CloseOnPopstateMixin = {\n mixins: [BindEventMixin(function (bind, isBind) {\n this.handlePopstate(isBind && this.closeOnPopstate);\n })],\n props: {\n closeOnPopstate: Boolean\n },\n data: function data() {\n return {\n bindStatus: false\n };\n },\n watch: {\n closeOnPopstate: function closeOnPopstate(val) {\n this.handlePopstate(val);\n }\n },\n methods: {\n onPopstate: function onPopstate() {\n this.close();\n this.shouldReopen = false;\n },\n handlePopstate: function handlePopstate(bind) {\n /* istanbul ignore if */\n if (this.$isServer) {\n return;\n }\n\n if (this.bindStatus !== bind) {\n this.bindStatus = bind;\n var action = bind ? on : off;\n action(window, 'popstate', this.onPopstate);\n }\n }\n }\n};","// Context\nimport { context } from './context';\nimport { openOverlay, closeOverlay, updateOverlay, removeOverlay } from './overlay'; // Utils\n\nimport { on, off, preventDefault } from '../../utils/dom/event';\nimport { removeNode } from '../../utils/dom/node';\nimport { getScroller } from '../../utils/dom/scroll'; // Mixins\n\nimport { TouchMixin } from '../touch';\nimport { PortalMixin } from '../portal';\nimport { CloseOnPopstateMixin } from '../close-on-popstate';\nexport var popupMixinProps = {\n // Initial rendering animation\n transitionAppear: Boolean,\n // whether to show popup\n value: Boolean,\n // whether to show overlay\n overlay: Boolean,\n // overlay custom style\n overlayStyle: Object,\n // overlay custom class name\n overlayClass: String,\n // whether to close popup when overlay is clicked\n closeOnClickOverlay: Boolean,\n // z-index\n zIndex: [Number, String],\n // prevent body scroll\n lockScroll: {\n type: Boolean,\n default: true\n },\n // whether to lazy render\n lazyRender: {\n type: Boolean,\n default: true\n }\n};\nexport function PopupMixin(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n mixins: [TouchMixin, CloseOnPopstateMixin, PortalMixin({\n afterPortal: function afterPortal() {\n if (this.overlay) {\n updateOverlay();\n }\n }\n })],\n provide: function provide() {\n return {\n vanPopup: this\n };\n },\n props: popupMixinProps,\n data: function data() {\n this.onReopenCallback = [];\n return {\n inited: this.value\n };\n },\n computed: {\n shouldRender: function shouldRender() {\n return this.inited || !this.lazyRender;\n }\n },\n watch: {\n value: function value(val) {\n var type = val ? 'open' : 'close';\n this.inited = this.inited || this.value;\n this[type]();\n\n if (!options.skipToggleEvent) {\n this.$emit(type);\n }\n },\n overlay: 'renderOverlay'\n },\n mounted: function mounted() {\n if (this.value) {\n this.open();\n }\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n if (this.shouldReopen) {\n this.$emit('input', true);\n this.shouldReopen = false;\n }\n },\n beforeDestroy: function beforeDestroy() {\n removeOverlay(this);\n\n if (this.opened) {\n this.removeLock();\n }\n\n if (this.getContainer) {\n removeNode(this.$el);\n }\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n if (this.value) {\n this.close();\n this.shouldReopen = true;\n }\n },\n methods: {\n open: function open() {\n /* istanbul ignore next */\n if (this.$isServer || this.opened) {\n return;\n } // cover default zIndex\n\n\n if (this.zIndex !== undefined) {\n context.zIndex = this.zIndex;\n }\n\n this.opened = true;\n this.renderOverlay();\n this.addLock();\n this.onReopenCallback.forEach(function (callback) {\n callback();\n });\n },\n addLock: function addLock() {\n if (this.lockScroll) {\n on(document, 'touchstart', this.touchStart);\n on(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.add('van-overflow-hidden');\n }\n\n context.lockCount++;\n }\n },\n removeLock: function removeLock() {\n if (this.lockScroll && context.lockCount) {\n context.lockCount--;\n off(document, 'touchstart', this.touchStart);\n off(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.remove('van-overflow-hidden');\n }\n }\n },\n close: function close() {\n if (!this.opened) {\n return;\n }\n\n closeOverlay(this);\n this.opened = false;\n this.removeLock();\n this.$emit('input', false);\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n var direction = this.deltaY > 0 ? '10' : '01';\n var el = getScroller(event.target, this.$el);\n var scrollHeight = el.scrollHeight,\n offsetHeight = el.offsetHeight,\n scrollTop = el.scrollTop;\n var status = '11';\n /* istanbul ignore next */\n\n if (scrollTop === 0) {\n status = offsetHeight >= scrollHeight ? '00' : '01';\n } else if (scrollTop + offsetHeight >= scrollHeight) {\n status = '10';\n }\n /* istanbul ignore next */\n\n\n if (status !== '11' && this.direction === 'vertical' && !(parseInt(status, 2) & parseInt(direction, 2))) {\n preventDefault(event, true);\n }\n },\n renderOverlay: function renderOverlay() {\n var _this = this;\n\n if (this.$isServer || !this.value) {\n return;\n }\n\n this.$nextTick(function () {\n _this.updateZIndex(_this.overlay ? 1 : 0);\n\n if (_this.overlay) {\n openOverlay(_this, {\n zIndex: context.zIndex++,\n duration: _this.duration,\n className: _this.overlayClass,\n customStyle: _this.overlayStyle\n });\n } else {\n closeOverlay(_this);\n }\n });\n },\n updateZIndex: function updateZIndex(value) {\n if (value === void 0) {\n value = 0;\n }\n\n this.$el.style.zIndex = ++context.zIndex + value;\n },\n onReopen: function onReopen(callback) {\n this.onReopenCallback.push(callback);\n }\n }\n };\n}","// color\nexport var RED = '#ee0a24'; // border\n\nexport var BORDER = 'van-hairline';\nexport var BORDER_TOP = BORDER + \"--top\";\nexport var BORDER_LEFT = BORDER + \"--left\";\nexport var BORDER_BOTTOM = BORDER + \"--bottom\";\nexport var BORDER_SURROUND = BORDER + \"--surround\";\nexport var BORDER_TOP_BOTTOM = BORDER + \"--top-bottom\";\nexport var BORDER_UNSET_TOP_BOTTOM = BORDER + \"-unset--top-bottom\";","function isWindow(val) {\n return val === window;\n} // get nearest scroll element\n// https://github.com/vant-ui/vant/issues/3823\n\n\nvar overflowScrollReg = /scroll|auto|overlay/i;\nexport function getScroller(el, root) {\n if (root === void 0) {\n root = window;\n }\n\n var node = el;\n\n while (node && node.tagName !== 'HTML' && node.tagName !== 'BODY' && node.nodeType === 1 && node !== root) {\n var _window$getComputedSt = window.getComputedStyle(node),\n overflowY = _window$getComputedSt.overflowY;\n\n if (overflowScrollReg.test(overflowY)) {\n return node;\n }\n\n node = node.parentNode;\n }\n\n return root;\n}\nexport function getScrollTop(el) {\n var top = 'scrollTop' in el ? el.scrollTop : el.pageYOffset; // iOS scroll bounce cause minus scrollTop\n\n return Math.max(top, 0);\n}\nexport function setScrollTop(el, value) {\n if ('scrollTop' in el) {\n el.scrollTop = value;\n } else {\n el.scrollTo(el.scrollX, value);\n }\n}\nexport function getRootScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n}\nexport function setRootScrollTop(value) {\n setScrollTop(window, value);\n setScrollTop(document.body, value);\n} // get distance from element top to page top or scroller top\n\nexport function getElementTop(el, scroller) {\n if (isWindow(el)) {\n return 0;\n }\n\n var scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();\n return el.getBoundingClientRect().top + scrollTop;\n}\nexport function getVisibleHeight(el) {\n if (isWindow(el)) {\n return el.innerHeight;\n }\n\n return el.getBoundingClientRect().height;\n}\nexport function getVisibleTop(el) {\n if (isWindow(el)) {\n return 0;\n }\n\n return el.getBoundingClientRect().top;\n}","module.exports = {};\n","import { isDef, inBrowser } from '..';\nimport { isNumeric } from '../validate/number';\nexport function addUnit(value) {\n if (!isDef(value)) {\n return undefined;\n }\n\n value = String(value);\n return isNumeric(value) ? value + \"px\" : value;\n} // cache\n\nvar rootFontSize;\n\nfunction getRootFontSize() {\n if (!rootFontSize) {\n var doc = document.documentElement;\n var fontSize = doc.style.fontSize || window.getComputedStyle(doc).fontSize;\n rootFontSize = parseFloat(fontSize);\n }\n\n return rootFontSize;\n}\n\nfunction convertRem(value) {\n value = value.replace(/rem/g, '');\n return +value * getRootFontSize();\n}\n\nfunction convertVw(value) {\n value = value.replace(/vw/g, '');\n return +value * window.innerWidth / 100;\n}\n\nfunction convertVh(value) {\n value = value.replace(/vh/g, '');\n return +value * window.innerHeight / 100;\n}\n\nexport function unitToPx(value) {\n if (typeof value === 'number') {\n return value;\n }\n\n if (inBrowser) {\n if (value.indexOf('rem') !== -1) {\n return convertRem(value);\n }\n\n if (value.indexOf('vw') !== -1) {\n return convertVw(value);\n }\n\n if (value.indexOf('vh') !== -1) {\n return convertVh(value);\n }\n }\n\n return parseFloat(value);\n}","import { getGlobalObject } from './global';\nimport { 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 */\nexport function htmlTreeAsString(elem, keyAttrs) {\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;\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n return out.reverse().join(separator);\n }\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 */\nfunction _htmlElementAsString(el, keyAttrs) {\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n if (!elem || !elem.tagName) {\n return '';\n }\n out.push(elem.tagName.toLowerCase());\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs = keyAttrs && keyAttrs.length\n ? keyAttrs.filter(function (keyAttr) { return elem.getAttribute(keyAttr); }).map(function (keyAttr) { return [keyAttr, elem.getAttribute(keyAttr)]; })\n : null;\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(function (keyAttrPair) {\n out.push(\"[\" + keyAttrPair[0] + \"=\\\"\" + keyAttrPair[1] + \"\\\"]\");\n });\n }\n else {\n if (elem.id) {\n out.push(\"#\" + elem.id);\n }\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n return out.join('');\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n var global = getGlobalObject();\n try {\n return global.document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n//# sourceMappingURL=browser.js.map","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _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\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\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\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = Methods[methodName];\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow(); // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { getWindow } from 'ssr-window';\nimport { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n var window = getWindow();\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = window.getComputedStyle(slide[0], null);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n } else {\n var height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n\n var _boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (_boxSizing && _boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n var _slide$2 = slide[0],\n clientHeight = _slide$2.clientHeight,\n offsetHeight = _slide$2.offsetHeight;\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom + (offsetHeight - clientHeight);\n }\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({\n marginLeft: spaceBetween + \"px\"\n });else slides.filter(slidesForMargin).css({\n marginRight: spaceBetween + \"px\"\n });\n } else slides.filter(slidesForMargin).css({\n marginBottom: spaceBetween + \"px\"\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n } // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function slideTo(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n return;\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoints(breakpoints) {\n var window = getWindow(); // Get breakpoint for window width\n\n if (!breakpoints) return undefined;\n var breakpoint = false;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = window.innerHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","export default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device;\n var suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n\n if (rtl) {\n suffixes.push('rtl');\n }\n\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n\n if (device.android) {\n suffixes.push('android');\n }\n\n if (device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n nested: false,\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el; // Swiper Instance\n\n var swiper = this;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Find el\n\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper; // Find Wrapper\n\n var $wrapperEl;\n\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n $wrapperEl.children = function (options) {\n return $el.children(options);\n };\n } else {\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n } // Extend Swiper\n\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n swiper.emit('_slideClass', slideEl, classNames);\n });\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.init = function init() {\n var swiper = this;\n if (swiper.initialized) return;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","/*!\n * Vue.js v2.6.11\n * (c) 2014-2019 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.