{"version":3,"file":"EatSearchBar-CVj3vTRm.js","sources":["../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/function-bind-native.js","../../node_modules/core-js/internals/function-call.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/is-null-or-undefined.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/is-callable.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/symbol-constructor-detection.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-symbol.js","../../node_modules/core-js/internals/try-to-string.js","../../node_modules/core-js/internals/a-callable.js","../../node_modules/core-js/internals/get-method.js","../../node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/core-js/internals/is-pure.js","../../node_modules/core-js/internals/define-global-property.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has-own-property.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-property-key.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/function-name.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/weak-map-basic-detection.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/make-built-in.js","../../node_modules/core-js/internals/define-built-in.js","../../node_modules/core-js/internals/math-trunc.js","../../node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/length-of-array-like.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/to-string.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/array-slice.js","../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../node_modules/core-js/internals/define-built-in-accessor.js","../../node_modules/core-js/internals/well-known-symbol-wrapped.js","../../node_modules/core-js/internals/path.js","../../node_modules/core-js/internals/well-known-symbol-define.js","../../node_modules/core-js/internals/symbol-define-to-primitive.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/function-uncurry-this-clause.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/is-constructor.js","../../node_modules/core-js/internals/array-species-constructor.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/modules/es.symbol.constructor.js","../../node_modules/core-js/internals/symbol-registry-detection.js","../../node_modules/core-js/modules/es.symbol.for.js","../../node_modules/core-js/modules/es.symbol.key-for.js","../../node_modules/core-js/internals/function-apply.js","../../node_modules/core-js/internals/get-json-replacer-function.js","../../node_modules/core-js/modules/es.json.stringify.js","../../node_modules/core-js/modules/es.object.get-own-property-symbols.js","../../node_modules/core-js/modules/es.symbol.description.js","../../node_modules/core-js/modules/es.symbol.async-iterator.js","../../node_modules/core-js/modules/es.symbol.has-instance.js","../../node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","../../node_modules/core-js/modules/es.symbol.iterator.js","../../node_modules/core-js/modules/es.symbol.match.js","../../node_modules/core-js/modules/es.symbol.match-all.js","../../node_modules/core-js/modules/es.symbol.replace.js","../../node_modules/core-js/modules/es.symbol.search.js","../../node_modules/core-js/modules/es.symbol.species.js","../../node_modules/core-js/modules/es.symbol.split.js","../../node_modules/core-js/modules/es.symbol.to-primitive.js","../../node_modules/core-js/modules/es.symbol.to-string-tag.js","../../node_modules/core-js/modules/es.symbol.unscopables.js","../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../node_modules/core-js/internals/is-possible-prototype.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/proxy-accessor.js","../../node_modules/core-js/internals/inherit-if-required.js","../../node_modules/core-js/internals/normalize-string-argument.js","../../node_modules/core-js/internals/install-error-cause.js","../../node_modules/core-js/internals/error-stack-clear.js","../../node_modules/core-js/internals/error-stack-installable.js","../../node_modules/core-js/internals/error-stack-install.js","../../node_modules/core-js/internals/wrap-error-constructor-with-cause.js","../../node_modules/core-js/modules/es.error.cause.js","../../node_modules/core-js/internals/error-to-string.js","../../node_modules/core-js/modules/es.error.to-string.js","../../node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/internals/iterator-close.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/modules/es.aggregate-error.constructor.js","../../node_modules/core-js/modules/es.aggregate-error.cause.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/modules/es.array.at.js","../../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../../node_modules/core-js/internals/create-property.js","../../node_modules/core-js/internals/array-method-has-species-support.js","../../node_modules/core-js/modules/es.array.concat.js","../../node_modules/core-js/internals/delete-property-or-throw.js","../../node_modules/core-js/internals/array-copy-within.js","../../node_modules/core-js/modules/es.array.copy-within.js","../../node_modules/core-js/internals/array-method-is-strict.js","../../node_modules/core-js/modules/es.array.every.js","../../node_modules/core-js/internals/array-fill.js","../../node_modules/core-js/modules/es.array.fill.js","../../node_modules/core-js/modules/es.array.filter.js","../../node_modules/core-js/modules/es.array.find.js","../../node_modules/core-js/modules/es.array.find-index.js","../../node_modules/core-js/internals/array-iteration-from-last.js","../../node_modules/core-js/modules/es.array.find-last.js","../../node_modules/core-js/modules/es.array.find-last-index.js","../../node_modules/core-js/internals/flatten-into-array.js","../../node_modules/core-js/modules/es.array.flat.js","../../node_modules/core-js/modules/es.array.flat-map.js","../../node_modules/core-js/internals/array-for-each.js","../../node_modules/core-js/modules/es.array.for-each.js","../../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../../node_modules/core-js/internals/array-from.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/modules/es.array.from.js","../../node_modules/core-js/modules/es.array.includes.js","../../node_modules/core-js/modules/es.array.index-of.js","../../node_modules/core-js/modules/es.array.is-array.js","../../node_modules/core-js/internals/iterators-core.js","../../node_modules/core-js/internals/iterator-create-constructor.js","../../node_modules/core-js/internals/iterator-define.js","../../node_modules/core-js/internals/create-iter-result-object.js","../../node_modules/core-js/modules/es.array.iterator.js","../../node_modules/core-js/modules/es.array.join.js","../../node_modules/core-js/internals/array-last-index-of.js","../../node_modules/core-js/modules/es.array.last-index-of.js","../../node_modules/core-js/modules/es.array.map.js","../../node_modules/core-js/modules/es.array.of.js","../../node_modules/core-js/internals/array-set-length.js","../../node_modules/core-js/modules/es.array.push.js","../../node_modules/core-js/internals/array-reduce.js","../../node_modules/core-js/internals/engine-is-node.js","../../node_modules/core-js/modules/es.array.reduce.js","../../node_modules/core-js/modules/es.array.reduce-right.js","../../node_modules/core-js/modules/es.array.reverse.js","../../node_modules/core-js/modules/es.array.slice.js","../../node_modules/core-js/modules/es.array.some.js","../../node_modules/core-js/internals/array-sort.js","../../node_modules/core-js/internals/engine-ff-version.js","../../node_modules/core-js/internals/engine-is-ie-or-edge.js","../../node_modules/core-js/internals/engine-webkit-version.js","../../node_modules/core-js/modules/es.array.sort.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/modules/es.array.species.js","../../node_modules/core-js/modules/es.array.splice.js","../../node_modules/core-js/internals/array-to-reversed.js","../../node_modules/core-js/modules/es.array.to-reversed.js","../../node_modules/core-js/internals/array-from-constructor-and-list.js","../../node_modules/core-js/internals/get-built-in-prototype-method.js","../../node_modules/core-js/modules/es.array.to-sorted.js","../../node_modules/core-js/modules/es.array.to-spliced.js","../../node_modules/core-js/modules/es.array.unscopables.flat.js","../../node_modules/core-js/modules/es.array.unscopables.flat-map.js","../../node_modules/core-js/modules/es.array.unshift.js","../../node_modules/core-js/internals/array-with.js","../../node_modules/core-js/modules/es.array.with.js","../../node_modules/core-js/internals/array-buffer-basic-detection.js","../../node_modules/core-js/internals/define-built-ins.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/to-index.js","../../node_modules/core-js/internals/math-sign.js","../../node_modules/core-js/internals/math-float-round.js","../../node_modules/core-js/internals/math-fround.js","../../node_modules/core-js/internals/ieee754.js","../../node_modules/core-js/internals/array-buffer.js","../../node_modules/core-js/modules/es.array-buffer.constructor.js","../../node_modules/core-js/internals/array-buffer-view-core.js","../../node_modules/core-js/modules/es.array-buffer.is-view.js","../../node_modules/core-js/internals/a-constructor.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/modules/es.array-buffer.slice.js","../../node_modules/core-js/modules/es.data-view.constructor.js","../../node_modules/core-js/modules/es.date.get-year.js","../../node_modules/core-js/modules/es.date.now.js","../../node_modules/core-js/modules/es.date.set-year.js","../../node_modules/core-js/modules/es.date.to-gmt-string.js","../../node_modules/core-js/internals/string-repeat.js","../../node_modules/core-js/internals/string-pad.js","../../node_modules/core-js/internals/date-to-iso-string.js","../../node_modules/core-js/modules/es.date.to-iso-string.js","../../node_modules/core-js/modules/es.date.to-json.js","../../node_modules/core-js/internals/date-to-primitive.js","../../node_modules/core-js/modules/es.date.to-primitive.js","../../node_modules/core-js/modules/es.date.to-string.js","../../node_modules/core-js/modules/es.escape.js","../../node_modules/core-js/internals/function-bind.js","../../node_modules/core-js/modules/es.function.bind.js","../../node_modules/core-js/modules/es.function.has-instance.js","../../node_modules/core-js/modules/es.function.name.js","../../node_modules/core-js/modules/es.global-this.js","../../node_modules/core-js/modules/es.json.to-string-tag.js","../../node_modules/core-js/internals/array-buffer-non-extensible.js","../../node_modules/core-js/internals/object-is-extensible.js","../../node_modules/core-js/internals/freezing.js","../../node_modules/core-js/internals/internal-metadata.js","../../node_modules/core-js/internals/collection.js","../../node_modules/core-js/internals/collection-strong.js","../../node_modules/core-js/modules/es.map.constructor.js","../../node_modules/core-js/internals/map-helpers.js","../../node_modules/core-js/modules/es.map.group-by.js","../../node_modules/core-js/internals/math-log1p.js","../../node_modules/core-js/modules/es.math.acosh.js","../../node_modules/core-js/modules/es.math.asinh.js","../../node_modules/core-js/modules/es.math.atanh.js","../../node_modules/core-js/modules/es.math.cbrt.js","../../node_modules/core-js/modules/es.math.clz32.js","../../node_modules/core-js/internals/math-expm1.js","../../node_modules/core-js/modules/es.math.cosh.js","../../node_modules/core-js/modules/es.math.expm1.js","../../node_modules/core-js/modules/es.math.fround.js","../../node_modules/core-js/modules/es.math.hypot.js","../../node_modules/core-js/modules/es.math.imul.js","../../node_modules/core-js/internals/math-log10.js","../../node_modules/core-js/modules/es.math.log10.js","../../node_modules/core-js/modules/es.math.log1p.js","../../node_modules/core-js/modules/es.math.log2.js","../../node_modules/core-js/modules/es.math.sign.js","../../node_modules/core-js/modules/es.math.sinh.js","../../node_modules/core-js/modules/es.math.tanh.js","../../node_modules/core-js/modules/es.math.to-string-tag.js","../../node_modules/core-js/modules/es.math.trunc.js","../../node_modules/core-js/internals/this-number-value.js","../../node_modules/core-js/internals/whitespaces.js","../../node_modules/core-js/internals/string-trim.js","../../node_modules/core-js/modules/es.number.constructor.js","../../node_modules/core-js/modules/es.number.epsilon.js","../../node_modules/core-js/internals/number-is-finite.js","../../node_modules/core-js/modules/es.number.is-finite.js","../../node_modules/core-js/internals/is-integral-number.js","../../node_modules/core-js/modules/es.number.is-integer.js","../../node_modules/core-js/modules/es.number.is-nan.js","../../node_modules/core-js/modules/es.number.is-safe-integer.js","../../node_modules/core-js/modules/es.number.max-safe-integer.js","../../node_modules/core-js/modules/es.number.min-safe-integer.js","../../node_modules/core-js/internals/number-parse-float.js","../../node_modules/core-js/modules/es.number.parse-float.js","../../node_modules/core-js/internals/number-parse-int.js","../../node_modules/core-js/modules/es.number.parse-int.js","../../node_modules/core-js/modules/es.number.to-exponential.js","../../node_modules/core-js/modules/es.number.to-fixed.js","../../node_modules/core-js/modules/es.number.to-precision.js","../../node_modules/core-js/internals/object-assign.js","../../node_modules/core-js/modules/es.object.assign.js","../../node_modules/core-js/modules/es.object.create.js","../../node_modules/core-js/internals/object-prototype-accessors-forced.js","../../node_modules/core-js/modules/es.object.define-getter.js","../../node_modules/core-js/modules/es.object.define-properties.js","../../node_modules/core-js/modules/es.object.define-property.js","../../node_modules/core-js/modules/es.object.define-setter.js","../../node_modules/core-js/internals/object-to-array.js","../../node_modules/core-js/modules/es.object.entries.js","../../node_modules/core-js/modules/es.object.freeze.js","../../node_modules/core-js/modules/es.object.from-entries.js","../../node_modules/core-js/modules/es.object.get-own-property-descriptor.js","../../node_modules/core-js/modules/es.object.get-own-property-descriptors.js","../../node_modules/core-js/modules/es.object.get-own-property-names.js","../../node_modules/core-js/modules/es.object.get-prototype-of.js","../../node_modules/core-js/modules/es.object.group-by.js","../../node_modules/core-js/modules/es.object.has-own.js","../../node_modules/core-js/internals/same-value.js","../../node_modules/core-js/modules/es.object.is.js","../../node_modules/core-js/modules/es.object.is-extensible.js","../../node_modules/core-js/modules/es.object.is-frozen.js","../../node_modules/core-js/modules/es.object.is-sealed.js","../../node_modules/core-js/modules/es.object.keys.js","../../node_modules/core-js/modules/es.object.lookup-getter.js","../../node_modules/core-js/modules/es.object.lookup-setter.js","../../node_modules/core-js/modules/es.object.prevent-extensions.js","../../node_modules/core-js/modules/es.object.proto.js","../../node_modules/core-js/modules/es.object.seal.js","../../node_modules/core-js/modules/es.object.set-prototype-of.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/modules/es.object.values.js","../../node_modules/core-js/modules/es.parse-float.js","../../node_modules/core-js/modules/es.parse-int.js","../../node_modules/core-js/internals/validate-arguments-length.js","../../node_modules/core-js/internals/engine-is-ios.js","../../node_modules/core-js/internals/task.js","../../node_modules/core-js/internals/safe-get-built-in.js","../../node_modules/core-js/internals/queue.js","../../node_modules/core-js/internals/engine-is-ios-pebble.js","../../node_modules/core-js/internals/engine-is-webos-webkit.js","../../node_modules/core-js/internals/microtask.js","../../node_modules/core-js/internals/host-report-errors.js","../../node_modules/core-js/internals/perform.js","../../node_modules/core-js/internals/promise-native-constructor.js","../../node_modules/core-js/internals/engine-is-deno.js","../../node_modules/core-js/internals/engine-is-browser.js","../../node_modules/core-js/internals/promise-constructor-detection.js","../../node_modules/core-js/internals/new-promise-capability.js","../../node_modules/core-js/modules/es.promise.constructor.js","../../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../node_modules/core-js/modules/es.promise.all.js","../../node_modules/core-js/modules/es.promise.catch.js","../../node_modules/core-js/modules/es.promise.race.js","../../node_modules/core-js/modules/es.promise.reject.js","../../node_modules/core-js/internals/promise-resolve.js","../../node_modules/core-js/modules/es.promise.resolve.js","../../node_modules/core-js/modules/es.promise.all-settled.js","../../node_modules/core-js/modules/es.promise.any.js","../../node_modules/core-js/modules/es.promise.finally.js","../../node_modules/core-js/modules/es.promise.with-resolvers.js","../../node_modules/core-js/modules/es.reflect.apply.js","../../node_modules/core-js/modules/es.reflect.construct.js","../../node_modules/core-js/modules/es.reflect.define-property.js","../../node_modules/core-js/modules/es.reflect.delete-property.js","../../node_modules/core-js/internals/is-data-descriptor.js","../../node_modules/core-js/modules/es.reflect.get.js","../../node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","../../node_modules/core-js/modules/es.reflect.get-prototype-of.js","../../node_modules/core-js/modules/es.reflect.has.js","../../node_modules/core-js/modules/es.reflect.is-extensible.js","../../node_modules/core-js/modules/es.reflect.own-keys.js","../../node_modules/core-js/modules/es.reflect.prevent-extensions.js","../../node_modules/core-js/modules/es.reflect.set.js","../../node_modules/core-js/modules/es.reflect.set-prototype-of.js","../../node_modules/core-js/modules/es.reflect.to-string-tag.js","../../node_modules/core-js/internals/is-regexp.js","../../node_modules/core-js/internals/regexp-flags.js","../../node_modules/core-js/internals/regexp-get-flags.js","../../node_modules/core-js/internals/regexp-sticky-helpers.js","../../node_modules/core-js/internals/regexp-unsupported-dot-all.js","../../node_modules/core-js/internals/regexp-unsupported-ncg.js","../../node_modules/core-js/modules/es.regexp.constructor.js","../../node_modules/core-js/modules/es.regexp.dot-all.js","../../node_modules/core-js/internals/regexp-exec.js","../../node_modules/core-js/modules/es.regexp.exec.js","../../node_modules/core-js/modules/es.regexp.flags.js","../../node_modules/core-js/modules/es.regexp.sticky.js","../../node_modules/core-js/modules/es.regexp.test.js","../../node_modules/core-js/modules/es.regexp.to-string.js","../../node_modules/core-js/modules/es.set.constructor.js","../../node_modules/core-js/modules/es.string.at-alternative.js","../../node_modules/core-js/internals/string-multibyte.js","../../node_modules/core-js/modules/es.string.code-point-at.js","../../node_modules/core-js/internals/not-a-regexp.js","../../node_modules/core-js/internals/correct-is-regexp-logic.js","../../node_modules/core-js/modules/es.string.ends-with.js","../../node_modules/core-js/modules/es.string.from-code-point.js","../../node_modules/core-js/modules/es.string.includes.js","../../node_modules/core-js/modules/es.string.is-well-formed.js","../../node_modules/core-js/modules/es.string.iterator.js","../../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../../node_modules/core-js/internals/advance-string-index.js","../../node_modules/core-js/internals/regexp-exec-abstract.js","../../node_modules/core-js/modules/es.string.match.js","../../node_modules/core-js/modules/es.string.match-all.js","../../node_modules/core-js/internals/string-pad-webkit-bug.js","../../node_modules/core-js/modules/es.string.pad-end.js","../../node_modules/core-js/modules/es.string.pad-start.js","../../node_modules/core-js/modules/es.string.raw.js","../../node_modules/core-js/modules/es.string.repeat.js","../../node_modules/core-js/internals/get-substitution.js","../../node_modules/core-js/modules/es.string.replace.js","../../node_modules/core-js/modules/es.string.replace-all.js","../../node_modules/core-js/modules/es.string.search.js","../../node_modules/core-js/modules/es.string.split.js","../../node_modules/core-js/modules/es.string.starts-with.js","../../node_modules/core-js/modules/es.string.substr.js","../../node_modules/core-js/modules/es.string.to-well-formed.js","../../node_modules/core-js/internals/string-trim-forced.js","../../node_modules/core-js/modules/es.string.trim.js","../../node_modules/core-js/internals/string-trim-end.js","../../node_modules/core-js/modules/es.string.trim-right.js","../../node_modules/core-js/modules/es.string.trim-end.js","../../node_modules/core-js/internals/string-trim-start.js","../../node_modules/core-js/modules/es.string.trim-left.js","../../node_modules/core-js/modules/es.string.trim-start.js","../../node_modules/core-js/internals/create-html.js","../../node_modules/core-js/internals/string-html-forced.js","../../node_modules/core-js/modules/es.string.anchor.js","../../node_modules/core-js/modules/es.string.big.js","../../node_modules/core-js/modules/es.string.blink.js","../../node_modules/core-js/modules/es.string.bold.js","../../node_modules/core-js/modules/es.string.fixed.js","../../node_modules/core-js/modules/es.string.fontcolor.js","../../node_modules/core-js/modules/es.string.fontsize.js","../../node_modules/core-js/modules/es.string.italics.js","../../node_modules/core-js/modules/es.string.link.js","../../node_modules/core-js/modules/es.string.small.js","../../node_modules/core-js/modules/es.string.strike.js","../../node_modules/core-js/modules/es.string.sub.js","../../node_modules/core-js/modules/es.string.sup.js","../../node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","../../node_modules/core-js/internals/to-positive-integer.js","../../node_modules/core-js/internals/to-offset.js","../../node_modules/core-js/internals/to-uint8-clamped.js","../../node_modules/core-js/internals/is-big-int-array.js","../../node_modules/core-js/internals/to-big-int.js","../../node_modules/core-js/internals/typed-array-from.js","../../node_modules/core-js/internals/typed-array-constructor.js","../../node_modules/core-js/modules/es.typed-array.float32-array.js","../../node_modules/core-js/modules/es.typed-array.float64-array.js","../../node_modules/core-js/modules/es.typed-array.int8-array.js","../../node_modules/core-js/modules/es.typed-array.int16-array.js","../../node_modules/core-js/modules/es.typed-array.int32-array.js","../../node_modules/core-js/modules/es.typed-array.uint8-array.js","../../node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","../../node_modules/core-js/modules/es.typed-array.uint16-array.js","../../node_modules/core-js/modules/es.typed-array.uint32-array.js","../../node_modules/core-js/modules/es.typed-array.at.js","../../node_modules/core-js/modules/es.typed-array.copy-within.js","../../node_modules/core-js/modules/es.typed-array.every.js","../../node_modules/core-js/modules/es.typed-array.fill.js","../../node_modules/core-js/internals/typed-array-species-constructor.js","../../node_modules/core-js/internals/typed-array-from-species-and-list.js","../../node_modules/core-js/modules/es.typed-array.filter.js","../../node_modules/core-js/modules/es.typed-array.find.js","../../node_modules/core-js/modules/es.typed-array.find-index.js","../../node_modules/core-js/modules/es.typed-array.find-last.js","../../node_modules/core-js/modules/es.typed-array.find-last-index.js","../../node_modules/core-js/modules/es.typed-array.for-each.js","../../node_modules/core-js/modules/es.typed-array.from.js","../../node_modules/core-js/modules/es.typed-array.includes.js","../../node_modules/core-js/modules/es.typed-array.index-of.js","../../node_modules/core-js/modules/es.typed-array.iterator.js","../../node_modules/core-js/modules/es.typed-array.join.js","../../node_modules/core-js/modules/es.typed-array.last-index-of.js","../../node_modules/core-js/modules/es.typed-array.map.js","../../node_modules/core-js/modules/es.typed-array.of.js","../../node_modules/core-js/modules/es.typed-array.reduce.js","../../node_modules/core-js/modules/es.typed-array.reduce-right.js","../../node_modules/core-js/modules/es.typed-array.reverse.js","../../node_modules/core-js/modules/es.typed-array.set.js","../../node_modules/core-js/modules/es.typed-array.slice.js","../../node_modules/core-js/modules/es.typed-array.some.js","../../node_modules/core-js/modules/es.typed-array.sort.js","../../node_modules/core-js/modules/es.typed-array.subarray.js","../../node_modules/core-js/modules/es.typed-array.to-locale-string.js","../../node_modules/core-js/modules/es.typed-array.to-reversed.js","../../node_modules/core-js/modules/es.typed-array.to-sorted.js","../../node_modules/core-js/modules/es.typed-array.to-string.js","../../node_modules/core-js/modules/es.typed-array.with.js","../../node_modules/core-js/modules/es.unescape.js","../../node_modules/core-js/internals/collection-weak.js","../../node_modules/core-js/modules/es.weak-map.constructor.js","../../node_modules/core-js/modules/es.weak-set.constructor.js","../../node_modules/core-js/modules/esnext.suppressed-error.constructor.js","../../node_modules/core-js/internals/async-iterator-prototype.js","../../node_modules/core-js/internals/async-from-sync-iterator.js","../../node_modules/core-js/internals/get-iterator-direct.js","../../node_modules/core-js/internals/get-async-iterator.js","../../node_modules/core-js/internals/async-iterator-close.js","../../node_modules/core-js/internals/async-iterator-iteration.js","../../node_modules/core-js/internals/array-from-async.js","../../node_modules/core-js/modules/esnext.array.from-async.js","../../node_modules/core-js/modules/esnext.array.filter-out.js","../../node_modules/core-js/modules/esnext.array.filter-reject.js","../../node_modules/core-js/internals/array-group.js","../../node_modules/core-js/modules/esnext.array.group.js","../../node_modules/core-js/modules/esnext.array.group-by.js","../../node_modules/core-js/internals/array-group-to-map.js","../../node_modules/core-js/modules/esnext.array.group-by-to-map.js","../../node_modules/core-js/modules/esnext.array.group-to-map.js","../../node_modules/core-js/modules/esnext.array.is-template-object.js","../../node_modules/core-js/modules/esnext.array.last-index.js","../../node_modules/core-js/modules/esnext.array.last-item.js","../../node_modules/core-js/internals/iterate-simple.js","../../node_modules/core-js/internals/map-iterate.js","../../node_modules/core-js/internals/array-unique-by.js","../../node_modules/core-js/modules/esnext.array.unique-by.js","../../node_modules/core-js/internals/array-buffer-byte-length.js","../../node_modules/core-js/internals/array-buffer-is-detached.js","../../node_modules/core-js/modules/esnext.array-buffer.detached.js","../../node_modules/core-js/internals/try-node-require.js","../../node_modules/core-js/internals/structured-clone-proper-transfer.js","../../node_modules/core-js/internals/detach-transferable.js","../../node_modules/core-js/internals/array-buffer-transfer.js","../../node_modules/core-js/modules/esnext.array-buffer.transfer.js","../../node_modules/core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js","../../node_modules/core-js/internals/add-disposable-resource.js","../../node_modules/core-js/modules/esnext.async-disposable-stack.constructor.js","../../node_modules/core-js/modules/esnext.async-iterator.constructor.js","../../node_modules/core-js/internals/async-iterator-create-proxy.js","../../node_modules/core-js/internals/async-iterator-map.js","../../node_modules/core-js/internals/async-iterator-indexed.js","../../node_modules/core-js/modules/esnext.async-iterator.as-indexed-pairs.js","../../node_modules/core-js/modules/esnext.async-iterator.async-dispose.js","../../node_modules/core-js/internals/not-a-nan.js","../../node_modules/core-js/modules/esnext.async-iterator.drop.js","../../node_modules/core-js/modules/esnext.async-iterator.every.js","../../node_modules/core-js/modules/esnext.async-iterator.filter.js","../../node_modules/core-js/modules/esnext.async-iterator.find.js","../../node_modules/core-js/internals/get-async-iterator-flattenable.js","../../node_modules/core-js/modules/esnext.async-iterator.flat-map.js","../../node_modules/core-js/modules/esnext.async-iterator.for-each.js","../../node_modules/core-js/internals/async-iterator-wrap.js","../../node_modules/core-js/modules/esnext.async-iterator.from.js","../../node_modules/core-js/modules/esnext.async-iterator.indexed.js","../../node_modules/core-js/modules/esnext.async-iterator.map.js","../../node_modules/core-js/modules/esnext.async-iterator.reduce.js","../../node_modules/core-js/modules/esnext.async-iterator.some.js","../../node_modules/core-js/modules/esnext.async-iterator.take.js","../../node_modules/core-js/modules/esnext.async-iterator.to-array.js","../../node_modules/core-js/internals/numeric-range-iterator.js","../../node_modules/core-js/modules/esnext.bigint.range.js","../../node_modules/core-js/internals/composite-key.js","../../node_modules/core-js/modules/esnext.composite-key.js","../../node_modules/core-js/modules/esnext.composite-symbol.js","../../node_modules/core-js/modules/esnext.data-view.get-float16.js","../../node_modules/core-js/modules/esnext.data-view.get-uint8-clamped.js","../../node_modules/core-js/internals/a-data-view.js","../../node_modules/core-js/internals/math-f16round.js","../../node_modules/core-js/modules/esnext.data-view.set-float16.js","../../node_modules/core-js/modules/esnext.data-view.set-uint8-clamped.js","../../node_modules/core-js/modules/esnext.disposable-stack.constructor.js","../../node_modules/core-js/internals/function-demethodize.js","../../node_modules/core-js/modules/esnext.function.demethodize.js","../../node_modules/core-js/modules/esnext.function.is-callable.js","../../node_modules/core-js/modules/esnext.function.is-constructor.js","../../node_modules/core-js/modules/esnext.function.metadata.js","../../node_modules/core-js/modules/esnext.function.un-this.js","../../node_modules/core-js/modules/esnext.iterator.constructor.js","../../node_modules/core-js/internals/iterator-create-proxy.js","../../node_modules/core-js/internals/iterator-map.js","../../node_modules/core-js/internals/iterator-indexed.js","../../node_modules/core-js/modules/esnext.iterator.as-indexed-pairs.js","../../node_modules/core-js/modules/esnext.iterator.dispose.js","../../node_modules/core-js/modules/esnext.iterator.drop.js","../../node_modules/core-js/modules/esnext.iterator.every.js","../../node_modules/core-js/modules/esnext.iterator.filter.js","../../node_modules/core-js/modules/esnext.iterator.find.js","../../node_modules/core-js/internals/get-iterator-flattenable.js","../../node_modules/core-js/modules/esnext.iterator.flat-map.js","../../node_modules/core-js/modules/esnext.iterator.for-each.js","../../node_modules/core-js/modules/esnext.iterator.from.js","../../node_modules/core-js/modules/esnext.iterator.indexed.js","../../node_modules/core-js/modules/esnext.iterator.map.js","../../node_modules/core-js/modules/esnext.iterator.range.js","../../node_modules/core-js/modules/esnext.iterator.reduce.js","../../node_modules/core-js/modules/esnext.iterator.some.js","../../node_modules/core-js/modules/esnext.iterator.take.js","../../node_modules/core-js/modules/esnext.iterator.to-array.js","../../node_modules/core-js/modules/esnext.iterator.to-async.js","../../node_modules/core-js/internals/native-raw-json.js","../../node_modules/core-js/internals/is-raw-json.js","../../node_modules/core-js/modules/esnext.json.is-raw-json.js","../../node_modules/core-js/internals/parse-json-string.js","../../node_modules/core-js/modules/esnext.json.parse.js","../../node_modules/core-js/modules/esnext.json.raw-json.js","../../node_modules/core-js/internals/a-map.js","../../node_modules/core-js/modules/esnext.map.delete-all.js","../../node_modules/core-js/modules/esnext.map.emplace.js","../../node_modules/core-js/modules/esnext.map.every.js","../../node_modules/core-js/modules/esnext.map.filter.js","../../node_modules/core-js/modules/esnext.map.find.js","../../node_modules/core-js/modules/esnext.map.find-key.js","../../node_modules/core-js/internals/collection-from.js","../../node_modules/core-js/modules/esnext.map.from.js","../../node_modules/core-js/internals/same-value-zero.js","../../node_modules/core-js/modules/esnext.map.includes.js","../../node_modules/core-js/modules/esnext.map.key-by.js","../../node_modules/core-js/modules/esnext.map.key-of.js","../../node_modules/core-js/modules/esnext.map.map-keys.js","../../node_modules/core-js/modules/esnext.map.map-values.js","../../node_modules/core-js/modules/esnext.map.merge.js","../../node_modules/core-js/internals/collection-of.js","../../node_modules/core-js/modules/esnext.map.of.js","../../node_modules/core-js/modules/esnext.map.reduce.js","../../node_modules/core-js/modules/esnext.map.some.js","../../node_modules/core-js/modules/esnext.map.update.js","../../node_modules/core-js/internals/map-upsert.js","../../node_modules/core-js/modules/esnext.map.update-or-insert.js","../../node_modules/core-js/modules/esnext.map.upsert.js","../../node_modules/core-js/modules/esnext.math.clamp.js","../../node_modules/core-js/modules/esnext.math.deg-per-rad.js","../../node_modules/core-js/modules/esnext.math.degrees.js","../../node_modules/core-js/internals/math-scale.js","../../node_modules/core-js/modules/esnext.math.fscale.js","../../node_modules/core-js/modules/esnext.math.f16round.js","../../node_modules/core-js/modules/esnext.math.iaddh.js","../../node_modules/core-js/modules/esnext.math.imulh.js","../../node_modules/core-js/modules/esnext.math.isubh.js","../../node_modules/core-js/modules/esnext.math.rad-per-deg.js","../../node_modules/core-js/modules/esnext.math.radians.js","../../node_modules/core-js/modules/esnext.math.scale.js","../../node_modules/core-js/modules/esnext.math.seeded-prng.js","../../node_modules/core-js/modules/esnext.math.signbit.js","../../node_modules/core-js/modules/esnext.math.umulh.js","../../node_modules/core-js/modules/esnext.number.from-string.js","../../node_modules/core-js/modules/esnext.number.range.js","../../node_modules/core-js/internals/object-iterator.js","../../node_modules/core-js/modules/esnext.object.iterate-entries.js","../../node_modules/core-js/modules/esnext.object.iterate-keys.js","../../node_modules/core-js/modules/esnext.object.iterate-values.js","../../node_modules/core-js/modules/esnext.observable.constructor.js","../../node_modules/core-js/modules/esnext.observable.from.js","../../node_modules/core-js/modules/esnext.observable.of.js","../../node_modules/core-js/modules/esnext.promise.try.js","../../node_modules/core-js/internals/reflect-metadata.js","../../node_modules/core-js/modules/esnext.reflect.define-metadata.js","../../node_modules/core-js/modules/esnext.reflect.delete-metadata.js","../../node_modules/core-js/modules/esnext.reflect.get-metadata.js","../../node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js","../../node_modules/core-js/modules/esnext.reflect.get-own-metadata.js","../../node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js","../../node_modules/core-js/modules/esnext.reflect.has-metadata.js","../../node_modules/core-js/modules/esnext.reflect.has-own-metadata.js","../../node_modules/core-js/modules/esnext.reflect.metadata.js","../../node_modules/core-js/modules/esnext.regexp.escape.js","../../node_modules/core-js/internals/set-helpers.js","../../node_modules/core-js/internals/a-set.js","../../node_modules/core-js/modules/esnext.set.add-all.js","../../node_modules/core-js/modules/esnext.set.delete-all.js","../../node_modules/core-js/internals/set-iterate.js","../../node_modules/core-js/internals/set-clone.js","../../node_modules/core-js/internals/set-size.js","../../node_modules/core-js/internals/get-set-record.js","../../node_modules/core-js/internals/set-difference.js","../../node_modules/core-js/internals/set-method-accept-set-like.js","../../node_modules/core-js/modules/esnext.set.difference.v2.js","../../node_modules/core-js/internals/is-iterable.js","../../node_modules/core-js/internals/to-set-like.js","../../node_modules/core-js/modules/esnext.set.difference.js","../../node_modules/core-js/modules/esnext.set.every.js","../../node_modules/core-js/modules/esnext.set.filter.js","../../node_modules/core-js/modules/esnext.set.find.js","../../node_modules/core-js/modules/esnext.set.from.js","../../node_modules/core-js/internals/set-intersection.js","../../node_modules/core-js/modules/esnext.set.intersection.v2.js","../../node_modules/core-js/modules/esnext.set.intersection.js","../../node_modules/core-js/internals/set-is-disjoint-from.js","../../node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js","../../node_modules/core-js/modules/esnext.set.is-disjoint-from.js","../../node_modules/core-js/internals/set-is-subset-of.js","../../node_modules/core-js/modules/esnext.set.is-subset-of.v2.js","../../node_modules/core-js/modules/esnext.set.is-subset-of.js","../../node_modules/core-js/internals/set-is-superset-of.js","../../node_modules/core-js/modules/esnext.set.is-superset-of.v2.js","../../node_modules/core-js/modules/esnext.set.is-superset-of.js","../../node_modules/core-js/modules/esnext.set.join.js","../../node_modules/core-js/modules/esnext.set.map.js","../../node_modules/core-js/modules/esnext.set.of.js","../../node_modules/core-js/modules/esnext.set.reduce.js","../../node_modules/core-js/modules/esnext.set.some.js","../../node_modules/core-js/internals/set-symmetric-difference.js","../../node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js","../../node_modules/core-js/modules/esnext.set.symmetric-difference.js","../../node_modules/core-js/internals/set-union.js","../../node_modules/core-js/modules/esnext.set.union.v2.js","../../node_modules/core-js/modules/esnext.set.union.js","../../node_modules/core-js/modules/esnext.string.at.js","../../node_modules/core-js/internals/string-cooked.js","../../node_modules/core-js/modules/esnext.string.cooked.js","../../node_modules/core-js/modules/esnext.string.code-points.js","../../node_modules/core-js/internals/weak-map-helpers.js","../../node_modules/core-js/internals/string-parse.js","../../node_modules/core-js/modules/esnext.string.dedent.js","../../node_modules/core-js/modules/esnext.symbol.async-dispose.js","../../node_modules/core-js/modules/esnext.symbol.dispose.js","../../node_modules/core-js/internals/symbol-is-registered.js","../../node_modules/core-js/modules/esnext.symbol.is-registered-symbol.js","../../node_modules/core-js/modules/esnext.symbol.is-registered.js","../../node_modules/core-js/internals/symbol-is-well-known.js","../../node_modules/core-js/modules/esnext.symbol.is-well-known-symbol.js","../../node_modules/core-js/modules/esnext.symbol.is-well-known.js","../../node_modules/core-js/modules/esnext.symbol.matcher.js","../../node_modules/core-js/modules/esnext.symbol.metadata.js","../../node_modules/core-js/modules/esnext.symbol.metadata-key.js","../../node_modules/core-js/modules/esnext.symbol.observable.js","../../node_modules/core-js/modules/esnext.symbol.pattern-match.js","../../node_modules/core-js/modules/esnext.symbol.replace-all.js","../../node_modules/core-js/modules/esnext.typed-array.from-async.js","../../node_modules/core-js/modules/esnext.typed-array.filter-out.js","../../node_modules/core-js/modules/esnext.typed-array.filter-reject.js","../../node_modules/core-js/modules/esnext.typed-array.group-by.js","../../node_modules/core-js/modules/esnext.typed-array.to-spliced.js","../../node_modules/core-js/modules/esnext.typed-array.unique-by.js","../../node_modules/core-js/internals/an-object-or-undefined.js","../../node_modules/core-js/internals/a-string.js","../../node_modules/core-js/internals/base64-map.js","../../node_modules/core-js/internals/get-alphabet-option.js","../../node_modules/core-js/modules/esnext.uint8-array.from-base64.js","../../node_modules/core-js/modules/esnext.uint8-array.from-hex.js","../../node_modules/core-js/internals/an-uint8-array.js","../../node_modules/core-js/modules/esnext.uint8-array.to-base64.js","../../node_modules/core-js/modules/esnext.uint8-array.to-hex.js","../../node_modules/core-js/internals/a-weak-map.js","../../node_modules/core-js/modules/esnext.weak-map.delete-all.js","../../node_modules/core-js/modules/esnext.weak-map.from.js","../../node_modules/core-js/modules/esnext.weak-map.of.js","../../node_modules/core-js/modules/esnext.weak-map.emplace.js","../../node_modules/core-js/modules/esnext.weak-map.upsert.js","../../node_modules/core-js/internals/weak-set-helpers.js","../../node_modules/core-js/internals/a-weak-set.js","../../node_modules/core-js/modules/esnext.weak-set.add-all.js","../../node_modules/core-js/modules/esnext.weak-set.delete-all.js","../../node_modules/core-js/modules/esnext.weak-set.from.js","../../node_modules/core-js/modules/esnext.weak-set.of.js","../../node_modules/core-js/modules/web.atob.js","../../node_modules/core-js/modules/web.btoa.js","../../node_modules/core-js/internals/dom-iterables.js","../../node_modules/core-js/internals/dom-token-list-prototype.js","../../node_modules/core-js/modules/web.dom-collections.for-each.js","../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../node_modules/core-js/internals/dom-exception-constants.js","../../node_modules/core-js/modules/web.dom-exception.constructor.js","../../node_modules/core-js/modules/web.dom-exception.stack.js","../../node_modules/core-js/modules/web.dom-exception.to-string-tag.js","../../node_modules/core-js/modules/web.clear-immediate.js","../../node_modules/core-js/internals/engine-is-bun.js","../../node_modules/core-js/internals/schedulers-fix.js","../../node_modules/core-js/modules/web.set-immediate.js","../../node_modules/core-js/modules/web.queue-microtask.js","../../node_modules/core-js/modules/web.self.js","../../node_modules/core-js/modules/web.structured-clone.js","../../node_modules/core-js/modules/web.set-interval.js","../../node_modules/core-js/modules/web.set-timeout.js","../../node_modules/core-js/internals/url-constructor-detection.js","../../node_modules/core-js/internals/string-punycode-to-ascii.js","../../node_modules/core-js/modules/web.url-search-params.constructor.js","../../node_modules/core-js/modules/web.url.constructor.js","../../node_modules/core-js/modules/web.url.can-parse.js","../../node_modules/core-js/modules/web.url.to-json.js","../../node_modules/core-js/modules/web.url-search-params.delete.js","../../node_modules/core-js/modules/web.url-search-params.has.js","../../node_modules/core-js/modules/web.url-search-params.size.js","../../src/config.ts","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/utils.js","../../node_modules/axios/lib/core/AxiosError.js","../../node_modules/axios/lib/helpers/null.js","../../node_modules/axios/lib/helpers/toFormData.js","../../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../node_modules/axios/lib/helpers/buildURL.js","../../node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/axios/lib/defaults/transitional.js","../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../node_modules/axios/lib/platform/browser/classes/FormData.js","../../node_modules/axios/lib/platform/browser/classes/Blob.js","../../node_modules/axios/lib/platform/browser/index.js","../../node_modules/axios/lib/platform/common/utils.js","../../node_modules/axios/lib/platform/index.js","../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/axios/lib/defaults/index.js","../../node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/axios/lib/core/AxiosHeaders.js","../../node_modules/axios/lib/core/transformData.js","../../node_modules/axios/lib/cancel/isCancel.js","../../node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/axios/lib/core/settle.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/axios/lib/helpers/speedometer.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/adapters/adapters.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/core/mergeConfig.js","../../node_modules/axios/lib/env/data.js","../../node_modules/axios/lib/helpers/validator.js","../../node_modules/axios/lib/core/Axios.js","../../node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/axios/lib/helpers/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/axios/lib/axios.js","../../src/api/API.ts","../../node_modules/@vue/shared/dist/shared.esm-bundler.js","../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../src/store/layout/snackbar.ts","../../src/store/routerHistory.ts","../../src/types/index.ts","../../src/assets/icons/Allergen.vue","../../src/assets/icons/Amount.vue","../../src/assets/icons/AmountEuro.vue","../../src/assets/icons/ApplePay.vue","../../src/assets/icons/ApplePayColor.vue","../../src/assets/icons/Back.vue","../../src/assets/icons/Calendar.vue","../../src/assets/icons/navbar/CalendarBold.vue","../../src/assets/icons/navbar/CalendarLight.vue","../../src/assets/icons/navbar/MenuBold.vue","../../src/assets/icons/navbar/MenuLight.vue","../../src/assets/icons/Call.vue","../../src/assets/icons/Camera.vue","../../src/assets/icons/navbar/CartBold.vue","../../src/assets/icons/navbar/CartLight.vue","../../src/assets/icons/Cash.vue","../../src/assets/icons/Check.vue","../../src/assets/icons/CheckboxOff.vue","../../src/assets/icons/CheckboxOn.vue","../../src/assets/icons/ChevronDown.vue","../../src/assets/icons/ChevronRight.vue","../../src/assets/icons/ChevronUp.vue","../../src/assets/icons/Clock.vue","../../src/assets/icons/Close.vue","../../src/assets/icons/CreditCard.vue","../../src/assets/icons/CreditCardColor.vue","../../src/assets/icons/Cutlery.vue","../../src/assets/icons/Dot.vue","../../src/assets/icons/Deselect.vue","../../src/assets/icons/Directions.vue","../../src/assets/icons/DutchPayment.vue","../../src/assets/icons/Facebook.vue","../../src/assets/icons/Favorite.vue","../../src/assets/icons/Fidelity.vue","../../src/assets/icons/FidelityPay.vue","../../src/assets/icons/FidelityPayColor.vue","../../src/assets/icons/Flag.vue","../../src/assets/icons/FlagBold.vue","../../src/assets/icons/Forward.vue","../../src/assets/icons/GooglePay.vue","../../src/assets/icons/GooglePayColor.vue","../../src/assets/icons/Hamburger.vue","../../src/assets/icons/Heart.vue","../../src/assets/icons/History.vue","../../src/assets/icons/Info.vue","../../src/assets/icons/Instagram.vue","../../src/assets/icons/KeyboardCancel.vue","../../src/assets/icons/Language.vue","../../src/assets/icons/navbar/LocationBold.vue","../../src/assets/icons/navbar/LocationLight.vue","../../src/assets/icons/Lock.vue","../../src/assets/icons/LockMessage.vue","../../src/assets/icons/LockOpen.vue","../../src/assets/icons/LockSolid.vue","../../src/assets/icons/Logout.vue","../../src/assets/icons/Mail.vue","../../src/assets/icons/MailMessage.vue","../../src/assets/icons/Map.vue","../../src/assets/icons/Minus.vue","../../src/assets/icons/Mobile.vue","../../src/assets/icons/More.vue","../../src/assets/icons/Oops.vue","../../src/assets/icons/Order.vue","../../src/assets/icons/navbar/OrderBold.vue","../../src/assets/icons/navbar/OrderLight.vue","../../src/assets/icons/PayPal.vue","../../src/assets/icons/PayPalColor.vue","../../src/assets/icons/Pencil.vue","../../src/assets/icons/People.vue","../../src/assets/icons/navbar/PeopleBold.vue","../../src/assets/icons/navbar/PeopleLight.vue","../../src/assets/icons/PersonalizedAmount.vue","../../src/assets/icons/Phone.vue","../../src/assets/icons/Plus.vue","../../src/assets/icons/Point.vue","../../src/assets/icons/PointPlus.vue","../../src/assets/icons/Position.vue","../../src/assets/icons/Promotion.vue","../../src/assets/icons/Satispay.vue","../../src/assets/icons/SatispayColor.vue","../../src/assets/icons/Search.vue","../../src/assets/icons/Select.vue","../../src/assets/icons/Share.vue","../../src/assets/icons/ShareIOS.vue","../../src/assets/icons/SplitPayment.vue","../../src/assets/icons/SuccessMessage.vue","../../src/assets/icons/Surname.vue","../../src/assets/icons/Table.vue","../../src/assets/icons/Takeaway.vue","../../src/assets/icons/Trash.vue","../../src/assets/icons/Waiter.vue","../../src/assets/icons/WaiterBig.vue","../../src/assets/icons/Wallet.vue","../../src/assets/icons/Wink.vue","../../src/assets/icons/Whatsapp.vue","../../src/assets/icons/Sorry.vue","../../src/assets/icons/index.ts","../../src/components/utils/EatIcon.vue","../../src/api/App.ts","../../src/models/App.ts","../../src/models/Cart.ts","../../src/utils/formatPrice.ts","../../src/models/Address.ts","../../node_modules/luxon/src/errors.js","../../node_modules/luxon/src/impl/formats.js","../../node_modules/luxon/src/zone.js","../../node_modules/luxon/src/zones/systemZone.js","../../node_modules/luxon/src/zones/IANAZone.js","../../node_modules/luxon/src/impl/locale.js","../../node_modules/luxon/src/zones/fixedOffsetZone.js","../../node_modules/luxon/src/zones/invalidZone.js","../../node_modules/luxon/src/impl/zoneUtil.js","../../node_modules/luxon/src/settings.js","../../node_modules/luxon/src/impl/invalid.js","../../node_modules/luxon/src/impl/conversions.js","../../node_modules/luxon/src/impl/util.js","../../node_modules/luxon/src/impl/english.js","../../node_modules/luxon/src/impl/formatter.js","../../node_modules/luxon/src/impl/regexParser.js","../../node_modules/luxon/src/duration.js","../../node_modules/luxon/src/interval.js","../../node_modules/luxon/src/info.js","../../node_modules/luxon/src/impl/diff.js","../../node_modules/luxon/src/impl/digits.js","../../node_modules/luxon/src/impl/tokenParser.js","../../node_modules/luxon/src/datetime.js","../../src/utils/calendar.ts","../../src/store/timeSlots/calendar.ts","../../src/api/TimeSlots.ts","../../src/store/timeSlots/timeSlots.ts","../../src/store/timeSlots/dateTimeSlots.ts","../../node_modules/@googlemaps/js-api-loader/dist/index.esm.js","../../node_modules/vue-gtag/dist/vue-gtag.esm.js","../../src/utils/googleUtils.ts","../../src/store/delivery/deliveryDistance.ts","../../src/api/User.ts","../../src/utils/localStorage.ts","../../src/store/delivery/localStorageAddressesService.ts","../../src/store/delivery/deliveryAddress.ts","../../src/store/delivery/deliveryAddresses.ts","../../src/models/Product.ts","../../src/store/cart/total.ts","../../src/store/cart.ts","../../src/utils/userAgentData.ts","../../src/store/app.ts","../../src/components/EatImage.vue","../../src/components/utils/Loading.vue","../../node_modules/vee-validate/dist/vee-validate.esm.js","../../src/components/inputs/EatField.vue","../../src/components/inputs/EatFieldMessage.vue","../../src/components/inputs/EatSelect.vue","../../src/utils/index.ts","../../src/components/inputs/EatSelector.vue","../../src/components/inputs/EatTextInput.vue","../../src/components/inputs/EatTextArea.vue","../../src/components/inputs/EatStepper.vue","../../src/components/inputs/EatNumberInput.vue","../../src/components/inputs/EatCheckbox.vue","../../src/components/inputs/EatToggleButton.vue","../../node_modules/vue-recaptcha/dist/utils.mjs","../../node_modules/vue-recaptcha/dist/composables/context.mjs","../../node_modules/p-defer/index.js","../../node_modules/defu/dist/defu.mjs","../../node_modules/vue-recaptcha/dist/script-manager/common.mjs","../../node_modules/vue-recaptcha/dist/composables/proxy.mjs","../../node_modules/vue-recaptcha/dist/plugin.mjs","../../node_modules/vue-recaptcha/dist/script-manager/head.mjs","../../node_modules/@vueuse/shared/index.mjs","../../node_modules/vue-recaptcha/dist/composables/challenge-v2.mjs","../../node_modules/vue-recaptcha/dist/composables/script-provider.mjs","../../node_modules/vue-recaptcha/dist/composables/component-v2.mjs","../../node_modules/vue-recaptcha/dist/components/Checkbox.vue","../../node_modules/vue-recaptcha/dist/head.mjs","../../src/components/inputs/EatRecaptcha.vue","../../src/components/utils/AddressFormatted.vue","../../src/store/layout/scrollables.ts","../../src/store/animations/animations.ts","../../node_modules/vue-router/dist/vue-router.mjs","../../node_modules/gsap/gsap-core.js","../../node_modules/gsap/CSSPlugin.js","../../node_modules/gsap/index.js","../../node_modules/gsap/Observer.js","../../node_modules/gsap/ScrollTrigger.js","../../node_modules/gsap/utils/paths.js","../../node_modules/gsap/utils/matrix.js","../../node_modules/gsap/MotionPathPlugin.js","../../node_modules/gsap/ScrollToPlugin.js","../../node_modules/@intlify/shared/dist/shared.mjs","../../node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js","../../node_modules/@intlify/core-base/dist/core-base.mjs","../../node_modules/vue-i18n/dist/vue-i18n.mjs","../../src/i18n/index.ts","../../src/store/user.ts","../../src/utils/queryParams.ts","../../src/api/Menu.ts","../../src/store/menu/index.ts","../../src/store/init/initData.ts","../../src/store/cart/cartItems.ts","../../src/store/loginLogout.ts","../../src/plugins/auth.ts","../../node_modules/property-expr/index.js","../../node_modules/tiny-case/index.js","../../node_modules/toposort/index.js","../../node_modules/yup/index.esm.js","../../src/app.ts","../../src/components/modals/AddToHomeIOSPopOver.vue","../../src/layout/partials/EatNavigation.vue","../../node_modules/@vueuse/core/index.mjs","../../src/layout/partials/EatSnackbar.vue","../../src/layout/partials/MobileLandscapeMessage.vue","../../node_modules/@vee-validate/i18n/dist/vee-validate-i18n.esm.js","../../src/utils/localization.ts","../../src/store/appTitle.ts","../../src/store/layout/layout.ts","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/webtransport.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/api/Table.ts","../../src/store/table/modules/payment.ts","../../src/store/table/modules/table.ts","../../src/store/table/modules/order.ts","../../src/store/table/modules/sync.ts","../../src/store/table/index.ts","../../src/styles/setupColors.ts","../../src/App.vue","../../src/store/layout/moreDialog.ts","../../src/components/LanguageDropDownMenu.vue","../../src/components/utils/EatSearchBar.vue"],"sourcesContent":["'use strict';\nvar 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 es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.35.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar 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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar 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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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 = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\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) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar 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.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\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\nvar concat = uncurryThis([].concat);\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 ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\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 : isCallable(detection) ? 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","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\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.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\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] || defineGlobalProperty(TARGET, {});\n } else {\n target = global[TARGET] && global[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\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 defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = global.RangeError;\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null)));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n var $this = this === undefined ? global : this;\n if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor($this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty($this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = new Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n installErrorStack(result, WrappedError, result.stack, 2);\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","'use strict';\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\n// eslint-disable-next-line es/no-error-cause -- feature detection\nvar FORCED = new Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe\n var object = Object.create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar errorToString = require('../internals/error-to-string');\n\nvar ErrorPrototype = Error.prototype;\n\n// `Error.prototype.toString` method fix\n// https://tc39.es/ecma262/#sec-error.prototype.tostring\nif (ErrorPrototype.toString !== errorToString) {\n defineBuiltIn(ErrorPrototype, 'toString', errorToString);\n}\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n installErrorStack(that, $AggregateError, that.stack, 1);\n if (arguments.length > 2) installErrorCause(that, arguments[2]);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n AggregateError: $AggregateError\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar fails = require('../internals/fails');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar AGGREGATE_ERROR = 'AggregateError';\nvar $AggregateError = getBuiltIn(AGGREGATE_ERROR);\n\nvar FORCED = !fails(function () {\n return $AggregateError([1]).errors[0] !== 1;\n}) && fails(function () {\n return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7;\n});\n\n// https://tc39.es/ecma262/#sec-aggregate-error\n$({ global: true, constructor: true, arity: 2, forced: FORCED }, {\n AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) {\n // eslint-disable-next-line no-unused-vars -- required for functions `.length`\n return function AggregateError(errors, message) { return apply(init, this, arguments); };\n }, FORCED, true)\n});\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://tc39.es/ecma262/#sec-array.prototype.at\n$({ target: 'Array', proto: true }, {\n at: function at(index) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n }\n});\n\naddToUnscopables('at');\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-findindex -- testing\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_FIND_LAST_INDEX = TYPE === 1;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var index = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var value, result;\n while (index-- > 0) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (result) switch (TYPE) {\n case 0: return value; // findLast\n case 1: return index; // findLastIndex\n }\n }\n return IS_FIND_LAST_INDEX ? -1 : undefined;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.findLast` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLast: createMethod(0),\n // `Array.prototype.findLastIndex` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLastIndex: createMethod(1)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-array.prototype.findlast\n$({ target: 'Array', proto: true }, {\n findLast: function findLast(callbackfn /* , that = undefined */) {\n return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('findLast');\n","'use strict';\nvar $ = require('../internals/export');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findlastindex\n$({ target: 'Array', proto: true }, {\n findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) {\n return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('findLastIndex');\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n doesNotExceedSafeInteger(targetIndex + 1);\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A;\n aCallable(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, {\n forEach: forEach\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject !== Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","'use strict';\nvar $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\n// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n lastIndexOf: lastIndexOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isConstructor = require('../internals/is-constructor');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\n\nvar ISNT_GENERIC = fails(function () {\n function F() { /* empty */ }\n // eslint-disable-next-line es/no-array-of -- safe\n return !($Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.es/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n of: function of(/* ...args */) {\n var index = 0;\n var argumentsLength = arguments.length;\n var result = new (isConstructor(this) ? this : $Array)(argumentsLength);\n while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n result.length = argumentsLength;\n return result;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n aCallable(callbackfn);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight');\n\n// `Array.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar arraySlice = require('../internals/array-slice');\n\nvar floor = Math.floor;\n\nvar sort = function (array, comparefn) {\n var length = array.length;\n\n if (length < 8) {\n // insertion sort\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n }\n } else {\n // merge sort\n var middle = floor(length / 2);\n var left = sort(arraySlice(array, 0, middle), comparefn);\n var right = sort(arraySlice(array, middle), comparefn);\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n }\n }\n\n return array;\n};\n\nmodule.exports = sort;\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.es/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nmodule.exports = function (O, C) {\n var len = lengthOfArrayLike(O);\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = O[len - k - 1];\n return A;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar $Array = Array;\n\n// `Array.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-array.prototype.toreversed\n$({ target: 'Array', proto: true }, {\n toReversed: function toReversed() {\n return arrayToReversed(toIndexedObject(this), $Array);\n }\n});\n\naddToUnscopables('toReversed');\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list, $length) {\n var index = 0;\n var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n var Constructor = global[CONSTRUCTOR];\n var Prototype = Constructor && Constructor.prototype;\n return Prototype && Prototype[METHOD];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar $Array = Array;\nvar sort = uncurryThis(getBuiltInPrototypeMethod('Array', 'sort'));\n\n// `Array.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-array.prototype.tosorted\n$({ target: 'Array', proto: true }, {\n toSorted: function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = toIndexedObject(this);\n var A = arrayFromConstructorAndList($Array, O);\n return sort(A, compareFn);\n }\n});\n\naddToUnscopables('toSorted');\n","'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $Array = Array;\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.toSpliced` method\n// https://tc39.es/ecma262/#sec-array.prototype.tospliced\n$({ target: 'Array', proto: true }, {\n toSpliced: function toSpliced(start, deleteCount /* , ...items */) {\n var O = toIndexedObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var k = 0;\n var insertCount, actualDeleteCount, newLen, A;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = $Array(newLen);\n\n for (; k < actualStart; k++) A[k] = O[k];\n for (; k < actualStart + insertCount; k++) A[k] = arguments[k - actualStart + 2];\n for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];\n\n return A;\n }\n});\n\naddToUnscopables('toSpliced');\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n return A;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar arrayWith = require('../internals/array-with');\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar $Array = Array;\n\n// `Array.prototype.with` method\n// https://tc39.es/ecma262/#sec-array.prototype.with\n$({ target: 'Array', proto: true }, {\n 'with': function (index, value) {\n return arrayWith(toIndexedObject(this), $Array, index, value);\n }\n});\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw new $RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\n// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n === 0 || n !== n ? n : n < 0 ? -1 : 1;\n};\n","'use strict';\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\n\nvar EPSILON = 2.220446049250313e-16; // Number.EPSILON\nvar INVERSE_EPSILON = 1 / EPSILON;\n\nvar roundTiesToEven = function (n) {\n return n + INVERSE_EPSILON - INVERSE_EPSILON;\n};\n\nmodule.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) {\n var n = +x;\n var absolute = abs(n);\n var s = sign(n);\n if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON;\n var a = (1 + FLOAT_EPSILON / EPSILON) * absolute;\n var result = a - (a - absolute);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity;\n return s * result;\n};\n","'use strict';\nvar floatRound = require('../internals/math-float-round');\n\nvar FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23;\nvar FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104\nvar FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126;\n\n// `Math.fround` method implementation\n// https://tc39.es/ecma262/#sec-math.fround\n// eslint-disable-next-line es/no-math-fround -- safe\nmodule.exports = Math.fround || function fround(x) {\n return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE);\n};\n","'use strict';\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar $Array = Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = $Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number !== number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number !== number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent += eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa += pow(2, mantissaLength);\n exponent -= eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar fround = require('../internals/math-fround');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER);\nvar getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW);\nvar setInternalState = InternalStateModule.set;\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(fround(number), 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key, getInternalState) {\n defineBuiltInAccessor(Constructor[PROTOTYPE], key, {\n configurable: true,\n get: function () {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var store = getInternalDataViewState(view);\n var intIndex = toIndex(index);\n var boolIsLittleEndian = !!isLittleEndian;\n if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX);\n var bytes = store.bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return boolIsLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var store = getInternalDataViewState(view);\n var intIndex = toIndex(index);\n var pack = conversion(+value);\n var boolIsLittleEndian = !!isLittleEndian;\n if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX);\n var bytes = store.bytes;\n var start = intIndex + store.byteOffset;\n for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n type: ARRAY_BUFFER,\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) {\n this.byteLength = byteLength;\n this.detached = false;\n }\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferState = getInternalArrayBufferState(buffer);\n var bufferLength = bufferState.byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw new RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw new RangeError(WRONG_LENGTH);\n setInternalState(this, {\n type: DATA_VIEW,\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset,\n bytes: bufferState.bytes\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState);\n addGetter($DataView, 'buffer', getInternalDataViewState);\n addGetter($DataView, 'byteLength', getInternalDataViewState);\n addGetter($DataView, 'byteOffset', getInternalDataViewState);\n }\n\n defineBuiltIns(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer);\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n\n copyConstructorProperties($ArrayBuffer, NativeArrayBuffer);\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\n\n// `ArrayBuffer.isView` method\n// https://tc39.es/ecma262/#sec-arraybuffer.isview\n$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n isView: ArrayBufferViewCore.isView\n});\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar DataViewPrototype = DataView.prototype;\nvar nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);\nvar getUint8 = uncurryThis(DataViewPrototype.getUint8);\nvar setUint8 = uncurryThis(DataViewPrototype.setUint8);\n\nvar INCORRECT_SLICE = fails(function () {\n return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n slice: function slice(start, end) {\n if (nativeArrayBufferSlice && end === undefined) {\n return nativeArrayBufferSlice(anObject(this), start); // FF fix\n }\n var length = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n var viewSource = new DataView(this);\n var viewTarget = new DataView(result);\n var index = 0;\n while (first < fin) {\n setUint8(viewTarget, index++, getUint8(viewSource, first++));\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\n\n// `DataView` constructor\n// https://tc39.es/ecma262/#sec-dataview-constructor\n$({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, {\n DataView: ArrayBufferModule.DataView\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\n// IE8- non-standard case\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-date-prototype-getyear-setyear -- detection\n return new Date(16e11).getYear() !== 120;\n});\n\nvar getFullYear = uncurryThis(Date.prototype.getFullYear);\n\n// `Date.prototype.getYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.getyear\n$({ target: 'Date', proto: true, forced: FORCED }, {\n getYear: function getYear() {\n return getFullYear(this) - 1900;\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Date = Date;\nvar thisTimeValue = uncurryThis($Date.prototype.getTime);\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return thisTimeValue(new $Date());\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar DatePrototype = Date.prototype;\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\nvar setFullYear = uncurryThis(DatePrototype.setFullYear);\n\n// `Date.prototype.setYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.setyear\n$({ target: 'Date', proto: true }, {\n setYear: function setYear(year) {\n // validate\n thisTimeValue(this);\n var yi = toIntegerOrInfinity(year);\n var yyyy = yi >= 0 && yi <= 99 ? yi + 1900 : yi;\n return setFullYear(this, yyyy);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Date.prototype.toGMTString` method\n// https://tc39.es/ecma262/#sec-date.prototype.togmtstring\n$({ target: 'Date', proto: true }, {\n toGMTString: Date.prototype.toUTCString\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr === '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar $RangeError = RangeError;\nvar $isFinite = isFinite;\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar nativeDateToISOString = DatePrototype.toISOString;\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\nvar getUTCDate = uncurryThis(DatePrototype.getUTCDate);\nvar getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear);\nvar getUTCHours = uncurryThis(DatePrototype.getUTCHours);\nvar getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds);\nvar getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes);\nvar getUTCMonth = uncurryThis(DatePrototype.getUTCMonth);\nvar getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds);\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n nativeDateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value');\n var date = this;\n var year = getUTCFullYear(date);\n var milliseconds = getUTCMilliseconds(date);\n var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n '-' + padStart(getUTCMonth(date) + 1, 2, 0) +\n '-' + padStart(getUTCDate(date), 2, 0) +\n 'T' + padStart(getUTCHours(date), 2, 0) +\n ':' + padStart(getUTCMinutes(date), 2, 0) +\n ':' + padStart(getUTCSeconds(date), 2, 0) +\n '.' + padStart(milliseconds, 3, 0) +\n 'Z';\n} : nativeDateToISOString;\n","'use strict';\nvar $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n toISOString: toISOString\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.es/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O, 'number');\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar $TypeError = TypeError;\n\n// `Date.prototype[@@toPrimitive](hint)` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nmodule.exports = function (hint) {\n anObject(this);\n if (hint === 'string' || hint === 'default') hint = 'string';\n else if (hint !== 'number') throw new $TypeError('Incorrect hint');\n return ordinaryToPrimitive(this, hint);\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nif (!hasOwn(DatePrototype, TO_PRIMITIVE)) {\n defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = uncurryThis(DatePrototype[TO_STRING]);\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (String(new Date(NaN)) !== INVALID_DATE) {\n defineBuiltIn(DatePrototype, TO_STRING, function toString() {\n var value = thisTimeValue(this);\n // eslint-disable-next-line no-self-compare -- NaN check\n return value === value ? nativeDateToString(this) : INVALID_DATE;\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar exec = uncurryThis(/./.exec);\nvar numberToString = uncurryThis(1.0.toString);\nvar toUpperCase = uncurryThis(''.toUpperCase);\n\nvar raw = /[\\w*+\\-./@]/;\n\nvar hex = function (code, length) {\n var result = numberToString(code, 16);\n while (result.length < length) result = '0' + result;\n return result;\n};\n\n// `escape` method\n// https://tc39.es/ecma262/#sec-escape-string\n$({ global: true }, {\n escape: function escape(string) {\n var str = toString(string);\n var result = '';\n var length = str.length;\n var index = 0;\n var chr, code;\n while (index < length) {\n chr = charAt(str, index++);\n if (exec(raw, chr)) {\n result += chr;\n } else {\n code = charCodeAt(chr, 0);\n if (code < 256) {\n result += '%' + hex(code, 2);\n } else {\n result += '%u' + toUpperCase(hex(code, 4));\n }\n }\n } return result;\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n var list = [];\n var i = 0;\n for (; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\n$({ target: 'Function', proto: true, forced: Function.bind !== bind }, {\n bind: bind\n});\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar makeBuiltIn = require('../internals/make-built-in');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) {\n if (!isCallable(this) || !isObject(O)) return false;\n var P = this.prototype;\n return isObject(P) ? isPrototypeOf(P, O) : O instanceof this;\n }, HAS_INSTANCE) });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true, forced: global.globalThis !== global }, {\n globalThis: global\n});\n","'use strict';\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY === 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY === 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key === key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n entry = entry.next;\n }\n state.first = state.last = undefined;\n state.index = create(null);\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first === entry) state.first = next;\n if (state.last === entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind === 'keys') return createIterResultObject(entry.key, false);\n if (kind === 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar iterate = require('../internals/iterate');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar Map = MapHelpers.Map;\nvar has = MapHelpers.has;\nvar get = MapHelpers.get;\nvar set = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// `Map.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Map', stat: true, forced: IS_PURE }, {\n groupBy: function groupBy(items, callbackfn) {\n requireObjectCoercible(items);\n aCallable(callbackfn);\n var map = new Map();\n var k = 0;\n iterate(items, function (value) {\n var key = callbackfn(value, k++);\n if (!has(map, key)) set(map, key, [value]);\n else push(get(map, key), value);\n });\n return map;\n }\n});\n","'use strict';\nvar log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.es/ecma262/#sec-math.log1p\n// eslint-disable-next-line es/no-math-log1p -- safe\nmodule.exports = Math.log1p || function log1p(x) {\n var n = +x;\n return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// eslint-disable-next-line es/no-math-acosh -- required for testing\nvar $acosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !$acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n || Math.floor($acosh(Number.MAX_VALUE)) !== 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n || $acosh(Infinity) !== Infinity;\n\n// `Math.acosh` method\n// https://tc39.es/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n acosh: function acosh(x) {\n var n = +x;\n return n < 1 ? NaN : n > 94906265.62425156\n ? log(n) + LN2\n : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-asinh -- required for testing\nvar $asinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\n\nfunction asinh(x) {\n var n = +x;\n return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1));\n}\n\nvar FORCED = !($asinh && 1 / $asinh(0) > 0);\n\n// `Math.asinh` method\n// https://tc39.es/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: FORCED }, {\n asinh: asinh\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-atanh -- required for testing\nvar $atanh = Math.atanh;\nvar log = Math.log;\n\nvar FORCED = !($atanh && 1 / $atanh(-0) < 0);\n\n// `Math.atanh` method\n// https://tc39.es/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: FORCED }, {\n atanh: function atanh(x) {\n var n = +x;\n return n === 0 ? n : log((1 + n) / (1 - n)) / 2;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.es/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n cbrt: function cbrt(x) {\n var n = +x;\n return sign(n) * pow(abs(n), 1 / 3);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.es/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n clz32: function clz32(x) {\n var n = x >>> 0;\n return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32;\n }\n});\n","'use strict';\n// eslint-disable-next-line es/no-math-expm1 -- safe\nvar $expm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.es/ecma262/#sec-math.expm1\nmodule.exports = (!$expm1\n // Old FF bug\n // eslint-disable-next-line no-loss-of-precision -- required for old engines\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) !== -2e-17\n) ? function expm1(x) {\n var n = +x;\n return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1;\n} : $expm1;\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// eslint-disable-next-line es/no-math-cosh -- required for testing\nvar $cosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\nvar FORCED = !$cosh || $cosh(710) === Infinity;\n\n// `Math.cosh` method\n// https://tc39.es/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n cosh: function cosh(x) {\n var t = expm1(abs(x) - 1) + 1;\n return (t + 1 / (t * E * E)) * (E / 2);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.es/ecma262/#sec-math.expm1\n// eslint-disable-next-line es/no-math-expm1 -- required for testing\n$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 });\n","'use strict';\nvar $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.es/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-math-imul -- required for testing\nvar $imul = Math.imul;\n\nvar FORCED = fails(function () {\n return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2;\n});\n\n// `Math.imul` method\n// https://tc39.es/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n imul: function imul(x, y) {\n var UINT16 = 0xFFFF;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","'use strict';\nvar log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// eslint-disable-next-line es/no-math-log10 -- safe\nmodule.exports = Math.log10 || function log10(x) {\n return log(x) * LOG10E;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar log10 = require('../internals/math-log10');\n\n// `Math.log10` method\n// https://tc39.es/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n log10: log10\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.es/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n","'use strict';\nvar $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n log2: function log2(x) {\n return log(x) / LN2;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-math-sinh -- required for testing\n return Math.sinh(-2e-17) !== -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.es/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n sinh: function sinh(x) {\n var n = +x;\n return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.es/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n tanh: function tanh(x) {\n var n = +x;\n var a = expm1(n);\n var b = expm1(-n);\n return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n));\n }\n});\n","'use strict';\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","'use strict';\nvar $ = require('../internals/export');\nvar trunc = require('../internals/math-trunc');\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: trunc\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n // fast equal of /^0b[01]+$/i\n case 66:\n case 98:\n radix = 2;\n maxCode = 49;\n break;\n // fast equal of /^0o[0-7]+$/i\n case 79:\n case 111:\n radix = 8;\n maxCode = 55;\n break;\n default:\n return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.es/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n EPSILON: Math.pow(2, -52)\n});\n","'use strict';\nvar global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\n// `Number.isInteger` method\n// https://tc39.es/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isIntegralNumber\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.es/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n isSafeInteger: function isSafeInteger(number) {\n return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result;\n} : $parseFloat;\n","'use strict';\nvar $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.es/ecma262/#sec-number.parseFloat\n// eslint-disable-next-line es/no-number-parsefloat -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, {\n parseFloat: parseFloat\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n// eslint-disable-next-line es/no-number-parseint -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, {\n parseInt: parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar log10 = require('../internals/math-log10');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar $isFinite = isFinite;\nvar abs = Math.abs;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar round = Math.round;\nvar nativeToExponential = uncurryThis(1.0.toExponential);\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\n\n// Edge 17-\nvar ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11'\n // IE11- && Edge 14-\n && nativeToExponential(1.255, 2) === '1.25e+0'\n // FF86-, V8 ~ Chrome 49-50\n && nativeToExponential(12345, 3) === '1.235e+4'\n // FF86-, V8 ~ Chrome 49-50\n && nativeToExponential(25, 0) === '3e+1';\n\n// IE8-\nvar throwsOnInfinityFraction = function () {\n return fails(function () {\n nativeToExponential(1, Infinity);\n }) && fails(function () {\n nativeToExponential(1, -Infinity);\n });\n};\n\n// Safari <11 && FF <50\nvar properNonFiniteThisCheck = function () {\n return !fails(function () {\n nativeToExponential(Infinity, Infinity);\n nativeToExponential(NaN, Infinity);\n });\n};\n\nvar FORCED = !ROUNDS_PROPERLY || !throwsOnInfinityFraction() || !properNonFiniteThisCheck();\n\n// `Number.prototype.toExponential` method\n// https://tc39.es/ecma262/#sec-number.prototype.toexponential\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toExponential: function toExponential(fractionDigits) {\n var x = thisNumberValue(this);\n if (fractionDigits === undefined) return nativeToExponential(x);\n var f = toIntegerOrInfinity(fractionDigits);\n if (!$isFinite(x)) return String(x);\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (f < 0 || f > 20) throw new $RangeError('Incorrect fraction digits');\n if (ROUNDS_PROPERLY) return nativeToExponential(x, f);\n var s = '';\n var m = '';\n var e = 0;\n var c = '';\n var d = '';\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x === 0) {\n e = 0;\n m = repeat('0', f + 1);\n } else {\n // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08\n // TODO: improve accuracy with big fraction digits\n var l = log10(x);\n e = floor(l);\n var n = 0;\n var w = pow(10, e - f);\n n = round(x / w);\n if (2 * x >= (2 * n + 1) * w) {\n n += 1;\n }\n if (n >= pow(10, f + 1)) {\n n /= 10;\n e += 1;\n }\n m = $String(n);\n }\n if (f !== 0) {\n m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1);\n }\n if (e === 0) {\n c = '+';\n d = '0';\n } else {\n c = e > 0 ? '+' : '-';\n d = $String(abs(e));\n }\n m += 'e' + c + d;\n return s + m;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar nativeToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = $String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return nativeToFixed(0.00008, 3) !== '0.000' ||\n nativeToFixed(0.9, 0) !== '1' ||\n nativeToFixed(1.255, 2) !== '1.25' ||\n nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number !== number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return $String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar thisNumberValue = require('../internals/this-number-value');\n\nvar nativeToPrecision = uncurryThis(1.0.toPrecision);\n\nvar FORCED = fails(function () {\n // IE7-\n return nativeToPrecision(1, undefined) !== '1';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToPrecision({});\n});\n\n// `Number.prototype.toPrecision` method\n// https://tc39.es/ecma262/#sec-number.prototype.toprecision\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toPrecision: function toPrecision(precision) {\n return precision === undefined\n ? nativeToPrecision(thisNumberValue(this))\n : nativeToPrecision(thisNumberValue(this), precision);\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\nvar $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\n// Forced replacement object prototype accessors methods\nmodule.exports = IS_PURE || !fails(function () {\n // This feature detection crashes old WebKit\n // https://github.com/zloirock/core-js/issues/232\n if (WEBKIT && WEBKIT < 535) return;\n var key = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call, es/no-legacy-object-prototype-accessor-methods -- required for testing\n __defineSetter__.call(null, key, function () { /* empty */ });\n delete global[key];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineGetter__: function __defineGetter__(P, getter) {\n definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true });\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties').f;\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineSetter__: function __defineSetter__(P, setter) {\n definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true });\n }\n });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toPropertyKey = require('../internals/to-property-key');\nvar iterate = require('../internals/iterate');\n\nvar create = getBuiltIn('Object', 'create');\nvar push = uncurryThis([].push);\n\n// `Object.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Object', stat: true }, {\n groupBy: function groupBy(items, callbackfn) {\n requireObjectCoercible(items);\n aCallable(callbackfn);\n var obj = create(null);\n var k = 0;\n iterate(items, function (value) {\n var key = toPropertyKey(callbackfn(value, k++));\n // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys\n // but since it's a `null` prototype object, we can safely use `in`\n if (key in obj) push(obj[key], value);\n else obj[key] = [value];\n });\n return obj;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\n\n// `Object.hasOwn` method\n// https://tc39.es/ecma262/#sec-object.hasown\n$({ target: 'Object', stat: true }, {\n hasOwn: hasOwn\n});\n","'use strict';\n// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\n// eslint-disable-next-line es/no-object-isextensible -- safe\n$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, {\n isExtensible: $isExtensible\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar $isFrozen = Object.isFrozen;\n\nvar FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.es/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FORCED }, {\n isFrozen: function isFrozen(it) {\n if (!isObject(it)) return true;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true;\n return $isFrozen ? $isFrozen(it) : false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar $isSealed = Object.isSealed;\n\nvar FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.es/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FORCED }, {\n isSealed: function isSealed(it) {\n if (!isObject(it)) return true;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true;\n return $isSealed ? $isSealed(it) : false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var key = toPropertyKey(P);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var key = toPropertyKey(P);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-preventextensions -- safe\nvar $preventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.es/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isObject = require('../internals/is-object');\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\nvar toObject = require('../internals/to-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nvar getPrototypeOf = Object.getPrototypeOf;\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nvar setPrototypeOf = Object.setPrototypeOf;\nvar ObjectPrototype = Object.prototype;\nvar PROTO = '__proto__';\n\n// `Object.prototype.__proto__` accessor\n// https://tc39.es/ecma262/#sec-object.prototype.__proto__\nif (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try {\n defineBuiltInAccessor(ObjectPrototype, PROTO, {\n configurable: true,\n get: function __proto__() {\n return getPrototypeOf(toObject(this));\n },\n set: function __proto__(proto) {\n var O = requireObjectCoercible(this);\n if (isPossiblePrototype(proto) && isObject(O)) {\n setPrototypeOf(O, proto);\n }\n }\n });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-seal -- safe\nvar $seal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { $seal(1); });\n\n// `Object.seal` method\n// https://tc39.es/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n seal: function seal(it) {\n return $seal && isObject(it) ? $seal(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat !== $parseFloat }, {\n parseFloat: $parseFloat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt !== $parseInt }, {\n parseInt: $parseInt\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar global = require('../internals/global');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\nvar global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://github.com/tc39/proposal-promise-with-resolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar functionApply = require('../internals/function-apply');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n // eslint-disable-next-line es/no-reflect -- required for testing\n Reflect.apply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.es/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n apply: function apply(target, thisArgument, argumentsList) {\n return functionApply(aCallable(target), thisArgument, anObject(argumentsList));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target === newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar fails = require('../internals/fails');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n // eslint-disable-next-line es/no-reflect -- required for testing\n Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.es/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n var key = toPropertyKey(propertyKey);\n anObject(attributes);\n try {\n definePropertyModule.f(target, key, attributes);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.es/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n if (descriptor) return isDataDescriptor(descriptor)\n ? descriptor.value\n : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(target) {\n return objectGetPrototypeOf(anObject(target));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.es/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Reflect.isExtensible` method\n// https://tc39.es/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible(target);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.es/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n if (objectPreventExtensions) objectPreventExtensions(target);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.es/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n var existingDescriptor, prototype, setter;\n if (!ownDescriptor) {\n if (isObject(prototype = getPrototypeOf(target))) {\n return set(prototype, propertyKey, V, receiver);\n }\n ownDescriptor = createPropertyDescriptor(0);\n }\n if (isDataDescriptor(ownDescriptor)) {\n if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n } else {\n setter = ownDescriptor.set;\n if (setter === undefined) return false;\n call(setter, receiver, V);\n } return true;\n}\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n var Constructor = function () { /* empty */ };\n var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true });\n // eslint-disable-next-line es/no-reflect -- required for testing\n return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n set: set\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n anObject(target);\n aPossiblePrototype(proto);\n try {\n objectSetPrototypeOf(target, proto);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = create(null);\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr += charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineBuiltInAccessor(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function dotAll() {\n if (this === RegExpPrototype) return;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw new $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = global.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n defineBuiltInAccessor(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function sticky() {\n if (this === RegExpPrototype) return;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw new $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar toString = require('../internals/to-string');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (S) {\n var R = anObject(this);\n var string = toString(S);\n var exec = R.exec;\n if (!isCallable(exec)) return call(nativeTest, R, string);\n var result = call(exec, R, string);\n if (result === null) return false;\n anObject(result);\n return true;\n }\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar charAt = uncurryThis(''.charAt);\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-array-string-prototype-at -- safe\n return '𠮷'.at(-2) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://tc39.es/ecma262/#sec-string.prototype.at\n$({ target: 'String', proto: true, forced: FORCED }, {\n at: function at(index) {\n var S = toString(requireObjectCoercible(this));\n var len = S.length;\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : charAt(S, k);\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar $RangeError = RangeError;\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\nvar join = uncurryThis([].join);\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fromCodePoint: function fromCodePoint(x) {\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point');\n elements[i] = code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);\n } return join(elements, '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `String.prototype.isWellFormed` method\n// https://github.com/tc39/proposal-is-usv-string\n$({ target: 'String', proto: true }, {\n isWellFormed: function isWellFormed() {\n var S = toString(requireObjectCoercible(this));\n var length = S.length;\n for (var i = 0; i < length; i++) {\n var charCode = charCodeAt(S, i);\n // single UTF-16 code unit\n if ((charCode & 0xF800) !== 0xD800) continue;\n // unpaired surrogate\n if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false;\n } return true;\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegExp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n/* eslint-disable es/no-string-prototype-matchall -- safe */\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar classof = require('../internals/classof-raw');\nvar isRegExp = require('../internals/is-regexp');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar nativeMatchAll = uncurryThis(''.matchAll);\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {\n nativeMatchAll('a', /./);\n});\n\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {\n setInternalState(this, {\n type: REGEXP_STRING_ITERATOR,\n regexp: regexp,\n string: string,\n global: $global,\n unicode: fullUnicode,\n done: false\n });\n}, REGEXP_STRING, function next() {\n var state = getInternalState(this);\n if (state.done) return createIterResultObject(undefined, true);\n var R = state.regexp;\n var S = state.string;\n var match = regExpExec(R, S);\n if (match === null) {\n state.done = true;\n return createIterResultObject(undefined, true);\n }\n if (state.global) {\n if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n return createIterResultObject(match, false);\n }\n state.done = true;\n return createIterResultObject(match, false);\n});\n\nvar $matchAll = function (string) {\n var R = anObject(this);\n var S = toString(string);\n var C = speciesConstructor(R, RegExp);\n var flags = toString(getRegExpFlags(R));\n var matcher, $global, fullUnicode;\n matcher = new C(C === RegExp ? R.source : R, flags);\n $global = !!~stringIndexOf(flags, 'g');\n fullUnicode = !!~stringIndexOf(flags, 'u');\n matcher.lastIndex = toLength(R.lastIndex);\n return new $RegExpStringIterator(matcher, S, $global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n matchAll: function matchAll(regexp) {\n var O = requireObjectCoercible(this);\n var flags, S, matcher, rx;\n if (!isNullOrUndefined(regexp)) {\n if (isRegExp(regexp)) {\n flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));\n if (!~stringIndexOf(flags, 'g')) throw new $TypeError('`.matchAll` does not allow non-global regexes');\n }\n if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);\n matcher = getMethod(regexp, MATCH_ALL);\n if (matcher === undefined && IS_PURE && classof(regexp) === 'RegExp') matcher = $matchAll;\n if (matcher) return call(matcher, regexp, O);\n } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);\n S = toString(O);\n rx = new RegExp(regexp, 'g');\n return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);\n }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll);\n","'use strict';\n// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toObject = require('../internals/to-object');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.raw` method\n// https://tc39.es/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n raw: function raw(template) {\n var rawTemplate = toIndexedObject(toObject(template).raw);\n var literalSegments = lengthOfArrayLike(rawTemplate);\n if (!literalSegments) return '';\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (true) {\n push(elements, toString(rawTemplate[i++]));\n if (i === literalSegments) return join(elements, '');\n if (i < argumentsLength) push(elements, toString(arguments[i]));\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = indexOf(string, searchString);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\nvar min = Math.min;\n\n// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing\nvar FORCED = !''.substr || 'ab'.substr(-1) !== 'b';\n\n// `String.prototype.substr` method\n// https://tc39.es/ecma262/#sec-string.prototype.substr\n$({ target: 'String', proto: true, forced: FORCED }, {\n substr: function substr(start, length) {\n var that = toString(requireObjectCoercible(this));\n var size = that.length;\n var intStart = toIntegerOrInfinity(start);\n var intLength, intEnd;\n if (intStart === Infinity) intStart = 0;\n if (intStart < 0) intStart = max(size + intStart, 0);\n intLength = length === undefined ? size : toIntegerOrInfinity(length);\n if (intLength <= 0 || intLength === Infinity) return '';\n intEnd = min(intStart + intLength, size);\n return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar $Array = Array;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\n// eslint-disable-next-line es/no-string-prototype-iswellformed-towellformed -- safe\nvar $toWellFormed = ''.toWellFormed;\nvar REPLACEMENT_CHARACTER = '\\uFFFD';\n\n// Safari bug\nvar TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () {\n return call($toWellFormed, 1) !== '1';\n});\n\n// `String.prototype.toWellFormed` method\n// https://github.com/tc39/proposal-is-usv-string\n$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, {\n toWellFormed: function toWellFormed() {\n var S = toString(requireObjectCoercible(this));\n if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S);\n var length = S.length;\n var result = $Array(length);\n for (var i = 0; i < length; i++) {\n var charCode = charCodeAt(S, i);\n // single UTF-16 code unit\n if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i);\n // unpaired surrogate\n else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER;\n // surrogate pair\n else {\n result[i] = charAt(S, i);\n result[++i] = charAt(S, i);\n }\n } return join(result, '');\n }\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimEnd, trimRight }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\nmodule.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() {\n return $trimEnd(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n","'use strict';\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimRight` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, {\n trimRight: trimEnd\n});\n","'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-right');\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, {\n trimEnd: trimEnd\n});\n","'use strict';\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimStart, trimLeft }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\nmodule.exports = forcedStringTrimMethod('trimStart') ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n","'use strict';\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimLeft` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimleft\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, {\n trimLeft: trimStart\n});\n","'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-left');\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, {\n trimStart: trimStart\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.big` method\n// https://tc39.es/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n big: function big() {\n return createHTML(this, 'big', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.blink` method\n// https://tc39.es/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n blink: function blink() {\n return createHTML(this, 'blink', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.es/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n bold: function bold() {\n return createHTML(this, 'b', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontcolor` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n fontcolor: function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n fontsize: function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.italics` method\n// https://tc39.es/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n italics: function italics() {\n return createHTML(this, 'i', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.strike` method\n// https://tc39.es/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n strike: function strike() {\n return createHTML(this, 'strike', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sup` method\n// https://tc39.es/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n sup: function sup() {\n return createHTML(this, 'sup', '', '');\n }\n});\n","'use strict';\n/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","'use strict';\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw new $RangeError('Wrong offset');\n return offset;\n};\n","'use strict';\nvar round = Math.round;\n\nmodule.exports = function (it) {\n var value = round(it);\n return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\nvar toBigInt = require('../internals/to-big-int');\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, thisIsBigIntArray, value, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n thisIsBigIntArray = isBigIntArray(result);\n for (i = 0; length > i; i++) {\n value = mapping ? mapfn(O[i], i) : O[i];\n // FF30- typed arrays doesn't properly convert objects to typed array values\n result[i] = thisIsBigIntArray ? toBigInt(value) : +value;\n }\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toUint8Clamped = require('../internals/to-uint8-clamped');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar enforceInternalState = InternalStateModule.enforce;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar addGetter = function (it, key) {\n defineBuiltInAccessor(it, key, {\n configurable: true,\n get: function () {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isIntegralNumber(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructorPrototype);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw new RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw new RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return arrayFromConstructorAndList(TypedArrayConstructor, data);\n } else {\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructorPrototype);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data);\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor;\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\nvar toBigInt = require('../internals/to-big-int');\nvar classof = require('../internals/classof');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar slice = uncurryThis(''.slice);\n\n// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\nvar CONVERSION_BUG = fails(function () {\n var count = 0;\n // eslint-disable-next-line es/no-typed-arrays -- safe\n new Int8Array(2).fill({ valueOf: function () { return count++; } });\n return count !== 1;\n});\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n aTypedArray(this);\n var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;\n return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);\n}, CONVERSION_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray)));\n};\n","'use strict';\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.es/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n && TypedArrayPrototype.values\n && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n return $join(aTypedArray(this), separator);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n var length = arguments.length;\n return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (typedArraySpeciesConstructor(O))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.es/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = new (aTypedArrayConstructor(this))(length);\n while (length > index) result[index] = arguments[index++];\n return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw new RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = arraySlice(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {\n nativeSort(new Uint16Array(2), null);\n}) && fails(function () {\n nativeSort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n nativeSort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return nativeSort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = typedArraySpeciesConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","'use strict';\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = aTypedArray(this);\n var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n return sort(A, compareFn);\n});\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return join(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar stringSlice = uncurryThis(''.slice);\n\nvar hex2 = /^[\\da-f]{2}$/i;\nvar hex4 = /^[\\da-f]{4}$/i;\n\n// `unescape` method\n// https://tc39.es/ecma262/#sec-unescape-string\n$({ global: true }, {\n unescape: function unescape(string) {\n var str = toString(string);\n var result = '';\n var length = str.length;\n var index = 0;\n var chr, part;\n while (index < length) {\n chr = charAt(str, index++);\n if (chr === '%') {\n if (charAt(str, index) === 'u') {\n part = stringSlice(str, index + 1, index + 5);\n if (exec(hex4, part)) {\n result += fromCharCode(parseInt(part, 16));\n index += 5;\n continue;\n }\n } else {\n part = stringSlice(str, index, index + 2);\n if (exec(hex2, part)) {\n result += fromCharCode(parseInt(part, 16));\n index += 2;\n continue;\n }\n }\n }\n result += chr;\n } return result;\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar FREEZING = require('../internals/freezing');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar fails = require('../internals/fails');\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\n\nvar $Object = Object;\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray = Array.isArray;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = $Object.isExtensible;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = $Object.isFrozen;\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar isSealed = $Object.isSealed;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = $Object.freeze;\n// eslint-disable-next-line es/no-object-seal -- safe\nvar seal = $Object.seal;\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\nvar WeakMapPrototype = $WeakMap.prototype;\nvar nativeSet = uncurryThis(WeakMapPrototype.set);\n\n// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them\nvar hasMSEdgeFreezingBug = function () {\n return FREEZING && fails(function () {\n var frozenArray = freeze([]);\n nativeSet(new $WeakMap(), frozenArray, 1);\n return !isFrozen(frozenArray);\n });\n};\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP) if (IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n defineBuiltIns(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n// Chakra Edge frozen keys fix\n} else if (hasMSEdgeFreezingBug()) {\n defineBuiltIns(WeakMapPrototype, {\n set: function set(key, value) {\n var arrayIntegrityLevel;\n if (isArray(key)) {\n if (isFrozen(key)) arrayIntegrityLevel = freeze;\n else if (isSealed(key)) arrayIntegrityLevel = seal;\n }\n nativeSet(this, key, value);\n if (arrayIntegrityLevel) arrayIntegrityLevel(key);\n return this;\n }\n });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorStack = require('../internals/error-stack-install');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\n\nvar $SuppressedError = function SuppressedError(error, suppressed, message) {\n var isInstance = isPrototypeOf(SuppressedErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : SuppressedErrorPrototype);\n } else {\n that = isInstance ? this : create(SuppressedErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n installErrorStack(that, $SuppressedError, that.stack, 1);\n createNonEnumerableProperty(that, 'error', error);\n createNonEnumerableProperty(that, 'suppressed', suppressed);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($SuppressedError, $Error);\nelse copyConstructorProperties($SuppressedError, $Error, { name: true });\n\nvar SuppressedErrorPrototype = $SuppressedError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $SuppressedError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'SuppressedError')\n});\n\n// `SuppressedError` constructor\n// https://github.com/tc39/proposal-explicit-resource-management\n$({ global: true, constructor: true, arity: 3 }, {\n SuppressedError: $SuppressedError\n});\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared-store');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar AsyncIterator = global.AsyncIterator;\nvar PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype;\nvar AsyncIteratorPrototype, prototype;\n\nif (PassedAsyncIteratorPrototype) {\n AsyncIteratorPrototype = PassedAsyncIteratorPrototype;\n} else if (isCallable(AsyncIterator)) {\n AsyncIteratorPrototype = AsyncIterator.prototype;\n} else if (shared[USE_FUNCTION_CONSTRUCTOR] || global[USE_FUNCTION_CONSTRUCTOR]) {\n try {\n // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax\n prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));\n if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;\n } catch (error) { /* empty */ }\n}\n\nif (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};\nelse if (IS_PURE) AsyncIteratorPrototype = create(AsyncIteratorPrototype);\n\nif (!isCallable(AsyncIteratorPrototype[ASYNC_ITERATOR])) {\n defineBuiltIn(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = AsyncIteratorPrototype;\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalStateModule = require('../internals/internal-state');\nvar getBuiltIn = require('../internals/get-built-in');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar Promise = getBuiltIn('Promise');\n\nvar ASYNC_FROM_SYNC_ITERATOR = 'AsyncFromSyncIterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ASYNC_FROM_SYNC_ITERATOR);\n\nvar asyncFromSyncIteratorContinuation = function (result, resolve, reject) {\n var done = result.done;\n Promise.resolve(result.value).then(function (value) {\n resolve(createIterResultObject(value, done));\n }, reject);\n};\n\nvar AsyncFromSyncIterator = function AsyncIterator(iteratorRecord) {\n iteratorRecord.type = ASYNC_FROM_SYNC_ITERATOR;\n setInternalState(this, iteratorRecord);\n};\n\nAsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n return new Promise(function (resolve, reject) {\n var result = anObject(call(state.next, state.iterator));\n asyncFromSyncIteratorContinuation(result, resolve, reject);\n });\n },\n 'return': function () {\n var iterator = getInternalState(this).iterator;\n return new Promise(function (resolve, reject) {\n var $return = getMethod(iterator, 'return');\n if ($return === undefined) return resolve(createIterResultObject(undefined, true));\n var result = anObject(call($return, iterator));\n asyncFromSyncIteratorContinuation(result, resolve, reject);\n });\n }\n});\n\nmodule.exports = AsyncFromSyncIterator;\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar anObject = require('../internals/an-object');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function (it, usingIterator) {\n var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR) : usingIterator;\n return method ? anObject(call(method, it)) : new AsyncFromSyncIterator(getIteratorDirect(getIterator(it)));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, method, argument, reject) {\n try {\n var returnMethod = getMethod(iterator, 'return');\n if (returnMethod) {\n return getBuiltIn('Promise').resolve(call(returnMethod, iterator)).then(function () {\n method(argument);\n }, function (error) {\n reject(error);\n });\n }\n } catch (error2) {\n return reject(error2);\n } method(argument);\n};\n","'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\n// https://github.com/tc39/proposal-array-from-async\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar createMethod = function (TYPE) {\n var IS_TO_ARRAY = TYPE === 0;\n var IS_FOR_EACH = TYPE === 1;\n var IS_EVERY = TYPE === 2;\n var IS_SOME = TYPE === 3;\n return function (object, fn, target) {\n anObject(object);\n var MAPPING = fn !== undefined;\n if (MAPPING || !IS_TO_ARRAY) aCallable(fn);\n var record = getIteratorDirect(object);\n var Promise = getBuiltIn('Promise');\n var iterator = record.iterator;\n var next = record.next;\n var counter = 0;\n\n return new Promise(function (resolve, reject) {\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, reject, error, reject);\n };\n\n var loop = function () {\n try {\n if (MAPPING) try {\n doesNotExceedSafeInteger(counter);\n } catch (error5) { ifAbruptCloseAsyncIterator(error5); }\n Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n if (IS_TO_ARRAY) {\n target.length = counter;\n resolve(target);\n } else resolve(IS_SOME ? false : IS_EVERY || undefined);\n } else {\n var value = step.value;\n try {\n if (MAPPING) {\n var result = fn(value, counter);\n\n var handler = function ($result) {\n if (IS_FOR_EACH) {\n loop();\n } else if (IS_EVERY) {\n $result ? loop() : closeAsyncIteration(iterator, resolve, false, reject);\n } else if (IS_TO_ARRAY) {\n try {\n target[counter++] = $result;\n loop();\n } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n } else {\n $result ? closeAsyncIteration(iterator, resolve, IS_SOME || value, reject) : loop();\n }\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } else {\n target[counter++] = value;\n loop();\n }\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n } catch (error2) { reject(error2); }\n }, reject);\n } catch (error) { reject(error); }\n };\n\n loop();\n });\n };\n};\n\nmodule.exports = {\n toArray: createMethod(0),\n forEach: createMethod(1),\n every: createMethod(2),\n some: createMethod(3),\n find: createMethod(4)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\nvar isConstructor = require('../internals/is-constructor');\nvar getAsyncIterator = require('../internals/get-async-iterator');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar getMethod = require('../internals/get-method');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar toArray = require('../internals/async-iterator-iteration').toArray;\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar arrayIterator = uncurryThis(getBuiltInPrototypeMethod('Array', 'values'));\nvar arrayIteratorNext = uncurryThis(arrayIterator([]).next);\n\nvar safeArrayIterator = function () {\n return new SafeArrayIterator(this);\n};\n\nvar SafeArrayIterator = function (O) {\n this.iterator = arrayIterator(O);\n};\n\nSafeArrayIterator.prototype.next = function () {\n return arrayIteratorNext(this.iterator);\n};\n\n// `Array.fromAsync` method implementation\n// https://github.com/tc39/proposal-array-from-async\nmodule.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {\n var C = this;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n return new (getBuiltIn('Promise'))(function (resolve) {\n var O = toObject(asyncItems);\n if (mapfn !== undefined) mapfn = bind(mapfn, thisArg);\n var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR);\n var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || safeArrayIterator;\n var A = isConstructor(C) ? new C() : [];\n var iterator = usingAsyncIterator\n ? getAsyncIterator(O, usingAsyncIterator)\n : new AsyncFromSyncIterator(getIteratorDirect(getIterator(O, usingSyncIterator)));\n resolve(toArray(iterator, mapfn, A));\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fromAsync = require('../internals/array-from-async');\n\n// `Array.fromAsync` method\n// https://github.com/tc39/proposal-array-from-async\n$({ target: 'Array', stat: true }, {\n fromAsync: fromAsync\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.filterOut` method\n// https://github.com/tc39/proposal-array-filtering\n$({ target: 'Array', proto: true, forced: true }, {\n filterOut: function filterOut(callbackfn /* , thisArg */) {\n return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('filterOut');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.filterReject` method\n// https://github.com/tc39/proposal-array-filtering\n$({ target: 'Array', proto: true, forced: true }, {\n filterReject: function filterReject(callbackfn /* , thisArg */) {\n return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('filterReject');\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar objectCreate = require('../internals/object-create');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar $Array = Array;\nvar push = uncurryThis([].push);\n\nmodule.exports = function ($this, callbackfn, that, specificConstructor) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var target = objectCreate(null);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var Constructor, key, value;\n for (;length > index; index++) {\n value = self[index];\n key = toPropertyKey(boundFunction(value, index, O));\n // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys\n // but since it's a `null` prototype object, we can safely use `in`\n if (key in target) push(target[key], value);\n else target[key] = [value];\n }\n // TODO: Remove this block from `core-js@4`\n if (specificConstructor) {\n Constructor = specificConstructor(O);\n if (Constructor !== $Array) {\n for (key in target) target[key] = arrayFromConstructorAndList(Constructor, target[key]);\n }\n } return target;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $group = require('../internals/array-group');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.group` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Array', proto: true }, {\n group: function group(callbackfn /* , thisArg */) {\n var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n return $group(this, callbackfn, thisArg);\n }\n});\n\naddToUnscopables('group');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar $group = require('../internals/array-group');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\n// https://bugs.webkit.org/show_bug.cgi?id=236541\n$({ target: 'Array', proto: true, forced: !arrayMethodIsStrict('groupBy') }, {\n groupBy: function groupBy(callbackfn /* , thisArg */) {\n var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n return $group(this, callbackfn, thisArg);\n }\n});\n\naddToUnscopables('groupBy');\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar Map = MapHelpers.Map;\nvar mapGet = MapHelpers.get;\nvar mapHas = MapHelpers.has;\nvar mapSet = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// `Array.prototype.groupToMap` method\n// https://github.com/tc39/proposal-array-grouping\nmodule.exports = function groupToMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var map = new Map();\n var length = lengthOfArrayLike(self);\n var index = 0;\n var key, value;\n for (;length > index; index++) {\n value = self[index];\n key = boundFunction(value, index, O);\n if (mapHas(map, key)) push(mapGet(map, key), value);\n else mapSet(map, key, [value]);\n } return map;\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar $groupToMap = require('../internals/array-group-to-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Array.prototype.groupByToMap` method\n// https://github.com/tc39/proposal-array-grouping\n// https://bugs.webkit.org/show_bug.cgi?id=236541\n$({ target: 'Array', proto: true, name: 'groupToMap', forced: IS_PURE || !arrayMethodIsStrict('groupByToMap') }, {\n groupByToMap: $groupToMap\n});\n\naddToUnscopables('groupByToMap');\n","'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar $groupToMap = require('../internals/array-group-to-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Array.prototype.groupToMap` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Array', proto: true, forced: IS_PURE }, {\n groupToMap: $groupToMap\n});\n\naddToUnscopables('groupToMap');\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = Object.isFrozen;\n\nvar isFrozenStringArray = function (array, allowUndefined) {\n if (!isFrozen || !isArray(array) || !isFrozen(array)) return false;\n var index = 0;\n var length = array.length;\n var element;\n while (index < length) {\n element = array[index++];\n if (!(typeof element == 'string' || (allowUndefined && element === undefined))) {\n return false;\n }\n } return length !== 0;\n};\n\n// `Array.isTemplateObject` method\n// https://github.com/tc39/proposal-array-is-template-object\n$({ target: 'Array', stat: true, sham: true, forced: true }, {\n isTemplateObject: function isTemplateObject(value) {\n if (!isFrozenStringArray(value, true)) return false;\n var raw = value.raw;\n return raw.length === value.length && isFrozenStringArray(raw, false);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = require('../internals/descriptors');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\n// `Array.prototype.lastIndex` getter\n// https://github.com/keithamus/proposal-array-last\nif (DESCRIPTORS) {\n defineBuiltInAccessor(Array.prototype, 'lastIndex', {\n configurable: true,\n get: function lastIndex() {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n return len === 0 ? 0 : len - 1;\n }\n });\n\n addToUnscopables('lastIndex');\n}\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = require('../internals/descriptors');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\n// `Array.prototype.lastIndex` accessor\n// https://github.com/keithamus/proposal-array-last\nif (DESCRIPTORS) {\n defineBuiltInAccessor(Array.prototype, 'lastItem', {\n configurable: true,\n get: function lastItem() {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n return len === 0 ? undefined : O[len - 1];\n },\n set: function lastItem(value) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n return O[len === 0 ? 0 : len - 1] = value;\n }\n });\n\n addToUnscopables('lastItem');\n}\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar Map = MapHelpers.Map;\nvar MapPrototype = MapHelpers.proto;\nvar forEach = uncurryThis(MapPrototype.forEach);\nvar entries = uncurryThis(MapPrototype.entries);\nvar next = entries(new Map()).next;\n\nmodule.exports = function (map, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: entries(map), next: next }, function (entry) {\n return fn(entry[1], entry[0]);\n }) : forEach(map, fn);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapSet = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// `Array.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nmodule.exports = function uniqueBy(resolver) {\n var that = toObject(this);\n var length = lengthOfArrayLike(that);\n var result = [];\n var map = new Map();\n var resolverFunction = !isNullOrUndefined(resolver) ? aCallable(resolver) : function (value) {\n return value;\n };\n var index, item, key;\n for (index = 0; index < length; index++) {\n item = that[index];\n key = resolverFunction(item);\n if (!mapHas(map, key)) mapSet(map, key, item);\n }\n iterate(map, function (value) {\n push(result, value);\n });\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar uniqueBy = require('../internals/array-unique-by');\n\n// `Array.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\n$({ target: 'Array', proto: true, forced: true }, {\n uniqueBy: uniqueBy\n});\n\naddToUnscopables('uniqueBy');\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar $TypeError = TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n if (classof(O) !== 'ArrayBuffer') throw new $TypeError('ArrayBuffer expected');\n return O.byteLength;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar slice = uncurryThis(ArrayBuffer.prototype.slice);\n\nmodule.exports = function (O) {\n if (arrayBufferByteLength(O) !== 0) return false;\n try {\n slice(O, 0, 0);\n return false;\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n configurable: true,\n get: function detached() {\n return isDetached(this);\n }\n });\n}\n","'use strict';\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n try {\n // eslint-disable-next-line no-new-func -- safe\n if (IS_NODE) return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/engine-v8-version');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar structuredClone = global.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = global.structuredClone;\nvar $ArrayBuffer = global.ArrayBuffer;\nvar $MessageChannel = global.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = tryNodeRequire('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar isDetached = require('../internals/array-buffer-is-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar detachTransferable = require('../internals/detach-transferable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = global.structuredClone;\nvar ArrayBuffer = global.ArrayBuffer;\nvar DataView = global.DataView;\nvar TypeError = global.TypeError;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n var byteLength = arrayBufferByteLength(arrayBuffer);\n var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n var fixedLength = !isResizable || !isResizable(arrayBuffer);\n var newBuffer;\n if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached');\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n }\n if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n newBuffer = slice(arrayBuffer, 0, newByteLength);\n } else {\n var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined;\n newBuffer = new ArrayBuffer(newByteLength, options);\n var a = new DataView(arrayBuffer);\n var b = new DataView(newBuffer);\n var copyLength = min(newByteLength, byteLength);\n for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n }\n if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n return newBuffer;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transfer: function transfer() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transferToFixedLength: function transferToFixedLength() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar bind = require('../internals/function-bind-context');\nvar anObject = require('../internals/an-object');\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar DISPOSE = wellKnownSymbol('dispose');\n\nvar push = uncurryThis([].push);\n\n// `GetDisposeMethod` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-getdisposemethod\nvar getDisposeMethod = function (V, hint) {\n if (hint === 'async-dispose') {\n var method = getMethod(V, ASYNC_DISPOSE);\n if (method !== undefined) return method;\n method = getMethod(V, DISPOSE);\n return function () {\n call(method, this);\n };\n } return getMethod(V, DISPOSE);\n};\n\n// `CreateDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-createdisposableresource\nvar createDisposableResource = function (V, hint, method) {\n if (arguments.length < 3 && !isNullOrUndefined(V)) {\n method = aCallable(getDisposeMethod(anObject(V), hint));\n }\n\n return method === undefined ? function () {\n return undefined;\n } : bind(method, V);\n};\n\n// `AddDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-adddisposableresource\nmodule.exports = function (disposable, V, hint, method) {\n var resource;\n if (arguments.length < 4) {\n // When `V`` is either `null` or `undefined` and hint is `async-dispose`,\n // we record that the resource was evaluated to ensure we will still perform an `Await` when resources are later disposed.\n if (isNullOrUndefined(V) && hint === 'sync-dispose') return;\n resource = createDisposableResource(V, hint);\n } else {\n resource = createDisposableResource(undefined, hint, method);\n }\n\n push(disposable.stack, resource);\n};\n","'use strict';\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aCallable = require('../internals/a-callable');\nvar anInstance = require('../internals/an-instance');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar addDisposableResource = require('../internals/add-disposable-resource');\n\nvar Promise = getBuiltIn('Promise');\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar ASYNC_DISPOSABLE_STACK = 'AsyncDisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getAsyncDisposableStackInternalState = InternalStateModule.getterFor(ASYNC_DISPOSABLE_STACK);\n\nvar HINT = 'async-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar getPendingAsyncDisposableStackInternalState = function (stack) {\n var internalState = getAsyncDisposableStackInternalState(stack);\n if (internalState.state === DISPOSED) throw new $ReferenceError(ASYNC_DISPOSABLE_STACK + ' already disposed');\n return internalState;\n};\n\nvar $AsyncDisposableStack = function AsyncDisposableStack() {\n setInternalState(anInstance(this, AsyncDisposableStackPrototype), {\n type: ASYNC_DISPOSABLE_STACK,\n state: PENDING,\n stack: []\n });\n\n if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar AsyncDisposableStackPrototype = $AsyncDisposableStack.prototype;\n\ndefineBuiltIns(AsyncDisposableStackPrototype, {\n disposeAsync: function disposeAsync() {\n var asyncDisposableStack = this;\n return new Promise(function (resolve, reject) {\n var internalState = getAsyncDisposableStackInternalState(asyncDisposableStack);\n if (internalState.state === DISPOSED) return resolve(undefined);\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) asyncDisposableStack.disposed = true;\n var stack = internalState.stack;\n var i = stack.length;\n var thrown = false;\n var suppressed;\n\n var handleError = function (result) {\n if (thrown) {\n suppressed = new SuppressedError(result, suppressed);\n } else {\n thrown = true;\n suppressed = result;\n }\n\n loop();\n };\n\n var loop = function () {\n if (i) {\n var disposeMethod = stack[--i];\n stack[i] = null;\n try {\n Promise.resolve(disposeMethod()).then(loop, handleError);\n } catch (error) {\n handleError(error);\n }\n } else {\n internalState.stack = null;\n thrown ? reject(suppressed) : resolve(undefined);\n }\n };\n\n loop();\n });\n },\n use: function use(value) {\n addDisposableResource(getPendingAsyncDisposableStackInternalState(this), value, HINT);\n return value;\n },\n adopt: function adopt(value, onDispose) {\n var internalState = getPendingAsyncDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, function () {\n return onDispose(value);\n });\n return value;\n },\n defer: function defer(onDispose) {\n var internalState = getPendingAsyncDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, onDispose);\n },\n move: function move() {\n var internalState = getPendingAsyncDisposableStackInternalState(this);\n var newAsyncDisposableStack = new $AsyncDisposableStack();\n getAsyncDisposableStackInternalState(newAsyncDisposableStack).stack = internalState.stack;\n internalState.stack = [];\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) this.disposed = true;\n return newAsyncDisposableStack;\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(AsyncDisposableStackPrototype, 'disposed', {\n configurable: true,\n get: function disposed() {\n return getAsyncDisposableStackInternalState(this).state === DISPOSED;\n }\n});\n\ndefineBuiltIn(AsyncDisposableStackPrototype, ASYNC_DISPOSE, AsyncDisposableStackPrototype.disposeAsync, { name: 'disposeAsync' });\ndefineBuiltIn(AsyncDisposableStackPrototype, TO_STRING_TAG, ASYNC_DISPOSABLE_STACK, { nonWritable: true });\n\n$({ global: true, constructor: true }, {\n AsyncDisposableStack: $AsyncDisposableStack\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anInstance = require('../internals/an-instance');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar IS_PURE = require('../internals/is-pure');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\n\nvar AsyncIteratorConstructor = function AsyncIterator() {\n anInstance(this, AsyncIteratorPrototype);\n if (getPrototypeOf(this) === AsyncIteratorPrototype) throw new $TypeError('Abstract class AsyncIterator not directly constructable');\n};\n\nAsyncIteratorConstructor.prototype = AsyncIteratorPrototype;\n\nif (!hasOwn(AsyncIteratorPrototype, TO_STRING_TAG)) {\n createNonEnumerableProperty(AsyncIteratorPrototype, TO_STRING_TAG, 'AsyncIterator');\n}\n\nif (IS_PURE || !hasOwn(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPrototype.constructor === Object) {\n createNonEnumerableProperty(AsyncIteratorPrototype, 'constructor', AsyncIteratorConstructor);\n}\n\n// `AsyncIterator` constructor\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ global: true, constructor: true, forced: IS_PURE }, {\n AsyncIterator: AsyncIteratorConstructor\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar perform = require('../internals/perform');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Promise = getBuiltIn('Promise');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ASYNC_ITERATOR_HELPER = 'AsyncIteratorHelper';\nvar WRAP_FOR_VALID_ASYNC_ITERATOR = 'WrapForValidAsyncIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createAsyncIteratorProxyPrototype = function (IS_ITERATOR) {\n var IS_GENERATOR = !IS_ITERATOR;\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ASYNC_ITERATOR : ASYNC_ITERATOR_HELPER);\n\n var getStateOrEarlyExit = function (that) {\n var stateCompletion = perform(function () {\n return getInternalState(that);\n });\n\n var stateError = stateCompletion.error;\n var state = stateCompletion.value;\n\n if (stateError || (IS_GENERATOR && state.done)) {\n return { exit: true, value: stateError ? Promise.reject(state) : Promise.resolve(createIterResultObject(undefined, true)) };\n } return { exit: false, value: state };\n };\n\n return defineBuiltIns(create(AsyncIteratorPrototype), {\n next: function next() {\n var stateCompletion = getStateOrEarlyExit(this);\n var state = stateCompletion.value;\n if (stateCompletion.exit) return state;\n var handlerCompletion = perform(function () {\n return anObject(state.nextHandler(Promise));\n });\n var handlerError = handlerCompletion.error;\n var value = handlerCompletion.value;\n if (handlerError) state.done = true;\n return handlerError ? Promise.reject(value) : Promise.resolve(value);\n },\n 'return': function () {\n var stateCompletion = getStateOrEarlyExit(this);\n var state = stateCompletion.value;\n if (stateCompletion.exit) return state;\n state.done = true;\n var iterator = state.iterator;\n var returnMethod, result;\n var completion = perform(function () {\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n return getMethod(iterator, 'return');\n });\n returnMethod = result = completion.value;\n if (completion.error) return Promise.reject(result);\n if (returnMethod === undefined) return Promise.resolve(createIterResultObject(undefined, true));\n completion = perform(function () {\n return call(returnMethod, iterator);\n });\n result = completion.value;\n if (completion.error) return Promise.reject(result);\n return IS_ITERATOR ? Promise.resolve(result) : Promise.resolve(result).then(function (resolved) {\n anObject(resolved);\n return createIterResultObject(undefined, true);\n });\n }\n });\n};\n\nvar WrapForValidAsyncIteratorPrototype = createAsyncIteratorProxyPrototype(true);\nvar AsyncIteratorHelperPrototype = createAsyncIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(AsyncIteratorHelperPrototype, TO_STRING_TAG, 'Async Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n var AsyncIteratorProxy = function AsyncIterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ASYNC_ITERATOR : ASYNC_ITERATOR_HELPER;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n AsyncIteratorProxy.prototype = IS_ITERATOR ? WrapForValidAsyncIteratorPrototype : AsyncIteratorHelperPrototype;\n\n return AsyncIteratorProxy;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var mapper = state.mapper;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n };\n\n Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else {\n var value = step.value;\n try {\n var result = mapper(value, state.counter++);\n\n var handler = function (mapped) {\n resolve(createIterResultObject(mapped, false));\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error2) { ifAbruptCloseAsyncIterator(error2); }\n }\n } catch (error) { doneAndReject(error); }\n }, doneAndReject);\n });\n});\n\n// `AsyncIterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n anObject(this);\n aCallable(mapper);\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar map = require('../internals/async-iterator-map');\n\nvar callback = function (value, counter) {\n return [counter, value];\n};\n\n// `AsyncIterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function indexed() {\n return call(map, this, callback);\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/async-iterator-indexed');\n\n// `AsyncIterator.prototype.asIndexedPairs` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'AsyncIterator', name: 'indexed', proto: true, real: true, forced: true }, {\n asIndexedPairs: indexed\n});\n","'use strict';\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar Promise = getBuiltIn('Promise');\n\nif (!hasOwn(AsyncIteratorPrototype, ASYNC_DISPOSE)) {\n defineBuiltIn(AsyncIteratorPrototype, ASYNC_DISPOSE, function () {\n var O = this;\n return new Promise(function (resolve, reject) {\n var $return = getMethod(O, 'return');\n if ($return) {\n Promise.resolve(call($return, O)).then(function () {\n resolve(undefined);\n }, reject);\n } else resolve(undefined);\n });\n });\n}\n","'use strict';\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (it === it) return it;\n throw new $RangeError('NaN is not allowed');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var loop = function () {\n try {\n Promise.resolve(anObject(call(state.next, state.iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else if (state.remaining) {\n state.remaining--;\n loop();\n } else resolve(createIterResultObject(step.value, false));\n } catch (err) { doneAndReject(err); }\n }, doneAndReject);\n } catch (error) { doneAndReject(error); }\n };\n\n loop();\n });\n});\n\n// `AsyncIterator.prototype.drop` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, {\n drop: function drop(limit) {\n anObject(this);\n var remaining = toPositiveInteger(notANaN(+limit));\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/async-iterator-iteration').every;\n\n// `AsyncIterator.prototype.every` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n every: function every(predicate) {\n return $every(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\nvar IS_PURE = require('../internals/is-pure');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var predicate = state.predicate;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n };\n\n var loop = function () {\n try {\n Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else {\n var value = step.value;\n try {\n var result = predicate(value, state.counter++);\n\n var handler = function (selected) {\n selected ? resolve(createIterResultObject(value, false)) : loop();\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n } catch (error2) { doneAndReject(error2); }\n }, doneAndReject);\n } catch (error) { doneAndReject(error); }\n };\n\n loop();\n });\n});\n\n// `AsyncIterator.prototype.filter` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, {\n filter: function filter(predicate) {\n anObject(this);\n aCallable(predicate);\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/async-iterator-iteration').find;\n\n// `AsyncIterator.prototype.find` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n find: function find(predicate) {\n return $find(this, predicate);\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function (obj) {\n var object = anObject(obj);\n var alreadyAsync = true;\n var method = getMethod(object, ASYNC_ITERATOR);\n var iterator;\n if (!isCallable(method)) {\n method = getIteratorMethod(object);\n alreadyAsync = false;\n }\n if (method !== undefined) {\n iterator = call(method, object);\n } else {\n iterator = object;\n alreadyAsync = true;\n }\n anObject(iterator);\n return getIteratorDirect(alreadyAsync ? iterator : new AsyncFromSyncIterator(getIteratorDirect(iterator)));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar getAsyncIteratorFlattenable = require('../internals/get-async-iterator-flattenable');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\nvar IS_PURE = require('../internals/is-pure');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var mapper = state.mapper;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n };\n\n var outerLoop = function () {\n try {\n Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else {\n var value = step.value;\n try {\n var result = mapper(value, state.counter++);\n\n var handler = function (mapped) {\n try {\n state.inner = getAsyncIteratorFlattenable(mapped);\n innerLoop();\n } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n } catch (error2) { doneAndReject(error2); }\n }, doneAndReject);\n } catch (error) { doneAndReject(error); }\n };\n\n var innerLoop = function () {\n var inner = state.inner;\n if (inner) {\n try {\n Promise.resolve(anObject(call(inner.next, inner.iterator))).then(function (result) {\n try {\n if (anObject(result).done) {\n state.inner = null;\n outerLoop();\n } else resolve(createIterResultObject(result.value, false));\n } catch (error1) { ifAbruptCloseAsyncIterator(error1); }\n }, ifAbruptCloseAsyncIterator);\n } catch (error) { ifAbruptCloseAsyncIterator(error); }\n } else outerLoop();\n };\n\n innerLoop();\n });\n});\n\n// `AsyncIterator.prototype.flaMap` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, {\n flatMap: function flatMap(mapper) {\n anObject(this);\n aCallable(mapper);\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n mapper: mapper,\n inner: null\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $forEach = require('../internals/async-iterator-iteration').forEach;\n\n// `AsyncIterator.prototype.forEach` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n forEach: function forEach(fn) {\n return $forEach(this, fn);\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\n\nmodule.exports = createAsyncIteratorProxy(function () {\n return call(this.next, this.iterator);\n}, true);\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getAsyncIteratorFlattenable = require('../internals/get-async-iterator-flattenable');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar WrapAsyncIterator = require('../internals/async-iterator-wrap');\nvar IS_PURE = require('../internals/is-pure');\n\n// `AsyncIterator.from` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', stat: true, forced: IS_PURE }, {\n from: function from(O) {\n var iteratorRecord = getAsyncIteratorFlattenable(typeof O == 'string' ? toObject(O) : O);\n return isPrototypeOf(AsyncIteratorPrototype, iteratorRecord.iterator)\n ? iteratorRecord.iterator\n : new WrapAsyncIterator(iteratorRecord);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/async-iterator-indexed');\n\n// `AsyncIterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n indexed: indexed\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar map = require('../internals/async-iterator-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `AsyncIterator.prototype.map` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, {\n map: map\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar Promise = getBuiltIn('Promise');\nvar $TypeError = TypeError;\n\n// `AsyncIterator.prototype.reduce` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n aCallable(reducer);\n var record = getIteratorDirect(this);\n var iterator = record.iterator;\n var next = record.next;\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n\n return new Promise(function (resolve, reject) {\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, reject, error, reject);\n };\n\n var loop = function () {\n try {\n Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n noInitial ? reject(new $TypeError('Reduce of empty iterator with no initial value')) : resolve(accumulator);\n } else {\n var value = step.value;\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n loop();\n } else try {\n var result = reducer(accumulator, value, counter);\n\n var handler = function ($result) {\n accumulator = $result;\n loop();\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n counter++;\n } catch (error2) { reject(error2); }\n }, reject);\n } catch (error) { reject(error); }\n };\n\n loop();\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/async-iterator-iteration').some;\n\n// `AsyncIterator.prototype.some` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n some: function some(predicate) {\n return $some(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var returnMethod;\n\n if (!state.remaining--) {\n var resultDone = createIterResultObject(undefined, true);\n state.done = true;\n returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return Promise.resolve(call(returnMethod, iterator, undefined)).then(function () {\n return resultDone;\n });\n }\n return resultDone;\n } return Promise.resolve(call(state.next, iterator)).then(function (step) {\n if (anObject(step).done) {\n state.done = true;\n return createIterResultObject(undefined, true);\n } return createIterResultObject(step.value, false);\n }).then(null, function (error) {\n state.done = true;\n throw error;\n });\n});\n\n// `AsyncIterator.prototype.take` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE }, {\n take: function take(limit) {\n anObject(this);\n var remaining = toPositiveInteger(notANaN(+limit));\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $toArray = require('../internals/async-iterator-iteration').toArray;\n\n// `AsyncIterator.prototype.toArray` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n toArray: function toArray() {\n return $toArray(this, undefined, []);\n }\n});\n","'use strict';\nvar InternalStateModule = require('../internals/internal-state');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar INCORRECT_RANGE = 'Incorrect Iterator.range arguments';\nvar NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(NUMERIC_RANGE_ITERATOR);\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\n\nvar $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) {\n // TODO: Drop the first `typeof` check after removing legacy methods in `core-js@4`\n if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) {\n throw new $TypeError(INCORRECT_RANGE);\n }\n if (start === Infinity || start === -Infinity) {\n throw new $RangeError(INCORRECT_RANGE);\n }\n var ifIncrease = end > start;\n var inclusiveEnd = false;\n var step;\n if (option === undefined) {\n step = undefined;\n } else if (isObject(option)) {\n step = option.step;\n inclusiveEnd = !!option.inclusive;\n } else if (typeof option == type) {\n step = option;\n } else {\n throw new $TypeError(INCORRECT_RANGE);\n }\n if (isNullOrUndefined(step)) {\n step = ifIncrease ? one : -one;\n }\n if (typeof step != type) {\n throw new $TypeError(INCORRECT_RANGE);\n }\n if (step === Infinity || step === -Infinity || (step === zero && start !== end)) {\n throw new $RangeError(INCORRECT_RANGE);\n }\n // eslint-disable-next-line no-self-compare -- NaN check\n var hitsEnd = start !== start || end !== end || step !== step || (end > start) !== (step > zero);\n setInternalState(this, {\n type: NUMERIC_RANGE_ITERATOR,\n start: start,\n end: end,\n step: step,\n inclusive: inclusiveEnd,\n hitsEnd: hitsEnd,\n currentCount: zero,\n zero: zero\n });\n if (!DESCRIPTORS) {\n this.start = start;\n this.end = end;\n this.step = step;\n this.inclusive = inclusiveEnd;\n }\n}, NUMERIC_RANGE_ITERATOR, function next() {\n var state = getInternalState(this);\n if (state.hitsEnd) return createIterResultObject(undefined, true);\n var start = state.start;\n var end = state.end;\n var step = state.step;\n var currentYieldingValue = start + (step * state.currentCount++);\n if (currentYieldingValue === end) state.hitsEnd = true;\n var inclusiveEnd = state.inclusive;\n var endCondition;\n if (end > start) {\n endCondition = inclusiveEnd ? currentYieldingValue > end : currentYieldingValue >= end;\n } else {\n endCondition = inclusiveEnd ? end > currentYieldingValue : end >= currentYieldingValue;\n }\n if (endCondition) {\n state.hitsEnd = true;\n return createIterResultObject(undefined, true);\n } return createIterResultObject(currentYieldingValue, false);\n});\n\nvar addGetter = function (key) {\n defineBuiltInAccessor($RangeIterator.prototype, key, {\n get: function () {\n return getInternalState(this)[key];\n },\n set: function () { /* empty */ },\n configurable: true,\n enumerable: false\n });\n};\n\nif (DESCRIPTORS) {\n addGetter('start');\n addGetter('end');\n addGetter('inclusive');\n addGetter('step');\n}\n\nmodule.exports = $RangeIterator;\n","'use strict';\n/* eslint-disable es/no-bigint -- safe */\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\n// `BigInt.range` method\n// https://github.com/tc39/proposal-Number.range\n// TODO: Remove from `core-js@4`\nif (typeof BigInt == 'function') {\n $({ target: 'BigInt', stat: true, forced: true }, {\n range: function range(start, end, option) {\n return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1));\n }\n });\n}\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.map');\nrequire('../modules/es.weak-map');\nvar getBuiltIn = require('../internals/get-built-in');\nvar create = require('../internals/object-create');\nvar isObject = require('../internals/is-object');\n\nvar $Object = Object;\nvar $TypeError = TypeError;\nvar Map = getBuiltIn('Map');\nvar WeakMap = getBuiltIn('WeakMap');\n\nvar Node = function () {\n // keys\n this.object = null;\n this.symbol = null;\n // child nodes\n this.primitives = null;\n this.objectsByIndex = create(null);\n};\n\nNode.prototype.get = function (key, initializer) {\n return this[key] || (this[key] = initializer());\n};\n\nNode.prototype.next = function (i, it, IS_OBJECT) {\n var store = IS_OBJECT\n ? this.objectsByIndex[i] || (this.objectsByIndex[i] = new WeakMap())\n : this.primitives || (this.primitives = new Map());\n var entry = store.get(it);\n if (!entry) store.set(it, entry = new Node());\n return entry;\n};\n\nvar root = new Node();\n\nmodule.exports = function () {\n var active = root;\n var length = arguments.length;\n var i, it;\n // for prevent leaking, start from objects\n for (i = 0; i < length; i++) {\n if (isObject(it = arguments[i])) active = active.next(i, it, true);\n }\n if (this === $Object && active === root) throw new $TypeError('Composite keys must contain a non-primitive component');\n for (i = 0; i < length; i++) {\n if (!isObject(it = arguments[i])) active = active.next(i, it, false);\n } return active;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar apply = require('../internals/function-apply');\nvar getCompositeKeyNode = require('../internals/composite-key');\nvar getBuiltIn = require('../internals/get-built-in');\nvar create = require('../internals/object-create');\n\nvar $Object = Object;\n\nvar initializer = function () {\n var freeze = getBuiltIn('Object', 'freeze');\n return freeze ? freeze(create(null)) : create(null);\n};\n\n// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey\n$({ global: true, forced: true }, {\n compositeKey: function compositeKey() {\n return apply(getCompositeKeyNode, $Object, arguments).get('object', initializer);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getCompositeKeyNode = require('../internals/composite-key');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\n\n// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey\n$({ global: true, forced: true }, {\n compositeSymbol: function compositeSymbol() {\n if (arguments.length === 1 && typeof arguments[0] == 'string') return getBuiltIn('Symbol')['for'](arguments[0]);\n return apply(getCompositeKeyNode, null, arguments).get('symbol', getBuiltIn('Symbol'));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar unpackIEEE754 = require('../internals/ieee754').unpack;\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar getUint16 = uncurryThis(DataView.prototype.getUint16);\n\n// `DataView.prototype.getFloat16` method\n// https://github.com/tc39/proposal-float16array\n$({ target: 'DataView', proto: true }, {\n getFloat16: function getFloat16(byteOffset /* , littleEndian */) {\n var uint16 = getUint16(this, byteOffset, arguments.length > 1 ? arguments[1] : false);\n return unpackIEEE754([uint16 & 0xFF, uint16 >> 8 & 0xFF], 10);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar getUint8 = uncurryThis(DataView.prototype.getUint8);\n\n// `DataView.prototype.getUint8Clamped` method\n// https://github.com/tc39/proposal-dataview-get-set-uint8clamped\n$({ target: 'DataView', proto: true, forced: true }, {\n getUint8Clamped: function getUint8Clamped(byteOffset) {\n return getUint8(this, byteOffset);\n }\n});\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'DataView') return argument;\n throw new $TypeError('Argument is not a DataView');\n};\n","'use strict';\nvar floatRound = require('../internals/math-float-round');\n\nvar FLOAT16_EPSILON = 0.0009765625;\nvar FLOAT16_MAX_VALUE = 65504;\nvar FLOAT16_MIN_VALUE = 6.103515625e-05;\n\n// `Math.f16round` method implementation\n// https://github.com/tc39/proposal-float16array\nmodule.exports = Math.f16round || function f16round(x) {\n return floatRound(x, FLOAT16_EPSILON, FLOAT16_MAX_VALUE, FLOAT16_MIN_VALUE);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aDataView = require('../internals/a-data-view');\nvar toIndex = require('../internals/to-index');\nvar packIEEE754 = require('../internals/ieee754').pack;\nvar f16round = require('../internals/math-f16round');\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar setUint16 = uncurryThis(DataView.prototype.setUint16);\n\n// `DataView.prototype.setFloat16` method\n// https://github.com/tc39/proposal-float16array\n$({ target: 'DataView', proto: true }, {\n setFloat16: function setFloat16(byteOffset, value /* , littleEndian */) {\n aDataView(this);\n var offset = toIndex(byteOffset);\n var bytes = packIEEE754(f16round(value), 10, 2);\n return setUint16(this, offset, bytes[1] << 8 | bytes[0], arguments.length > 2 ? arguments[2] : false);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aDataView = require('../internals/a-data-view');\nvar toIndex = require('../internals/to-index');\nvar toUint8Clamped = require('../internals/to-uint8-clamped');\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nvar setUint8 = uncurryThis(DataView.prototype.setUint8);\n\n// `DataView.prototype.setUint8Clamped` method\n// https://github.com/tc39/proposal-dataview-get-set-uint8clamped\n$({ target: 'DataView', proto: true, forced: true }, {\n setUint8Clamped: function setUint8Clamped(byteOffset, value) {\n aDataView(this);\n var offset = toIndex(byteOffset);\n return setUint8(this, offset, toUint8Clamped(value));\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-explicit-resource-management\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aCallable = require('../internals/a-callable');\nvar anInstance = require('../internals/an-instance');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar addDisposableResource = require('../internals/add-disposable-resource');\n\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar DISPOSE = wellKnownSymbol('dispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar DISPOSABLE_STACK = 'DisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getDisposableStackInternalState = InternalStateModule.getterFor(DISPOSABLE_STACK);\n\nvar HINT = 'sync-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar getPendingDisposableStackInternalState = function (stack) {\n var internalState = getDisposableStackInternalState(stack);\n if (internalState.state === DISPOSED) throw new $ReferenceError(DISPOSABLE_STACK + ' already disposed');\n return internalState;\n};\n\nvar $DisposableStack = function DisposableStack() {\n setInternalState(anInstance(this, DisposableStackPrototype), {\n type: DISPOSABLE_STACK,\n state: PENDING,\n stack: []\n });\n\n if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar DisposableStackPrototype = $DisposableStack.prototype;\n\ndefineBuiltIns(DisposableStackPrototype, {\n dispose: function dispose() {\n var internalState = getDisposableStackInternalState(this);\n if (internalState.state === DISPOSED) return;\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) this.disposed = true;\n var stack = internalState.stack;\n var i = stack.length;\n var thrown = false;\n var suppressed;\n while (i) {\n var disposeMethod = stack[--i];\n stack[i] = null;\n try {\n disposeMethod();\n } catch (errorResult) {\n if (thrown) {\n suppressed = new SuppressedError(errorResult, suppressed);\n } else {\n thrown = true;\n suppressed = errorResult;\n }\n }\n }\n internalState.stack = null;\n if (thrown) throw suppressed;\n },\n use: function use(value) {\n addDisposableResource(getPendingDisposableStackInternalState(this), value, HINT);\n return value;\n },\n adopt: function adopt(value, onDispose) {\n var internalState = getPendingDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, function () {\n onDispose(value);\n });\n return value;\n },\n defer: function defer(onDispose) {\n var internalState = getPendingDisposableStackInternalState(this);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, onDispose);\n },\n move: function move() {\n var internalState = getPendingDisposableStackInternalState(this);\n var newDisposableStack = new $DisposableStack();\n getDisposableStackInternalState(newDisposableStack).stack = internalState.stack;\n internalState.stack = [];\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) this.disposed = true;\n return newDisposableStack;\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(DisposableStackPrototype, 'disposed', {\n configurable: true,\n get: function disposed() {\n return getDisposableStackInternalState(this).state === DISPOSED;\n }\n});\n\ndefineBuiltIn(DisposableStackPrototype, DISPOSE, DisposableStackPrototype.dispose, { name: 'dispose' });\ndefineBuiltIn(DisposableStackPrototype, TO_STRING_TAG, DISPOSABLE_STACK, { nonWritable: true });\n\n$({ global: true, constructor: true }, {\n DisposableStack: $DisposableStack\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function demethodize() {\n return uncurryThis(aCallable(this));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar demethodize = require('../internals/function-demethodize');\n\n// `Function.prototype.demethodize` method\n// https://github.com/js-choi/proposal-function-demethodize\n$({ target: 'Function', proto: true, forced: true }, {\n demethodize: demethodize\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar $isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar classRegExp = /^\\s*class\\b/;\nvar exec = uncurryThis(classRegExp.exec);\n\nvar isClassConstructor = function (argument) {\n try {\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n if (!DESCRIPTORS || !exec(classRegExp, inspectSource(argument))) return false;\n } catch (error) { /* empty */ }\n var prototype = getOwnPropertyDescriptor(argument, 'prototype');\n return !!prototype && hasOwn(prototype, 'writable') && !prototype.writable;\n};\n\n// `Function.isCallable` method\n// https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md\n$({ target: 'Function', stat: true, sham: true, forced: true }, {\n isCallable: function isCallable(argument) {\n return $isCallable(argument) && !isClassConstructor(argument);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isConstructor = require('../internals/is-constructor');\n\n// `Function.isConstructor` method\n// https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md\n$({ target: 'Function', stat: true, forced: true }, {\n isConstructor: isConstructor\n});\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar METADATA = wellKnownSymbol('metadata');\nvar FunctionPrototype = Function.prototype;\n\n// Function.prototype[@@metadata]\n// https://github.com/tc39/proposal-decorator-metadata\nif (FunctionPrototype[METADATA] === undefined) {\n defineProperty(FunctionPrototype, METADATA, {\n value: null\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar demethodize = require('../internals/function-demethodize');\n\n// `Function.prototype.unThis` method\n// https://github.com/js-choi/proposal-function-demethodize\n// TODO: Remove from `core-js@4`\n$({ target: 'Function', proto: true, forced: true, name: 'demethodize' }, {\n unThis: demethodize\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = global[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n if (DESCRIPTORS) {\n defineBuiltInAccessor(IteratorPrototype, key, {\n configurable: true,\n get: function () {\n return value;\n },\n set: function (replacement) {\n anObject(this);\n if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n if (hasOwn(this, key)) this[key] = replacement;\n else createProperty(this, key, replacement);\n }\n });\n } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://github.com/tc39/proposal-iterator-helpers\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n try {\n var result = state.done ? undefined : state.nextHandler();\n return createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n iteratorClose(iterator, 'normal');\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n anObject(this);\n aCallable(mapper);\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar map = require('../internals/iterator-map');\n\nvar callback = function (value, counter) {\n return [counter, value];\n};\n\n// `Iterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function indexed() {\n return call(map, this, callback);\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/iterator-indexed');\n\n// `Iterator.prototype.asIndexedPairs` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', name: 'indexed', proto: true, real: true, forced: true }, {\n asIndexedPairs: indexed\n});\n","'use strict';\n// https://github.com/tc39/proposal-explicit-resource-management\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar getMethod = require('../internals/get-method');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\n\nvar DISPOSE = wellKnownSymbol('dispose');\n\nif (!hasOwn(IteratorPrototype, DISPOSE)) {\n defineBuiltIn(IteratorPrototype, DISPOSE, function () {\n var $return = getMethod(this, 'return');\n if ($return) call($return, this);\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var next = this.next;\n var result, done;\n while (this.remaining) {\n this.remaining--;\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n }\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.drop` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n drop: function drop(limit) {\n anObject(this);\n var remaining = toPositiveInteger(notANaN(+limit));\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n every: function every(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n filter: function filter(predicate) {\n anObject(this);\n aCallable(predicate);\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.find` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n find: function find(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop(value);\n }, { IS_RECORD: true, INTERRUPTED: true }).result;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (obj, stringHandling) {\n if (!stringHandling || typeof obj !== 'string') anObject(obj);\n var method = getIteratorMethod(obj);\n return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var mapper = this.mapper;\n var result, inner;\n\n while (true) {\n if (inner = this.inner) try {\n result = anObject(call(inner.next, inner.iterator));\n if (!result.done) return result.value;\n this.inner = null;\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n\n result = anObject(call(this.next, iterator));\n\n if (this.done = !!result.done) return;\n\n try {\n this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n }\n});\n\n// `Iterator.prototype.flatMap` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n flatMap: function flatMap(mapper) {\n anObject(this);\n aCallable(mapper);\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper,\n inner: null\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.forEach` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n forEach: function forEach(fn) {\n anObject(this);\n aCallable(fn);\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n return call(this.next, this.iterator);\n}, true);\n\n// `Iterator.from` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', stat: true, forced: IS_PURE }, {\n from: function from(O) {\n var iteratorRecord = getIteratorFlattenable(typeof O == 'string' ? toObject(O) : O, true);\n return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator)\n ? iteratorRecord.iterator\n : new IteratorProxy(iteratorRecord);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/iterator-indexed');\n\n// `Iterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n indexed: indexed\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar map = require('../internals/iterator-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n map: map\n});\n","'use strict';\n/* eslint-disable es/no-bigint -- safe */\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\nvar $TypeError = TypeError;\n\n// `Iterator.range` method\n// https://github.com/tc39/proposal-Number.range\n$({ target: 'Iterator', stat: true, forced: true }, {\n range: function range(start, end, option) {\n if (typeof start == 'number') return new NumericRangeIterator(start, end, option, 'number', 0, 1);\n if (typeof start == 'bigint') return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1));\n throw new $TypeError('Incorrect Iterator.range arguments');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar $TypeError = TypeError;\n\n// `Iterator.prototype.reduce` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n aCallable(reducer);\n var record = getIteratorDirect(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n some: function some(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n if (!this.remaining--) {\n this.done = true;\n return iteratorClose(iterator, 'normal', undefined);\n }\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.take` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n take: function take(limit) {\n anObject(this);\n var remaining = toPositiveInteger(notANaN(+limit));\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar iterate = require('../internals/iterate');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar push = [].push;\n\n// `Iterator.prototype.toArray` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n toArray: function toArray() {\n var result = [];\n iterate(getIteratorDirect(anObject(this)), push, { that: result, IS_RECORD: true });\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar WrapAsyncIterator = require('../internals/async-iterator-wrap');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Iterator.prototype.toAsync` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n toAsync: function toAsync() {\n return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(anObject(this)))));\n }\n});\n","'use strict';\n/* eslint-disable es/no-json -- safe */\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var unsafeInt = '9007199254740993';\n var raw = JSON.rawJSON(unsafeInt);\n return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar getInternalState = require('../internals/internal-state').get;\n\nmodule.exports = function isRawJSON(O) {\n if (!isObject(O)) return false;\n var state = getInternalState(O);\n return !!state && state.type === 'RawJSON';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\nvar isRawJSON = require('../internals/is-raw-json');\n\n// `JSON.parse` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n isRawJSON: isRawJSON\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n '\\\\\"': '\"',\n '\\\\\\\\': '\\\\',\n '\\\\/': '/',\n '\\\\b': '\\b',\n '\\\\f': '\\f',\n '\\\\n': '\\n',\n '\\\\r': '\\r',\n '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n var unterminated = true;\n var value = '';\n while (i < source.length) {\n var chr = at(source, i);\n if (chr === '\\\\') {\n var twoChars = slice(source, i, i + 2);\n if (hasOwn(codePoints, twoChars)) {\n value += codePoints[twoChars];\n i += 2;\n } else if (twoChars === '\\\\u') {\n i += 2;\n var fourHexDigits = slice(source, i, i + 4);\n if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);\n value += fromCharCode($parseInt(fourHexDigits, 16));\n i += 4;\n } else throw new $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n } else if (chr === '\"') {\n unterminated = false;\n i++;\n break;\n } else {\n if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);\n value += chr;\n i++;\n }\n }\n if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);\n return { value: value, end: i };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar parseJSONString = require('../internals/parse-json-string');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar JSON = global.JSON;\nvar Number = global.Number;\nvar SyntaxError = global.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^(?:-|\\d)$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n source = toString(source);\n var context = new Context(source, 0, '');\n var root = context.parse();\n var value = root.value;\n var endIndex = context.skip(IS_WHITESPACE, root.end);\n if (endIndex < source.length) {\n throw new SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n }\n return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n var val = holder[name];\n var unmodified = node && val === node.value;\n var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n var elementRecordsLen, keys, len, i, P;\n if (isObject(val)) {\n var nodeIsArray = isArray(val);\n var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n if (nodeIsArray) {\n elementRecordsLen = nodes.length;\n len = lengthOfArrayLike(val);\n for (i = 0; i < len; i++) {\n internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n }\n } else {\n keys = enumerableOwnProperties(val);\n len = lengthOfArrayLike(keys);\n for (i = 0; i < len; i++) {\n P = keys[i];\n internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n }\n }\n }\n return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n if (DESCRIPTORS) {\n var descriptor = getOwnPropertyDescriptor(object, key);\n if (descriptor && !descriptor.configurable) return;\n }\n if (value === undefined) delete object[key];\n else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n this.value = value;\n this.end = end;\n this.source = source;\n this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n this.source = source;\n this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n fork: function (nextIndex) {\n return new Context(this.source, nextIndex);\n },\n parse: function () {\n var source = this.source;\n var i = this.skip(IS_WHITESPACE, this.index);\n var fork = this.fork(i);\n var chr = at(source, i);\n if (exec(IS_NUMBER_START, chr)) return fork.number();\n switch (chr) {\n case '{':\n return fork.object();\n case '[':\n return fork.array();\n case '\"':\n return fork.string();\n case 't':\n return fork.keyword(true);\n case 'f':\n return fork.keyword(false);\n case 'n':\n return fork.keyword(null);\n } throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n },\n node: function (type, value, start, end, nodes) {\n return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n },\n object: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectKeypair = false;\n var object = {};\n var nodes = {};\n while (i < source.length) {\n i = this.until(['\"', '}'], i);\n if (at(source, i) === '}' && !expectKeypair) {\n i++;\n break;\n }\n // Parsing the key\n var result = this.fork(i).string();\n var key = result.value;\n i = result.end;\n i = this.until([':'], i) + 1;\n // Parsing value\n i = this.skip(IS_WHITESPACE, i);\n result = this.fork(i).parse();\n createProperty(nodes, key, result);\n createProperty(object, key, result.value);\n i = this.until([',', '}'], result.end);\n var chr = at(source, i);\n if (chr === ',') {\n expectKeypair = true;\n i++;\n } else if (chr === '}') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, object, this.index, i, nodes);\n },\n array: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectElement = false;\n var array = [];\n var nodes = [];\n while (i < source.length) {\n i = this.skip(IS_WHITESPACE, i);\n if (at(source, i) === ']' && !expectElement) {\n i++;\n break;\n }\n var result = this.fork(i).parse();\n push(nodes, result);\n push(array, result.value);\n i = this.until([',', ']'], result.end);\n if (at(source, i) === ',') {\n expectElement = true;\n i++;\n } else if (at(source, i) === ']') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, array, this.index, i, nodes);\n },\n string: function () {\n var index = this.index;\n var parsed = parseJSONString(this.source, this.index + 1);\n return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n },\n number: function () {\n var source = this.source;\n var startIndex = this.index;\n var i = startIndex;\n if (at(source, i) === '-') i++;\n if (at(source, i) === '0') i++;\n else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, ++i);\n else throw new SyntaxError('Failed to parse number at: ' + i);\n if (at(source, i) === '.') i = this.skip(IS_DIGIT, ++i);\n if (at(source, i) === 'e' || at(source, i) === 'E') {\n i++;\n if (at(source, i) === '+' || at(source, i) === '-') i++;\n var exponentStartIndex = i;\n i = this.skip(IS_DIGIT, i);\n if (exponentStartIndex === i) throw new SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n }\n return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n },\n keyword: function (value) {\n var keyword = '' + value;\n var index = this.index;\n var endIndex = index + keyword.length;\n if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);\n return this.node(PRIMITIVE, value, index, endIndex);\n },\n skip: function (regex, i) {\n var source = this.source;\n for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n return i;\n },\n until: function (array, i) {\n i = this.skip(IS_WHITESPACE, i);\n var chr = at(this.source, i);\n for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;\n throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n var unsafeInt = '9007199254740993';\n var source;\n nativeParse(unsafeInt, function (key, value, context) {\n source = context.source;\n });\n return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n // Safari 9 bug\n return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n parse: function parse(text, reviver) {\n return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar isRawJSON = require('../internals/is-raw-json');\nvar toString = require('../internals/to-string');\nvar createProperty = require('../internals/create-property');\nvar parseJSONString = require('../internals/parse-json-string');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar uid = require('../internals/uid');\nvar setInternalState = require('../internals/internal-state').set;\n\nvar $String = String;\nvar $SyntaxError = SyntaxError;\nvar parse = getBuiltIn('JSON', 'parse');\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar create = getBuiltIn('Object', 'create');\nvar freeze = getBuiltIn('Object', 'freeze');\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar MARK = uid();\nvar MARK_LENGTH = MARK.length;\nvar ERROR_MESSAGE = 'Unacceptable as raw JSON';\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\n// `JSON.parse` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n rawJSON: function rawJSON(text) {\n var jsonString = toString(text);\n if (jsonString === '' || exec(IS_WHITESPACE, at(jsonString, 0)) || exec(IS_WHITESPACE, at(jsonString, jsonString.length - 1))) {\n throw new $SyntaxError(ERROR_MESSAGE);\n }\n var parsed = parse(jsonString);\n if (typeof parsed == 'object' && parsed !== null) throw new $SyntaxError(ERROR_MESSAGE);\n var obj = create(null);\n setInternalState(obj, { type: 'RawJSON' });\n createProperty(obj, 'rawJSON', jsonString);\n return FREEZING ? freeze(obj) : obj;\n }\n});\n\n// `JSON.stringify` method\n// https://tc39.es/ecma262/#sec-json.stringify\n// https://github.com/tc39/proposal-json-parse-with-source\nif ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: !NATIVE_RAW_JSON }, {\n stringify: function stringify(text, replacer, space) {\n var replacerFunction = getReplacerFunction(replacer);\n var rawStrings = [];\n\n var json = $stringify(text, function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value;\n return isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v;\n }, space);\n\n if (typeof json != 'string') return json;\n\n var result = '';\n var length = json.length;\n\n for (var i = 0; i < length; i++) {\n var chr = at(json, i);\n if (chr === '\"') {\n var end = parseJSONString(json, ++i).end - 1;\n var string = slice(json, i, end);\n result += slice(string, 0, MARK_LENGTH) === MARK\n ? rawStrings[slice(string, MARK_LENGTH)]\n : '\"' + string + '\"';\n i = end;\n } else result += chr;\n }\n\n return result;\n }\n});\n","'use strict';\nvar has = require('../internals/map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[MapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar remove = require('../internals/map-helpers').remove;\n\n// `Map.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aMap(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.emplace` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n emplace: function emplace(key, handler) {\n var map = aMap(this);\n var value, inserted;\n if (has(map, key)) {\n value = get(map, key);\n if ('update' in handler) {\n value = handler.update(value, key, map);\n set(map, key, value);\n } return value;\n }\n inserted = handler.insert(key, map);\n set(map, key, inserted);\n return inserted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n every: function every(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(map, function (value, key) {\n if (!boundFunction(value, key, map)) return false;\n }, true) !== false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n filter: function filter(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) set(newMap, key, value);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n find: function find(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return { value: value };\n }, true);\n return result && result.value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.findKey` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n findKey: function findKey(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return { key: key };\n }, true);\n return result && result.key;\n }\n});\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar bind = require('../internals/function-bind-context');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar iterate = require('../internals/iterate');\n\nmodule.exports = function (C, adder, ENTRY) {\n return function from(source /* , mapFn, thisArg */) {\n var O = toObject(source);\n var length = arguments.length;\n var mapFn = length > 1 ? arguments[1] : undefined;\n var mapping = mapFn !== undefined;\n var boundFunction = mapping ? bind(mapFn, length > 2 ? arguments[2] : undefined) : undefined;\n var result = new C();\n var n = 0;\n iterate(O, function (nextItem) {\n var entry = mapping ? boundFunction(nextItem, n++) : nextItem;\n if (ENTRY) adder(result, anObject(entry)[0], entry[1]);\n else adder(result, entry);\n });\n return result;\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar MapHelpers = require('../internals/map-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `Map.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\n$({ target: 'Map', stat: true, forced: true }, {\n from: createCollectionFrom(MapHelpers.Map, MapHelpers.set, true)\n});\n","'use strict';\n// `SameValueZero` abstract operation\n// https://tc39.es/ecma262/#sec-samevaluezero\nmodule.exports = function (x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y || x !== x && y !== y;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar sameValueZero = require('../internals/same-value-zero');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.includes` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n includes: function includes(searchElement) {\n return iterate(aMap(this), function (value) {\n if (sameValueZero(value, searchElement)) return true;\n }, true) === true;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar isCallable = require('../internals/is-callable');\nvar aCallable = require('../internals/a-callable');\nvar Map = require('../internals/map-helpers').Map;\n\n// `Map.keyBy` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', stat: true, forced: true }, {\n keyBy: function keyBy(iterable, keyDerivative) {\n var C = isCallable(this) ? this : Map;\n var newMap = new C();\n aCallable(keyDerivative);\n var setter = aCallable(newMap.set);\n iterate(iterable, function (element) {\n call(setter, newMap, keyDerivative(element), element);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.keyOf` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n keyOf: function keyOf(searchElement) {\n var result = iterate(aMap(this), function (value, key) {\n if (value === searchElement) return { key: key };\n }, true);\n return result && result.key;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapKeys` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n mapKeys: function mapKeys(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n set(newMap, boundFunction(value, key, map), value);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapValues` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n mapValues: function mapValues(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n set(newMap, key, boundFunction(value, key, map));\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/iterate');\nvar set = require('../internals/map-helpers').set;\n\n// `Map.prototype.merge` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n merge: function merge(iterable /* ...iterables */) {\n var map = aMap(this);\n var argumentsLength = arguments.length;\n var i = 0;\n while (i < argumentsLength) {\n iterate(arguments[i++], function (key, value) {\n set(map, key, value);\n }, { AS_ENTRIES: true });\n }\n return map;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// https://tc39.github.io/proposal-setmap-offrom/\nmodule.exports = function (C, adder, ENTRY) {\n return function of() {\n var result = new C();\n var length = arguments.length;\n for (var index = 0; index < length; index++) {\n var entry = arguments[index];\n if (ENTRY) adder(result, anObject(entry)[0], entry[1]);\n else adder(result, entry);\n } return result;\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar MapHelpers = require('../internals/map-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `Map.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\n$({ target: 'Map', stat: true, forced: true }, {\n of: createCollectionOf(MapHelpers.Map, MapHelpers.set, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\nvar $TypeError = TypeError;\n\n// `Map.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var map = aMap(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n aCallable(callbackfn);\n iterate(map, function (value, key) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = callbackfn(accumulator, value, key, map);\n }\n });\n if (noInitial) throw new $TypeError('Reduce of empty map with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n some: function some(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return true;\n }, true) === true;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar $TypeError = TypeError;\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.update` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n update: function update(key, callback /* , thunk */) {\n var map = aMap(this);\n var length = arguments.length;\n aCallable(callback);\n var isPresentInMap = has(map, key);\n if (!isPresentInMap && length < 3) {\n throw new $TypeError('Updating absent value');\n }\n var value = isPresentInMap ? get(map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map);\n set(map, key, callback(value, key, map));\n return map;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\n\nvar $TypeError = TypeError;\n\n// `Map.prototype.upsert` method\n// https://github.com/tc39/proposal-upsert\nmodule.exports = function upsert(key, updateFn /* , insertFn */) {\n var map = anObject(this);\n var get = aCallable(map.get);\n var has = aCallable(map.has);\n var set = aCallable(map.set);\n var insertFn = arguments.length > 2 ? arguments[2] : undefined;\n var value;\n if (!isCallable(updateFn) && !isCallable(insertFn)) {\n throw new $TypeError('At least one callback required');\n }\n if (call(has, map, key)) {\n value = call(get, map, key);\n if (isCallable(updateFn)) {\n value = updateFn(value);\n call(set, map, key, value);\n }\n } else if (isCallable(insertFn)) {\n value = insertFn();\n call(set, map, key, value);\n } return value;\n};\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.emplace`)\n// https://github.com/thumbsupep/proposal-upsert\n$({ target: 'Map', proto: true, real: true, name: 'upsert', forced: true }, {\n updateOrInsert: upsert\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `Map.prototype.upsert` method (replaced by `Map.prototype.emplace`)\n// https://github.com/thumbsupep/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n upsert: upsert\n});\n","'use strict';\nvar $ = require('../internals/export');\n\nvar min = Math.min;\nvar max = Math.max;\n\n// `Math.clamp` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n clamp: function clamp(x, lower, upper) {\n return min(upper, max(lower, x));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.DEG_PER_RAD` constant\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {\n DEG_PER_RAD: Math.PI / 180\n});\n","'use strict';\nvar $ = require('../internals/export');\n\nvar RAD_PER_DEG = 180 / Math.PI;\n\n// `Math.degrees` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n degrees: function degrees(radians) {\n return radians * RAD_PER_DEG;\n }\n});\n","'use strict';\n// `Math.scale` method implementation\n// https://rwaldron.github.io/proposal-math-extensions/\nmodule.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {\n var nx = +x;\n var nInLow = +inLow;\n var nInHigh = +inHigh;\n var nOutLow = +outLow;\n var nOutHigh = +outHigh;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (nx !== nx || nInLow !== nInLow || nInHigh !== nInHigh || nOutLow !== nOutLow || nOutHigh !== nOutHigh) return NaN;\n if (nx === Infinity || nx === -Infinity) return nx;\n return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow;\n};\n","'use strict';\nvar $ = require('../internals/export');\n\nvar scale = require('../internals/math-scale');\nvar fround = require('../internals/math-fround');\n\n// `Math.fscale` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {\n return fround(scale(x, inLow, inHigh, outLow, outHigh));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar f16round = require('../internals/math-f16round');\n\n// `Math.f16round` method\n// https://github.com/tc39/proposal-float16array\n$({ target: 'Math', stat: true }, { f16round: f16round });\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.iaddh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n iaddh: function iaddh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.imulh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n imulh: function imulh(u, v) {\n var UINT16 = 0xFFFF;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >> 16;\n var v1 = $v >> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.isubh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n isubh: function isubh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.RAD_PER_DEG` constant\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {\n RAD_PER_DEG: 180 / Math.PI\n});\n","'use strict';\nvar $ = require('../internals/export');\n\nvar DEG_PER_RAD = Math.PI / 180;\n\n// `Math.radians` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n radians: function radians(degrees) {\n return degrees * DEG_PER_RAD;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar scale = require('../internals/math-scale');\n\n// `Math.scale` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n scale: scale\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar numberIsFinite = require('../internals/number-is-finite');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar SEEDED_RANDOM = 'Seeded Random';\nvar SEEDED_RANDOM_GENERATOR = SEEDED_RANDOM + ' Generator';\nvar SEED_TYPE_ERROR = 'Math.seededPRNG() argument should have a \"seed\" field with a finite value.';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SEEDED_RANDOM_GENERATOR);\nvar $TypeError = TypeError;\n\nvar $SeededRandomGenerator = createIteratorConstructor(function SeededRandomGenerator(seed) {\n setInternalState(this, {\n type: SEEDED_RANDOM_GENERATOR,\n seed: seed % 2147483647\n });\n}, SEEDED_RANDOM, function next() {\n var state = getInternalState(this);\n var seed = state.seed = (state.seed * 1103515245 + 12345) % 2147483647;\n return createIterResultObject((seed & 1073741823) / 1073741823, false);\n});\n\n// `Math.seededPRNG` method\n// https://github.com/tc39/proposal-seeded-random\n// based on https://github.com/tc39/proposal-seeded-random/blob/78b8258835b57fc2100d076151ab506bc3202ae6/demo.html\n$({ target: 'Math', stat: true, forced: true }, {\n seededPRNG: function seededPRNG(it) {\n var seed = anObject(it).seed;\n if (!numberIsFinite(seed)) throw new $TypeError(SEED_TYPE_ERROR);\n return new $SeededRandomGenerator(seed);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.signbit` method\n// https://github.com/tc39/proposal-Math.signbit\n$({ target: 'Math', stat: true, forced: true }, {\n signbit: function signbit(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n === n && n === 0 ? 1 / n === -Infinity : n < 0;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Math.umulh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n umulh: function umulh(u, v) {\n var UINT16 = 0xFFFF;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >>> 16;\n var v1 = $v >>> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar INVALID_NUMBER_REPRESENTATION = 'Invalid number representation';\nvar INVALID_RADIX = 'Invalid radix';\nvar $RangeError = RangeError;\nvar $SyntaxError = SyntaxError;\nvar $TypeError = TypeError;\nvar $parseInt = parseInt;\nvar pow = Math.pow;\nvar valid = /^[\\d.a-z]+$/;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(valid.exec);\nvar numberToString = uncurryThis(1.0.toString);\nvar stringSlice = uncurryThis(''.slice);\nvar split = uncurryThis(''.split);\n\n// `Number.fromString` method\n// https://github.com/tc39/proposal-number-fromstring\n$({ target: 'Number', stat: true, forced: true }, {\n fromString: function fromString(string, radix) {\n var sign = 1;\n if (typeof string != 'string') throw new $TypeError(INVALID_NUMBER_REPRESENTATION);\n if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n if (charAt(string, 0) === '-') {\n sign = -1;\n string = stringSlice(string, 1);\n if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n }\n var R = radix === undefined ? 10 : toIntegerOrInfinity(radix);\n if (R < 2 || R > 36) throw new $RangeError(INVALID_RADIX);\n if (!exec(valid, string)) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n var parts = split(string, '.');\n var mathNum = $parseInt(parts[0], R);\n if (parts.length > 1) mathNum += $parseInt(parts[1], R) / pow(R, parts[1].length);\n if (R === 10 && numberToString(mathNum, R) !== string) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n return sign * mathNum;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\n// `Number.range` method\n// https://github.com/tc39/proposal-Number.range\n// TODO: Remove from `core-js@4`\n$({ target: 'Number', stat: true, forced: true }, {\n range: function range(start, end, option) {\n return new NumericRangeIterator(start, end, option, 'number', 0, 1);\n }\n});\n","'use strict';\nvar InternalStateModule = require('../internals/internal-state');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar hasOwn = require('../internals/has-own-property');\nvar objectKeys = require('../internals/object-keys');\nvar toObject = require('../internals/to-object');\n\nvar OBJECT_ITERATOR = 'Object Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(OBJECT_ITERATOR);\n\nmodule.exports = createIteratorConstructor(function ObjectIterator(source, mode) {\n var object = toObject(source);\n setInternalState(this, {\n type: OBJECT_ITERATOR,\n mode: mode,\n object: object,\n keys: objectKeys(object),\n index: 0\n });\n}, 'Object', function next() {\n var state = getInternalState(this);\n var keys = state.keys;\n while (true) {\n if (keys === null || state.index >= keys.length) {\n state.object = state.keys = null;\n return createIterResultObject(undefined, true);\n }\n var key = keys[state.index++];\n var object = state.object;\n if (!hasOwn(object, key)) continue;\n switch (state.mode) {\n case 'keys': return createIterResultObject(key, false);\n case 'values': return createIterResultObject(object[key], false);\n } /* entries */ return createIterResultObject([key, object[key]], false);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateEntries` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n iterateEntries: function iterateEntries(object) {\n return new ObjectIterator(object, 'entries');\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateKeys` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n iterateKeys: function iterateKeys(object) {\n return new ObjectIterator(object, 'keys');\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateValues` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n iterateValues: function iterateValues(object) {\n return new ObjectIterator(object, 'values');\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-observable\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar $$OBSERVABLE = wellKnownSymbol('observable');\nvar OBSERVABLE = 'Observable';\nvar SUBSCRIPTION = 'Subscription';\nvar SUBSCRIPTION_OBSERVER = 'SubscriptionObserver';\nvar getterFor = InternalStateModule.getterFor;\nvar setInternalState = InternalStateModule.set;\nvar getObservableInternalState = getterFor(OBSERVABLE);\nvar getSubscriptionInternalState = getterFor(SUBSCRIPTION);\nvar getSubscriptionObserverInternalState = getterFor(SUBSCRIPTION_OBSERVER);\n\nvar SubscriptionState = function (observer) {\n this.observer = anObject(observer);\n this.cleanup = undefined;\n this.subscriptionObserver = undefined;\n};\n\nSubscriptionState.prototype = {\n type: SUBSCRIPTION,\n clean: function () {\n var cleanup = this.cleanup;\n if (cleanup) {\n this.cleanup = undefined;\n try {\n cleanup();\n } catch (error) {\n hostReportErrors(error);\n }\n }\n },\n close: function () {\n if (!DESCRIPTORS) {\n var subscription = this.facade;\n var subscriptionObserver = this.subscriptionObserver;\n subscription.closed = true;\n if (subscriptionObserver) subscriptionObserver.closed = true;\n } this.observer = undefined;\n },\n isClosed: function () {\n return this.observer === undefined;\n }\n};\n\nvar Subscription = function (observer, subscriber) {\n var subscriptionState = setInternalState(this, new SubscriptionState(observer));\n var start;\n if (!DESCRIPTORS) this.closed = false;\n try {\n if (start = getMethod(observer, 'start')) call(start, observer, this);\n } catch (error) {\n hostReportErrors(error);\n }\n if (subscriptionState.isClosed()) return;\n var subscriptionObserver = subscriptionState.subscriptionObserver = new SubscriptionObserver(subscriptionState);\n try {\n var cleanup = subscriber(subscriptionObserver);\n var subscription = cleanup;\n if (!isNullOrUndefined(cleanup)) subscriptionState.cleanup = isCallable(cleanup.unsubscribe)\n ? function () { subscription.unsubscribe(); }\n : aCallable(cleanup);\n } catch (error) {\n subscriptionObserver.error(error);\n return;\n } if (subscriptionState.isClosed()) subscriptionState.clean();\n};\n\nSubscription.prototype = defineBuiltIns({}, {\n unsubscribe: function unsubscribe() {\n var subscriptionState = getSubscriptionInternalState(this);\n if (!subscriptionState.isClosed()) {\n subscriptionState.close();\n subscriptionState.clean();\n }\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(Subscription.prototype, 'closed', {\n configurable: true,\n get: function closed() {\n return getSubscriptionInternalState(this).isClosed();\n }\n});\n\nvar SubscriptionObserver = function (subscriptionState) {\n setInternalState(this, {\n type: SUBSCRIPTION_OBSERVER,\n subscriptionState: subscriptionState\n });\n if (!DESCRIPTORS) this.closed = false;\n};\n\nSubscriptionObserver.prototype = defineBuiltIns({}, {\n next: function next(value) {\n var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n if (!subscriptionState.isClosed()) {\n var observer = subscriptionState.observer;\n try {\n var nextMethod = getMethod(observer, 'next');\n if (nextMethod) call(nextMethod, observer, value);\n } catch (error) {\n hostReportErrors(error);\n }\n }\n },\n error: function error(value) {\n var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n if (!subscriptionState.isClosed()) {\n var observer = subscriptionState.observer;\n subscriptionState.close();\n try {\n var errorMethod = getMethod(observer, 'error');\n if (errorMethod) call(errorMethod, observer, value);\n else hostReportErrors(value);\n } catch (err) {\n hostReportErrors(err);\n } subscriptionState.clean();\n }\n },\n complete: function complete() {\n var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n if (!subscriptionState.isClosed()) {\n var observer = subscriptionState.observer;\n subscriptionState.close();\n try {\n var completeMethod = getMethod(observer, 'complete');\n if (completeMethod) call(completeMethod, observer);\n } catch (error) {\n hostReportErrors(error);\n } subscriptionState.clean();\n }\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(SubscriptionObserver.prototype, 'closed', {\n configurable: true,\n get: function closed() {\n return getSubscriptionObserverInternalState(this).subscriptionState.isClosed();\n }\n});\n\nvar $Observable = function Observable(subscriber) {\n anInstance(this, ObservablePrototype);\n setInternalState(this, {\n type: OBSERVABLE,\n subscriber: aCallable(subscriber)\n });\n};\n\nvar ObservablePrototype = $Observable.prototype;\n\ndefineBuiltIns(ObservablePrototype, {\n subscribe: function subscribe(observer) {\n var length = arguments.length;\n return new Subscription(isCallable(observer) ? {\n next: observer,\n error: length > 1 ? arguments[1] : undefined,\n complete: length > 2 ? arguments[2] : undefined\n } : isObject(observer) ? observer : {}, getObservableInternalState(this).subscriber);\n }\n});\n\ndefineBuiltIn(ObservablePrototype, $$OBSERVABLE, function () { return this; });\n\n$({ global: true, constructor: true, forced: true }, {\n Observable: $Observable\n});\n\nsetSpecies(OBSERVABLE);\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isConstructor = require('../internals/is-constructor');\nvar getIterator = require('../internals/get-iterator');\nvar getMethod = require('../internals/get-method');\nvar iterate = require('../internals/iterate');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $$OBSERVABLE = wellKnownSymbol('observable');\n\n// `Observable.from` method\n// https://github.com/tc39/proposal-observable\n$({ target: 'Observable', stat: true, forced: true }, {\n from: function from(x) {\n var C = isConstructor(this) ? this : getBuiltIn('Observable');\n var observableMethod = getMethod(anObject(x), $$OBSERVABLE);\n if (observableMethod) {\n var observable = anObject(call(observableMethod, x));\n return observable.constructor === C ? observable : new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n var iterator = getIterator(x);\n return new C(function (observer) {\n iterate(iterator, function (it, stop) {\n observer.next(it);\n if (observer.closed) return stop();\n }, { IS_ITERATOR: true, INTERRUPTED: true });\n observer.complete();\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isConstructor = require('../internals/is-constructor');\n\nvar Array = getBuiltIn('Array');\n\n// `Observable.of` method\n// https://github.com/tc39/proposal-observable\n$({ target: 'Observable', stat: true, forced: true }, {\n of: function of() {\n var C = isConstructor(this) ? this : getBuiltIn('Observable');\n var length = arguments.length;\n var items = Array(length);\n var index = 0;\n while (index < length) items[index] = arguments[index++];\n return new C(function (observer) {\n for (var i = 0; i < length; i++) {\n observer.next(items[i]);\n if (observer.closed) return;\n } observer.complete();\n });\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\n\n// `Promise.try` method\n// https://github.com/tc39/proposal-promise-try\n$({ target: 'Promise', stat: true, forced: true }, {\n 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(callbackfn);\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.map');\nrequire('../modules/es.weak-map');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar shared = require('../internals/shared');\n\nvar Map = getBuiltIn('Map');\nvar WeakMap = getBuiltIn('WeakMap');\nvar push = uncurryThis([].push);\n\nvar metadata = shared('metadata');\nvar store = metadata.store || (metadata.store = new WeakMap());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\n\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\n\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\n\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\n\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { push(keys, key); });\n return keys;\n};\n\nvar toMetadataKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\n\nmodule.exports = {\n store: store,\n getMap: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n toKey: toMetadataKey\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar ordinaryDefineOwnMetadata = ReflectMetadataModule.set;\n\n// `Reflect.defineMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n defineMetadata: function defineMetadata(metadataKey, metadataValue, target /* , targetKey */) {\n var targetKey = arguments.length < 4 ? undefined : toMetadataKey(arguments[3]);\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), targetKey);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar getOrCreateMetadataMap = ReflectMetadataModule.getMap;\nvar store = ReflectMetadataModule.store;\n\n// `Reflect.deleteMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar ordinaryGetOwnMetadata = ReflectMetadataModule.get;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\n// `Reflect.getMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryGetMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar $arrayUniqueBy = require('../internals/array-unique-by');\n\nvar arrayUniqueBy = uncurryThis($arrayUniqueBy);\nvar concat = uncurryThis([].concat);\nvar ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? arrayUniqueBy(concat(oKeys, pKeys)) : pKeys : oKeys;\n};\n\n// `Reflect.getMetadataKeys` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);\n return ordinaryMetadataKeys(anObject(target), targetKey);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryGetOwnMetadata = ReflectMetadataModule.get;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.getOwnMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryGetOwnMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.getOwnMetadataKeys` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);\n return ordinaryOwnMetadataKeys(anObject(target), targetKey);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\n// `Reflect.hasMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryHasMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.hasOwnMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryHasOwnMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar ordinaryDefineOwnMetadata = ReflectMetadataModule.set;\n\n// `Reflect.metadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, key) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetadataKey(key));\n };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar WHITESPACES = require('../internals/whitespaces');\n\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar NEED_ESCAPING = RegExp('[!\"#$%&\\'()*+,\\\\-./:;<=>?@[\\\\\\\\\\\\]^`{|}~' + WHITESPACES + ']', 'g');\n\n// `RegExp.escape` method\n// https://github.com/tc39/proposal-regex-escaping\n$({ target: 'RegExp', stat: true, forced: true }, {\n escape: function escape(S) {\n var str = toString(S);\n var firstCode = charCodeAt(str, 0);\n // escape first DecimalDigit\n return (firstCode > 47 && firstCode < 58 ? '\\\\x3' : '') + replace(str, NEED_ESCAPING, '\\\\$&');\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\n\n// `Set.prototype.addAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n addAll: function addAll(/* ...elements */) {\n var set = aSet(this);\n for (var k = 0, len = arguments.length; k < len; k++) {\n add(set, arguments[k]);\n } return set;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aSet = require('../internals/a-set');\nvar remove = require('../internals/set-helpers').remove;\n\n// `Set.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aSet(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n this.set = set;\n this.size = max(intSize, 0);\n this.has = aCallable(set.has);\n this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n return new SetRecord(obj, intSize);\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) remove(result, e);\n });\n return result;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nmodule.exports = function (name) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n return true;\n }\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, {\n difference: difference\n});\n","'use strict';\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar $Object = Object;\n\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) return false;\n var O = $Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n || hasOwn(Iterators, classof(O));\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isIterable = require('../internals/is-iterable');\nvar isObject = require('../internals/is-object');\n\nvar Set = getBuiltIn('Set');\n\nvar isSetLike = function (it) {\n return isObject(it)\n && typeof it.size == 'number'\n && isCallable(it.has)\n && isCallable(it.keys);\n};\n\n// fallback old -> new set methods proposal arguments\nmodule.exports = function (it) {\n if (isSetLike(it)) return it;\n return isIterable(it) ? new Set(it) : it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $difference = require('../internals/set-difference');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n difference: function difference(other) {\n return call($difference, this, toSetLike(other));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n every: function every(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(set, function (value) {\n if (!boundFunction(value, value, set)) return false;\n }, true) !== false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n filter: function filter(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newSet = new Set();\n iterate(set, function (value) {\n if (boundFunction(value, value, set)) add(newSet, value);\n });\n return newSet;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n find: function find(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(set, function (value) {\n if (boundFunction(value, value, set)) return { value: value };\n }, true);\n return result && result.value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar SetHelpers = require('../internals/set-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `Set.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\n$({ target: 'Set', stat: true, forced: true }, {\n from: createCollectionFrom(SetHelpers.Set, SetHelpers.add, false)\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set -- testing\n return Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2]))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $intersection = require('../internals/set-intersection');\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n intersection: function intersection(other) {\n return call($intersection, this, toSetLike(other));\n }\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isDisjointFrom = require('../internals/set-is-disjoint-from');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isDisjointFrom: function isDisjointFrom(other) {\n return call($isDisjointFrom, this, toSetLike(other));\n }\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {\n isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isSubsetOf = require('../internals/set-is-subset-of');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isSubsetOf: function isSubsetOf(other) {\n return call($isSubsetOf, this, toSetLike(other));\n }\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isSupersetOf = require('../internals/set-is-superset-of');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isSupersetOf: function isSupersetOf(other) {\n return call($isSupersetOf, this, toSetLike(other));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\nvar toString = require('../internals/to-string');\n\nvar arrayJoin = uncurryThis([].join);\nvar push = uncurryThis([].push);\n\n// `Set.prototype.join` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n join: function join(separator) {\n var set = aSet(this);\n var sep = separator === undefined ? ',' : toString(separator);\n var array = [];\n iterate(set, function (value) {\n push(array, value);\n });\n return arrayJoin(array, sep);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.map` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n map: function map(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newSet = new Set();\n iterate(set, function (value) {\n add(newSet, boundFunction(value, value, set));\n });\n return newSet;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar SetHelpers = require('../internals/set-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `Set.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\n$({ target: 'Set', stat: true, forced: true }, {\n of: createCollectionOf(SetHelpers.Set, SetHelpers.add, false)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\nvar $TypeError = TypeError;\n\n// `Set.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var set = aSet(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n aCallable(callbackfn);\n iterate(set, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = callbackfn(accumulator, value, value, set);\n }\n });\n if (noInitial) throw new $TypeError('Reduce of empty set with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n some: function some(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(set, function (value) {\n if (boundFunction(value, value, set)) return true;\n }, true) === true;\n }\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $symmetricDifference = require('../internals/set-symmetric-difference');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n symmetricDifference: function symmetricDifference(other) {\n return call($symmetricDifference, this, toSetLike(other));\n }\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n union: union\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $union = require('../internals/set-union');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n union: function union(other) {\n return call($union, this, toSetLike(other));\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar charAt = require('../internals/string-multibyte').charAt;\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\n// `String.prototype.at` method\n// https://github.com/mathiasbynens/String.prototype.at\n$({ target: 'String', proto: true, forced: true }, {\n at: function at(index) {\n var S = toString(requireObjectCoercible(this));\n var len = S.length;\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : charAt(S, k);\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.cooked` method\n// https://tc39.es/proposal-string-cooked/\nmodule.exports = function cooked(template /* , ...substitutions */) {\n var cookedTemplate = toIndexedObject(template);\n var literalSegments = lengthOfArrayLike(cookedTemplate);\n if (!literalSegments) return '';\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (true) {\n var nextVal = cookedTemplate[i++];\n if (nextVal === undefined) throw new $TypeError('Incorrect template');\n push(elements, toString(nextVal));\n if (i === literalSegments) return join(elements, '');\n if (i < argumentsLength) push(elements, toString(arguments[i]));\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar cooked = require('../internals/string-cooked');\n\n// `String.cooked` method\n// https://github.com/tc39/proposal-string-cooked\n$({ target: 'String', stat: true, forced: true }, {\n cooked: cooked\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar StringMultibyteModule = require('../internals/string-multibyte');\n\nvar codeAt = StringMultibyteModule.codeAt;\nvar charAt = StringMultibyteModule.charAt;\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// TODO: unify with String#@@iterator\nvar $StringIterator = createIteratorConstructor(function StringIterator(string) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: string,\n index: 0\n });\n}, 'String', function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject({ codePoint: codeAt(point, 0), position: index }, false);\n});\n\n// `String.prototype.codePoints` method\n// https://github.com/tc39/proposal-string-prototype-codepoints\n$({ target: 'String', proto: true, forced: true }, {\n codePoints: function codePoints() {\n return new $StringIterator(toString(requireObjectCoercible(this)));\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-weak-map -- safe\nvar WeakMapPrototype = WeakMap.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-weak-map -- safe\n WeakMap: WeakMap,\n set: uncurryThis(WeakMapPrototype.set),\n get: uncurryThis(WeakMapPrototype.get),\n has: uncurryThis(WeakMapPrototype.has),\n remove: uncurryThis(WeakMapPrototype['delete'])\n};\n","'use strict';\n// adapted from https://github.com/jridgewell/string-dedent\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar fromCharCode = String.fromCharCode;\nvar fromCodePoint = getBuiltIn('String', 'fromCodePoint');\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar ZERO_CODE = 48;\nvar NINE_CODE = 57;\nvar LOWER_A_CODE = 97;\nvar LOWER_F_CODE = 102;\nvar UPPER_A_CODE = 65;\nvar UPPER_F_CODE = 70;\n\nvar isDigit = function (str, index) {\n var c = charCodeAt(str, index);\n return c >= ZERO_CODE && c <= NINE_CODE;\n};\n\nvar parseHex = function (str, index, end) {\n if (end >= str.length) return -1;\n var n = 0;\n for (; index < end; index++) {\n var c = hexToInt(charCodeAt(str, index));\n if (c === -1) return -1;\n n = n * 16 + c;\n }\n return n;\n};\n\nvar hexToInt = function (c) {\n if (c >= ZERO_CODE && c <= NINE_CODE) return c - ZERO_CODE;\n if (c >= LOWER_A_CODE && c <= LOWER_F_CODE) return c - LOWER_A_CODE + 10;\n if (c >= UPPER_A_CODE && c <= UPPER_F_CODE) return c - UPPER_A_CODE + 10;\n return -1;\n};\n\nmodule.exports = function (raw) {\n var out = '';\n var start = 0;\n // We need to find every backslash escape sequence, and cook the escape into a real char.\n var i = 0;\n var n;\n while ((i = stringIndexOf(raw, '\\\\', i)) > -1) {\n out += stringSlice(raw, start, i);\n // If the backslash is the last char of the string, then it was an invalid sequence.\n // This can't actually happen in a tagged template literal, but could happen if you manually\n // invoked the tag with an array.\n if (++i === raw.length) return;\n var next = charAt(raw, i++);\n switch (next) {\n // Escaped control codes need to be individually processed.\n case 'b':\n out += '\\b';\n break;\n case 't':\n out += '\\t';\n break;\n case 'n':\n out += '\\n';\n break;\n case 'v':\n out += '\\v';\n break;\n case 'f':\n out += '\\f';\n break;\n case 'r':\n out += '\\r';\n break;\n // Escaped line terminators just skip the char.\n case '\\r':\n // Treat `\\r\\n` as a single terminator.\n if (i < raw.length && charAt(raw, i) === '\\n') ++i;\n // break omitted\n case '\\n':\n case '\\u2028':\n case '\\u2029':\n break;\n // `\\0` is a null control char, but `\\0` followed by another digit is an illegal octal escape.\n case '0':\n if (isDigit(raw, i)) return;\n out += '\\0';\n break;\n // Hex escapes must contain 2 hex chars.\n case 'x':\n n = parseHex(raw, i, i + 2);\n if (n === -1) return;\n i += 2;\n out += fromCharCode(n);\n break;\n // Unicode escapes contain either 4 chars, or an unlimited number between `{` and `}`.\n // The hex value must not overflow 0x10FFFF.\n case 'u':\n if (i < raw.length && charAt(raw, i) === '{') {\n var end = stringIndexOf(raw, '}', ++i);\n if (end === -1) return;\n n = parseHex(raw, i, end);\n i = end + 1;\n } else {\n n = parseHex(raw, i, i + 4);\n i += 4;\n }\n if (n === -1 || n > 0x10FFFF) return;\n out += fromCodePoint(n);\n break;\n default:\n if (isDigit(next, 0)) return;\n out += next;\n }\n start = i;\n }\n return out + stringSlice(raw, start);\n};\n","'use strict';\nvar FREEZING = require('../internals/freezing');\nvar $ = require('../internals/export');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar apply = require('../internals/function-apply');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar isCallable = require('../internals/is-callable');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createArrayFromList = require('../internals/array-slice');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar cooked = require('../internals/string-cooked');\nvar parse = require('../internals/string-parse');\nvar whitespaces = require('../internals/whitespaces');\n\nvar DedentMap = new WeakMapHelpers.WeakMap();\nvar weakMapGet = WeakMapHelpers.get;\nvar weakMapHas = WeakMapHelpers.has;\nvar weakMapSet = WeakMapHelpers.set;\n\nvar $Array = Array;\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = Object.freeze || Object;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = Object.isFrozen;\nvar min = Math.min;\nvar charAt = uncurryThis(''.charAt);\nvar stringSlice = uncurryThis(''.slice);\nvar split = uncurryThis(''.split);\nvar exec = uncurryThis(/./.exec);\n\nvar NEW_LINE = /([\\n\\u2028\\u2029]|\\r\\n?)/g;\nvar LEADING_WHITESPACE = RegExp('^[' + whitespaces + ']*');\nvar NON_WHITESPACE = RegExp('[^' + whitespaces + ']');\nvar INVALID_TAG = 'Invalid tag';\nvar INVALID_OPENING_LINE = 'Invalid opening line';\nvar INVALID_CLOSING_LINE = 'Invalid closing line';\n\nvar dedentTemplateStringsArray = function (template) {\n var rawInput = template.raw;\n // https://github.com/tc39/proposal-string-dedent/issues/75\n if (FREEZING && !isFrozen(rawInput)) throw new $TypeError('Raw template should be frozen');\n if (weakMapHas(DedentMap, rawInput)) return weakMapGet(DedentMap, rawInput);\n var raw = dedentStringsArray(rawInput);\n var cookedArr = cookStrings(raw);\n defineProperty(cookedArr, 'raw', {\n value: freeze(raw)\n });\n freeze(cookedArr);\n weakMapSet(DedentMap, rawInput, cookedArr);\n return cookedArr;\n};\n\nvar dedentStringsArray = function (template) {\n var t = toObject(template);\n var length = lengthOfArrayLike(t);\n var blocks = $Array(length);\n var dedented = $Array(length);\n var i = 0;\n var lines, common, quasi, k;\n\n if (!length) throw new $TypeError(INVALID_TAG);\n\n for (; i < length; i++) {\n var element = t[i];\n if (typeof element == 'string') blocks[i] = split(element, NEW_LINE);\n else throw new $TypeError(INVALID_TAG);\n }\n\n for (i = 0; i < length; i++) {\n var lastSplit = i + 1 === length;\n lines = blocks[i];\n if (i === 0) {\n if (lines.length === 1 || lines[0].length > 0) {\n throw new $TypeError(INVALID_OPENING_LINE);\n }\n lines[1] = '';\n }\n if (lastSplit) {\n if (lines.length === 1 || exec(NON_WHITESPACE, lines[lines.length - 1])) {\n throw new $TypeError(INVALID_CLOSING_LINE);\n }\n lines[lines.length - 2] = '';\n lines[lines.length - 1] = '';\n }\n for (var j = 2; j < lines.length; j += 2) {\n var text = lines[j];\n var lineContainsTemplateExpression = j + 1 === lines.length && !lastSplit;\n var leading = exec(LEADING_WHITESPACE, text)[0];\n if (!lineContainsTemplateExpression && leading.length === text.length) {\n lines[j] = '';\n continue;\n }\n common = commonLeadingIndentation(leading, common);\n }\n }\n\n var count = common ? common.length : 0;\n\n for (i = 0; i < length; i++) {\n lines = blocks[i];\n quasi = lines[0];\n k = 1;\n for (; k < lines.length; k += 2) {\n quasi += lines[k] + stringSlice(lines[k + 1], count);\n }\n dedented[i] = quasi;\n }\n\n return dedented;\n};\n\nvar commonLeadingIndentation = function (a, b) {\n if (b === undefined || a === b) return a;\n var i = 0;\n for (var len = min(a.length, b.length); i < len; i++) {\n if (charAt(a, i) !== charAt(b, i)) break;\n }\n return stringSlice(a, 0, i);\n};\n\nvar cookStrings = function (raw) {\n var i = 0;\n var length = raw.length;\n var result = $Array(length);\n for (; i < length; i++) {\n result[i] = parse(raw[i]);\n } return result;\n};\n\nvar makeDedentTag = function (tag) {\n return makeBuiltIn(function (template /* , ...substitutions */) {\n var args = createArrayFromList(arguments);\n args[0] = dedentTemplateStringsArray(anObject(template));\n return apply(tag, this, args);\n }, '');\n};\n\nvar cookedDedentTag = makeDedentTag(cooked);\n\n// `String.dedent` method\n// https://github.com/tc39/proposal-string-dedent\n$({ target: 'String', stat: true, forced: true }, {\n dedent: function dedent(templateOrFn /* , ...substitutions */) {\n anObject(templateOrFn);\n if (isCallable(templateOrFn)) return makeDedentTag(templateOrFn);\n return apply(cookedDedentTag, this, arguments);\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar Symbol = global.Symbol;\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n\nif (Symbol) {\n var descriptor = getOwnPropertyDescriptor(Symbol, 'asyncDispose');\n // workaround of NodeJS 20.4 bug\n // https://github.com/nodejs/node/issues/48699\n // and incorrect descriptor from some transpilers and userland helpers\n if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n defineProperty(Symbol, 'asyncDispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n }\n}\n","'use strict';\nvar global = require('../internals/global');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar Symbol = global.Symbol;\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n\nif (Symbol) {\n var descriptor = getOwnPropertyDescriptor(Symbol, 'dispose');\n // workaround of NodeJS 20.4 bug\n // https://github.com/nodejs/node/issues/48699\n // and incorrect descriptor from some transpilers and userland helpers\n if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n defineProperty(Symbol, 'dispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n }\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Symbol = getBuiltIn('Symbol');\nvar keyFor = Symbol.keyFor;\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\nmodule.exports = Symbol.isRegisteredSymbol || function isRegisteredSymbol(value) {\n try {\n return keyFor(thisSymbolValue(value)) !== undefined;\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true }, {\n isRegisteredSymbol: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegistered` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, {\n isRegistered: isRegisteredSymbol\n});\n","'use strict';\nvar shared = require('../internals/shared');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isSymbol = require('../internals/is-symbol');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Symbol = getBuiltIn('Symbol');\nvar $isWellKnownSymbol = Symbol.isWellKnownSymbol;\nvar getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\nvar WellKnownSymbolsStore = shared('wks');\n\nfor (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {\n // some old engines throws on access to some keys like `arguments` or `caller`\n try {\n var symbolKey = symbolKeys[i];\n if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);\n } catch (error) { /* empty */ }\n}\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\nmodule.exports = function isWellKnownSymbol(value) {\n if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;\n try {\n var symbol = thisSymbolValue(value);\n for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {\n // eslint-disable-next-line eqeqeq -- polyfilled symbols case\n if (WellKnownSymbolsStore[keys[j]] == symbol) return true;\n }\n } catch (error) { /* empty */ }\n return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, forced: true }, {\n isWellKnownSymbol: isWellKnownSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnown` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, {\n isWellKnown: isWellKnownSymbol\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadataKey` well-known symbol\n// https://github.com/tc39/proposal-decorator-metadata\ndefineWellKnownSymbol('metadataKey');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\ndefineWellKnownSymbol('replaceAll');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar getBuiltIn = require('../internals/get-built-in');\nvar aConstructor = require('../internals/a-constructor');\nvar arrayFromAsync = require('../internals/array-from-async');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.fromAsync` method\n// https://github.com/tc39/proposal-array-from-async\nexportTypedArrayStaticMethod('fromAsync', function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {\n var C = this;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n return new (getBuiltIn('Promise'))(function (resolve) {\n aConstructor(C);\n resolve(arrayFromAsync(asyncItems, mapfn, thisArg));\n }).then(function (list) {\n return arrayFromConstructorAndList(aTypedArrayConstructor(C), list);\n });\n}, true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filterOut` method\n// https://github.com/tc39/proposal-array-filtering\nexportTypedArrayMethod('filterOut', function filterOut(callbackfn /* , thisArg */) {\n var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n}, true);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filterReject` method\n// https://github.com/tc39/proposal-array-filtering\nexportTypedArrayMethod('filterReject', function filterReject(callbackfn /* , thisArg */) {\n var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n}, true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $group = require('../internals/array-group');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\nexportTypedArrayMethod('groupBy', function groupBy(callbackfn /* , thisArg */) {\n var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n return $group(aTypedArray(this), callbackfn, thisArg, typedArraySpeciesConstructor);\n}, true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toBigInt = require('../internals/to-big-int');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar max = Math.max;\nvar min = Math.min;\n\n// some early implementations, like WebKit, does not follow the final semantic\nvar PROPER_ORDER = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Int8Array([1]);\n\n var spliced = array.toSpliced(1, 0, {\n valueOf: function () {\n array[0] = 2;\n return 3;\n }\n });\n\n return spliced[0] !== 2 || spliced[1] !== 3;\n});\n\n// `%TypedArray%.prototype.toSpliced` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toSpliced\nexportTypedArrayMethod('toSpliced', function toSpliced(start, deleteCount /* , ...items */) {\n var O = aTypedArray(this);\n var C = getTypedArrayConstructor(O);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var k = 0;\n var insertCount, actualDeleteCount, thisIsBigIntArray, convertedItems, value, newLen, A;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n insertCount = argumentsLength - 2;\n if (insertCount) {\n convertedItems = new C(insertCount);\n thisIsBigIntArray = isBigIntArray(convertedItems);\n for (var i = 2; i < argumentsLength; i++) {\n value = arguments[i];\n // FF30- typed arrays doesn't properly convert objects to typed array values\n convertedItems[i - 2] = thisIsBigIntArray ? toBigInt(value) : +value;\n }\n }\n }\n newLen = len + insertCount - actualDeleteCount;\n A = new C(newLen);\n\n for (; k < actualStart; k++) A[k] = O[k];\n for (; k < actualStart + insertCount; k++) A[k] = convertedItems[k - actualStart];\n for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];\n\n return A;\n}, !PROPER_ORDER);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar $arrayUniqueBy = require('../internals/array-unique-by');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar arrayUniqueBy = uncurryThis($arrayUniqueBy);\n\n// `%TypedArray%.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nexportTypedArrayMethod('uniqueBy', function uniqueBy(resolver) {\n aTypedArray(this);\n return arrayFromConstructorAndList(getTypedArrayConstructor(this), arrayUniqueBy(this, resolver));\n}, true);\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (argument === undefined || isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object or undefined');\n};\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'string') return argument;\n throw new $TypeError('Argument is not a string');\n};\n","'use strict';\nvar commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nvar base64Alphabet = commonAlphabet + '+/';\nvar base64UrlAlphabet = commonAlphabet + '-_';\n\nvar inverse = function (characters) {\n // TODO: use `Object.create(null)` in `core-js@4`\n var result = {};\n var index = 0;\n for (; index < 64; index++) result[characters.charAt(index)] = index;\n return result;\n};\n\nmodule.exports = {\n i2c: base64Alphabet,\n c2i: inverse(base64Alphabet),\n i2cUrl: base64UrlAlphabet,\n c2iUrl: inverse(base64UrlAlphabet)\n};\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (options) {\n var alphabet = options && options.alphabet;\n if (alphabet === undefined || alphabet === 'base64' || alphabet === 'base64url') return alphabet || 'base64';\n throw new $TypeError('Incorrect `alphabet` option');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar aString = require('../internals/a-string');\nvar hasOwn = require('../internals/has-own-property');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar base64Map = require('../internals/base64-map');\nvar getAlphabetOption = require('../internals/get-alphabet-option');\n\nvar base64Alphabet = base64Map.c2i;\nvar base64UrlAlphabet = base64Map.c2iUrl;\n\nvar Uint8Array = global.Uint8Array;\nvar SyntaxError = global.SyntaxError;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar push = uncurryThis([].push);\nvar SPACES = /[\\t\\n\\f\\r ]/g;\nvar EXTRA_BITS = 'Extra bits';\n\n// `Uint8Array.fromBase64` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: true }, {\n fromBase64: function fromBase64(string /* , options */) {\n aString(string);\n var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n var strict = options ? !!options.strict : false;\n\n var input = strict ? string : replace(string, SPACES, '');\n\n if (input.length % 4 === 0) {\n if (stringSlice(input, -2) === '==') input = stringSlice(input, 0, -2);\n else if (stringSlice(input, -1) === '=') input = stringSlice(input, 0, -1);\n } else if (strict) throw new SyntaxError('Input is not correctly padded');\n\n var lastChunkSize = input.length % 4;\n\n switch (lastChunkSize) {\n case 1: throw new SyntaxError('Bad input length');\n case 2: input += 'AA'; break;\n case 3: input += 'A';\n }\n\n var bytes = [];\n var i = 0;\n var inputLength = input.length;\n\n var at = function (shift) {\n var chr = charAt(input, i + shift);\n if (!hasOwn(alphabet, chr)) throw new SyntaxError('Bad char in input: \"' + chr + '\"');\n return alphabet[chr] << (18 - 6 * shift);\n };\n\n for (; i < inputLength; i += 4) {\n var triplet = at(0) + at(1) + at(2) + at(3);\n push(bytes, (triplet >> 16) & 255, (triplet >> 8) & 255, triplet & 255);\n }\n\n var byteLength = bytes.length;\n\n if (lastChunkSize === 2) {\n if (strict && bytes[byteLength - 2] !== 0) throw new SyntaxError(EXTRA_BITS);\n byteLength -= 2;\n } else if (lastChunkSize === 3) {\n if (strict && bytes[byteLength - 1] !== 0) throw new SyntaxError(EXTRA_BITS);\n byteLength--;\n }\n\n return arrayFromConstructorAndList(Uint8Array, bytes, byteLength);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aString = require('../internals/a-string');\n\nvar Uint8Array = global.Uint8Array;\nvar SyntaxError = global.SyntaxError;\nvar parseInt = global.parseInt;\nvar NOT_HEX = /[^\\da-f]/i;\nvar exec = uncurryThis(NOT_HEX.exec);\nvar stringSlice = uncurryThis(''.slice);\n\n// `Uint8Array.fromHex` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: true }, {\n fromHex: function fromHex(string) {\n aString(string);\n var stringLength = string.length;\n if (stringLength % 2) throw new SyntaxError('String should have an even number of characters');\n if (exec(NOT_HEX, string)) throw new SyntaxError('String should only contain hex characters');\n var result = new Uint8Array(stringLength / 2);\n for (var i = 0; i < stringLength; i += 2) {\n result[i / 2] = parseInt(stringSlice(string, i, i + 2), 16);\n }\n return result;\n }\n});\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(argument, [[TypedArrayName]])\n// If argument.[[TypedArrayName]] is not \"Uint8Array\", throw a TypeError exception\nmodule.exports = function (argument) {\n if (classof(argument) === 'Uint8Array') return argument;\n throw new $TypeError('Argument is not an Uint8Array');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar base64Map = require('../internals/base64-map');\nvar getAlphabetOption = require('../internals/get-alphabet-option');\n\nvar base64Alphabet = base64Map.i2c;\nvar base64UrlAlphabet = base64Map.i2cUrl;\n\nvar Uint8Array = global.Uint8Array;\nvar charAt = uncurryThis(''.charAt);\n\n// `Uint8Array.prototype.toBase64` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: true }, {\n toBase64: function toBase64(/* options */) {\n var array = anUint8Array(this);\n var options = arguments.length ? anObjectOrUndefined(arguments[0]) : undefined;\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n\n var result = '';\n var i = 0;\n var length = array.length;\n var triplet;\n\n var at = function (shift) {\n return charAt(alphabet, (triplet >> (6 * shift)) & 63);\n };\n\n for (; i + 2 < length; i += 3) {\n triplet = (array[i] << 16) + (array[i + 1] << 8) + array[i + 2];\n result += at(3) + at(2) + at(1) + at(0);\n }\n if (i + 2 === length) {\n triplet = (array[i] << 16) + (array[i + 1] << 8);\n result += at(3) + at(2) + at(1) + '=';\n } else if (i + 1 === length) {\n triplet = array[i] << 16;\n result += at(3) + at(2) + '==';\n }\n\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anUint8Array = require('../internals/an-uint8-array');\n\nvar Uint8Array = global.Uint8Array;\nvar numberToString = uncurryThis(1.0.toString);\n\n// `Uint8Array.prototype.toHex` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: true }, {\n toHex: function toHex() {\n anUint8Array(this);\n var result = '';\n for (var i = 0, length = this.length; i < length; i++) {\n var hex = numberToString(this[i], 16);\n result += hex.length === 1 ? '0' + hex : hex;\n }\n return result;\n }\n});\n","'use strict';\nvar has = require('../internals/weak-map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[WeakMapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakMap = require('../internals/a-weak-map');\nvar remove = require('../internals/weak-map-helpers').remove;\n\n// `WeakMap.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aWeakMap(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `WeakMap.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\n$({ target: 'WeakMap', stat: true, forced: true }, {\n from: createCollectionFrom(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `WeakMap.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\n$({ target: 'WeakMap', stat: true, forced: true }, {\n of: createCollectionOf(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakMap = require('../internals/a-weak-map');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.emplace` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n emplace: function emplace(key, handler) {\n var map = aWeakMap(this);\n var value, inserted;\n if (has(map, key)) {\n value = get(map, key);\n if ('update' in handler) {\n value = handler.update(value, key, map);\n set(map, key, value);\n } return value;\n }\n inserted = handler.insert(key, map);\n set(map, key, inserted);\n return inserted;\n }\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `WeakMap.prototype.upsert` method (replaced by `WeakMap.prototype.emplace`)\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n upsert: upsert\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-weak-set -- safe\nvar WeakSetPrototype = WeakSet.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-weak-set -- safe\n WeakSet: WeakSet,\n add: uncurryThis(WeakSetPrototype.add),\n has: uncurryThis(WeakSetPrototype.has),\n remove: uncurryThis(WeakSetPrototype['delete'])\n};\n","'use strict';\nvar has = require('../internals/weak-set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[WeakSetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakSet = require('../internals/a-weak-set');\nvar add = require('../internals/weak-set-helpers').add;\n\n// `WeakSet.prototype.addAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakSet', proto: true, real: true, forced: true }, {\n addAll: function addAll(/* ...elements */) {\n var set = aWeakSet(this);\n for (var k = 0, len = arguments.length; k < len; k++) {\n add(set, arguments[k]);\n } return set;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakSet = require('../internals/a-weak-set');\nvar remove = require('../internals/weak-set-helpers').remove;\n\n// `WeakSet.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakSet', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aWeakSet(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar WeakSetHelpers = require('../internals/weak-set-helpers');\nvar createCollectionFrom = require('../internals/collection-from');\n\n// `WeakSet.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\n$({ target: 'WeakSet', stat: true, forced: true }, {\n from: createCollectionFrom(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar WeakSetHelpers = require('../internals/weak-set-helpers');\nvar createCollectionOf = require('../internals/collection-of');\n\n// `WeakSet.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\n$({ target: 'WeakSet', stat: true, forced: true }, {\n of: createCollectionOf(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar c2i = require('../internals/base64-map').c2i;\n\nvar disallowed = /[^\\d+/a-z]/i;\nvar whitespaces = /[\\t\\n\\f\\r ]+/g;\nvar finalEq = /[=]{1,2}$/;\n\nvar $atob = getBuiltIn('atob');\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar exec = uncurryThis(disallowed.exec);\n\nvar BASIC = !!$atob && !fails(function () {\n return $atob('aGk=') !== 'hi';\n});\n\nvar NO_SPACES_IGNORE = BASIC && fails(function () {\n return $atob(' ') !== '';\n});\n\nvar NO_ENCODING_CHECK = BASIC && !fails(function () {\n $atob('a');\n});\n\nvar NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () {\n $atob();\n});\n\nvar WRONG_ARITY = BASIC && $atob.length !== 1;\n\nvar FORCED = !BASIC || NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY;\n\n// `atob` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob\n$({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n atob: function atob(data) {\n validateArgumentsLength(arguments.length, 1);\n // `webpack` dev server bug on IE global methods - use call(fn, global, ...)\n if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, global, data);\n var string = replace(toString(data), whitespaces, '');\n var output = '';\n var position = 0;\n var bc = 0;\n var length, chr, bs;\n if (string.length % 4 === 0) {\n string = replace(string, finalEq, '');\n }\n length = string.length;\n if (length % 4 === 1 || exec(disallowed, string)) {\n throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');\n }\n while (position < length) {\n chr = charAt(string, position++);\n bs = bc % 4 ? bs * 64 + c2i[chr] : c2i[chr];\n if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));\n } return output;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar i2c = require('../internals/base64-map').i2c;\n\nvar $btoa = getBuiltIn('btoa');\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\nvar BASIC = !!$btoa && !fails(function () {\n return $btoa('hi') !== 'aGk=';\n});\n\nvar NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () {\n $btoa();\n});\n\nvar WRONG_ARG_CONVERSION = BASIC && fails(function () {\n return $btoa(null) !== 'bnVsbA==';\n});\n\nvar WRONG_ARITY = BASIC && $btoa.length !== 1;\n\n// `btoa` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa\n$({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY }, {\n btoa: function btoa(data) {\n validateArgumentsLength(arguments.length, 1);\n // `webpack` dev server bug on IE global methods - use call(fn, global, ...)\n if (BASIC) return call($btoa, global, toString(data));\n var string = toString(data);\n var output = '';\n var position = 0;\n var map = i2c;\n var block, charCode;\n while (charAt(string, position) || (map = '=', position % 1)) {\n charCode = charCodeAt(string, position += 3 / 4);\n if (charCode > 0xFF) {\n throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError');\n }\n block = block << 8 | charCode;\n output += charAt(map, 63 & block >> 8 - position % 1 * 8);\n } return output;\n }\n});\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nmodule.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n try {\n // NodeJS < 15.0 does not expose `MessageChannel` to global\n var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel;\n // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n new MessageChannel().port1.postMessage(new WeakMap());\n } catch (error) {\n if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor;\n }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var code = codeFor(name);\n setInternalState(this, {\n type: DOM_EXCEPTION,\n name: name,\n message: message,\n code: code\n });\n if (!DESCRIPTORS) {\n this.name = name;\n this.message = message;\n this.code = code;\n }\n if (HAS_STACK) {\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n return createGetterDescriptor(function () {\n return getInternalState(this)[key];\n });\n};\n\nif (DESCRIPTORS) {\n // `DOMException.prototype.code` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n // `DOMException.prototype.message` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n // `DOMException.prototype.name` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n || NativeDOMException[DATA_CLONE_ERR] !== 25\n || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n return codeFor(anObject(this).name);\n }));\n}\n\n// `DOMException` constants\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n var descriptor = createPropertyDescriptor(6, constant.c);\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, descriptor);\n }\n if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\n// `DOMException.prototype[@@toStringTag]` property\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, {\n clearImmediate: clearImmediate\n});\n","'use strict';\n/* global Bun -- Bun case */\nmodule.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string';\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENGINE_IS_BUN = require('../internals/engine-is-bun');\nvar USER_AGENT = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = global.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () {\n var version = global.Bun.version.split('.');\n return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setTask = require('../internals/task').set;\nvar schedulersFix = require('../internals/schedulers-fix');\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, {\n setImmediate: setImmediate\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar microtask = require('../internals/microtask');\nvar aCallable = require('../internals/a-callable');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\n// `queueMicrotask` method\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n$({ global: true, enumerable: true, dontCallGetSet: true }, {\n queueMicrotask: function queueMicrotask(fn) {\n validateArgumentsLength(arguments.length, 1);\n microtask(aCallable(fn));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar INCORRECT_VALUE = global.self !== global;\n\n// `self` getter\n// https://html.spec.whatwg.org/multipage/window-object.html#dom-self\ntry {\n if (DESCRIPTORS) {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var descriptor = Object.getOwnPropertyDescriptor(global, 'self');\n // some engines have `self`, but with incorrect descriptor\n // https://github.com/denoland/deno/issues/15765\n if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) {\n defineBuiltInAccessor(global, 'self', {\n get: function self() {\n return global;\n },\n set: function self(value) {\n if (this !== global) throw new $TypeError('Illegal invocation');\n defineProperty(global, 'self', {\n value: value,\n writable: true,\n configurable: true,\n enumerable: true\n });\n },\n configurable: true,\n enumerable: true\n });\n }\n } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, {\n self: global\n });\n} catch (error) { /* empty */ }\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar MapHelpers = require('../internals/map-helpers');\nvar SetHelpers = require('../internals/set-helpers');\nvar setIterate = require('../internals/set-iterate');\nvar detachTransferable = require('../internals/detach-transferable');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar Object = global.Object;\nvar Array = global.Array;\nvar Date = global.Date;\nvar Error = global.Error;\nvar TypeError = global.TypeError;\nvar PerformanceMark = global.PerformanceMark;\nvar DOMException = getBuiltIn('DOMException');\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapGet = MapHelpers.get;\nvar mapSet = MapHelpers.set;\nvar Set = SetHelpers.Set;\nvar setAdd = SetHelpers.add;\nvar setHas = SetHelpers.has;\nvar objectKeys = getBuiltIn('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.0.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new global.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7;\n }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n var error = new $Error();\n var test = structuredCloneImplementation({ a: error, b: error });\n return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3;\n });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = global.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n || !checkErrorsCloning(nativeStructuredClone, Error)\n || !checkErrorsCloning(nativeStructuredClone, DOMException)\n || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar tryNativeRestrictedStructuredClone = function (value, type) {\n if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type);\n return nativeRestrictedStructuredClone(value);\n};\n\nvar createDataTransfer = function () {\n var dataTransfer;\n try {\n dataTransfer = new global.DataTransfer();\n } catch (error) {\n try {\n dataTransfer = new global.ClipboardEvent('').clipboardData;\n } catch (error2) { /* empty */ }\n }\n return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar cloneBuffer = function (value, map, $type) {\n if (mapHas(map, value)) return mapGet(map, value);\n\n var type = $type || classof(value);\n var clone, length, options, source, target, i;\n\n if (type === 'SharedArrayBuffer') {\n if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value);\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n else clone = value;\n } else {\n var DataView = global.DataView;\n\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer');\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (isCallable(value.slice) && !value.resizable) {\n clone = value.slice(0);\n } else {\n length = value.byteLength;\n options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined;\n // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe\n clone = new ArrayBuffer(length, options);\n source = new DataView(value);\n target = new DataView(clone);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n }\n }\n\n mapSet(map, value, clone);\n\n return clone;\n};\n\nvar cloneView = function (value, type, offset, length, map) {\n var C = global[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n return new C(cloneBuffer(value.buffer, map), offset, length);\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var C, name, cloned, dataTransfer, i, length, keys, key;\n\n switch (type) {\n case 'Array':\n cloned = Array(lengthOfArrayLike(value));\n break;\n case 'Object':\n cloned = {};\n break;\n case 'Map':\n cloned = new Map();\n break;\n case 'Set':\n cloned = new Set();\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = new (getBuiltIn(name))([]);\n break;\n case 'EvalError':\n case 'RangeError':\n case 'ReferenceError':\n case 'SuppressedError':\n case 'SyntaxError':\n case 'TypeError':\n case 'URIError':\n cloned = new (getBuiltIn(name))();\n break;\n case 'CompileError':\n case 'LinkError':\n case 'RuntimeError':\n cloned = new (getBuiltIn('WebAssembly', name))();\n break;\n default:\n cloned = new Error();\n }\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n break;\n case 'ArrayBuffer':\n case 'SharedArrayBuffer':\n cloned = cloneBuffer(value, map, type);\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float16Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n length = type === 'DataView' ? value.byteLength : value.length;\n cloned = cloneView(value, type, value.byteOffset, length, map);\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n }\n break;\n case 'File':\n if (nativeRestrictedStructuredClone) try {\n cloned = nativeRestrictedStructuredClone(value);\n // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612\n if (classof(cloned) !== type) cloned = undefined;\n } catch (error) { /* empty */ }\n if (!cloned) try {\n cloned = new File([value], value.name, value);\n } catch (error) { /* empty */ }\n if (!cloned) throwUnpolyfillable(type);\n break;\n case 'FileList':\n dataTransfer = createDataTransfer();\n if (dataTransfer) {\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else cloned = tryNativeRestrictedStructuredClone(value, type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(thisBooleanValue(value));\n break;\n case 'Number':\n cloned = Object(thisNumberValue(value));\n break;\n case 'String':\n cloned = Object(thisStringValue(value));\n break;\n case 'Date':\n cloned = new Date(thisTimeValue(value));\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = global[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = global[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = global[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'CropTarget':\n case 'CryptoKey':\n case 'FileSystemDirectoryHandle':\n case 'FileSystemFileHandle':\n case 'FileSystemHandle':\n case 'GPUCompilationInfo':\n case 'GPUCompilationMessage':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name === 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } else if (name === 'SuppressedError') {\n cloned.error = structuredCloneInternal(value.error, map);\n cloned.suppressed = structuredCloneInternal(value.suppressed, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var buffers = new Set();\n var value, type, C, transferred, canvas, context;\n\n while (i < length) {\n value = transfer[i++];\n\n type = classof(value);\n\n if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) {\n throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n }\n\n if (type === 'ArrayBuffer') {\n setAdd(buffers, value);\n continue;\n }\n\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n transferred = nativeStructuredClone(value, { transfer: [value] });\n } else switch (type) {\n case 'ImageBitmap':\n C = global.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'MediaSourceHandle':\n case 'MessagePort':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'TransformStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n\n mapSet(map, value, transferred);\n }\n\n return buffers;\n};\n\nvar detachBuffers = function (buffers) {\n setIterate(buffers, function (buffer) {\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n nativeRestrictedStructuredClone(buffer, { transfer: [buffer] });\n } else if (isCallable(buffer.transfer)) {\n buffer.transfer();\n } else if (detachTransferable) {\n detachTransferable(buffer);\n } else {\n throwUnpolyfillable('ArrayBuffer', TRANSFERRING);\n }\n });\n};\n\n// `structuredClone` method\n// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone\n$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map, buffers;\n\n if (transfer !== undefined) {\n map = new Map();\n buffers = tryToTransfer(transfer, map);\n }\n\n var clone = structuredCloneInternal(value, map);\n\n // since of an issue with cloning views of transferred buffers, we a forced to detach them later\n // https://github.com/zloirock/core-js/issues/1265\n if (buffers) detachBuffers(buffers);\n\n return clone;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setInterval = schedulersFix(global.setInterval, true);\n\n// Bun / IE9- setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n$({ global: true, bind: true, forced: global.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setTimeout = schedulersFix(global.setTimeout, true);\n\n// Bun / IE9- setTimeout additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n target: getInternalParamsState(params).entries,\n index: 0,\n kind: kind\n });\n}, URL_SEARCH_PARAMS, function next() {\n var state = getInternalIteratorState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n var entry = target[index];\n switch (state.kind) {\n case 'keys': return createIterResultObject(entry.key, false);\n case 'values': return createIterResultObject(entry.value, false);\n } return createIterResultObject([entry.key, entry.value], false);\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var entries = this.entries;\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw new TypeError('Expected sequence with length 2');\n push(entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var entries = this.entries;\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var state = setInternalState(this, new URLSearchParamsState(init));\n if (!DESCRIPTORS) this.size = state.entries.length;\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 2);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n if (!DESCRIPTORS) this.length++;\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name /* , value */) {\n var state = getInternalParamsState(this);\n var length = validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index];\n if (entry.key === key && (value === undefined || entry.value === value)) {\n splice(entries, index, 1);\n if (value !== undefined) break;\n } else index++;\n }\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name /* , value */) {\n var entries = getInternalParamsState(this).entries;\n var length = validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index++];\n if (entry.key === key && (value === undefined || entry.value === value)) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n return getInternalParamsState(this).entries.length;\n },\n configurable: true,\n enumerable: true\n});\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] === '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part === '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) === '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix === 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index === partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() === ':') {\n if (charAt(input, 1) !== ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex === 8) return;\n if (chr() === ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() === '.') {\n if (length === 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() === '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece === 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;\n }\n if (numbersSeen !== 4) return;\n break;\n } else if (chr() === ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex !== 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length === 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length === 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw new TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw new TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) {\n buffer += toLowerCase(chr);\n } else if (chr === ':') {\n if (stateOverride && (\n (url.isSpecial() !== hasOwn(specialSchemes, buffer)) ||\n (buffer === 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme === 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme === 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme === url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] === '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr === '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme === 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr === '/' && codePoints[pointer + 1] === '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr === '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr === EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr === '/' || (chr === '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr === '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr === '/' || chr === '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr === '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr !== '/' && chr !== '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr === '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint === ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer === '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme === 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr === ':' && !seenBracket) {\n if (buffer === '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride === HOSTNAME) return;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer === '') return INVALID_HOST;\n if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr === '[') seenBracket = true;\n else if (chr === ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer !== '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr === '/' || chr === '\\\\') state = FILE_SLASH;\n else if (base && base.scheme === 'file') {\n switch (chr) {\n case EOF:\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n break;\n case '?':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n break;\n case '#':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n break;\n default:\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr === '/' || chr === '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr === EOF || chr === '/' || chr === '\\\\' || chr === '?' || chr === '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer === '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host === 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr !== '/' && chr !== '\\\\') continue;\n } else if (!stateOverride && chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n state = PATH;\n if (chr !== '/') continue;\n } break;\n\n case PATH:\n if (\n chr === EOF || chr === '/' ||\n (chr === '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr === '?' || chr === '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n if (chr === \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr === '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) === '[') {\n if (charAt(input, input.length - 1) !== ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme === 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username !== '' || this.password !== '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme === 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw new TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme === 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme === 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port === '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search === '') {\n this.query = null;\n } else {\n if (charAt(search, 0) === '?') search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash === '') {\n this.fragment = null;\n return;\n }\n if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// https://github.com/nodejs/node/issues/47505\n// https://github.com/denoland/deno/issues/18893\nvar THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () {\n URL.canParse();\n});\n\n// `URL.canParse` method\n// https://url.spec.whatwg.org/#dom-url-canparse\n$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS }, {\n canParse: function canParse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return !!new URL(urlString, base);\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return call(URL.prototype.toString, this);\n }\n});\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var dindex = 0;\n var found = false;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index++];\n if (found || entry.key === key) {\n found = true;\n $delete(this, entry.key);\n } else dindex++;\n }\n while (dindex < entriesLength) {\n entry = entries[dindex++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n","let config: {\n authURL: string;\n apiURL: string;\n mapsAPIKey: string;\n oauthClientSecret: string;\n locales: string[];\n};\n\nif (import.meta.env.VITE_APP_BUILD_PRODUCTION != null) {\n // production config here\n config = {\n authURL: \"https://authservercb.ipraticocloud.com\",\n apiURL: \"https://customerapi.ipraticocloud.com\",\n\n mapsAPIKey: \"AIzaSyAFkniaEsfTc0mrQaQIGVs9FWM30QtEfQQ\",\n\n oauthClientSecret: \"ipratico\",\n\n locales: [\"it\", \"en\"]\n };\n} else {\n // staging config here\n config = {\n authURL: \"https://authserverdev.ipraticocloud.com\",\n apiURL: \"https://customerapidev.ipraticocloud.com\",\n /* apiURL: \"http://localhost:3002\", */\n\n mapsAPIKey: \"AIzaSyAFkniaEsfTc0mrQaQIGVs9FWM30QtEfQQ\",\n\n oauthClientSecret: \"ipratico\",\n\n locales: [\"it\", \"en\"]\n };\n}\n\nexport default config;\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n 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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (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 headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\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 env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\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 *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, 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 // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.5\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios, { type AxiosRequestConfig } from \"axios\";\n\nconst cache: Map = new Map();\nconst apiAxios = axios.create();\n\nexport type APIError = APIErrorInterface | null | undefined;\nexport interface APIErrorInterface {\n response?: {\n status?: number;\n data?: any;\n };\n}\n\nexport interface APIRequestConfig extends AxiosRequestConfig {\n cache?: boolean;\n requiresAuth?: boolean;\n}\n\nexport function setup(baseURL: string) {\n apiAxios.defaults.baseURL = baseURL;\n return apiAxios;\n}\n\nfunction cleanEndpoint(endpoint: string) {\n if (endpoint.startsWith(\"/\")) {\n endpoint = endpoint.substring(1);\n }\n return endpoint;\n}\n\nexport async function get(endpoint: string, options: APIRequestConfig = {}) {\n endpoint = cleanEndpoint(endpoint);\n\n if (options.cache) {\n const cacheResult = cache.get(endpoint);\n if (cacheResult) {\n if (Date.now() < cacheResult.expirationDate.getMilliseconds()) {\n return Promise.resolve(cacheResult.response);\n }\n }\n }\n return apiAxios\n .get(`${endpoint}`, options)\n .then(response => {\n if (response.status === 200) {\n const expirationDate = new Date();\n expirationDate.setMinutes(expirationDate.getMinutes() + 10);\n cache.set(endpoint, {\n expirationDate,\n response: response.data\n });\n }\n return Promise.resolve(response.data);\n })\n .catch(error => {\n throw error;\n });\n}\n\nexport async function post(endpoint: string, data: unknown = {}, options: APIRequestConfig = {}) {\n endpoint = cleanEndpoint(endpoint);\n\n return apiAxios\n .post(`${endpoint}`, data, options)\n .then(response => {\n return Promise.resolve(response.data);\n })\n .catch(error => {\n throw error;\n });\n}\n\nexport async function patch(endpoint: string, data: unknown = {}, options: APIRequestConfig = {}) {\n endpoint = cleanEndpoint(endpoint);\n\n return apiAxios\n .patch(`${endpoint}`, data, options)\n .then(response => {\n return Promise.resolve(response.data);\n })\n .catch(error => {\n throw error;\n });\n}\n\nexport async function put(endpoint: string, data: unknown = {}, options: APIRequestConfig = {}) {\n endpoint = cleanEndpoint(endpoint);\n\n return apiAxios\n .put(`${endpoint}`, data, options)\n .then(response => {\n return Promise.resolve(response.data);\n })\n .catch(error => {\n throw error;\n });\n}\n\nexport async function delete_(endpoint: string, options: APIRequestConfig = {}) {\n endpoint = cleanEndpoint(endpoint);\n\n return apiAxios\n .delete(`${endpoint}`, options)\n .then(response => {\n return Promise.resolve(response.data);\n })\n .catch(error => {\n throw error;\n });\n}\n","function makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 3;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._queryings = 0;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n this._queryings++;\n pauseTracking();\n for (const dep of this.deps) {\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 2) {\n break;\n }\n }\n }\n resetTracking();\n this._queryings--;\n }\n return this._dirtyLevel >= 2;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 3 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps && effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n if (!effect2.allowRecurse && effect2._runnings) {\n continue;\n }\n if (effect2._dirtyLevel < dirtyLevel && (!effect2._runnings || dirtyLevel !== 2)) {\n const lastDirtyLevel = effect2._dirtyLevel;\n effect2._dirtyLevel = dirtyLevel;\n if (lastDirtyLevel === 0 && (!effect2._queryings || dirtyLevel !== 2)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 3,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _shallow = false) {\n this._isReadonly = _isReadonly;\n this._shallow = _shallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, shallow = this._shallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(false, shallow);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._shallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(true, shallow);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(this, 1)\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n trackRefValue(self);\n if (!self._cacheable || self.effect.dirty) {\n if (hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 2);\n }\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n ref2.dep || (ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n )),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 3, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 3, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 3, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst deferredComputed = computed;\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\"\n};\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, getCurrentScope, ref, shallowReadonly, track, customRef, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/errors/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.effect.dirty = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, void 0];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n if (!el)\n return;\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = vnode.el = branch.el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow$1(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n } else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) || internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.effect.dirty = true;\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n","import type { App } from \"@/models\";\nimport { get as apiGet } from \"./API\";\n\nexport async function get(): Promise {\n return apiGet(\"location\");\n}\n","import type { AppLocation, OpeningHours } from \"./AppLocation\";\n\nexport enum Saletype {\n DELIVERY = \"delivery\",\n TAKEAWAY = \"takeaway\",\n RESERVATION = \"reservation\",\n TAKEAWAY_ON_SITE = \"takeawayOnSite\",\n ORDER_FROM_TABLE = \"orderFromTable\",\n DIGITAL_MENU = \"digitalMenu\",\n OTHER_SERVICES = \"otherServices\"\n}\n\nexport enum PaymentMethod {\n POSTE_VIRTUAL_POS = \"posteVirtualPos\",\n NEXI_XPAY = \"nexiXPay\",\n CASH_ON_DELIVERY = \"cashOnDelivery\",\n FIDELITY_CARD = \"fidelityCardPrepaidAmount\",\n PAYPAL = \"payPal\",\n SATISPAY = \"satispay\",\n GOOGLE_PAY = \"googlePay\",\n APPLE_PAY = \"applePay\",\n WORLDLINE = \"worldLine\"\n}\n\nexport enum PaymentFlow {\n STANDARD = \"standard\",\n DEPOSIT = \"deposit\",\n SPLIT = \"split\",\n DUTCH = \"dutch\"\n}\n\nexport interface MoneyType {\n id: string;\n label: string;\n}\n\nexport interface ServiceData {\n active: boolean;\n asking?: {\n cutlery: boolean;\n };\n paymentMethods: PaymentMethod[];\n openingHours?: OpeningHours[];\n crossSelling?: {\n message: string;\n categories: string[];\n image: string;\n };\n showTimeSlots?: boolean;\n showQrCode: boolean;\n orderConfirmedMessage?: string;\n ageRestriction: {\n enabled: boolean;\n threshold: number;\n };\n enabledMoneyTypes?: MoneyType[]\n disableAuthentication?: boolean\n}\n\nexport interface DeliveryPrice {\n isPercentage: boolean;\n price: 0;\n serviceChargeId: string;\n minPurchase?: number;\n}\n\nexport interface ZipCodeDeliveryPrice extends DeliveryPrice {\n zipCode: string;\n}\n\nexport interface KmRangeDeliveryPrice extends DeliveryPrice {\n kmRange: string;\n}\n\nexport interface DeliveryService extends ServiceData {\n maxDeliveryDistance: number;\n externalUrl: string;\n defaultDeliveryPrice?: DeliveryPrice;\n zipCodeDeliveryCosts?: ZipCodeDeliveryPrice[];\n kmRangeDeliveryCosts?: KmRangeDeliveryPrice[];\n minPurchase: number;\n allowedPostalCodes: string[];\n}\n\nexport interface ReservationService extends ServiceData {\n externalUrl: string;\n maxCoversForTableReservation?: number;\n slots: OpeningHours[];\n}\n\nexport interface CustomField {\n name: string; // nome campo\n label: string; // etichetta da mostrare nella ui\n type: string; // tipo di input\n isMandatory: boolean; // obbligatorietà della compilazione\n isHidden: boolean; // campo visibile o meno\n default: string; // valore di default\n rules: string;\n value: any;\n}\n\nexport interface TakeawayOnSiteService extends ServiceData {\n customFields?: CustomField[];\n}\n\nexport type TakewayService = ServiceData;\nexport type OtherServicesService = ServiceData;\n\nexport interface OrderFromTableService extends ServiceData {\n skipCovers: boolean;\n enableSplitAndDutchPayments: boolean;\n embedDigitalMenu: boolean;\n}\n\ntype HTMLColor = string;\nexport enum OptionalUserFields {\n GENDER = \"gender\",\n BIRTH_DATE = \"birthDate\"\n}\nexport enum OptionalUserFieldsValues {\n OPTIONAL = \"optional\",\n MANDATORY = \"mandatory\",\n HIDDEN = \"hidden\"\n}\nexport interface App {\n appUrl?: string;\n companyVAT?: string;\n appMasterUrl?: string;\n primaryColor: HTMLColor;\n secondaryColor: HTMLColor;\n availableLanguages: Array;\n coverImageUrl: string;\n urlPrivacyPolicy: string;\n urlTermsOfSales: string;\n urlMarketing: string;\n optionalUserFields: Record;\n defaultService: Saletype;\n profiling?: {\n isHidden: boolean;\n pdfUrl: string;\n };\n currency: {\n acronym: string;\n };\n location: AppLocation;\n services: {\n [Saletype.RESERVATION]: ReservationService;\n [Saletype.DELIVERY]: DeliveryService;\n [Saletype.TAKEAWAY]: TakewayService;\n [Saletype.TAKEAWAY_ON_SITE]: TakeawayOnSiteService;\n [Saletype.ORDER_FROM_TABLE]: OrderFromTableService;\n [Saletype.OTHER_SERVICES]: OtherServicesService;\n [Saletype.DIGITAL_MENU]: ServiceData;\n };\n channel?: string;\n GTMContainerId?: string;\n pdfFileAllergens?: string;\n}\n\nexport const hasService = (app: App, saletype: Saletype) => {\n return app.services[saletype].active;\n};\n","import type { DateTimeSlot } from \"@/store/timeSlots/dateTimeSlots\";\nimport type { Product } from \".\";\nimport type { Address } from \"./Address\";\nimport type { DeliveryPrice, Saletype } from \"./App\";\nimport type { CartPriceVariation, AffiliationDiscount } from \"./PriceVariation\";\nimport type { ProductConfiguration } from \"./Product\";\nimport type { AppliedPromoCode } from \"./PromoCode\";\n\nexport enum CartPrefix {\n RESTAURANT = \"restaurant\",\n TABLE = \"table\",\n TAKEAWAY_ON_SITE = \"takeAwayOnSite\",\n DIGITAL_MENU = \"digitalMenu\"\n}\n\nexport interface CartItem {\n product: Product;\n configuration: ProductConfiguration;\n quantity: number;\n variation?: CartPriceVariation;\n}\n\nexport interface Cart {\n createdAt: string;\n prefix: CartPrefix;\n saletype: Saletype;\n items: CartItem[];\n priceList: string | null;\n deliveryAddress: Address | null;\n deliveryPrice: DeliveryPrice | null | undefined;\n subtotalVariation: CartPriceVariation | null;\n affiliationDiscount: AffiliationDiscount | null;\n promoCodes: AppliedPromoCode[];\n orderTimeSlot: DateTimeSlot | null;\n total: number;\n subTotal: number;\n}\n\nexport interface InitCartOptions {\n prefix: CartPrefix;\n saletype: Saletype;\n priceList?: string | null;\n deliveryAddress?: Address | null;\n deliveryPrice?: DeliveryPrice | null;\n}\n\nexport function nItems(cart: Cart) {\n return cart.items.map(i => i.quantity).reduce((prev, curr) => prev + curr, 0);\n}\n","let currencyCode: undefined | string = undefined;\n\nexport function setCurrencyCode(code: string) {\n currencyCode = code;\n}\n\ninterface FormatPriceOptions {\n sign: \"exceptZero\" | \"always\" | \"never\" | \"never\" | undefined;\n}\n\nexport function formatPrice(price: number, options?: FormatPriceOptions): string {\n const total = price.toLocaleString(undefined, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n style: \"currency\",\n currency: currencyCode,\n signDisplay: options?.sign\n });\n return total;\n}\n","export interface Address {\n address: string;\n streetNumber: string;\n city: string;\n zipCode: string;\n nation: string;\n distanceKm?: number;\n isDefaultDeliveryAddress?: boolean;\n}\n\nexport function addressToString(address: Address) {\n return `${address.address} ${address.streetNumber}, ${address.city}, ${address.zipCode}`;\n}\n\nexport function isEqualAddress(oldAddress: Address, newAddress: Address) {\n if (!oldAddress || !newAddress) return false;\n return (\n oldAddress.address.toLowerCase() === newAddress.address.toLowerCase() &&\n oldAddress.city.toLowerCase() === newAddress.city.toLowerCase() &&\n oldAddress.nation.toLowerCase() === newAddress.nation.toLowerCase() &&\n oldAddress.streetNumber.toLowerCase() === newAddress.streetNumber.toLowerCase() &&\n oldAddress.zipCode.toLowerCase() === newAddress.zipCode.toLowerCase()\n );\n}\n\nexport function isNotDuplicateAddress(places: Address[], address: Address) {\n return !(places.length && places.some(place => isEqualAddress(place, address)));\n}\n\nexport function isAddressComplete(value: Address | null) {\n if (!value) return false;\n if (value.city && value.address && value.streetNumber && value.zipCode && value.nation) {\n return true;\n } else {\n return false;\n }\n}\n","// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n,\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n,\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n,\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n,\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: s,\n};\n\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: l,\n};\n\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s,\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l,\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n","import { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n get ianaName() {\n return this.name;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get isUniversal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\nexport default class SystemZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {SystemZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new SystemZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"system\";\n }\n\n /** @override **/\n get name() {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"system\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n era: \"short\",\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n era: 3,\n hour: 4,\n minute: 5,\n second: 6,\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date);\n const filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i];\n const pos = typeToPos[type];\n\n if (type === \"era\") {\n filled[pos] = value;\n } else if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @deprecated This method returns false for some valid IANA names. Use isValidZone instead.\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return this.isValidZone(s);\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n if (!zone) {\n return false;\n }\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts);\n\n if (isNaN(date)) return NaN;\n\n const dtf = makeDTF(this.name);\n let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date);\n\n if (adOrBc === \"BC\") {\n year = -Math.abs(year) + 1;\n }\n\n // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n const adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0,\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { hasLocaleWeekInfo, hasRelative, padStart, roundTo, validateWeekSettings } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n// todo - remap caching\n\nlet intlLFCache = {};\nfunction getCachedLF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlLFCache[key];\n if (!dtf) {\n dtf = new Intl.ListFormat(locString, opts);\n intlLFCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else {\n sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale;\n return sysLocaleCache;\n }\n}\n\nlet weekInfoCache = {};\nfunction getCachedWeekInfo(locString) {\n let data = weekInfoCache[locString];\n if (!data) {\n const locale = new Intl.Locale(locString);\n // browsers currently implement this as a property, but spec says it should be a getter function\n data = \"getWeekInfo\" in locale ? locale.getWeekInfo() : locale.weekInfo;\n weekInfoCache[locString] = data;\n }\n return data;\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n // private subtags and unicode subtags have ordering requirements,\n // and we're not properly parsing this, so just strip out the\n // private ones if they exist.\n const xIndex = localeStr.indexOf(\"-x-\");\n if (xIndex !== -1) {\n localeStr = localeStr.substring(0, xIndex);\n }\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n let selectedStr;\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n selectedStr = localeStr;\n } catch (e) {\n const smaller = localeStr.substring(0, uIndex);\n options = getCachedDTF(smaller).resolvedOptions();\n selectedStr = smaller;\n }\n\n const { numberingSystem, calendar } = options;\n return [selectedStr, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (outputCalendar || numberingSystem) {\n if (!localeStr.includes(\"-u-\")) {\n localeStr += \"-u\";\n }\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2009, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, englishFn, intlFn) {\n const mode = loc.listingMode();\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\"\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n const { padTo, floor, ...otherOpts } = opts;\n\n if (!forceSimple || Object.keys(otherOpts).length > 0) {\n const intlOpts = { useGrouping: false, ...opts };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.originalZone = undefined;\n\n let z = undefined;\n if (this.opts.timeZone) {\n // Don't apply any workarounds if a timeZone is explicitly provided in opts\n this.dt = dt;\n } else if (dt.zone.type === \"fixed\") {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n const gmtOffset = -1 * (dt.offset / 60);\n const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;\n if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so\n // we manually apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.offset === 0 ? dt : dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n } else if (dt.zone.type === \"system\") {\n this.dt = dt;\n } else if (dt.zone.type === \"iana\") {\n this.dt = dt;\n z = dt.zone.name;\n } else {\n // Custom zones can have any offset / offsetName so we just manually\n // apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n\n const intlOpts = { ...this.opts };\n intlOpts.timeZone = intlOpts.timeZone || z;\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n\n format() {\n if (this.originalZone) {\n // If we have to substitute in the actual zone name, we have to use\n // formatToParts so that the timezone can be replaced.\n return this.formatToParts()\n .map(({ value }) => value)\n .join(\"\");\n }\n return this.dtf.format(this.dt.toJSDate());\n }\n\n formatToParts() {\n const parts = this.dtf.formatToParts(this.dt.toJSDate());\n if (this.originalZone) {\n return parts.map((part) => {\n if (part.type === \"timeZoneName\") {\n const offsetName = this.originalZone.offsetName(this.dt.ts, {\n locale: this.dt.locale,\n format: this.opts.timeZoneName,\n });\n return {\n ...part,\n value: offsetName,\n };\n } else {\n return part;\n }\n });\n }\n return parts;\n }\n\n resolvedOptions() {\n return this.dtf.resolvedOptions();\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = { style: \"long\", ...opts };\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\nconst fallbackWeekSettings = {\n firstDay: 1,\n minimalDays: 4,\n weekend: [6, 7],\n};\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(\n opts.locale,\n opts.numberingSystem,\n opts.outputCalendar,\n opts.weekSettings,\n opts.defaultToEN\n );\n }\n\n static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale;\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n const localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale());\n const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem;\n const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings;\n return new Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar, weekSettings } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar, weekSettings);\n }\n\n constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.weekSettings = weekSettings;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode() {\n const isActuallyEn = this.isEnglish();\n const hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n return isActuallyEn && hasNoWeirdness ? \"en\" : \"intl\";\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n validateWeekSettings(alts.weekSettings) || this.weekSettings,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone({ ...alts, defaultToEN: true });\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone({ ...alts, defaultToEN: false });\n }\n\n months(length, format = false) {\n return listStuff(this, length, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths((dt) => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false) {\n return listStuff(this, length, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays((dt) =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems() {\n return listStuff(\n this,\n undefined,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hourCycle: \"h12\" };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n (dt) => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length) {\n return listStuff(this, length, English.eras, () => {\n const intl = { era: length };\n\n // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find((m) => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n listFormatter(opts = {}) {\n return getCachedLF(this.intl, opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\")\n );\n }\n\n getWeekSettings() {\n if (this.weekSettings) {\n return this.weekSettings;\n } else if (!hasLocaleWeekInfo()) {\n return fallbackWeekSettings;\n } else {\n return getCachedWeekInfo(this.locale);\n }\n }\n\n getStartOfWeek() {\n return this.getWeekSettings().firstDay;\n }\n\n getMinDaysInFirstWeek() {\n return this.getWeekSettings().minimalDays;\n }\n\n getWeekendDays() {\n return this.getWeekSettings().weekend;\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n get ianaName() {\n if (this.fixed === 0) {\n return \"Etc/UTC\";\n } else {\n return `Etc/GMT${formatOffset(-this.fixed, \"narrow\")}`;\n }\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get isUniversal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\nimport SystemZone from \"../zones/systemZone.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"default\") return defaultZone;\n else if (lowered === \"local\" || lowered === \"system\") return SystemZone.instance;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && \"offset\" in input && typeof input.offset === \"function\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import SystemZone from \"./zones/systemZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport { validateWeekSettings } from \"./impl/util.js\";\n\nlet now = () => Date.now(),\n defaultZone = \"system\",\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n twoDigitCutoffYear = 60,\n throwOnInvalid,\n defaultWeekSettings = null;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * Use the value \"system\" to reset this value to the system's time zone.\n * @type {string}\n */\n static set defaultZone(zone) {\n defaultZone = zone;\n }\n\n /**\n * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n * The default value is the system's time zone (the one set on the machine that runs this code).\n * @type {Zone}\n */\n static get defaultZone() {\n return normalizeZone(defaultZone, SystemZone.instance);\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * @typedef {Object} WeekSettings\n * @property {number} firstDay\n * @property {number} minimalDays\n * @property {number[]} weekend\n */\n\n /**\n * @return {WeekSettings|null}\n */\n static get defaultWeekSettings() {\n return defaultWeekSettings;\n }\n\n /**\n * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and\n * how many days are required in the first week of a year.\n * Does not affect existing instances.\n *\n * @param {WeekSettings|null} weekSettings\n */\n static set defaultWeekSettings(weekSettings) {\n defaultWeekSettings = validateWeekSettings(weekSettings);\n }\n\n /**\n * Get the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century.\n * @type {number}\n */\n static get twoDigitCutoffYear() {\n return twoDigitCutoffYear;\n }\n\n /**\n * Set the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century.\n * @type {number}\n * @example Settings.twoDigitCutoffYear = 0 // cut-off year is 0, so all 'yy' are interpreted as current century\n * @example Settings.twoDigitCutoffYear = 50 // '49' -> 1949; '50' -> 2050\n * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50\n * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50\n */\n static set twoDigitCutoffYear(cutoffYear) {\n twoDigitCutoffYear = cutoffYear % 100;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger,\n isUndefined,\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nexport function dayOfWeek(year, month, day) {\n const d = new Date(Date.UTC(year, month - 1, day));\n\n if (year < 100 && year >= 0) {\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n\n const js = d.getUTCDay();\n\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex((i) => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\nexport function isoWeekdayToLocal(isoWeekday, startOfWeek) {\n return ((isoWeekday - startOfWeek + 7) % 7) + 1;\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek);\n\n let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek);\n } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return { weekYear, weekNumber, weekday, ...timeObject(gregObj) };\n}\n\nexport function weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(weekData) };\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData;\n const ordinal = computeOrdinal(year, month, day);\n return { year, ordinal, ...timeObject(gregData) };\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData;\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(ordinalData) };\n}\n\n/**\n * Check if local week units like localWeekday are used in obj.\n * If so, validates that they are not mixed with ISO week units and then copies them to the normal week unit properties.\n * Modifies obj in-place!\n * @param obj the object values\n */\nexport function usesLocalWeekValues(obj, loc) {\n const hasLocaleWeekData =\n !isUndefined(obj.localWeekday) ||\n !isUndefined(obj.localWeekNumber) ||\n !isUndefined(obj.localWeekYear);\n if (hasLocaleWeekData) {\n const hasIsoWeekData =\n !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear);\n\n if (hasIsoWeekData) {\n throw new ConflictingSpecificationError(\n \"Cannot mix locale-based week fields with ISO-based week fields\"\n );\n }\n if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday;\n if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber;\n if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear;\n delete obj.localWeekday;\n delete obj.localWeekNumber;\n delete obj.localWeekYear;\n return {\n minDaysInFirstWeek: loc.getMinDaysInFirstWeek(),\n startOfWeek: loc.getStartOfWeek(),\n };\n } else {\n return { minDaysInFirstWeek: 4, startOfWeek: 1 };\n }\n}\n\nexport function hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(\n obj.weekNumber,\n 1,\n weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek)\n ),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.weekNumber);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\nimport Settings from \"../settings.js\";\nimport { dayOfWeek, isoWeekdayToLocal } from \"./conversions.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasLocaleWeekInfo() {\n try {\n return (\n typeof Intl !== \"undefined\" &&\n !!Intl.Locale &&\n (\"weekInfo\" in Intl.Locale.prototype || \"getWeekInfo\" in Intl.Locale.prototype)\n );\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport function validateWeekSettings(settings) {\n if (settings == null) {\n return null;\n } else if (typeof settings !== \"object\") {\n throw new InvalidArgumentError(\"Week settings must be an object\");\n } else {\n if (\n !integerBetween(settings.firstDay, 1, 7) ||\n !integerBetween(settings.minimalDays, 1, 7) ||\n !Array.isArray(settings.weekend) ||\n settings.weekend.some((v) => !integerBetween(v, 1, 7))\n ) {\n throw new InvalidArgumentError(\"Invalid week settings\");\n }\n return {\n firstDay: settings.firstDay,\n minimalDays: settings.minimalDays,\n weekend: Array.from(settings.weekend),\n };\n }\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n const isNeg = input < 0;\n let padded;\n if (isNeg) {\n padded = \"-\" + (\"\" + -input).padStart(n, \"0\");\n } else {\n padded = (\"\" + input).padStart(n, \"0\");\n }\n return padded;\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseFloating(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseFloat(string);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// convert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not\n // so if obj.year is in 99, but obj.day makes it roll over into year 100,\n // the calculations done by Date.UTC are using year 2000 - which is incorrect\n d.setUTCFullYear(obj.year, obj.month - 1, obj.day);\n }\n return +d;\n}\n\n// adapted from moment.js: https://github.com/moment/moment/blob/000ac1800e620f770f4eb31b5ae908f6167b0ab2/src/lib/units/week-calendar-utils.js\nfunction firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) {\n const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek);\n return -fwdlw + minDaysInFirstWeek - 1;\n}\n\nexport function weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek);\n const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek);\n return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = { timeZoneName: offsetFormat, ...intlOpts };\n\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find((m) => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return [...monthsNarrow];\n case \"short\":\n return [...monthsShort];\n case \"long\":\n return [...monthsLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [...weekdaysNarrow];\n case \"short\":\n return [...weekdaysShort];\n case \"long\":\n return [...weekdaysLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return [...erasNarrow];\n case \"short\":\n return [...erasShort];\n case \"long\":\n return [...erasLong];\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"],\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hourCycle\",\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS,\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n // white-space is always considered a literal in user-provided formats\n // the \" \" token has a special meaning (see unitForToken)\n\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: /^\\s+$/.test(currentFull), val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, { ...this.opts, ...opts });\n return df.format();\n }\n\n dtFormatter(dt, opts = {}) {\n return this.loc.dtFormatter(dt, { ...this.opts, ...opts });\n }\n\n formatDateTime(dt, opts) {\n return this.dtFormatter(dt, opts).format();\n }\n\n formatDateTimeParts(dt, opts) {\n return this.dtFormatter(dt, opts).formatToParts();\n }\n\n formatInterval(interval, opts) {\n const df = this.dtFormatter(interval.start, opts);\n return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate());\n }\n\n resolvedOptions(dt, opts) {\n return this.dtFormatter(dt, opts).resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = { ...this.opts };\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\",\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = (opts) => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hourCycle: \"h12\" }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = (token) => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = (length) =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = (token) => {\n // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // fractional seconds\n case \"uu\":\n return this.num(Math.floor(dt.millisecond / 10), 2);\n case \"uuu\":\n return this.num(Math.floor(dt.millisecond / 100));\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"n\":\n return this.num(dt.localWeekNumber);\n case \"nn\":\n return this.num(dt.localWeekNumber, 2);\n case \"ii\":\n return this.num(dt.localWeekYear.toString().slice(-2), 2);\n case \"iiii\":\n return this.num(dt.localWeekYear, 4);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = (token) => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"w\":\n return \"week\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = (lildur) => (token) => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n isUndefined,\n parseFloating,\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nconst ianaRegex = /[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return (m) =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [{ ...mergedVals, ...val }, zone || mergedZone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/;\nconst isoExtendedZone = `(?:${offsetRegex.source}?(?:\\\\[(${ianaRegex.source})\\\\])?)?`;\nconst isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/;\nconst isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`);\nconst isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`);\nconst isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/;\nconst isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/;\nconst isoOrdinalRegex = /(\\d{4})-?(\\d{3})/;\nconst extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\");\nconst extractISOOrdinalData = simpleParse(\"year\", \"ordinal\");\nconst sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/; // dumbed-down version of the ISO one\nconst sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n);\nconst sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1),\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3]),\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nconst isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`);\n\n// ISO duration parsing\n\nconst isoDuration =\n /^-?P(?:(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)Y)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)W)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)D)?(?:T(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)H)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,20}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] =\n match;\n\n const hasNegativePrefix = s[0] === \"-\";\n const negativeSeconds = secondStr && secondStr[0] === \"-\";\n\n const maybeNegate = (num, force = false) =>\n num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num;\n\n return [\n {\n years: maybeNegate(parseFloating(yearStr)),\n months: maybeNegate(parseFloating(monthStr)),\n weeks: maybeNegate(parseFloating(weekStr)),\n days: maybeNegate(parseFloating(dayStr)),\n hours: maybeNegate(parseFloating(hourStr)),\n minutes: maybeNegate(parseFloating(minuteStr)),\n seconds: maybeNegate(parseFloating(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds),\n },\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr),\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr,\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 =\n /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOOrdinalDateAndTime = combineExtractors(\n extractISOOrdinalData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeAndOffset = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\n/*\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst extractISOTimeOnly = combineExtractors(extractISOTime);\n\nexport function parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration, parseISOTimeOnly } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo,\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\nimport DateTime from \"./datetime.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nexport const lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000,\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000,\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 },\n },\n casualMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000,\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000,\n },\n\n ...lowOrderMatrix,\n },\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4,\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000,\n },\n ...lowOrderMatrix,\n };\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\",\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : { ...dur.values, ...(alts.values || {}) },\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,\n matrix: alts.matrix || dur.matrix,\n };\n return new Duration(conf);\n}\n\nfunction durationToMillis(matrix, vals) {\n let sum = vals.milliseconds ?? 0;\n for (const unit of reverseUnits.slice(1)) {\n if (vals[unit]) {\n sum += vals[unit] * matrix[unit][\"milliseconds\"];\n }\n }\n return sum;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n // the logic below assumes the overall value of the duration is positive\n // if this is not the case, factor is used to make it so\n const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1;\n\n orderedUnits.reduceRight((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const previousVal = vals[previous] * factor;\n const conv = matrix[current][previous];\n\n // if (previousVal < 0):\n // lower order unit is negative (e.g. { years: 2, days: -2 })\n // normalize this by reducing the higher order unit by the appropriate amount\n // and increasing the lower order unit\n // this can never make the higher order unit negative, because this function only operates\n // on positive durations, so the amount of time represented by the lower order unit cannot\n // be larger than the higher order unit\n // else:\n // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 })\n // in this case we attempt to convert as much as possible from the lower order unit into\n // the higher order one\n //\n // Math.floor takes care of both of these cases, rounding away from 0\n // if previousVal < 0 it makes the absolute value larger\n // if previousVal >= it makes the absolute value smaller\n const rollUp = Math.floor(previousVal / conv);\n vals[current] += rollUp * factor;\n vals[previous] -= rollUp * conv * factor;\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n\n // try to convert any decimals into smaller units if possible\n // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 }\n orderedUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const fraction = vals[previous] % 1;\n vals[previous] -= fraction;\n vals[current] += fraction * matrix[previous][current];\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n// Remove all properties with a value of 0 from an object\nfunction removeZeroes(vals) {\n const newVals = {};\n for (const [key, value] of Object.entries(vals)) {\n if (value !== 0) {\n newVals[key] = value;\n }\n }\n return newVals;\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.\n * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n let matrix = accurate ? accurateMatrix : casualMatrix;\n\n if (config.matrix) {\n matrix = config.matrix;\n }\n\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = matrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject({ milliseconds: count }, opts);\n }\n\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {Object} [opts=[]] - options for creating this Duration\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the custom conversion system to use\n * @return {Duration}\n */\n static fromObject(obj, opts = {}) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit),\n loc: Locale.fromObject(opts),\n conversionAccuracy: opts.conversionAccuracy,\n matrix: opts.matrix,\n });\n }\n\n /**\n * Create a Duration from DurationLike.\n *\n * @param {Object | number | Duration} durationLike\n * One of:\n * - object with keys like 'years' and 'hours'.\n * - number representing milliseconds\n * - Duration instance\n * @return {Duration}\n */\n static fromDurationLike(durationLike) {\n if (isNumber(durationLike)) {\n return Duration.fromMillis(durationLike);\n } else if (Duration.isDuration(durationLike)) {\n return durationLike;\n } else if (typeof durationLike === \"object\") {\n return Duration.fromObject(durationLike);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationLike} of type ${typeof durationLike}`\n );\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the preset conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */\n static fromISOTime(text, opts) {\n const [parsed] = parseISOTimeOnly(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\",\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `w` for weeks\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * Tokens can be escaped by wrapping with single quotes.\n * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = {\n ...opts,\n floor: opts.round !== false && opts.floor !== false,\n };\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a string representation of a Duration with all units included.\n * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options\n * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`.\n * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor.\n * @example\n * ```js\n * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 })\n * dur.toHuman() //=> '1 day, 5 hours, 6 minutes'\n * dur.toHuman({ listStyle: \"long\" }) //=> '1 day, 5 hours, and 6 minutes'\n * dur.toHuman({ unitDisplay: \"short\" }) //=> '1 day, 5 hr, 6 min'\n * ```\n */\n toHuman(opts = {}) {\n if (!this.isValid) return INVALID;\n\n const l = orderedUnits\n .map((unit) => {\n const val = this.values[unit];\n if (isUndefined(val)) {\n return null;\n }\n return this.loc\n .numberFormatter({ style: \"unit\", unitDisplay: \"long\", ...opts, unit: unit.slice(0, -1) })\n .format(val);\n })\n .filter((n) => n);\n\n return this.loc\n .listFormatter({ type: \"conjunction\", style: opts.listStyle || \"narrow\", ...opts })\n .format(l);\n }\n\n /**\n * Returns a JavaScript object with this Duration's values.\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject() {\n if (!this.isValid) return {};\n return { ...this.values };\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */\n toISOTime(opts = {}) {\n if (!this.isValid) return null;\n\n const millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n\n opts = {\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\",\n ...opts,\n includeOffset: false,\n };\n\n const dateTime = DateTime.fromMillis(millis, { zone: \"UTC\" });\n return dateTime.toISOTime(opts);\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns a string representation of this Duration appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Duration { values: ${JSON.stringify(this.values)} }`;\n } else {\n return `Duration { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n toMillis() {\n if (!this.isValid) return NaN;\n\n return durationToMillis(this.matrix, this.values);\n }\n\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === \"hours\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = { ...this.values, ...normalizeObject(values, Duration.normalizeUnit) };\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy, matrix } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem });\n const opts = { loc, matrix, conversionAccuracy };\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * Assuming the overall value of the Duration is positive, this means:\n * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example)\n * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise\n * the overall value would be negative, see third example)\n * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example)\n *\n * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Rescale units to its largest representation\n * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 }\n * @return {Duration}\n */\n rescale() {\n if (!this.isValid) return this;\n const vals = removeZeroes(this.normalize().shiftToAll().toObject());\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map((u) => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n // only keep the integer part for now in the hopes of putting any decimal part\n // into a smaller unit later\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = (own * 1000 - i * 1000) / 1000;\n\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n normalizeValues(this.matrix, built);\n return clone(this, { values: built }, true);\n }\n\n /**\n * Shift this Duration to all available units.\n * Same as shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\")\n * @return {Duration}\n */\n shiftToAll() {\n if (!this.isValid) return this;\n return this.shiftTo(\n \"years\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n );\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = this.values[k] === 0 ? 0 : -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n\n for (const u of orderedUnits) {\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport * as Formats from \"./impl/formats.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}.\n * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.\n * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}\n * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd,\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `/`, `/`, and `/` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime\n * @return {number}\n */\n count(unit = \"milliseconds\", opts) {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit, opts);\n let end;\n if (opts?.useLocaleWeeks) {\n end = this.end.reconfigure({ locale: start.locale });\n } else {\n end = this.end;\n }\n end = end.startOf(unit, opts);\n return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf());\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...DateTime} dateTimes - the unit of time to count.\n * @return {Array}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter((d) => this.contains(d))\n .sort((a, b) => a.toMillis() - b.toMillis()),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {Array}\n */\n splitBy(duration) {\n const dur = Duration.fromDurationLike(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n idx = 1,\n next;\n\n const results = [];\n while (s < this.e) {\n const added = this.start.plus(dur.mapUnits((x) => x * idx));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {Array}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static merge(intervals) {\n const [found, final] = intervals\n .sort((a, b) => a.s - b.s)\n .reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map((i) => [\n { time: i.s, type: \"s\" },\n { time: i.e, type: \"e\" },\n ]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {Array}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map((i) => this.intersection(i))\n .filter((i) => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns a string representation of this Interval appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;\n } else {\n return `Interval { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns a localized string representing this Interval. Accepts the same options as the\n * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as\n * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method\n * is browser-specific, but in general it will return an appropriate representation of the\n * Interval in the assigned locale. Defaults to the system's locale if no locale has been\n * specified.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or\n * Intl.DateTimeFormat constructor options.\n * @param {Object} opts - Options to override the configuration of the start DateTime.\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p\n * @return {string}\n */\n toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this)\n : INVALID;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format\n * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible\n * formatting tool.\n * @param {string} dateFormat - The format string. This string formats the start and end time.\n * See {@link DateTime#toFormat} for details.\n * @param {Object} opts - Options.\n * @param {string} [opts.separator = ' – '] - A separator to place between the start and end\n * representations.\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasLocaleWeekInfo, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.now().setZone(zone).set({ month: 12 });\n\n return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone#isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Get the weekday on which the week starts according to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number} the start of the week, 1 for Monday through 7 for Sunday\n */\n static getStartOfWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getStartOfWeek();\n }\n\n /**\n * Get the minimum number of days necessary in a week before it is considered part of the next year according\n * to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number}\n */\n static getMinimumDaysInFirstWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getMinDaysInFirstWeek();\n }\n\n /**\n * Get the weekdays, which are considered the weekend according to the given locale\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday\n */\n static getWeekendWeekdays({ locale = null, locObj = null } = {}) {\n // copy the array, because we cache it internally\n return (locObj || Locale.create(locale)).getWeekendDays().slice();\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {Array}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link Info#months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {Array}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {Array}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link Info#weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {Array}\n */\n static weekdaysFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {Array}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {Array}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `relative`: whether this environment supports relative time formatting\n * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale\n * @example Info.features() //=> { relative: false, localeWeek: true }\n * @return {Object}\n */\n static features() {\n return { relative: hasRelative(), localeWeek: hasLocaleWeekInfo() };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf(\"day\").valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"quarters\", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n },\n ],\n [\"days\", dayDiff],\n ];\n\n const results = {};\n const earlier = cursor;\n let lowestOrder, highWater;\n\n /* This loop tries to diff using larger units first.\n If we overshoot, we backtrack and try the next smaller unit.\n \"cursor\" starts out at the earlier timestamp and moves closer and closer to \"later\"\n as we use smaller and smaller units.\n highWater keeps track of where we would be if we added one more of the smallest unit,\n this is used later to potentially convert any difference smaller than the smallest higher order unit\n into a fraction of that smallest higher order unit\n */\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n results[unit] = differ(cursor, later);\n highWater = earlier.plus(results);\n\n if (highWater > later) {\n // we overshot the end point, backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n\n // if we are still overshooting now, we need to backtrack again\n // this happens in certain situations when diffing times in different zones,\n // because this calculation ignores time zones\n if (cursor > later) {\n // keep the \"overshot by 1\" around as highWater\n highWater = cursor;\n // backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n }\n } else {\n cursor = highWater;\n }\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function (earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n (u) => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(results, opts);\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\",\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881],\n};\n\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = (i) => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `[ ${NBSP}]`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex((i) => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex,\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\n/**\n * @param token\n * @param {Locale} loc\n */\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = (t) => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\"), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\"), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n case \"uu\":\n return simple(oneOrTwo);\n case \"uuu\":\n return intUnit(one);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n // this special-case \"token\" represents a place where a macro-token expanded into a white-space literal\n // in this case we accept any non-newline white-space\n case \" \":\n return simple(/[^\\S\\n\\r]/);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP,\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\",\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\",\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\",\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\",\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour12: {\n numeric: \"h\",\n \"2-digit\": \"hh\",\n },\n hour24: {\n numeric: \"H\",\n \"2-digit\": \"HH\",\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\",\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\",\n },\n timeZoneName: {\n long: \"ZZZZZ\",\n short: \"ZZZ\",\n },\n};\n\nfunction tokenForPart(part, formatOpts, resolvedOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n const isSpace = /^\\s+$/.test(value);\n return {\n literal: !isSpace,\n val: isSpace ? \" \" : value,\n };\n }\n\n const style = formatOpts[type];\n\n // The user might have explicitly specified hour12 or hourCycle\n // if so, respect their decision\n // if not, refer back to the resolvedOpts, which are based on the locale\n let actualType = type;\n if (type === \"hour\") {\n if (formatOpts.hour12 != null) {\n actualType = formatOpts.hour12 ? \"hour12\" : \"hour24\";\n } else if (formatOpts.hourCycle != null) {\n if (formatOpts.hourCycle === \"h11\" || formatOpts.hourCycle === \"h12\") {\n actualType = \"hour12\";\n } else {\n actualType = \"hour24\";\n }\n } else {\n // tokens only differentiate between 24 hours or not,\n // so we do not need to check hourCycle here, which is less supported anyways\n actualType = resolvedOpts.hour12 ? \"hour12\" : \"hour24\";\n }\n }\n let val = partTypeStyleToTokenVal[actualType];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val,\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = (token) => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone = null;\n let specificOffset;\n if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n }\n\n if (!isUndefined(matches.Z)) {\n if (!zone) {\n zone = new FixedOffsetZone(matches.Z);\n }\n specificOffset = matches.Z;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone, specificOffset];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n const tokens = formatOptsToTokens(formatOpts, locale);\n\n if (tokens == null || tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nexport function expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map((t) => unitForToken(t, locale)),\n disqualifyingUnit = units.find((t) => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone, specificOffset] = matches\n ? dateTimeFromMatches(matches)\n : [null, null, undefined];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone, specificOffset };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, specificOffset, invalidReason];\n}\n\nexport function formatOptsToTokens(formatOpts, locale) {\n if (!formatOpts) {\n return null;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const df = formatter.dtFormatter(getDummyDateTime());\n const parts = df.formatToParts();\n const resolvedOpts = df.resolvedOptions();\n return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts));\n}\n","import Duration from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS,\n padStart,\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport {\n parseFromTokens,\n explainFromTokens,\n formatOptsToTokens,\n expandMacroTokens,\n} from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData,\n usesLocalWeekValues,\n isoWeekdayToLocal,\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError,\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedLocalWeekData(dt) {\n if (dt.localWeekData === null) {\n dt.localWeekData = gregorianToWeek(\n dt.c,\n dt.loc.getMinDaysInFirstWeek(),\n dt.loc.getStartOfWeek()\n );\n }\n return dt.localWeekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid,\n };\n return new DateTime({ ...current, ...alts, old: current });\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds(),\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = {\n ...inst.c,\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7,\n },\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds,\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {\n const { setZone, zone } = opts;\n if ((parsed && Object.keys(parsed).length !== 0) || parsedZone) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(parsed, {\n ...opts,\n zone: interpretationZone,\n specificOffset,\n });\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true,\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\nfunction toISODate(o, extended) {\n const longFormat = o.c.year > 9999 || o.c.year < 0;\n let c = \"\";\n if (longFormat && o.c.year >= 0) c += \"+\";\n c += padStart(o.c.year, longFormat ? 6 : 4);\n\n if (extended) {\n c += \"-\";\n c += padStart(o.c.month);\n c += \"-\";\n c += padStart(o.c.day);\n } else {\n c += padStart(o.c.month);\n c += padStart(o.c.day);\n }\n return c;\n}\n\nfunction toISOTime(\n o,\n extended,\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n) {\n let c = padStart(o.c.hour);\n if (extended) {\n c += \":\";\n c += padStart(o.c.minute);\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += \":\";\n }\n } else {\n c += padStart(o.c.minute);\n }\n\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += padStart(o.c.second);\n\n if (o.c.millisecond !== 0 || !suppressMilliseconds) {\n c += \".\";\n c += padStart(o.c.millisecond, 3);\n }\n }\n\n if (includeOffset) {\n if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {\n c += \"Z\";\n } else if (o.o < 0) {\n c += \"-\";\n c += padStart(Math.trunc(-o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(-o.o % 60));\n } else {\n c += \"+\";\n c += padStart(Math.trunc(o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(o.o % 60));\n }\n }\n\n if (extendedZone) {\n c += \"[\" + o.zone.ianaName + \"]\";\n }\n return c;\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\",\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\nfunction normalizeUnitWithLocalWeeks(unit) {\n switch (unit.toLowerCase()) {\n case \"localweekday\":\n case \"localweekdays\":\n return \"localWeekday\";\n case \"localweeknumber\":\n case \"localweeknumbers\":\n return \"localWeekNumber\";\n case \"localweekyear\":\n case \"localweekyears\":\n return \"localWeekYear\";\n default:\n return normalizeUnit(unit);\n }\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, opts) {\n const zone = normalizeZone(opts.zone, Settings.defaultZone),\n loc = Locale.fromObject(opts),\n tsNow = Settings.now();\n\n let ts, o;\n\n // assume we have the higher-order units\n if (!isUndefined(obj.year)) {\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const offsetProvis = zone.offset(tsNow);\n [ts, o] = objToTS(obj, offsetProvis, zone);\n } else {\n ts = tsNow;\n }\n\n return new DateTime({ ts, zone, loc, o });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = (unit) => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\n\nfunction lastOpts(argList) {\n let opts = {},\n args;\n if (argList.length > 0 && typeof argList[argList.length - 1] === \"object\") {\n opts = argList[argList.length - 1];\n args = Array.from(argList).slice(0, argList.length - 1);\n } else {\n args = Array.from(argList);\n }\n return [opts, args];\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},\n * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.\n * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.localWeekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n static now() {\n return new DateTime({});\n }\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local({ zone: \"America/New_York\" }) //~> now, in US east coast time\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12, { locale: \"fr\" }) //~> 2017-03-12T00:00:00, with a French locale\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, { zone: \"utc\" }) //~> 2017-03-12T05:00:00, in UTC\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @param {Object} options - configuration options for the DateTime\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: \"fr\" }) //~> 2017-03-12T05:45:00Z with a French locale\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: \"fr\" }) //~> 2017-03-12T05:45:10.765Z with a French locale\n * @return {DateTime}\n */\n static utc() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n\n opts.zone = FixedOffsetZone.utcInstance;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options),\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.localWeekYear - a week year, according to the locale\n * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale\n * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {Object} opts - options for creating this DateTime\n * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [opts.locale='system\\'s locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: \"en-US\" }).toISODate() //=> '2021-12-26'\n * @return {DateTime}\n */\n static fromObject(obj, opts = {}) {\n obj = obj || {};\n const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const loc = Locale.fromObject(opts);\n const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, loc);\n\n const tsNow = Settings.now(),\n offsetProvis = !isUndefined(opts.specificOffset)\n ? opts.specificOffset\n : zoneToUse.offset(tsNow),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc,\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens).\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n }),\n [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent.\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is an instance of DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n /**\n * Produce the format string for a set of options\n * @param formatOpts\n * @param localeOpts\n * @returns {string}\n */\n static parseFormatForOpts(formatOpts, localeOpts = {}) {\n const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts));\n return !tokenList ? null : tokenList.map((t) => (t ? t.val : null)).join(\"\");\n }\n\n /**\n * Produce the the fully expanded format token for the locale\n * Does NOT quote characters, so quoted tokens will not round trip correctly\n * @param fmt\n * @param localeOpts\n * @returns {string}\n */\n static expandFormat(fmt, localeOpts = {}) {\n const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts));\n return expanded.map((t) => t.val).join(\"\");\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Returns true if this date is on a weekend according to the locale, false otherwise\n * @returns {boolean}\n */\n get isWeekend() {\n return this.isValid && this.loc.getWeekendDays().includes(this.weekday);\n }\n\n /**\n * Get the day of the week according to the locale.\n * 1 is the first day of the week and 7 is the last day of the week.\n * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1,\n * @returns {number}\n */\n get localWeekday() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the week number of the week year according to the locale. Different locales assign week numbers differently,\n * because the week can start on different days of the week (see localWeekday) and because a different number of days\n * is required for a week to count as the first week of a year.\n * @returns {number}\n */\n get localWeekNumber() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the week year according to the locale. Different locales assign week numbers (and therefor week years)\n * differently, see localWeekNumber.\n * @returns {number}\n */\n get localWeekYear() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.isUniversal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1, day: 1 }).offset ||\n this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC\n * in this DateTime's zone. During DST changes local time can be ambiguous, for example\n * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`.\n * This method will return both possible DateTimes if this DateTime's local time is ambiguous.\n * @returns {DateTime[]}\n */\n getPossibleOffsets() {\n if (!this.isValid || this.isOffsetFixed) {\n return [this];\n }\n const dayMs = 86400000;\n const minuteMs = 60000;\n const localTS = objToLocalTS(this.c);\n const oEarlier = this.zone.offset(localTS - dayMs);\n const oLater = this.zone.offset(localTS + dayMs);\n\n const o1 = this.zone.offset(localTS - oEarlier * minuteMs);\n const o2 = this.zone.offset(localTS - oLater * minuteMs);\n if (o1 === o2) {\n return [this];\n }\n const ts1 = localTS - o1 * minuteMs;\n const ts2 = localTS - o2 * minuteMs;\n const c1 = tsToObj(ts1, o1);\n const c2 = tsToObj(ts2, o2);\n if (\n c1.hour === c2.hour &&\n c1.minute === c2.minute &&\n c1.second === c2.second &&\n c1.millisecond === c2.millisecond\n ) {\n return [clone(this, { ts: ts1 }), clone(this, { ts: ts2 })];\n }\n return [this];\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's local week year\n * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52\n * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53\n * @type {number}\n */\n get weeksInLocalWeekYear() {\n return this.isValid\n ? weeksInWeekYear(\n this.localWeekYear,\n this.loc.getMinDaysInFirstWeek(),\n this.loc.getStartOfWeek()\n )\n : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOptions(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link DateTime#setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}.\n *\n * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`.\n * They cannot be mixed with ISO-week units like `weekday`.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, this.loc);\n\n const settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(\n { ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek), ...normalized },\n minDaysInFirstWeek,\n startOfWeek\n );\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian({ ...gregorianToOrdinal(this.c), ...normalized });\n } else {\n mixed = { ...this.toObject(), ...normalized };\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link DateTime#plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit, { useLocaleWeeks = false } = {}) {\n if (!this.isValid) return this;\n\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n if (useLocaleWeeks) {\n const startOfWeek = this.loc.getStartOfWeek();\n const { weekday } = this;\n if (weekday < startOfWeek) {\n o.weekNumber = this.weekNumber - 1;\n }\n o.weekday = startOfWeek;\n } else {\n o.weekday = 1;\n }\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit, opts) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit, opts)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=false] - add the time zone format extension\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO({\n format = \"extended\",\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset = true,\n extendedZone = false,\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n const ext = format === \"extended\";\n\n let c = toISODate(this, ext);\n c += \"T\";\n c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);\n return c;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return toISODate(this, format === \"extended\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n includePrefix = false,\n extendedZone = false,\n format = \"extended\",\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n let c = includePrefix ? \"T\" : \"\";\n return (\n c +\n toISOTime(\n this,\n format === \"extended\",\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n )\n );\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) {\n let fmt = \"HH:mm:ss.SSS\";\n\n if (includeZone || includeOffset) {\n if (includeOffsetSpace) {\n fmt += \" \";\n }\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += \"ZZ\";\n }\n }\n\n return toTechFormat(this, fmt, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;\n } else {\n return `DateTime { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns the epoch seconds (as a whole number) of this DateTime.\n * @return {number}\n */\n toUnixInteger() {\n return this.isValid ? Math.floor(this.ts / 1000) : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = { ...this.c };\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\"created by diffing an invalid DateTime\");\n }\n\n const durOpts = { locale: this.locale, numberingSystem: this.numberingSystem, ...opts };\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link DateTime#diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.now(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit, opts) {\n if (!this.isValid) return false;\n\n const inputMs = otherDateTime.valueOf();\n const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true });\n return (\n adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts)\n );\n }\n\n /**\n * Equality check\n * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({}, { zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n let units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n let unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(base, this.plus(padding), {\n ...options,\n numeric: \"always\",\n units,\n unit,\n });\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, {\n ...options,\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true,\n });\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link DateTime#toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n","import { type OpeningHours } from \"@/models/AppLocation\";\nimport { DateTime, Info } from \"luxon\";\nimport type { Calendar, CalendarDate, CalendarMonth } from \"@/models/TimeSlot\";\n\n\nexport default class CalendarGenerator {\n private now: DateTime;\n private static locale = \"en\";\n private openingDays: OpeningHours[] = [];\n private calendar: Calendar;\n\n constructor(openingHours?: OpeningHours[]) {\n this.now = DateTime.now();\n if (openingHours) this.openingDays.push(...openingHours);\n this.calendar = this.generateYear();\n }\n\n public getCalendar() {\n return this.calendar;\n }\n\n public static setLocale(locale: string) {\n CalendarGenerator.locale = locale;\n }\n\n public static getWeekDaysLabels() {\n return Info.weekdays(\"short\", { locale: CalendarGenerator.locale }).map(name => name.toUpperCase())\n }\n\n private isClosed(weekday: number): boolean {\n return !this.openingDays?.some(day => day.weekday === weekday && day.slots?.length);\n }\n\n private isPast(day: number, month: number, year: number): boolean {\n if ((this.now.year === year && this.now.month < month) || this.now.year < year) {\n return false;\n } else {\n const date = DateTime.fromObject({ day, month, year });\n return date.startOf(\"day\") < this.now.startOf(\"day\");\n }\n }\n\n private generateId(day: number, weekday: number, month: number, year: number) {\n return `${day}${weekday}${month}${year}`;\n }\n\n public generateDate(day: number, weekday: number, month: number, year: number) {\n return {\n id: this.generateId(day, weekday, month, year),\n day,\n weekday,\n month,\n year,\n isClosed: this.isClosed(weekday),\n isPast: this.isPast(day, month, year)\n };\n }\n\n private generatePaddingDates(weekday: number): CalendarDate[] {\n const padding = [];\n for (let i = 0; i < weekday - 1; i++) {\n padding.push({ isPadding: true });\n }\n return padding;\n }\n\n private generateMonth(month: number, year: number): CalendarMonth {\n const dates: CalendarDate[] = [];\n\n const firstDay = DateTime.fromObject({ day: 1, month: month, year: year }).setLocale(\n CalendarGenerator.locale\n );\n const monthName = firstDay.setLocale(CalendarGenerator.locale).toFormat(\"MMMM\");\n\n const padding = this.generatePaddingDates(firstDay.weekday);\n if (padding.length) {\n dates.push(...padding);\n }\n\n for (let i = 0; i < (firstDay.daysInMonth || 0); i++) {\n const weekday = (i + firstDay.weekday) % 7;\n const day = i + firstDay.day;\n\n const calendarDate: CalendarDate = this.generateDate(day, weekday, month, year);\n dates.push(calendarDate);\n }\n\n return { name: `${monthName} ${year}`, number: month, year, dates };\n }\n\n public generateYear(firstMonth?: number, year?: number): Calendar {\n this.now = DateTime.now();\n const startMonth = firstMonth || this.now.month;\n const startYear = year || this.now.year;\n const months: CalendarMonth[] = [];\n for (let i = 0; i < 12; i++) {\n const month = ((i + startMonth - 1) % 12) + 1;\n const maybeNextYear = startYear + Math.floor((i + startMonth - 1) / 12);\n months.push(this.generateMonth(month, maybeNextYear));\n }\n return months;\n }\n\n public generateTodaysDate() {\n this.now = DateTime.now();\n const { day, weekday, month, year } = this.now;\n return this.generateDate(day, weekday, month, year);\n }\n\n public static isSameDate(dateA: CalendarDate, dateB: CalendarDate): boolean {\n return dateA.id === dateB.id;\n }\n}\n","import type { Calendar, CalendarDate } from \"@/models/TimeSlot\";\nimport CalendarGenerator from \"@/utils/calendar\";\nimport { ref } from \"vue\";\nimport { useApp } from \"../app\";\nimport { Saletype } from \"@/models/App\";\nimport { computed } from \"vue\";\n\nconst reserveCalendar = ref([]);\nconst reserveTodaysCalendarDate = ref();\nconst weekDaysLabels = ref(CalendarGenerator.getWeekDaysLabels());\n\nexport function useCalendar() {\n\tconst { saletypeOpeningHours, reservationService, activeSaletypes } = useApp();\n\n\tweekDaysLabels.value = CalendarGenerator.getWeekDaysLabels();\n\tif(!reserveCalendar.value.length && activeSaletypes.value.includes(Saletype.RESERVATION)) {\n\t\t\tconst reserveCalendarGenerator = new CalendarGenerator(reservationService.value?.slots);\n\t\t\treserveCalendar.value = reserveCalendarGenerator.getCalendar();\n\t\t\treserveTodaysCalendarDate.value = reserveCalendarGenerator.generateTodaysDate();\n\t}\n\t\n\tconst calendarGenerator = computed(() => new CalendarGenerator(saletypeOpeningHours.value));\n\tconst calendar = computed(() => calendarGenerator.value.getCalendar());\n\tconst todaysCalendarDate = computed(() => calendarGenerator.value.generateTodaysDate());\n\n\tconst isSameDate = (dateA: CalendarDate, dateB: CalendarDate) => CalendarGenerator.isSameDate(dateA, dateB);\n\n return {\n calendar,\n todaysCalendarDate,\n reserveCalendar,\n reserveTodaysCalendarDate,\n weekDaysLabels,\n isSameDate\n };\n}","import { Saletype } from \"@/models/App\";\nimport type { ApiTimeSlot, TimeSlot } from \"@/models/TimeSlot\";\nimport { DateTime } from \"luxon\";\nimport { get as apiGet, post as apiPost } from \"./API\";\n\nexport interface GetAvailableSlotsParams {\n saleType: Saletype;\n date: DateTime;\n orderItems: {\n productId: string;\n quantity: number;\n removedComponents: string[];\n addedComponents: string[];\n }[];\n}\n\nexport function mapOrderAvailableSlots(slots: ApiTimeSlot[], fromToTimeSlots: boolean): TimeSlot[] {\n return slots.map(slot => {\n return {\n ...slot,\n isPast: DateTime.fromISO(slot.from) < DateTime.now(),\n time: fromToTimeSlots\n ? `${DateTime.fromISO(slot.from).toFormat(\"T\")} - ${DateTime.fromISO(slot.to).toFormat(\n \"T\"\n )}`\n : DateTime.fromISO(slot.to).toFormat(\"T\")\n };\n });\n}\n\nexport function mapReserveAvailableSlots(\n slots: ApiTimeSlot[],\n fromToTimeSlots: boolean\n): TimeSlot[] {\n return slots.map(slot => {\n return {\n ...slot,\n isPast: DateTime.fromISO(slot.from) < DateTime.now(),\n time: fromToTimeSlots\n ? `${DateTime.fromISO(slot.from).toFormat(\"T\")} - ${DateTime.fromISO(slot.to).toFormat(\n \"T\"\n )}`\n : DateTime.fromISO(slot.from).toFormat(\"T\")\n };\n });\n}\n\nexport async function getOrderAvailableSlots(\n params: GetAvailableSlotsParams,\n fromToTimeSlots: boolean\n): Promise {\n const slots = await apiPost(\"orders/available-slots\", {\n ...params,\n date: params.date.set({ hour: 12 }).toString()\n });\n return mapOrderAvailableSlots(slots as ApiTimeSlot[], fromToTimeSlots);\n}\n\nexport async function getReservationAvailableSlots(\n date: DateTime,\n fromToTimeSlots: boolean\n): Promise {\n const slots = await apiGet(\"reservations/available-slots\", {\n params: {\n date: date.toString()\n }\n });\n return mapReserveAvailableSlots(slots as ApiTimeSlot[], fromToTimeSlots);\n}\n","import type { CalendarDate, TimeSlot } from \"@/models/TimeSlot\";\nimport { type Ref, ref } from \"vue\";\nimport { useApp } from \"../app\";\nimport { getOrderAvailableSlots, getReservationAvailableSlots } from \"@/api/TimeSlots\";\nimport { useCart } from \"../cart\";\nimport { DateTime } from \"luxon\";\n\nconst availableSlots = ref([]);\nconst currentSelectedTimeSlot: Ref = ref();\n\nexport function useTimeSlots() {\n const { cart } = useCart();\n\n const getCartOrderItems = () => {\n return cart.value?.items.map(item => {\n const mandatoryComponents = item.configuration.mandatoryComponents\n ? item.configuration.mandatoryComponents.map(mc => mc.productId)\n : [];\n return {\n productId: item.product.id,\n quantity: item.quantity,\n addedComponents: item.configuration.addedComponents\n .map(ac => ac.productId)\n .concat(mandatoryComponents),\n removedComponents: item.configuration.removedComponents.map(rc => rc.productId)\n };\n });\n };\n\n const getDateTimeFromCalendarDate = (date: CalendarDate) => {\n return DateTime.fromObject({ day: date.day, month: date.month, year: date.year });\n };\n\n const isSameTimeSlot = (timeSlotA: TimeSlot, timeSlotB: TimeSlot) => {\n return (\n timeSlotA.time === timeSlotB.time &&\n timeSlotA.isFull === timeSlotB.isFull &&\n timeSlotA.isPast === timeSlotB.isPast\n );\n };\n\n const isStillAvailable = (slot: TimeSlot, slots: TimeSlot[]) => {\n return !!slots.some(availableSlot => isSameTimeSlot(availableSlot, slot));\n };\n\n const getOrderSlots = async (calendarDate: CalendarDate) => {\n const { getFromToTimeSlots } = useApp();\n const date = getDateTimeFromCalendarDate(calendarDate);\n const saleType = cart.value?.saletype;\n const orderItems = getCartOrderItems();\n if (saleType && orderItems) {\n const fromToTimeSlots = getFromToTimeSlots(saleType);\n availableSlots.value = await getOrderAvailableSlots(\n { date, saleType, orderItems },\n fromToTimeSlots\n );\n return availableSlots.value;\n } else {\n return [];\n }\n };\n\n const getReservationSlots = async (calendarDate: CalendarDate) => {\n const { reservationService } = useApp();\n const fromToTimeSlots = !!reservationService.value?.showTimeSlots;\n const date = getDateTimeFromCalendarDate(calendarDate);\n return await getReservationAvailableSlots(date, fromToTimeSlots);\n };\n\n return {\n availableSlots,\n currentSelectedTimeSlot,\n getOrderSlots,\n getReservationSlots,\n isStillAvailable,\n getDateTimeFromCalendarDate,\n isSameTimeSlot\n };\n}\n","import { type CalendarDate, type TimeSlot } from \"@/models/TimeSlot\";\nimport { useCalendar } from \"@/store/timeSlots/calendar\";\nimport { ref } from \"vue\";\nimport { DateTime } from \"luxon\";\nimport { useTimeSlots } from \"@/store/timeSlots/timeSlots\";\n\nexport interface DateTimeSlot {\n timeSlot: TimeSlot | null;\n date: CalendarDate;\n}\n\nconst currentSelectedDate = ref();\n\nexport function useDateTimeSlots() {\n const { todaysCalendarDate, reserveTodaysCalendarDate } = useCalendar();\n\n const getDateTimeFromCalendarDate = (date: CalendarDate) => {\n return DateTime.fromObject({ day: date.day, month: date.month, year: date.year });\n };\n\n const isDateTimeStillValid = async (dateTime?: DateTimeSlot) => {\n if (!dateTime) return;\n const { isStillAvailable, getOrderSlots } = useTimeSlots();\n const { date, timeSlot } = dateTime;\n if (date && timeSlot) {\n const isDatePast =\n DateTime.now().toFormat(\"yyyy-MM-dd\") >\n getDateTimeFromCalendarDate(date).toFormat(\"yyyy-MM-dd\");\n const slots = await getOrderSlots(date);\n return !isDatePast && !timeSlot.isPast && isStillAvailable(timeSlot, slots);\n } else {\n return false;\n }\n };\n\n const getFirstAvailableSlot = (slots: TimeSlot[]) => {\n return slots.find(slot => !slot.isFull && DateTime.fromISO(slot.from) > DateTime.now())\n };\n\n const getInitialOrderDateTimeSlots = async (date: CalendarDate): Promise => {\n \n const { getOrderSlots } = useTimeSlots();\n const slots = await getOrderSlots(date);\n const timeSlot = todaysCalendarDate.value ? getFirstAvailableSlot(slots) || null : null;\n return { date, timeSlot };\n };\n\n const getInitialReserveDateTimeSlots = async () => {\n const { getReservationSlots } = useTimeSlots();\n let date: CalendarDate | null = null;\n let timeSlot: TimeSlot | null = null;\n if (reserveTodaysCalendarDate.value) {\n date = { ...reserveTodaysCalendarDate.value };\n const slots = await getReservationSlots(reserveTodaysCalendarDate.value);\n timeSlot = getFirstAvailableSlot(slots) || null;\n }\n return { date, timeSlot };\n };\n\n const getTodaysFirstAvailableOrderDateTimeSlot = async () => {\n return todaysCalendarDate.value\n ? await getInitialOrderDateTimeSlots(todaysCalendarDate.value)\n : null;\n };\n\n return {\n currentSelectedDate,\n getInitialOrderDateTimeSlots,\n getFirstAvailableSlot,\n isDateTimeStillValid,\n getDateTimeFromCalendarDate,\n getTodaysFirstAvailableOrderDateTimeSlot,\n getInitialReserveDateTimeSlots\n };\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", version, }) {\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.apiKey = apiKey;\n this.authReferrerPolicy = authReferrerPolicy;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.language = language;\n this.libraries = libraries;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.region = region;\n this.retries = retries;\n this.url = url;\n this.version = version;\n if (Loader.instance) {\n if (!fastDeepEqual(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n * @deprecated\n */\n createUrl() {\n let url = this.url;\n url += `?callback=__googleMapsCallback`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `®ion=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n if (this.authReferrerPolicy) {\n url += `&auth_referrer_policy=${this.authReferrerPolicy}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n * @deprecated, use importLibrary() instead.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n * @deprecated, use importLibrary() instead.\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n importLibrary(name) {\n this.execute();\n return google.maps.importLibrary(name);\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n * @deprecated, use importLibrary() instead.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n var _a, _b;\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const params = {\n key: this.apiKey,\n channel: this.channel,\n client: this.client,\n libraries: this.libraries.length && this.libraries,\n v: this.version,\n mapIds: this.mapIds,\n language: this.language,\n region: this.region,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n // keep the URL minimal:\n Object.keys(params).forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (key) => !params[key] && delete params[key]);\n if (!((_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.importLibrary)) {\n // tweaked copy of https://developers.google.com/maps/documentation/javascript/load-maps-js-api#dynamic-library-import\n // which also sets the base url, the id, and the nonce\n /* eslint-disable */\n ((g) => {\n // @ts-ignore\n let h, a, k, p = \"The Google Maps JavaScript API\", c = \"google\", l = \"importLibrary\", q = \"__ib__\", m = document, b = window;\n // @ts-ignore\n b = b[c] || (b[c] = {});\n // @ts-ignore\n const d = b.maps || (b.maps = {}), r = new Set(), e = new URLSearchParams(), u = () => \n // @ts-ignore\n h || (h = new Promise((f, n) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n yield (a = m.createElement(\"script\"));\n a.id = this.id;\n e.set(\"libraries\", [...r] + \"\");\n // @ts-ignore\n for (k in g)\n e.set(k.replace(/[A-Z]/g, (t) => \"_\" + t[0].toLowerCase()), g[k]);\n e.set(\"callback\", c + \".maps.\" + q);\n a.src = this.url + `?` + e;\n d[q] = f;\n a.onerror = () => (h = n(Error(p + \" could not load.\")));\n // @ts-ignore\n a.nonce = this.nonce || ((_a = m.querySelector(\"script[nonce]\")) === null || _a === void 0 ? void 0 : _a.nonce) || \"\";\n m.head.append(a);\n })));\n // @ts-ignore\n d[l] ? console.warn(p + \" only loads once. Ignoring:\", g) : (d[l] = (f, ...n) => r.add(f) && u().then(() => d[l](f, ...n)));\n })(params);\n /* eslint-enable */\n }\n // While most libraries populate the global namespace when loaded via bootstrap params,\n // this is not the case for \"marker\" when used with the inline bootstrap loader\n // (and maybe others in the future). So ensure there is an importLibrary for each:\n const libraryPromises = this.libraries.map((library) => this.importLibrary(library));\n // ensure at least one library, to kick off loading...\n if (!libraryPromises.length) {\n libraryPromises.push(this.importLibrary(\"core\"));\n }\n Promise.all(libraryPromises).then(() => this.callback(), (error) => {\n const event = new ErrorEvent(\"error\", { error }); // for backwards compat\n this.loadErrorCallback(event);\n });\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.error(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n if (this.loading) ;\n else {\n this.loading = true;\n this.setScript();\n }\n }\n }\n}\n\nexport { DEFAULT_ID, Loader, LoaderStatus };\n//# sourceMappingURL=index.esm.js.map\n","import { isPlainObject, isFunction } from '@vue/shared';\nimport { nextTick } from 'vue';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar load = function load(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new Promise(function (resolve, reject) {\n if (typeof document === \"undefined\") {\n return;\n }\n\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = url;\n script.defer = options.defer;\n\n if (options.preconnectOrigin) {\n var link = document.createElement(\"link\");\n link.href = options.preconnectOrigin;\n link.rel = \"preconnect\";\n head.appendChild(link);\n }\n\n head.appendChild(script);\n script.onload = resolve;\n script.onerror = reject;\n });\n};\nvar mergeDeep = function mergeDeep(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (!sources.length) {\n return target;\n }\n\n var source = sources.shift();\n\n if (!isPlainObject(target) || !isPlainObject(source)) {\n return;\n }\n\n for (var key in source) {\n if (isPlainObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, _defineProperty({}, key, {}));\n }\n\n mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, _defineProperty({}, key, source[key]));\n }\n }\n\n return mergeDeep.apply(void 0, [target].concat(sources));\n};\nvar isBrowser = function isBrowser() {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return false;\n }\n\n return true;\n};\nvar warn = function warn(text) {\n var shouldLog = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (!isBrowser() || process.env.NODE_ENV === \"production\") {\n return;\n }\n\n if (!shouldLog) {\n return;\n }\n\n console.warn(\"[vue-gtag] \".concat(text));\n};\nvar validateScreenviewShape = function validateScreenviewShape() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n warn(\"Missing \\\"appName\\\" property inside the plugin options.\", obj.app_name == null);\n warn(\"Missing \\\"name\\\" property in the route.\", obj.screen_name == null);\n return obj;\n};\nfunction getPathWithBase() {\n var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var pathAsArray = path.split(\"/\");\n var baseAsArray = base.split(\"/\");\n\n if (pathAsArray[0] === \"\" && base[base.length - 1] === \"/\") {\n pathAsArray.shift();\n }\n\n return baseAsArray.join(\"/\") + pathAsArray.join(\"/\");\n}\n\nvar getDefaultParams = function getDefaultParams() {\n return {\n bootstrap: true,\n onReady: null,\n onError: null,\n onBeforeTrack: null,\n onAfterTrack: null,\n pageTrackerTemplate: null,\n customResourceURL: \"https://www.googletagmanager.com/gtag/js\",\n customPreconnectOrigin: \"https://www.googletagmanager.com\",\n deferScriptLoad: false,\n pageTrackerExcludedRoutes: [],\n pageTrackerEnabled: true,\n enabled: true,\n disableScriptLoad: false,\n pageTrackerScreenviewEnabled: false,\n appName: null,\n pageTrackerUseFullPath: false,\n pageTrackerPrependBase: true,\n pageTrackerSkipSamePath: true,\n globalDataLayerName: \"dataLayer\",\n globalObjectName: \"gtag\",\n defaultGroupName: \"default\",\n includes: null,\n config: {\n id: null,\n params: {\n send_page_view: false\n }\n }\n };\n};\nvar params = {};\nvar setOptions = function setOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaultParams = getDefaultParams();\n params = mergeDeep(defaultParams, options);\n};\nvar getOptions = function getOptions() {\n return params;\n};\n\nvar query = (function () {\n var _window;\n\n var _getOptions = getOptions(),\n globalObjectName = _getOptions.globalObjectName;\n\n if (!isBrowser() || typeof window[globalObjectName] === \"undefined\") {\n return;\n }\n\n (_window = window)[globalObjectName].apply(_window, arguments);\n});\n\nvar config = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _getOptions = getOptions(),\n config = _getOptions.config,\n includes = _getOptions.includes;\n\n query.apply(void 0, [\"config\", config.id].concat(args));\n\n if (Array.isArray(includes)) {\n includes.forEach(function (domain) {\n query.apply(void 0, [\"config\", domain.id].concat(args));\n });\n }\n});\n\nvar assignGlobalProperty = function assignGlobalProperty(id, value) {\n if (!isBrowser()) {\n return;\n }\n\n window[\"ga-disable-\".concat(id)] = value;\n};\n\nvar disable = (function () {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n var _getOptions = getOptions(),\n config = _getOptions.config,\n includes = _getOptions.includes;\n\n assignGlobalProperty(config.id, value);\n\n if (Array.isArray(includes)) {\n includes.forEach(function (domain) {\n return assignGlobalProperty(domain.id, value);\n });\n }\n});\n\nvar optOut = (function () {\n disable(true);\n});\n\nvar optIn = (function () {\n disable(false);\n});\n\nvar router;\nvar setRouter = function setRouter(instance) {\n router = instance;\n};\nvar getRouter = function getRouter() {\n return router;\n};\n\nvar event = (function (name) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _getOptions = getOptions(),\n includes = _getOptions.includes,\n defaultGroupName = _getOptions.defaultGroupName;\n\n if (params.send_to == null && Array.isArray(includes) && includes.length) {\n params.send_to = includes.map(function (domain) {\n return domain.id;\n }).concat(defaultGroupName);\n }\n\n query(\"event\", name, params);\n});\n\nvar pageview = (function (param) {\n if (!isBrowser()) {\n return;\n }\n\n var template;\n\n if (typeof param === \"string\") {\n template = {\n page_path: param\n };\n } else if (param.path || param.fullPath) {\n var _getOptions = getOptions(),\n useFullPath = _getOptions.pageTrackerUseFullPath,\n useBase = _getOptions.pageTrackerPrependBase;\n\n var router = getRouter();\n var base = router && router.options.base;\n var path = useFullPath ? param.fullPath : param.path;\n template = _objectSpread2(_objectSpread2({}, param.name && {\n page_title: param.name\n }), {}, {\n page_path: useBase ? getPathWithBase(path, base) : path\n });\n } else {\n template = param;\n }\n\n if (template.page_location == null) {\n template.page_location = window.location.href;\n }\n\n if (template.send_page_view == null) {\n template.send_page_view = true;\n }\n\n event(\"page_view\", template);\n});\n\nvar screenview = (function (param) {\n var _getOptions = getOptions(),\n appName = _getOptions.appName;\n\n if (!param) {\n return;\n }\n\n var template;\n\n if (typeof param === \"string\") {\n template = {\n screen_name: param\n };\n } else {\n template = param;\n }\n\n template.app_name = template.app_name || appName;\n event(\"screen_view\", template);\n});\n\nvar exception = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n event.apply(void 0, [\"exception\"].concat(args));\n});\n\nvar linker = (function (params) {\n config(\"linker\", params);\n});\n\nvar time = (function (params) {\n event(\"timing_complete\", params);\n});\n\nvar set = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n query.apply(void 0, [\"set\"].concat(args));\n});\n\nvar refund = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n event.apply(void 0, [\"refund\"].concat(args));\n});\n\nvar purchase = (function (params) {\n event(\"purchase\", params);\n});\n\nvar customMap = (function (map) {\n config({\n custom_map: map\n });\n});\n\nvar api = /*#__PURE__*/Object.freeze({\n __proto__: null,\n query: query,\n config: config,\n optOut: optOut,\n optIn: optIn,\n pageview: pageview,\n screenview: screenview,\n exception: exception,\n linker: linker,\n time: time,\n set: set,\n refund: refund,\n purchase: purchase,\n customMap: customMap,\n event: event\n});\n\nvar attachApi = function attachApi(app) {\n app.config.globalProperties.$gtag = api;\n};\n\nvar registerGlobals = (function () {\n if (!isBrowser()) {\n return;\n }\n\n var _getOptions = getOptions(),\n enabled = _getOptions.enabled,\n globalObjectName = _getOptions.globalObjectName,\n globalDataLayerName = _getOptions.globalDataLayerName;\n\n if (window[globalObjectName] == null) {\n window[globalDataLayerName] = window[globalDataLayerName] || [];\n\n window[globalObjectName] = function () {\n window[globalDataLayerName].push(arguments);\n };\n }\n\n window[globalObjectName](\"js\", new Date());\n\n if (!enabled) {\n optOut();\n }\n\n return window[globalObjectName];\n});\n\nvar mergeDefaultParams = function mergeDefaultParams(params) {\n return _objectSpread2({\n send_page_view: false\n }, params);\n};\n\nvar addConfiguration = (function () {\n var _getOptions = getOptions(),\n config = _getOptions.config,\n includes = _getOptions.includes;\n\n query(\"config\", config.id, mergeDefaultParams(config.params));\n\n if (Array.isArray(includes)) {\n includes.forEach(function (domain) {\n query(\"config\", domain.id, mergeDefaultParams(domain.params));\n });\n }\n});\n\nvar track = (function () {\n var to = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _getOptions = getOptions(),\n appName = _getOptions.appName,\n proxy = _getOptions.pageTrackerTemplate,\n useScreenview = _getOptions.pageTrackerScreenviewEnabled,\n skipSamePath = _getOptions.pageTrackerSkipSamePath;\n\n if (skipSamePath && to.path === from.path) {\n return;\n }\n\n var template = to;\n\n if (isFunction(proxy)) {\n template = proxy(to, from);\n } else if (useScreenview) {\n template = validateScreenviewShape({\n app_name: appName,\n screen_name: to.name\n });\n }\n\n if (useScreenview) {\n screenview(template);\n return;\n }\n\n pageview(template);\n});\n\nvar isRouteExcluded = function isRouteExcluded(route) {\n var _getOptions = getOptions(),\n routes = _getOptions.pageTrackerExcludedRoutes;\n\n return routes.includes(route.path) || routes.includes(route.name);\n};\n\nvar addRoutesTracker = (function () {\n var _getOptions2 = getOptions(),\n onBeforeTrack = _getOptions2.onBeforeTrack,\n onAfterTrack = _getOptions2.onAfterTrack;\n\n var router = getRouter();\n router.isReady().then(function () {\n nextTick().then(function () {\n var currentRoute = router.currentRoute;\n addConfiguration();\n\n if (isRouteExcluded(currentRoute.value)) {\n return;\n }\n\n track(currentRoute.value);\n });\n router.afterEach(function (to, from) {\n nextTick().then(function () {\n if (isRouteExcluded(to)) {\n return;\n }\n\n if (isFunction(onBeforeTrack)) {\n onBeforeTrack(to, from);\n }\n\n track(to, from);\n\n if (isFunction(onAfterTrack)) {\n onAfterTrack(to, from);\n }\n });\n });\n });\n});\n\nvar bootstrap = (function () {\n var _getOptions = getOptions(),\n onReady = _getOptions.onReady,\n onError = _getOptions.onError,\n globalObjectName = _getOptions.globalObjectName,\n globalDataLayerName = _getOptions.globalDataLayerName,\n config = _getOptions.config,\n customResourceURL = _getOptions.customResourceURL,\n customPreconnectOrigin = _getOptions.customPreconnectOrigin,\n deferScriptLoad = _getOptions.deferScriptLoad,\n pageTrackerEnabled = _getOptions.pageTrackerEnabled,\n disableScriptLoad = _getOptions.disableScriptLoad;\n\n var isPageTrackerEnabled = Boolean(pageTrackerEnabled && getRouter());\n registerGlobals();\n\n if (isPageTrackerEnabled) {\n addRoutesTracker();\n } else {\n addConfiguration();\n }\n\n if (disableScriptLoad) {\n return;\n }\n\n return load(\"\".concat(customResourceURL, \"?id=\").concat(config.id, \"&l=\").concat(globalDataLayerName), {\n preconnectOrigin: customPreconnectOrigin,\n defer: deferScriptLoad\n }).then(function () {\n if (onReady) {\n onReady(window[globalObjectName]);\n }\n })[\"catch\"](function (error) {\n if (onError) {\n onError(error);\n }\n\n return error;\n });\n});\n\nvar install = function install(app) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var router = arguments.length > 2 ? arguments[2] : undefined;\n attachApi(app);\n setOptions(options);\n setRouter(router);\n\n if (getOptions().bootstrap) {\n bootstrap();\n }\n};\n\nexport default install;\nexport { addRoutesTracker, bootstrap, config, customMap, event, exception, install, linker, optIn, optOut, pageview, purchase, query, refund, screenview, set, setOptions, setRouter, time };\n","import config from \"@/config\";\nimport { Loader } from \"@googlemaps/js-api-loader\";\nimport type { App } from \"@/models\";\nimport type { Address } from \"@/models/Address\";\nimport { setOptions, bootstrap } from \"vue-gtag\";\nimport type { NullRef } from \".\";\nimport type { Autocomplete } from \"@/store/delivery/autocompletes\";\nimport { ref } from \"vue\";\n\nexport async function loadGoogleMaps() {\n const loader = new Loader({ apiKey: config.mapsAPIKey, libraries: [\"places\"] });\n await loader.load();\n}\n\nexport async function getDeliveryDistanceMatrix(restaurantAddress: any, address: Address) {\n const service = new window.google.maps.DistanceMatrixService();\n\n const distanceMatrixOptions = {\n origins: [restaurantAddress],\n destinations: [\n `${address.address} ${address.streetNumber || 1}, ${address.city} ${address.nation}`\n ],\n travelMode: \"DRIVING\",\n unitSystem: window.google.maps.UnitSystem.METRIC\n };\n\n return new Promise((resolve, reject) => {\n service.getDistanceMatrix(distanceMatrixOptions, (result: any, resultString: string) => {\n if (result && result.rows[0]?.elements[0]?.distance) {\n resolve(result.rows[0].elements[0].distance.value / 1000.0);\n } else {\n reject(new Error(\"Non è stato possibile trovare l'indirizzo richiesto.\"));\n }\n });\n });\n}\n\ninterface AddressComponents {\n [streetNumber: string]: string;\n address: string;\n city: string;\n nation: string;\n zipCode: string;\n}\n\nconst addressComponentTypes: AddressComponents = {\n streetNumber: \"street_number\",\n address: \"route\",\n city: \"administrative_area_level_3\",\n nation: \"country\",\n zipCode: \"postal_code\"\n};\n\nconst addressComponentsToAddress = (googleAddressComponents: any): Address => {\n const address: Address = googleAddressComponents.reduce(\n (componentsObj: AddressComponents, component: any) => {\n for (const type in addressComponentTypes) {\n if (!componentsObj[type]) {\n componentsObj[type] = component.types.some(\n (compType: string) => compType === addressComponentTypes[type]\n )\n ? component[\"short_name\"]\n : \"\";\n }\n }\n return componentsObj;\n },\n {}\n );\n return address;\n};\n\nconst sessionToken = ref();\n\nexport async function getPlacesAutocompletes(\n address: string,\n locale: string\n): Promise {\n if (!sessionToken.value) {\n sessionToken.value = new window.google.maps.places.AutocompleteSessionToken();\n }\n\n const europeanCountries = [\n \"it\",\n \"fr\",\n \"de\",\n \"bg\",\n \"at\",\n \"be\",\n \"es\",\n \"hu\" /* \"hr\", \"el\", \"lt\", \"pt\", \"lu\", \"ro\", \"cz\", \"si\", \"dk\", \"mt\", \"sk\", \"nl\", \"fi\", \"ee\", \"cy\", \"se\", \"ie\", \"lv\", \"pl\" */\n ];\n const options = {\n input: address,\n language: locale,\n componentRestrictions: { country: europeanCountries },\n sessionToken: sessionToken.value\n };\n\n const autocomplete = new window.google.maps.places.AutocompleteService();\n return new Promise((resolve, reject) => {\n autocomplete.getPlacePredictions(options, (predictions: any[], status: string) => {\n if (status === \"OK\") {\n const autocompletes = predictions.map((prediction: any) => {\n return {\n placeId: prediction[\"place_id\"],\n address:\n prediction[\"structured_formatting\"][\"main_text\"] +\n \" \" +\n prediction[\"structured_formatting\"][\"secondary_text\"]\n };\n });\n resolve(autocompletes);\n }\n reject(new Error(\"Autocomplete service error\"));\n });\n });\n}\n\nconst geocoderResultsToFirstAddress = (predictions: any): Address => {\n const prediction = predictions[0];\n return addressComponentsToAddress(prediction[\"address_components\"]);\n};\n\nexport async function getFullAddress(placeId: string) {\n sessionToken.value = null;\n const geocoder = new window.google.maps.Geocoder();\n\n return new Promise
((resolve, reject) => {\n geocoder.geocode({ placeId }, function(results: any, status: string) {\n if (status == \"OK\") {\n resolve(geocoderResultsToFirstAddress(results));\n } else {\n reject(new Error(\"Geocoder error\"));\n }\n });\n });\n}\n\nexport async function getGeocodingFromGeolocation(location: {\n lat: number;\n lng: number;\n}): Promise
{\n const geocoder = new window.google.maps.Geocoder();\n const bounds = new window.google.maps.LatLngBounds(\n { lat: -10.770507, lng: 34.899943 },\n { lat: 20.958009, lng: 55.288844 }\n );\n\n return new Promise
((resolve, reject) =>\n geocoder.geocode({ location, bounds }, function(results: any, status: string) {\n if (status == \"OK\") {\n resolve(geocoderResultsToFirstAddress(results));\n } else {\n reject(new Error(\"Geocoder error\"));\n }\n })\n );\n}\n\nexport async function setGTag(app: NullRef) {\n if (app.value?.GTMContainerId) {\n setOptions({\n config: { id: app.value.GTMContainerId }\n });\n await bootstrap();\n }\n}\n","import { type Address } from \"@/models/Address\";\nimport { getDeliveryDistanceMatrix } from \"@/utils/googleUtils\";\nimport { computed } from \"vue\";\nimport { useApp } from \"../app\";\n\nexport function useDeliveryDistance() {\n const { deliveryService, locationAddress } = useApp();\n\n const maxDeliveryDistance = computed(() => deliveryService.value?.maxDeliveryDistance);\n\n const getDistanceFromLocation = async (address: Address) => {\n const distanceMatrix = await getDeliveryDistanceMatrix(locationAddress.value, address);\n return distanceMatrix;\n };\n\n const isAddressInRange = (address?: Address) => {\n const distance = address?.distanceKm;\n if(!distance && !(distance === 0)) return false;\n if(!maxDeliveryDistance.value) return true;\n return distance < maxDeliveryDistance.value;\n };\n\n return { getDistanceFromLocation, isAddressInRange, maxDeliveryDistance };\n}\n","import type { FidelityCardMovement, User } from \"@/models\";\nimport type { Address } from \"@/models/Address\";\nimport type { Order, Reservation } from \"@/models/Order\";\nimport { useDeliveryDistance } from \"@/store/delivery/deliveryDistance\";\nimport { get as apiGet, post as apiPost, put as apiPut } from \"./API\";\n\nconst mapUserPlacesToDeliveryAddresses = async (places: Address[]): Promise => {\n const { getDistanceFromLocation } = useDeliveryDistance();\n for (const place of places) {\n if (!place.distanceKm && !(place.distanceKm === 0)) {\n place.distanceKm = await getDistanceFromLocation(place);\n }\n }\n return places;\n};\n\nexport async function getProfile(): Promise {\n const user = (await apiGet(\"user\", { requiresAuth: true })) as User;\n return user;\n}\n\n\nexport async function getFidelityCardMovementsHistory(): Promise {\n return (await apiGet(\"fidelity-card-movements\", { requiresAuth: true })).movements;\n}\n\nexport async function getUserPlaces(): Promise {\n const user = (await apiGet(\"user\", { requiresAuth: true })) as User;\n if (user.places) {\n const addresses = await mapUserPlacesToDeliveryAddresses(user.places);\n return addresses;\n }\n return [];\n}\n\nexport async function getOrderHistory(): Promise {\n return apiGet(\"orders\", { requiresAuth: true }).then((res: Order[]) =>\n res.map(ord => {\n const index = ord.orderItems.findIndex(o => o.isSubtotal);\n if (index > -1) {\n // Il subtotal lo devo visualizzare sempre alla fine (come riepilogo).\n ord.orderItems.push(ord.orderItems.splice(index, 1)[0]);\n }\n return ord;\n })\n );\n}\n\nexport async function getReservationHistory(): Promise {\n return apiGet(\"reservations\", { requiresAuth: true });\n}\n\nexport async function updateProfile(data: any): Promise {\n return apiPut(\"user\", data, { requiresAuth: true });\n}\n\nexport async function updatePlaces(places: Address[]): Promise {\n for(const address of places) address.distanceKm = undefined;\n return apiPut(\"user/places\", { places }, { requiresAuth: true });\n}\n\nexport async function updatePassword(data: any): Promise {\n return apiPost(\"user/change-password\", data, { requiresAuth: true });\n}\n\nexport async function resetPassword(data: any): Promise {\n return apiPost(\"reset-password\", data);\n}\n\nexport async function requestResetPassword(data: any): Promise {\n return apiPost(\"reset-password/request\", data);\n}\n\nexport async function register(data: any): Promise<{ confirmed: boolean }> {\n return apiPost(\"users\", data);\n}\n\nexport async function confirmAccount(data: any): Promise {\n return apiPost(\"confirm-account\", data);\n}\n\nexport async function facebook(data: any): Promise<{ username: string; password: string }> {\n return apiPost(\"users/facebook\", data);\n}\n","import { CartPrefix } from \"@/models/Cart\";\n\nexport enum LSKeys {\n CART = \"cart\",\n ADDRESSES = \"addresses\",\n ADD_TO_HOME_IOS_POP_OVER = \"addToHomeIOSPopOver\",\n ONBOARDING = \"onboarding\",\n TABLE = \"table\",\n LOCALE = \"locale\"\n}\n\nconst lsKeys: Record = {\n cart: \"\",\n addresses: \"\",\n addToHomeIOSPopOver: \"AddToHomeIOSSafariPopOver\",\n onboarding: \"Onboarding\",\n table: \"Table_table\",\n locale: \"App_locale\"\n};\n\nexport const LS = {\n init: (cartPrefix: CartPrefix, channel: string) => {\n lsKeys.cart = `Cart_${cartPrefix}`;\n lsKeys.addresses = `addresses-${channel}`;\n },\n get: (key: LSKeys) => {\n const itemKey = lsKeys[key];\n const JSONItem = window.localStorage.getItem(itemKey);\n if (JSONItem) {\n let value: any;\n try {\n value = JSON.parse(JSONItem);\n } catch (e) {\n LS.remove(key);\n location.reload();\n }\n return value;\n } else {\n return null;\n }\n },\n set: (key: LSKeys, value: any) => {\n const item = lsKeys[key];\n if (item && value) {\n window.localStorage.setItem(lsKeys[key], JSON.stringify(value));\n }\n },\n remove: (key: LSKeys) => {\n const item = lsKeys[key];\n if (item) {\n window.localStorage.removeItem(lsKeys[key]);\n }\n }\n};\n\nexport enum SSKeys {\n AGE_CONFIRMED = \"ageConfirmed\"\n}\n\nconst ssKeys: Record = {\n ageConfirmed: \"AgeConfirmed\"\n};\n\nexport const SS = {\n get: (key: SSKeys) => {\n const itemKey = ssKeys[key];\n const JSONItem = window.sessionStorage.getItem(itemKey);\n if (JSONItem) {\n let value: any;\n try {\n value = JSON.parse(JSONItem);\n } catch (e) {\n SS.remove(key);\n location.reload();\n }\n return value;\n } else {\n return null;\n }\n },\n set: (key: SSKeys, value: any) => {\n const item = ssKeys[key];\n if (item && value) {\n window.sessionStorage.setItem(ssKeys[key], JSON.stringify(value));\n }\n },\n remove: (key: SSKeys) => {\n const item = ssKeys[key];\n if (item) {\n window.sessionStorage.removeItem(ssKeys[key]);\n }\n }\n};\n","import { getUserPlaces, updatePlaces } from \"@/api/User\";\nimport { type Address, isNotDuplicateAddress } from \"@/models/Address\";\nimport type { Auth } from \"@/plugins/auth\";\nimport { LS, LSKeys } from \"@/utils/localStorage\";\n\nexport function useLocalStorageAddressesService(auth?: Auth) {\n // Fa l'update degli indirizzi in locale e, se l'utente è loggato, in modo asincrono aggiorna anche le api\n const updateLocalStorageAddresses = (addresses: Address[]) => {\n LS.set(LSKeys.ADDRESSES, addresses);\n if (auth && auth.check()) {\n updatePlaces(JSON.parse(JSON.stringify(addresses)));\n }\n };\n\n // Concatena due array di address rimuovendo i duplicati e salva il tutto in locale (e tramite api)\n const mergeAddresses = (localAddresses: Address[], addressesToBeMerged: Address[]) => {\n if (localAddresses.length) {\n const uniqueAddresses = localAddresses\n .filter((address: Address) => isNotDuplicateAddress(addressesToBeMerged, address))\n .map(address => ({ ...address, isDefaultDeliveryAddress: false }));\n addressesToBeMerged.push(...uniqueAddresses);\n }\n updateLocalStorageAddresses(addressesToBeMerged);\n return addressesToBeMerged;\n };\n\n // Permette di mergiare gli indirizzi presenti in locale con quelli provenienti dall'api che ritorna il profilo dell'user\n const mergeLocalStorageAndApiAddresses = async (addresses: Address[]) => {\n const userPlaces = await getUserPlaces();\n addresses = mergeAddresses(addresses, userPlaces || []);\n return addresses;\n };\n\n const getLocalStorageAddresses = async (): Promise => {\n let addresses: string | null | Address[] = LS.get(LSKeys.ADDRESSES);\n if (addresses && addresses !== \"null\" && addresses.length) {\n return addresses as Address[];\n } else {\n if (auth && auth.check()) {\n addresses = await mergeLocalStorageAndApiAddresses([]);\n } else {\n addresses = [];\n updateLocalStorageAddresses(addresses);\n }\n return addresses;\n }\n };\n\n const clearAddresses = () => {\n LS.set(LSKeys.ADDRESSES, []);\n };\n\n return {\n updateLocalStorageAddresses,\n getLocalStorageAddresses,\n mergeAddresses,\n clearAddresses,\n mergeLocalStorageAndApiAddresses\n };\n}\n","import type { Address } from \"@/models/Address\";\nimport type { DeliveryPrice, KmRangeDeliveryPrice, ZipCodeDeliveryPrice } from \"@/models/App\";\nimport { computed, ref } from \"vue\";\nimport { useApp } from \"../app\";\n\nconst deliveryAddress = ref();\n\nexport function useDeliveryAddressSelector() {\n const { deliveryService } = useApp();\n\n const getZipCodeDeliveryCost = (\n zipCodeDeliveryCosts: ZipCodeDeliveryPrice[],\n zipCode: string\n ) => {\n const currentDeliveryCost = zipCodeDeliveryCosts.find(cost => cost.zipCode == zipCode);\n return currentDeliveryCost || null;\n };\n\n const getKmRangeCost = (\n kmRangeDeliveryCosts: KmRangeDeliveryPrice[],\n distanceKm: number\n ): KmRangeDeliveryPrice | null => {\n const fartherDeliveryCosts: KmRangeDeliveryPrice[] = kmRangeDeliveryCosts.filter(\n // Ottiene i range più grandi della distanza dell'indirizzo dell'utente\n cost => parseInt(cost.kmRange) > distanceKm\n );\n if (fartherDeliveryCosts.length) {\n const currentDeliveryCost: KmRangeDeliveryPrice = fartherDeliveryCosts.reduce(\n // Estrae il range più piccolo (più vicino alla distanza dell'indirizzo di consegna)\n (prev, curr) => (prev.kmRange < curr.kmRange ? prev : curr)\n );\n return currentDeliveryCost || null;\n } else {\n return null;\n }\n };\n\n const getDeliveryPrice = (address?: Address | null) => {\n if (!address || !deliveryService.value) return null;\n const {\n kmRangeDeliveryCosts,\n zipCodeDeliveryCosts,\n defaultDeliveryPrice\n } = deliveryService.value;\n const { distanceKm, zipCode } = address;\n\n let deliveryPrice: DeliveryPrice | null = null;\n if (kmRangeDeliveryCosts?.length && distanceKm) {\n deliveryPrice = getKmRangeCost(kmRangeDeliveryCosts, distanceKm);\n } else if (zipCodeDeliveryCosts?.length) {\n deliveryPrice = getZipCodeDeliveryCost(zipCodeDeliveryCosts, zipCode);\n }\n return deliveryPrice || defaultDeliveryPrice || null;\n };\n\n const deliveryPrice = computed(() => {\n return getDeliveryPrice(deliveryAddress.value);\n });\n\n const selectedDeliveryMinPurchase = computed(() => {\n return deliveryPrice.value?.minPurchase || deliveryService.value?.minPurchase || null;\n });\n\n return {\n deliveryPrice,\n deliveryAddress,\n selectedDeliveryMinPurchase,\n getDeliveryPrice\n };\n}\n","import { type Address, isEqualAddress } from \"@/models/Address\";\nimport type { Auth } from \"@/plugins/auth\";\nimport { ref } from \"vue\";\nimport { useDeliveryDistance } from \"@/store/delivery/deliveryDistance\";\nimport { useLocalStorageAddressesService } from \"@/store/delivery/localStorageAddressesService\";\nimport { useCart } from \"../cart\";\nimport { Saletype } from \"@/models/App\";\nimport { useDeliveryAddressSelector } from \"./deliveryAddress\";\n\nconst deliveryAddresses = ref([]);\nconst defaultDeliveryAddress = ref
();\n\nexport function useDeliveryAddresses(auth?: Auth) {\n const getDefaultDeliveryAddress = () => {\n return deliveryAddresses.value?.find(address => {\n return address.isDefaultDeliveryAddress;\n });\n };\n\n const saveNewAddress = async (address: Address) => {\n const { deliveryAddress } = useDeliveryAddressSelector();\n const { updateLocalStorageAddresses } = useLocalStorageAddressesService(auth);\n const { getDistanceFromLocation } = useDeliveryDistance();\n const { cart, setInitialCartDeliveryAddress } = useCart();\n \n const isDuplicate = deliveryAddresses.value.some(oldAddress => isEqualAddress(oldAddress, address));\n if(!isDuplicate) {\n const distance = await getDistanceFromLocation(address);\n const completeAddress: Address = {\n ...address,\n isDefaultDeliveryAddress: false,\n distanceKm: distance\n };\n deliveryAddresses.value?.push(completeAddress);\n updateLocalStorageAddresses(deliveryAddresses.value);\n defaultDeliveryAddress.value = getDefaultDeliveryAddress();\n if (cart.value && !cart.value.deliveryAddress) {\n setInitialCartDeliveryAddress();\n deliveryAddress.value = cart.value.deliveryAddress;\n }\n }\n\n };\n\n const modifyAddress = async (index: number, newValue: Address) => {\n const { updateLocalStorageAddresses } = useLocalStorageAddressesService(auth);\n const { getDistanceFromLocation } = useDeliveryDistance();\n const distance = await getDistanceFromLocation(newValue);\n if (\n newValue.isDefaultDeliveryAddress &&\n defaultDeliveryAddress.value &&\n !isEqualAddress(defaultDeliveryAddress.value, newValue)\n ) {\n deliveryAddresses.value = deliveryAddresses.value.map(place => {\n place.isDefaultDeliveryAddress = false;\n return place;\n });\n }\n deliveryAddresses.value[index] = {\n ...newValue,\n distanceKm: distance\n };\n updateLocalStorageAddresses(deliveryAddresses.value);\n defaultDeliveryAddress.value = getDefaultDeliveryAddress();\n };\n\n const deleteAddress = async (index: number) => {\n const { cart, setInitialCartDeliveryAddress } = useCart();\n const { updateLocalStorageAddresses } = useLocalStorageAddressesService(auth);\n const oldAddress = deliveryAddresses.value[index];\n deliveryAddresses.value.splice(index, 1);\n\n updateLocalStorageAddresses(deliveryAddresses.value);\n if (cart.value?.deliveryAddress) {\n if (!deliveryAddresses.value.length) {\n cart.value.deliveryAddress = null;\n cart.value.deliveryPrice = null;\n } else if(isEqualAddress(oldAddress, cart.value.deliveryAddress)) {\n cart.value.deliveryAddress = null;\n cart.value.deliveryPrice = null;\n setInitialCartDeliveryAddress();\n }\n }\n\n defaultDeliveryAddress.value = getDefaultDeliveryAddress();\n return oldAddress;\n };\n\n const getInitialDeliveryAddress = (): Address | null => {\n const { isAddressInRange } = useDeliveryDistance();\n let addressesInRange: Address[] | undefined;\n if (isAddressInRange(defaultDeliveryAddress.value)) {\n return defaultDeliveryAddress.value as Address;\n } else {\n addressesInRange = deliveryAddresses.value?.filter(place => isAddressInRange(place));\n return addressesInRange?.length ? addressesInRange[0] : null;\n }\n };\n\n const initLocalStorageAddressService = async () => {\n const { getLocalStorageAddresses } = useLocalStorageAddressesService(auth);\n const { getDefaultDeliveryAddress } = useDeliveryAddresses();\n deliveryAddresses.value = await getLocalStorageAddresses();\n defaultDeliveryAddress.value = getDefaultDeliveryAddress();\n };\n\n const onLoginGetUserDeliveryAddresses = async () => {\n const {\n mergeLocalStorageAndApiAddresses,\n getLocalStorageAddresses\n } = useLocalStorageAddressesService(auth);\n const addresses = await getLocalStorageAddresses();\n deliveryAddresses.value = await mergeLocalStorageAndApiAddresses(addresses);\n };\n\n const onLogoutKeepCartDeliveryPrice = () => {\n const { clearAddresses, updateLocalStorageAddresses } = useLocalStorageAddressesService(auth);\n const { cart } = useCart();\n clearAddresses();\n if (cart.value?.saletype === Saletype.DELIVERY && cart.value?.deliveryAddress) {\n updateLocalStorageAddresses([cart.value.deliveryAddress]);\n }\n };\n\n return {\n deliveryAddresses,\n defaultDeliveryAddress,\n saveNewAddress,\n modifyAddress,\n deleteAddress,\n getInitialDeliveryAddress,\n getDefaultDeliveryAddress,\n initLocalStorageAddressService,\n onLoginGetUserDeliveryAddresses,\n onLogoutKeepCartDeliveryPrice\n };\n}\n","export interface WarehouseItem {\n availableStockQuantity: number;\n}\n\nexport interface ModuleProduct {\n id: string;\n name: string;\n description?: string;\n priceUpselling?: number;\n priceVariation?: number;\n images: string[];\n instantMenu: boolean;\n warehouseItem?: WarehouseItem;\n allergens: Allergen[];\n}\n\nexport interface Module {\n name: string;\n maxCustomerChoices: number;\n minCustomerChoices?: number;\n products: ModuleProduct[];\n}\n\nexport interface ProductComponent {\n productId: string;\n name: string;\n isAllergen: string;\n}\n\nexport interface MandatoryComponentsGroup {\n name: string;\n components: MandatoryComponent[];\n}\n\nexport interface MandatoryComponent extends AddableComponent {\n isDefault: boolean;\n}\n\nexport interface AddableComponent extends ProductComponent {\n addingPrice: number;\n}\n\nexport interface RemovableComponent extends ProductComponent {\n removingPrice: number;\n}\n\nexport type ArticleAttributeFieldType = \"string\" | \"boolean\" | \"number\";\n\nexport interface ArticleAttribute {\n name: string;\n attributeTypeId: string;\n isMandatory: boolean;\n fieldType: ArticleAttributeFieldType;\n}\n\nexport interface StringArticleAttribute extends ArticleAttribute {\n fieldType: \"string\";\n valueSet: string[];\n}\n\nexport interface NumberArticleAttribute extends ArticleAttribute {\n fieldType: \"number\";\n}\n\nexport interface BooleanArticleAttribute extends ArticleAttribute {\n fieldType: \"boolean\";\n}\n\nexport type ArticleAttributeValue = string | boolean | number;\nexport interface ConfigurationArticleAttribute {\n name: string;\n value: ArticleAttributeValue;\n}\n\nexport interface ProductConfiguration {\n addedComponents: AddableComponent[];\n removedComponents: RemovableComponent[];\n mandatoryComponents: MandatoryComponent[];\n articleAttributes: {\n [id: string]: ConfigurationArticleAttribute;\n };\n modules: {\n [key: string]: ModuleProduct[];\n };\n upsellingModules: {\n [key: string]: ModuleProduct[];\n };\n}\n\nexport enum AllergenType {\n MILK = \"allergen:milk\",\n GLUTEN = \"allergen:gluten\",\n CRUSTACEANS = \"allergen:crustaceans\",\n EGGS = \"allergen:eggs\",\n PEANUTS = \"allergen:peanuts\",\n SOYA = \"allergen:soya\",\n MUSTARD = \"allergen:mustard\",\n FISH = \"allergen:fish\",\n CELERY = \"allergen:celery\",\n LUPIN = \"allergen:lupin\",\n MOLLUSCS = \"allergen:molluscs\",\n NUTS = \"allergen:nuts\",\n SESAME = \"allergen:sesame\",\n SULPHITES = \"allergen:sulphites\",\n DEFAULT = \"allergen:default\",\n}\n\nexport interface Allergen {\n name: string;\n imageUrl: string;\n code: AllergenType;\n}\n\nexport interface Product {\n id: string;\n name: string;\n description?: string;\n isHarmful: boolean;\n price: number;\n category: string;\n categoryId: string;\n tags?: string[];\n allergens: Allergen[];\n images: string[];\n standardComponents: ProductComponent[];\n mandatoryComponentsGroups: MandatoryComponentsGroup[];\n addableComponents: AddableComponent[];\n removableComponents: RemovableComponent[];\n articleAttributes?: ArticleAttribute[];\n isModular?: boolean;\n modules: Module[];\n warehouseItem?: WarehouseItem;\n}\n\nexport function isValid(configuration: ProductConfiguration, product: Product) {\n if (product.isModular) {\n for (const module of product.modules) {\n if (!(module.name in configuration.modules)) {\n return false;\n }\n if (module.minCustomerChoices) {\n if (configuration.modules[module.name].length < module.minCustomerChoices) {\n return false;\n }\n }\n }\n // at least 1 module selected\n const noneSelected = product.modules.every(module => {\n if (!(module.name in configuration.modules)) {\n return true;\n }\n if (configuration.modules[module.name].length == 0) {\n return true;\n }\n return false;\n });\n if (noneSelected) {\n return false;\n }\n }\n // check article attributes\n if (product.articleAttributes && product.articleAttributes.length) {\n for (const attribute of product.articleAttributes) {\n if (attribute.isMandatory) {\n if (!(attribute.attributeTypeId in configuration.articleAttributes)) {\n return false;\n }\n const value = configuration.articleAttributes[attribute.attributeTypeId].value;\n if (value === null) {\n return false;\n }\n if (typeof value === \"string\" && value.length == 0) {\n return false;\n }\n }\n }\n }\n return true;\n}\n\nexport function computePrice(product: Product, configuration: ProductConfiguration): number {\n let total = product.price;\n if (configuration.mandatoryComponents && configuration.mandatoryComponents instanceof Array) {\n for (const comp of configuration.mandatoryComponents) {\n total += comp?.addingPrice || 0;\n }\n }\n for (const comp of configuration.addedComponents) {\n total += comp.addingPrice;\n }\n for (const comp of configuration.removedComponents) {\n total += comp.removingPrice;\n }\n for (const moduleName in configuration.modules) {\n for (const moduleProduct of configuration.modules[moduleName]) {\n total += moduleProduct.priceVariation || 0;\n }\n }\n for (const upsellingName in configuration.upsellingModules) {\n for (const upsellingProduct of configuration.upsellingModules[upsellingName]) {\n total += upsellingProduct.priceUpselling || 0;\n }\n }\n return total;\n}\n","import { computePrice } from \"@/models/Product\";\nimport { ref } from \"vue\";\nimport { useCart } from \"@/store/cart\";\nimport { Saletype } from \"@/models/App\";\n\nconst orderTotal = ref(0);\nconst totalWithVariation = ref(0);\n\nexport function useTotal() {\n const { cart } = useCart();\n\n const computeOrderItemsTotal = () => {\n if (!cart.value) return 0;\n\n const itemsPricesArray = cart.value?.items.map(item => {\n const variationObject = item.variation;\n if (variationObject) {\n return variationObject.finalPrice;\n } else {\n const price = computePrice(item.product, item.configuration);\n return price * item.quantity;\n }\n });\n\n if (itemsPricesArray && itemsPricesArray.length) {\n return itemsPricesArray.reduce((prev, curr) => prev + curr, 0);\n } else {\n return 0;\n }\n };\n\n const computeTotalWithVariation = () => {\n if (!cart.value) return 0;\n let total = computeOrderItemsTotal();\n if (cart.value.saletype === Saletype.DELIVERY && cart.value.deliveryPrice) {\n total += cart.value.deliveryPrice.isPercentage\n ? Math.round((cart.value.deliveryPrice.price / 100) * total * 100) / 100\n : cart.value?.deliveryPrice.price;\n }\n if (cart.value.affiliationDiscount) {\n total += cart.value.affiliationDiscount.price;\n }\n if (cart.value.subtotalVariation) {\n total += cart.value.subtotalVariation.priceVariation;\n }\n return total;\n };\n\n return {\n totalWithVariation,\n orderTotal,\n computeOrderItemsTotal,\n computeTotalWithVariation\n };\n}\n","import { type Address } from \"@/models/Address\";\nimport { type DeliveryPrice, Saletype } from \"@/models/App\";\nimport { type Cart, CartPrefix, type InitCartOptions } from \"@/models/Cart\";\nimport { type Ref, ref, watch } from \"vue\";\nimport { DateTime } from \"luxon\";\nimport { type DateTimeSlot, useDateTimeSlots } from \"@/store/timeSlots/dateTimeSlots\";\nimport { useDeliveryAddresses } from \"./delivery/deliveryAddresses\";\nimport { useDeliveryAddressSelector } from \"./delivery/deliveryAddress\";\nimport { useTotal } from \"./cart/total\";\nimport { LS, LSKeys } from \"@/utils/localStorage\";\nimport type { CartPriceVariation, AffiliationDiscount } from \"@/models/PriceVariation\";\nimport type { AppliedPromoCode } from \"@/models/PromoCode\";\nimport { useApp } from \"./app\";\n\nconst cart = ref(null);\nconst cartPrefix: Ref = ref(null);\nconst priceList: Ref = ref(null);\n\nwatch(\n cart,\n () => {\n if (!cart.value) return LS.remove(LSKeys.CART);\n const { computeOrderItemsTotal, computeTotalWithVariation } = useTotal();\n\n cart.value.subTotal = computeOrderItemsTotal();\n cart.value.total = computeTotalWithVariation();\n LS.set(LSKeys.CART, cart.value);\n },\n { deep: true }\n);\n\nexport function useCart() {\n const isCartTooOld = (cart: Cart) => {\n if (cart && cart.createdAt) {\n const now = DateTime.now();\n const createdAt = DateTime.fromISO(cart.createdAt);\n const timeDifference = Math.floor(now.diff(createdAt).as(\"minutes\"));\n return timeDifference >= 0 ? timeDifference > 60 : true;\n } else {\n return true;\n }\n };\n\n const isCartPriceListObsolete = (cart: Cart, priceList?: string | null) => {\n return priceList ? cart?.priceList !== priceList : false;\n };\n\n const isSaletypeAvailable = (cart: Cart) => {\n const { activeSaletypes } = useApp();\n return activeSaletypes.value.includes(cart.saletype)\n }\n\n const isCartInvalid = (cart: Cart, newPriceList?: string | null) => {\n return !isSaletypeAvailable(cart) || isCartTooOld(cart) || isCartPriceListObsolete(cart, newPriceList);\n };\n\n const initCart = (options: InitCartOptions) => {\n cart.value = {\n createdAt: DateTime.now().toString(),\n prefix: options.prefix,\n saletype: options.saletype,\n items: [],\n priceList: options.priceList || null,\n deliveryAddress: options.deliveryAddress ? { ...options.deliveryAddress } : null,\n deliveryPrice: options.deliveryPrice || null,\n subtotalVariation: null,\n affiliationDiscount: null,\n promoCodes: [],\n orderTimeSlot: null,\n total: 0,\n subTotal: 0\n };\n };\n\n const setCartDeliveryAddress = (address: Address | null, deliveryPrice: DeliveryPrice | null) => {\n if (cart.value) {\n cart.value.deliveryAddress = address;\n cart.value.deliveryPrice = deliveryPrice;\n }\n };\n\n const setCartOrderTimeSlot = (slot: DateTimeSlot) => {\n if (cart.value) cart.value.orderTimeSlot = slot;\n };\n\n const setCartPromoCodes = (promoCodes: AppliedPromoCode[]) => {\n if (cart.value) cart.value.promoCodes = promoCodes;\n };\n\n const setCartSubtotalVariation = (variation: CartPriceVariation | null) => {\n if (cart.value) cart.value.subtotalVariation = variation;\n };\n\n const setCartMembershipDiscount = (discount: AffiliationDiscount | null) => {\n if (cart.value) cart.value.affiliationDiscount = discount;\n };\n\n const loadCart = (options: InitCartOptions) => { \n const cartJSON = LS.get(LSKeys.CART) as Cart | null | \"null\";\n if (!cartJSON || cartJSON === \"null\" || isCartInvalid(cartJSON, options.priceList)) {\n if (options.priceList) options = { ...options, priceList: options.priceList };\n initCart(options);\n } else {\n cart.value = cartJSON as Cart;\n cart.value.createdAt = DateTime.now().toString();\n }\n if (!cart.value) return;\n if (!cart.value.deliveryAddress || !cart.value.deliveryPrice) {\n if (options.deliveryAddress && options.deliveryPrice)\n setCartDeliveryAddress(options.deliveryAddress, options.deliveryPrice);\n }\n };\n\n const setInitialCartDeliveryAddress = () => {\n const { getInitialDeliveryAddress } = useDeliveryAddresses();\n const { getDeliveryPrice } = useDeliveryAddressSelector();\n const deliveryAddress = getInitialDeliveryAddress();\n const deliveryPrice: DeliveryPrice | null = getDeliveryPrice(deliveryAddress);\n setCartDeliveryAddress(deliveryAddress, deliveryPrice);\n };\n\n const loadRestaurantCart = async (saletype: Saletype) => {\n loadCart({ prefix: CartPrefix.RESTAURANT, saletype: saletype || Saletype.DELIVERY });\n\n if (cart.value && [Saletype.DELIVERY, Saletype.TAKEAWAY].includes(saletype)) {\n\n const { isDateTimeStillValid, getTodaysFirstAvailableOrderDateTimeSlot } = useDateTimeSlots();\n const isValid = cart.value?.orderTimeSlot && (await isDateTimeStillValid(cart.value?.orderTimeSlot));\n if (!isValid) cart.value.orderTimeSlot = await getTodaysFirstAvailableOrderDateTimeSlot();\n\n if (saletype === Saletype.DELIVERY && (!cart.value.deliveryAddress || !cart.value.deliveryPrice)) {\n setInitialCartDeliveryAddress(); // Imposto l'indirizzo di delivery\n }\n \n }\n };\n\n const initRestaurantCart = async (saletype: Saletype) => {\n initCart({ prefix: CartPrefix.RESTAURANT, saletype });\n\n const { getTodaysFirstAvailableOrderDateTimeSlot } = useDateTimeSlots();\n if (cart.value && (saletype === Saletype.DELIVERY || saletype === Saletype.TAKEAWAY)) {\n cart.value.orderTimeSlot = await getTodaysFirstAvailableOrderDateTimeSlot();\n if (saletype === Saletype.DELIVERY) {\n // Imposto l'indirizzo di delivery\n setInitialCartDeliveryAddress();\n }\n }\n };\n\n const clearCart = () => {\n if (!cart.value) throw new Error(\"Cart can't be null\");\n cart.value = null;\n LS.remove(LSKeys.CART);\n };\n\n return {\n cart,\n cartPrefix,\n priceList,\n loadCart,\n initCart,\n clearCart,\n setCartDeliveryAddress,\n setCartOrderTimeSlot,\n setCartPromoCodes,\n setCartSubtotalVariation,\n setCartMembershipDiscount,\n loadRestaurantCart,\n initRestaurantCart,\n setInitialCartDeliveryAddress\n };\n}\n","export const ua = window.navigator.userAgent;\nexport const isDeviceAndroid = !!ua.match(/android/i);\nexport const isDeviceIOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i);\nexport const webkit = !!ua.match(/WebKit/i);\nexport const isStandalone =\n // @ts-ignore\n (\"standalone\" in navigator && window.navigator.standalone) ||\n window.matchMedia(\"(display-mode: standalone)\").matches;\nexport const isDeviceIOSAndBrowserSafari = isDeviceIOS && webkit && !ua.match(/CriOS/i);\n","import { get as getApp } from \"@/api/App\";\nimport type { App } from \"@/models\";\nimport { type CustomField, PaymentMethod, Saletype } from \"@/models/App\";\nimport { CartPrefix } from \"@/models/Cart\";\nimport type { NullRef } from \"@/utils\";\nimport { setCurrencyCode } from \"@/utils/formatPrice\";\nimport { ref, computed } from \"vue\";\nimport { useCart } from \"./cart\";\nimport { isDeviceAndroid, isDeviceIOS } from \"@/utils/userAgentData\";\n\nconst app: NullRef = ref(null);\n\n// @ts-ignore \nexport function useApp() { \n \n const channel = computed(() => app.value?.channel || '');\n\n const location = computed(() => app.value?.location);\n const locationAddress = computed(() => location.value?.address + \" \" + location.value?.city);\n\n const deliveryService = computed(() => app.value?.services[Saletype.DELIVERY]);\n const takeawayService = computed(() => app.value?.services[Saletype.TAKEAWAY]);\n const reservationService = computed(() => app.value?.services[Saletype.RESERVATION]);\n const takeawayOnSiteService = computed(() => app.value?.services[Saletype.TAKEAWAY_ON_SITE]);\n const orderFromTableService = computed(() => app.value?.services[Saletype.ORDER_FROM_TABLE]);\n const otherServiceService = computed(() => app.value?.services[Saletype.OTHER_SERVICES]);\n\n const appSaletypes = computed(() => {\n const { cartPrefix } = useCart();\n if (cartPrefix.value === CartPrefix.RESTAURANT)\n return [Saletype.RESERVATION, Saletype.DELIVERY, Saletype.TAKEAWAY, Saletype.OTHER_SERVICES];\n if (cartPrefix.value === CartPrefix.TABLE) {\n if (orderFromTableService.value?.embedDigitalMenu)\n return [Saletype.ORDER_FROM_TABLE, Saletype.DIGITAL_MENU];\n else return [Saletype.ORDER_FROM_TABLE];\n }\n if (cartPrefix.value === CartPrefix.TAKEAWAY_ON_SITE) return [Saletype.TAKEAWAY_ON_SITE];\n if (cartPrefix.value === CartPrefix.DIGITAL_MENU) return [Saletype.DIGITAL_MENU];\n else return [];\n });\n\n const activeSaletypes = computed(() => {\n if (!app.value) return [];\n const activeServices: Saletype[] = [];\n for (const service in app.value.services) {\n if (app.value.services[service as Saletype].active) activeServices.push(service as Saletype);\n }\n activeServices.push(Saletype.DIGITAL_MENU);\n return appSaletypes.value.filter(saletype => activeServices.includes(saletype));\n });\n\n const hasOnlyExternalOrder = computed(() => {\n return !activeSaletypes.value.includes(Saletype.TAKEAWAY) && activeSaletypes.value.includes(Saletype.DELIVERY) && deliveryService.value?.externalUrl;\n })\n\n const saletypeOpeningHours = computed(() => {\n const { cart } = useCart();\n if (cart.value?.saletype === Saletype.DELIVERY) return deliveryService.value?.openingHours;\n if (cart.value?.saletype === Saletype.TAKEAWAY) return takeawayService.value?.openingHours;\n });\n\n const isAgeRestrictionEnabled = computed(() => {\n const { cart } = useCart();\n return cart.value?.saletype\n ? app.value?.services[cart.value?.saletype]?.ageRestriction?.enabled\n : false;\n });\n\n const isAuthenticationEnabled = computed(() => {\n const { cart } = useCart();\n return cart.value?.saletype\n ? !app.value?.services[cart.value?.saletype]?.disableAuthentication\n : true;\n })\n\n const getFromToTimeSlots = (saletype: Saletype) => {\n if (saletype === Saletype.DELIVERY) return !!deliveryService.value?.showTimeSlots;\n if (saletype === Saletype.TAKEAWAY) return !!takeawayService.value?.showTimeSlots;\n if (saletype === Saletype.RESERVATION) return !!reservationService.value?.showTimeSlots;\n return false;\n };\n\n const customFields = computed(() => {\n return app.value?.services[Saletype.TAKEAWAY_ON_SITE].customFields;\n });\n\n const refreshApp = async () => {\n app.value = await getApp();\n setCurrencyCode(app.value.currency.acronym);\n }\n\n const loadApp = async () => {\n if (!app.value) {\n await refreshApp();\n }\n };\n\n const getPaymentMethodTranslationKey = (method: PaymentMethod) => {\n const isKnownPaymentMethod = [\n PaymentMethod.POSTE_VIRTUAL_POS,\n PaymentMethod.NEXI_XPAY,\n PaymentMethod.CASH_ON_DELIVERY,\n PaymentMethod.FIDELITY_CARD,\n PaymentMethod.PAYPAL,\n PaymentMethod.SATISPAY,\n PaymentMethod.GOOGLE_PAY,\n PaymentMethod.APPLE_PAY,\n PaymentMethod.WORLDLINE\n ].includes(method);\n if (!isKnownPaymentMethod) return `general.paymentMethod.payAtTheCashier`;\n const { cart } = useCart();\n const isCashOnDelivery = method === PaymentMethod.CASH_ON_DELIVERY;\n const isSaletypeDelivery = cart.value?.saletype === Saletype.DELIVERY;\n const paymentMethodKey = isCashOnDelivery && !isSaletypeDelivery ? \"payAtTheCashier\" : method;\n return `general.paymentMethod.${paymentMethodKey}`;\n };\n\n const getPaymentIcon = (paymentMethod: string) => {\n if (paymentMethod === PaymentMethod.POSTE_VIRTUAL_POS) return \"$creditCardColor\";\n if (paymentMethod === PaymentMethod.NEXI_XPAY) return \"$creditCardColor\";\n if (paymentMethod === PaymentMethod.WORLDLINE) return \"$creditCardColor\";\n if (paymentMethod === PaymentMethod.CASH_ON_DELIVERY) return \"$cash\";\n if (paymentMethod === PaymentMethod.FIDELITY_CARD) return \"$fidelityPayColor\";\n if (paymentMethod === PaymentMethod.PAYPAL) return \"$payPalColor\";\n if (paymentMethod === PaymentMethod.SATISPAY) return \"$satispayColor\";\n if (paymentMethod === PaymentMethod.GOOGLE_PAY) return \"$googlePayColor\";\n if (paymentMethod === PaymentMethod.APPLE_PAY) return \"$applePayColor\";\n return \"$creditCardColor\";\n };\n\n const isMethodToBeShown = (method: PaymentMethod) => {\n if (method === PaymentMethod.GOOGLE_PAY) return isDeviceAndroid;\n if (method === PaymentMethod.APPLE_PAY) return isDeviceIOS;\n if (moneyTypes.value.length && method === PaymentMethod.CASH_ON_DELIVERY) return false;\n return true;\n };\n\n const moneyTypes = computed(() => {\n const { cart } = useCart();\n const moneyTypes = cart.value ? app.value?.services[cart.value.saletype].enabledMoneyTypes || [] : [];\n return moneyTypes.map(moneyType => ({ ...moneyType, value: `${PaymentMethod.CASH_ON_DELIVERY}|${moneyType.id}` }));\n });\n\n const paymentMethods = computed(() => {\n const { cart } = useCart();\n const paymentMethods = cart.value ? app.value?.services[cart.value.saletype].paymentMethods || [] : [];\n return paymentMethods.filter(isMethodToBeShown);\n });\n\n const hasPayAtTheCashier = computed(() => {\n const { cart } = useCart();\n const paymentMethods = cart.value ? app.value?.services[cart.value.saletype].paymentMethods || [] : [];\n return paymentMethods.includes(PaymentMethod.CASH_ON_DELIVERY);\n });\n\n const hasOnlyPayAtTheCashier = computed(() => {\n const { cart } = useCart();\n const paymentMethods = cart.value ? app.value?.services[cart.value.saletype].paymentMethods || [] : [];\n return paymentMethods.length === 1 && hasPayAtTheCashier.value;\n });\n\n const getSaletypeImage = (saletype: Saletype) => {\n if(saletype === Saletype.DELIVERY) {\n return new URL('@/assets/images/delivery.jpg', import.meta.url).toString();\n }\n if(saletype === Saletype.TAKEAWAY) {\n return new URL('@/assets/images/takeaway.jpg', import.meta.url).toString();\n }\n if(saletype === Saletype.TAKEAWAY_ON_SITE) {\n return new URL('@/assets/images/takeawayOnSite.jpg', import.meta.url).toString();\n }\n if(saletype === Saletype.ORDER_FROM_TABLE) {\n return new URL('@/assets/images/orderFromTable.jpg', import.meta.url).toString();\n }\n if(saletype === Saletype.DIGITAL_MENU) {\n return new URL('@/assets/images/digitalMenu.jpg', import.meta.url).toString();\n }\n }\n\n return {\n loadApp,\n refreshApp,\n app,\n channel,\n location,\n locationAddress,\n activeSaletypes,\n hasOnlyExternalOrder,\n deliveryService,\n takeawayService,\n reservationService,\n takeawayOnSiteService,\n orderFromTableService,\n otherServiceService,\n saletypeOpeningHours,\n customFields,\n paymentMethods,\n moneyTypes,\n hasPayAtTheCashier,\n hasOnlyPayAtTheCashier,\n isAgeRestrictionEnabled,\n isAuthenticationEnabled,\n getFromToTimeSlots,\n getPaymentIcon,\n getPaymentMethodTranslationKey,\n getSaletypeImage\n };\n}\n","\n\n\n","\n\n\n\n\n","/**\n * vee-validate v4.12.4\n * (c) 2023 Abdelrahman Awad\n * @license MIT\n */\nimport { getCurrentInstance, inject, warn as warn$1, computed, toValue, ref, watch, nextTick, unref, isRef, reactive, onUnmounted, onMounted, provide, onBeforeUnmount, defineComponent, toRef, resolveDynamicComponent, h, readonly, watchEffect, shallowRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nfunction isCallable(fn) {\n return typeof fn === 'function';\n}\nfunction isNullOrUndefined(value) {\n return value === null || value === undefined;\n}\nconst isObject = (obj) => obj !== null && !!obj && typeof obj === 'object' && !Array.isArray(obj);\nfunction isIndex(value) {\n return Number(value) >= 0;\n}\nfunction toNumber(value) {\n const n = parseFloat(value);\n return isNaN(n) ? value : n;\n}\nfunction isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\n// Reference: https://github.com/lodash/lodash/blob/master/isPlainObject.js\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || getTag(value) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n let proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n}\nfunction merge(target, source) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) && isPlainObject(target[key])) {\n if (!target[key]) {\n target[key] = {};\n }\n merge(target[key], source[key]);\n return;\n }\n target[key] = source[key];\n });\n return target;\n}\n/**\n * Constructs a path with dot paths for arrays to use brackets to be compatible with vee-validate path syntax\n */\nfunction normalizeFormPath(path) {\n const pathArr = path.split('.');\n if (!pathArr.length) {\n return '';\n }\n let fullPath = String(pathArr[0]);\n for (let i = 1; i < pathArr.length; i++) {\n if (isIndex(pathArr[i])) {\n fullPath += `[${pathArr[i]}]`;\n continue;\n }\n fullPath += `.${pathArr[i]}`;\n }\n return fullPath;\n}\n\nconst RULES = {};\n/**\n * Adds a custom validator to the list of validation rules.\n */\nfunction defineRule(id, validator) {\n // makes sure new rules are properly formatted.\n guardExtend(id, validator);\n RULES[id] = validator;\n}\n/**\n * Gets an already defined rule\n */\nfunction resolveRule(id) {\n return RULES[id];\n}\n/**\n * Guards from extension violations.\n */\nfunction guardExtend(id, validator) {\n if (isCallable(validator)) {\n return;\n }\n throw new Error(`Extension Error: The validator '${id}' must be a function.`);\n}\n\nfunction set(obj, key, val) {\n\tif (typeof val.value === 'object') val.value = klona(val.value);\n\tif (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {\n\t\tObject.defineProperty(obj, key, val);\n\t} else obj[key] = val.value;\n}\n\nfunction klona(x) {\n\tif (typeof x !== 'object') return x;\n\n\tvar i=0, k, list, tmp, str=Object.prototype.toString.call(x);\n\n\tif (str === '[object Object]') {\n\t\ttmp = Object.create(x.__proto__ || null);\n\t} else if (str === '[object Array]') {\n\t\ttmp = Array(x.length);\n\t} else if (str === '[object Set]') {\n\t\ttmp = new Set;\n\t\tx.forEach(function (val) {\n\t\t\ttmp.add(klona(val));\n\t\t});\n\t} else if (str === '[object Map]') {\n\t\ttmp = new Map;\n\t\tx.forEach(function (val, key) {\n\t\t\ttmp.set(klona(key), klona(val));\n\t\t});\n\t} else if (str === '[object Date]') {\n\t\ttmp = new Date(+x);\n\t} else if (str === '[object RegExp]') {\n\t\ttmp = new RegExp(x.source, x.flags);\n\t} else if (str === '[object DataView]') {\n\t\ttmp = new x.constructor( klona(x.buffer) );\n\t} else if (str === '[object ArrayBuffer]') {\n\t\ttmp = x.slice(0);\n\t} else if (str.slice(-6) === 'Array]') {\n\t\t// ArrayBuffer.isView(x)\n\t\t// ~> `new` bcuz `Buffer.slice` => ref\n\t\ttmp = new x.constructor(x);\n\t}\n\n\tif (tmp) {\n\t\tfor (list=Object.getOwnPropertySymbols(x); i < list.length; i++) {\n\t\t\tset(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));\n\t\t}\n\n\t\tfor (i=0, list=Object.getOwnPropertyNames(x); i < list.length; i++) {\n\t\t\tif (Object.hasOwnProperty.call(tmp, k=list[i]) && tmp[k] === x[k]) continue;\n\t\t\tset(tmp, k, Object.getOwnPropertyDescriptor(x, k));\n\t\t}\n\t}\n\n\treturn tmp || x;\n}\n\nconst FormContextKey = Symbol('vee-validate-form');\nconst FieldContextKey = Symbol('vee-validate-field-instance');\nconst IS_ABSENT = Symbol('Default empty value');\n\nconst isClient = typeof window !== 'undefined';\nfunction isLocator(value) {\n return isCallable(value) && !!value.__locatorRef;\n}\nfunction isTypedSchema(value) {\n return !!value && isCallable(value.parse) && value.__type === 'VVTypedSchema';\n}\nfunction isYupValidator(value) {\n return !!value && isCallable(value.validate);\n}\nfunction hasCheckedAttr(type) {\n return type === 'checkbox' || type === 'radio';\n}\nfunction isContainerValue(value) {\n return isObject(value) || Array.isArray(value);\n}\n/**\n * True if the value is an empty object or array\n */\nfunction isEmptyContainer(value) {\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n return isObject(value) && Object.keys(value).length === 0;\n}\n/**\n * Checks if the path opted out of nested fields using `[fieldName]` syntax\n */\nfunction isNotNestedPath(path) {\n return /^\\[.+\\]$/i.test(path);\n}\n/**\n * Checks if an element is a native HTML5 multi-select input element\n */\nfunction isNativeMultiSelect(el) {\n return isNativeSelect(el) && el.multiple;\n}\n/**\n * Checks if an element is a native HTML5 select input element\n */\nfunction isNativeSelect(el) {\n return el.tagName === 'SELECT';\n}\n/**\n * Checks if a tag name with attrs object will render a native multi-select element\n */\nfunction isNativeMultiSelectNode(tag, attrs) {\n // The falsy value array is the values that Vue won't add the `multiple` prop if it has one of these values\n const hasTruthyBindingValue = ![false, null, undefined, 0].includes(attrs.multiple) && !Number.isNaN(attrs.multiple);\n return tag === 'select' && 'multiple' in attrs && hasTruthyBindingValue;\n}\n/**\n * Checks if a node should have a `:value` binding or not\n *\n * These nodes should not have a value binding\n * For files, because they are not reactive\n * For multi-selects because the value binding will reset the value\n */\nfunction shouldHaveValueBinding(tag, attrs) {\n return !isNativeMultiSelectNode(tag, attrs) && attrs.type !== 'file' && !hasCheckedAttr(attrs.type);\n}\nfunction isFormSubmitEvent(evt) {\n return isEvent(evt) && evt.target && 'submit' in evt.target;\n}\nfunction isEvent(evt) {\n if (!evt) {\n return false;\n }\n if (typeof Event !== 'undefined' && isCallable(Event) && evt instanceof Event) {\n return true;\n }\n // this is for IE and Cypress #3161\n /* istanbul ignore next */\n if (evt && evt.srcElement) {\n return true;\n }\n return false;\n}\nfunction isPropPresent(obj, prop) {\n return prop in obj && obj[prop] !== IS_ABSENT;\n}\n/**\n * Compares if two values are the same borrowed from:\n * https://github.com/epoberezkin/fast-deep-equal\n * We added a case for file matching since `Object.keys` doesn't work with Files.\n * */\nfunction isEqual(a, b) {\n if (a === b)\n return true;\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n if (a.constructor !== b.constructor)\n return false;\n // eslint-disable-next-line no-var\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n // eslint-disable-next-line eqeqeq\n if (length != b.length)\n return false;\n for (i = length; i-- !== 0;)\n if (!isEqual(a[i], b[i]))\n return false;\n return true;\n }\n if (a instanceof Map && b instanceof Map) {\n if (a.size !== b.size)\n return false;\n for (i of a.entries())\n if (!b.has(i[0]))\n return false;\n for (i of a.entries())\n if (!isEqual(i[1], b.get(i[0])))\n return false;\n return true;\n }\n // We added this part for file comparison, arguably a little naive but should work for most cases.\n // #3911\n if (isFile(a) && isFile(b)) {\n if (a.size !== b.size)\n return false;\n if (a.name !== b.name)\n return false;\n if (a.lastModified !== b.lastModified)\n return false;\n if (a.type !== b.type)\n return false;\n return true;\n }\n if (a instanceof Set && b instanceof Set) {\n if (a.size !== b.size)\n return false;\n for (i of a.entries())\n if (!b.has(i[0]))\n return false;\n return true;\n }\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n // eslint-disable-next-line eqeqeq\n if (length != b.length)\n return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i])\n return false;\n return true;\n }\n if (a.constructor === RegExp)\n return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf)\n return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString)\n return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n for (i = length; i-- !== 0;) {\n // eslint-disable-next-line no-var\n var key = keys[i];\n if (!isEqual(a[key], b[key]))\n return false;\n }\n return true;\n }\n // true if both NaN, false otherwise\n // eslint-disable-next-line no-self-compare\n return a !== a && b !== b;\n}\nfunction isFile(a) {\n if (!isClient) {\n return false;\n }\n return a instanceof File;\n}\n\nfunction cleanupNonNestedPath(path) {\n if (isNotNestedPath(path)) {\n return path.replace(/\\[|\\]/gi, '');\n }\n return path;\n}\nfunction getFromPath(object, path, fallback) {\n if (!object) {\n return fallback;\n }\n if (isNotNestedPath(path)) {\n return object[cleanupNonNestedPath(path)];\n }\n const resolvedValue = (path || '')\n .split(/\\.|\\[(\\d+)\\]/)\n .filter(Boolean)\n .reduce((acc, propKey) => {\n if (isContainerValue(acc) && propKey in acc) {\n return acc[propKey];\n }\n return fallback;\n }, object);\n return resolvedValue;\n}\n/**\n * Sets a nested property value in a path, creates the path properties if it doesn't exist\n */\nfunction setInPath(object, path, value) {\n if (isNotNestedPath(path)) {\n object[cleanupNonNestedPath(path)] = value;\n return;\n }\n const keys = path.split(/\\.|\\[(\\d+)\\]/).filter(Boolean);\n let acc = object;\n for (let i = 0; i < keys.length; i++) {\n // Last key, set it\n if (i === keys.length - 1) {\n acc[keys[i]] = value;\n return;\n }\n // Key does not exist, create a container for it\n if (!(keys[i] in acc) || isNullOrUndefined(acc[keys[i]])) {\n // container can be either an object or an array depending on the next key if it exists\n acc[keys[i]] = isIndex(keys[i + 1]) ? [] : {};\n }\n acc = acc[keys[i]];\n }\n}\nfunction unset(object, key) {\n if (Array.isArray(object) && isIndex(key)) {\n object.splice(Number(key), 1);\n return;\n }\n if (isObject(object)) {\n delete object[key];\n }\n}\n/**\n * Removes a nested property from object\n */\nfunction unsetPath(object, path) {\n if (isNotNestedPath(path)) {\n delete object[cleanupNonNestedPath(path)];\n return;\n }\n const keys = path.split(/\\.|\\[(\\d+)\\]/).filter(Boolean);\n let acc = object;\n for (let i = 0; i < keys.length; i++) {\n // Last key, unset it\n if (i === keys.length - 1) {\n unset(acc, keys[i]);\n break;\n }\n // Key does not exist, exit\n if (!(keys[i] in acc) || isNullOrUndefined(acc[keys[i]])) {\n break;\n }\n acc = acc[keys[i]];\n }\n const pathValues = keys.map((_, idx) => {\n return getFromPath(object, keys.slice(0, idx).join('.'));\n });\n for (let i = pathValues.length - 1; i >= 0; i--) {\n if (!isEmptyContainer(pathValues[i])) {\n continue;\n }\n if (i === 0) {\n unset(object, keys[0]);\n continue;\n }\n unset(pathValues[i - 1], keys[i - 1]);\n }\n}\n/**\n * A typed version of Object.keys\n */\nfunction keysOf(record) {\n return Object.keys(record);\n}\n// Uses same component provide as its own injections\n// Due to changes in https://github.com/vuejs/vue-next/pull/2424\nfunction injectWithSelf(symbol, def = undefined) {\n const vm = getCurrentInstance();\n return (vm === null || vm === void 0 ? void 0 : vm.provides[symbol]) || inject(symbol, def);\n}\nfunction warn(message) {\n warn$1(`[vee-validate]: ${message}`);\n}\nfunction resolveNextCheckboxValue(currentValue, checkedValue, uncheckedValue) {\n if (Array.isArray(currentValue)) {\n const newVal = [...currentValue];\n // Use isEqual since checked object values can possibly fail the equality check #3883\n const idx = newVal.findIndex(v => isEqual(v, checkedValue));\n idx >= 0 ? newVal.splice(idx, 1) : newVal.push(checkedValue);\n return newVal;\n }\n return isEqual(currentValue, checkedValue) ? uncheckedValue : checkedValue;\n}\n/**\n * Creates a throttled function that only invokes the provided function (`func`) at most once per within a given number of milliseconds\n * (`limit`)\n */\nfunction throttle(func, limit) {\n let inThrottle;\n let lastResult;\n return function (...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n if (!inThrottle) {\n inThrottle = true;\n setTimeout(() => (inThrottle = false), limit);\n lastResult = func.apply(context, args);\n }\n return lastResult;\n };\n}\nfunction debounceAsync(inner, ms = 0) {\n let timer = null;\n let resolves = [];\n return function (...args) {\n // Run the function after a certain amount of time\n if (timer) {\n clearTimeout(timer);\n }\n // @ts-expect-error timer is a number\n timer = setTimeout(() => {\n // Get the result of the inner function, then apply it to the resolve function of\n // each promise that has been created since the last time the inner function was run\n const result = inner(...args);\n resolves.forEach(r => r(result));\n resolves = [];\n }, ms);\n return new Promise(resolve => resolves.push(resolve));\n };\n}\nfunction applyModelModifiers(value, modifiers) {\n if (!isObject(modifiers)) {\n return value;\n }\n if (modifiers.number) {\n return toNumber(value);\n }\n return value;\n}\nfunction withLatest(fn, onDone) {\n let latestRun;\n return async function runLatest(...args) {\n const pending = fn(...args);\n latestRun = pending;\n const result = await pending;\n if (pending !== latestRun) {\n return result;\n }\n latestRun = undefined;\n return onDone(result, args);\n };\n}\nfunction computedDeep({ get, set }) {\n const baseRef = ref(klona(get()));\n watch(get, newValue => {\n if (isEqual(newValue, baseRef.value)) {\n return;\n }\n baseRef.value = klona(newValue);\n }, {\n deep: true,\n });\n watch(baseRef, newValue => {\n if (isEqual(newValue, get())) {\n return;\n }\n set(klona(newValue));\n }, {\n deep: true,\n });\n return baseRef;\n}\nfunction normalizeErrorItem(message) {\n return Array.isArray(message) ? message : message ? [message] : [];\n}\nfunction resolveFieldOrPathState(path) {\n const form = injectWithSelf(FormContextKey);\n const state = path ? computed(() => form === null || form === void 0 ? void 0 : form.getPathState(toValue(path))) : undefined;\n const field = path ? undefined : inject(FieldContextKey);\n if (!field && !(state === null || state === void 0 ? void 0 : state.value)) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`field with name ${toValue(path)} was not found`);\n }\n }\n return state || field;\n}\nfunction omit(obj, keys) {\n const target = {};\n for (const key in obj) {\n if (!keys.includes(key)) {\n target[key] = obj[key];\n }\n }\n return target;\n}\nfunction debounceNextTick(inner) {\n let lastTick = null;\n let resolves = [];\n return function (...args) {\n // Run the function after a certain amount of time\n const thisTick = nextTick(() => {\n if (lastTick !== thisTick) {\n return;\n }\n // Get the result of the inner function, then apply it to the resolve function of\n // each promise that has been created since the last time the inner function was run\n const result = inner(...args);\n resolves.forEach(r => r(result));\n resolves = [];\n lastTick = null;\n });\n lastTick = thisTick;\n return new Promise(resolve => resolves.push(resolve));\n };\n}\n\nfunction normalizeChildren(tag, context, slotProps) {\n if (!context.slots.default) {\n return context.slots.default;\n }\n if (typeof tag === 'string' || !tag) {\n return context.slots.default(slotProps());\n }\n return {\n default: () => { var _a, _b; return (_b = (_a = context.slots).default) === null || _b === void 0 ? void 0 : _b.call(_a, slotProps()); },\n };\n}\n/**\n * Vue adds a `_value` prop at the moment on the input elements to store the REAL value on them, real values are different than the `value` attribute\n * as they do not get casted to strings unlike `el.value` which preserves user-code behavior\n */\nfunction getBoundValue(el) {\n if (hasValueBinding(el)) {\n return el._value;\n }\n return undefined;\n}\n/**\n * Vue adds a `_value` prop at the moment on the input elements to store the REAL value on them, real values are different than the `value` attribute\n * as they do not get casted to strings unlike `el.value` which preserves user-code behavior\n */\nfunction hasValueBinding(el) {\n return '_value' in el;\n}\n\nfunction parseInputValue(el) {\n if (el.type === 'number') {\n return Number.isNaN(el.valueAsNumber) ? el.value : el.valueAsNumber;\n }\n if (el.type === 'range') {\n return Number.isNaN(el.valueAsNumber) ? el.value : el.valueAsNumber;\n }\n return el.value;\n}\nfunction normalizeEventValue(value) {\n if (!isEvent(value)) {\n return value;\n }\n const input = value.target;\n // Vue sets the current bound value on `_value` prop\n // for checkboxes it it should fetch the value binding type as is (boolean instead of string)\n if (hasCheckedAttr(input.type) && hasValueBinding(input)) {\n return getBoundValue(input);\n }\n if (input.type === 'file' && input.files) {\n const files = Array.from(input.files);\n return input.multiple ? files : files[0];\n }\n if (isNativeMultiSelect(input)) {\n return Array.from(input.options)\n .filter(opt => opt.selected && !opt.disabled)\n .map(getBoundValue);\n }\n // makes sure we get the actual `option` bound value\n // #3440\n if (isNativeSelect(input)) {\n const selectedOption = Array.from(input.options).find(opt => opt.selected);\n return selectedOption ? getBoundValue(selectedOption) : input.value;\n }\n return parseInputValue(input);\n}\n\n/**\n * Normalizes the given rules expression.\n */\nfunction normalizeRules(rules) {\n const acc = {};\n Object.defineProperty(acc, '_$$isNormalized', {\n value: true,\n writable: false,\n enumerable: false,\n configurable: false,\n });\n if (!rules) {\n return acc;\n }\n // Object is already normalized, skip.\n if (isObject(rules) && rules._$$isNormalized) {\n return rules;\n }\n if (isObject(rules)) {\n return Object.keys(rules).reduce((prev, curr) => {\n const params = normalizeParams(rules[curr]);\n if (rules[curr] !== false) {\n prev[curr] = buildParams(params);\n }\n return prev;\n }, acc);\n }\n /* istanbul ignore if */\n if (typeof rules !== 'string') {\n return acc;\n }\n return rules.split('|').reduce((prev, rule) => {\n const parsedRule = parseRule(rule);\n if (!parsedRule.name) {\n return prev;\n }\n prev[parsedRule.name] = buildParams(parsedRule.params);\n return prev;\n }, acc);\n}\n/**\n * Normalizes a rule param.\n */\nfunction normalizeParams(params) {\n if (params === true) {\n return [];\n }\n if (Array.isArray(params)) {\n return params;\n }\n if (isObject(params)) {\n return params;\n }\n return [params];\n}\nfunction buildParams(provided) {\n const mapValueToLocator = (value) => {\n // A target param using interpolation\n if (typeof value === 'string' && value[0] === '@') {\n return createLocator(value.slice(1));\n }\n return value;\n };\n if (Array.isArray(provided)) {\n return provided.map(mapValueToLocator);\n }\n // #3073\n if (provided instanceof RegExp) {\n return [provided];\n }\n return Object.keys(provided).reduce((prev, key) => {\n prev[key] = mapValueToLocator(provided[key]);\n return prev;\n }, {});\n}\n/**\n * Parses a rule string expression.\n */\nconst parseRule = (rule) => {\n let params = [];\n const name = rule.split(':')[0];\n if (rule.includes(':')) {\n params = rule.split(':').slice(1).join(':').split(',');\n }\n return { name, params };\n};\nfunction createLocator(value) {\n const locator = (crossTable) => {\n const val = getFromPath(crossTable, value) || crossTable[value];\n return val;\n };\n locator.__locatorRef = value;\n return locator;\n}\nfunction extractLocators(params) {\n if (Array.isArray(params)) {\n return params.filter(isLocator);\n }\n return keysOf(params)\n .filter(key => isLocator(params[key]))\n .map(key => params[key]);\n}\n\nconst DEFAULT_CONFIG = {\n generateMessage: ({ field }) => `${field} is not valid.`,\n bails: true,\n validateOnBlur: true,\n validateOnChange: true,\n validateOnInput: false,\n validateOnModelUpdate: true,\n};\nlet currentConfig = Object.assign({}, DEFAULT_CONFIG);\nconst getConfig = () => currentConfig;\nconst setConfig = (newConf) => {\n currentConfig = Object.assign(Object.assign({}, currentConfig), newConf);\n};\nconst configure = setConfig;\n\n/**\n * Validates a value against the rules.\n */\nasync function validate(value, rules, options = {}) {\n const shouldBail = options === null || options === void 0 ? void 0 : options.bails;\n const field = {\n name: (options === null || options === void 0 ? void 0 : options.name) || '{field}',\n rules,\n label: options === null || options === void 0 ? void 0 : options.label,\n bails: shouldBail !== null && shouldBail !== void 0 ? shouldBail : true,\n formData: (options === null || options === void 0 ? void 0 : options.values) || {},\n };\n const result = await _validate(field, value);\n const errors = result.errors;\n return {\n errors,\n valid: !errors.length,\n };\n}\n/**\n * Starts the validation process.\n */\nasync function _validate(field, value) {\n if (isTypedSchema(field.rules) || isYupValidator(field.rules)) {\n return validateFieldWithTypedSchema(value, field.rules);\n }\n // if a generic function or chain of generic functions\n if (isCallable(field.rules) || Array.isArray(field.rules)) {\n const ctx = {\n field: field.label || field.name,\n name: field.name,\n label: field.label,\n form: field.formData,\n value,\n };\n // Normalize the pipeline\n const pipeline = Array.isArray(field.rules) ? field.rules : [field.rules];\n const length = pipeline.length;\n const errors = [];\n for (let i = 0; i < length; i++) {\n const rule = pipeline[i];\n const result = await rule(value, ctx);\n const isValid = typeof result !== 'string' && !Array.isArray(result) && result;\n if (isValid) {\n continue;\n }\n if (Array.isArray(result)) {\n errors.push(...result);\n }\n else {\n const message = typeof result === 'string' ? result : _generateFieldError(ctx);\n errors.push(message);\n }\n if (field.bails) {\n return {\n errors,\n };\n }\n }\n return {\n errors,\n };\n }\n const normalizedContext = Object.assign(Object.assign({}, field), { rules: normalizeRules(field.rules) });\n const errors = [];\n const rulesKeys = Object.keys(normalizedContext.rules);\n const length = rulesKeys.length;\n for (let i = 0; i < length; i++) {\n const rule = rulesKeys[i];\n const result = await _test(normalizedContext, value, {\n name: rule,\n params: normalizedContext.rules[rule],\n });\n if (result.error) {\n errors.push(result.error);\n if (field.bails) {\n return {\n errors,\n };\n }\n }\n }\n return {\n errors,\n };\n}\nfunction isYupError(err) {\n return !!err && err.name === 'ValidationError';\n}\nfunction yupToTypedSchema(yupSchema) {\n const schema = {\n __type: 'VVTypedSchema',\n async parse(values) {\n var _a;\n try {\n const output = await yupSchema.validate(values, { abortEarly: false });\n return {\n output,\n errors: [],\n };\n }\n catch (err) {\n // Yup errors have a name prop one them.\n // https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (!isYupError(err)) {\n throw err;\n }\n if (!((_a = err.inner) === null || _a === void 0 ? void 0 : _a.length) && err.errors.length) {\n return { errors: [{ path: err.path, errors: err.errors }] };\n }\n const errors = err.inner.reduce((acc, curr) => {\n const path = curr.path || '';\n if (!acc[path]) {\n acc[path] = { errors: [], path };\n }\n acc[path].errors.push(...curr.errors);\n return acc;\n }, {});\n return { errors: Object.values(errors) };\n }\n },\n };\n return schema;\n}\n/**\n * Handles yup validation\n */\nasync function validateFieldWithTypedSchema(value, schema) {\n const typedSchema = isTypedSchema(schema) ? schema : yupToTypedSchema(schema);\n const result = await typedSchema.parse(value);\n const messages = [];\n for (const error of result.errors) {\n if (error.errors.length) {\n messages.push(...error.errors);\n }\n }\n return {\n errors: messages,\n };\n}\n/**\n * Tests a single input value against a rule.\n */\nasync function _test(field, value, rule) {\n const validator = resolveRule(rule.name);\n if (!validator) {\n throw new Error(`No such validator '${rule.name}' exists.`);\n }\n const params = fillTargetValues(rule.params, field.formData);\n const ctx = {\n field: field.label || field.name,\n name: field.name,\n label: field.label,\n value,\n form: field.formData,\n rule: Object.assign(Object.assign({}, rule), { params }),\n };\n const result = await validator(value, params, ctx);\n if (typeof result === 'string') {\n return {\n error: result,\n };\n }\n return {\n error: result ? undefined : _generateFieldError(ctx),\n };\n}\n/**\n * Generates error messages.\n */\nfunction _generateFieldError(fieldCtx) {\n const message = getConfig().generateMessage;\n if (!message) {\n return 'Field is invalid';\n }\n return message(fieldCtx);\n}\nfunction fillTargetValues(params, crossTable) {\n const normalize = (value) => {\n if (isLocator(value)) {\n return value(crossTable);\n }\n return value;\n };\n if (Array.isArray(params)) {\n return params.map(normalize);\n }\n return Object.keys(params).reduce((acc, param) => {\n acc[param] = normalize(params[param]);\n return acc;\n }, {});\n}\nasync function validateTypedSchema(schema, values) {\n const typedSchema = isTypedSchema(schema) ? schema : yupToTypedSchema(schema);\n const validationResult = await typedSchema.parse(klona(values));\n const results = {};\n const errors = {};\n for (const error of validationResult.errors) {\n const messages = error.errors;\n // Fixes issue with path mapping with Yup 1.0 including quotes around array indices\n const path = (error.path || '').replace(/\\[\"(\\d+)\"\\]/g, (_, m) => {\n return `[${m}]`;\n });\n results[path] = { valid: !messages.length, errors: messages };\n if (messages.length) {\n errors[path] = messages[0];\n }\n }\n return {\n valid: !validationResult.errors.length,\n results,\n errors,\n values: validationResult.value,\n };\n}\nasync function validateObjectSchema(schema, values, opts) {\n const paths = keysOf(schema);\n const validations = paths.map(async (path) => {\n var _a, _b, _c;\n const strings = (_a = opts === null || opts === void 0 ? void 0 : opts.names) === null || _a === void 0 ? void 0 : _a[path];\n const fieldResult = await validate(getFromPath(values, path), schema[path], {\n name: (strings === null || strings === void 0 ? void 0 : strings.name) || path,\n label: strings === null || strings === void 0 ? void 0 : strings.label,\n values: values,\n bails: (_c = (_b = opts === null || opts === void 0 ? void 0 : opts.bailsMap) === null || _b === void 0 ? void 0 : _b[path]) !== null && _c !== void 0 ? _c : true,\n });\n return Object.assign(Object.assign({}, fieldResult), { path });\n });\n let isAllValid = true;\n const validationResults = await Promise.all(validations);\n const results = {};\n const errors = {};\n for (const result of validationResults) {\n results[result.path] = {\n valid: result.valid,\n errors: result.errors,\n };\n if (!result.valid) {\n isAllValid = false;\n errors[result.path] = result.errors[0];\n }\n }\n return {\n valid: isAllValid,\n results,\n errors,\n };\n}\n\nlet ID_COUNTER = 0;\nfunction useFieldState(path, init) {\n const { value, initialValue, setInitialValue } = _useFieldValue(path, init.modelValue, init.form);\n if (!init.form) {\n const { errors, setErrors } = createFieldErrors();\n const id = ID_COUNTER >= Number.MAX_SAFE_INTEGER ? 0 : ++ID_COUNTER;\n const meta = createFieldMeta(value, initialValue, errors, init.schema);\n function setState(state) {\n var _a;\n if ('value' in state) {\n value.value = state.value;\n }\n if ('errors' in state) {\n setErrors(state.errors);\n }\n if ('touched' in state) {\n meta.touched = (_a = state.touched) !== null && _a !== void 0 ? _a : meta.touched;\n }\n if ('initialValue' in state) {\n setInitialValue(state.initialValue);\n }\n }\n return {\n id,\n path,\n value,\n initialValue,\n meta,\n flags: { pendingUnmount: { [id]: false }, pendingReset: false },\n errors,\n setState,\n };\n }\n const state = init.form.createPathState(path, {\n bails: init.bails,\n label: init.label,\n type: init.type,\n validate: init.validate,\n schema: init.schema,\n });\n const errors = computed(() => state.errors);\n function setState(state) {\n var _a, _b, _c;\n if ('value' in state) {\n value.value = state.value;\n }\n if ('errors' in state) {\n (_a = init.form) === null || _a === void 0 ? void 0 : _a.setFieldError(unref(path), state.errors);\n }\n if ('touched' in state) {\n (_b = init.form) === null || _b === void 0 ? void 0 : _b.setFieldTouched(unref(path), (_c = state.touched) !== null && _c !== void 0 ? _c : false);\n }\n if ('initialValue' in state) {\n setInitialValue(state.initialValue);\n }\n }\n return {\n id: Array.isArray(state.id) ? state.id[state.id.length - 1] : state.id,\n path,\n value,\n errors,\n meta: state,\n initialValue,\n flags: state.__flags,\n setState,\n };\n}\n/**\n * Creates the field value and resolves the initial value\n */\nfunction _useFieldValue(path, modelValue, form) {\n const modelRef = ref(unref(modelValue));\n function resolveInitialValue() {\n if (!form) {\n return unref(modelRef);\n }\n return getFromPath(form.initialValues.value, unref(path), unref(modelRef));\n }\n function setInitialValue(value) {\n if (!form) {\n modelRef.value = value;\n return;\n }\n form.setFieldInitialValue(unref(path), value, true);\n }\n const initialValue = computed(resolveInitialValue);\n // if no form is associated, use a regular ref.\n if (!form) {\n const value = ref(resolveInitialValue());\n return {\n value,\n initialValue,\n setInitialValue,\n };\n }\n // to set the initial value, first check if there is a current value, if there is then use it.\n // otherwise use the configured initial value if it exists.\n // prioritize model value over form values\n // #3429\n const currentValue = resolveModelValue(modelValue, form, initialValue, path);\n form.stageInitialValue(unref(path), currentValue, true);\n // otherwise use a computed setter that triggers the `setFieldValue`\n const value = computed({\n get() {\n return getFromPath(form.values, unref(path));\n },\n set(newVal) {\n form.setFieldValue(unref(path), newVal, false);\n },\n });\n return {\n value,\n initialValue,\n setInitialValue,\n };\n}\n/*\n to set the initial value, first check if there is a current value, if there is then use it.\n otherwise use the configured initial value if it exists.\n prioritize model value over form values\n #3429\n*/\nfunction resolveModelValue(modelValue, form, initialValue, path) {\n if (isRef(modelValue)) {\n return unref(modelValue);\n }\n if (modelValue !== undefined) {\n return modelValue;\n }\n return getFromPath(form.values, unref(path), unref(initialValue));\n}\n/**\n * Creates meta flags state and some associated effects with them\n */\nfunction createFieldMeta(currentValue, initialValue, errors, schema) {\n var _a, _b;\n const isRequired = (_b = (_a = schema === null || schema === void 0 ? void 0 : schema.describe) === null || _a === void 0 ? void 0 : _a.call(schema).required) !== null && _b !== void 0 ? _b : false;\n const meta = reactive({\n touched: false,\n pending: false,\n valid: true,\n required: isRequired,\n validated: !!unref(errors).length,\n initialValue: computed(() => unref(initialValue)),\n dirty: computed(() => {\n return !isEqual(unref(currentValue), unref(initialValue));\n }),\n });\n watch(errors, value => {\n meta.valid = !value.length;\n }, {\n immediate: true,\n flush: 'sync',\n });\n return meta;\n}\n/**\n * Creates the error message state for the field state\n */\nfunction createFieldErrors() {\n const errors = ref([]);\n return {\n errors,\n setErrors: (messages) => {\n errors.value = normalizeErrorItem(messages);\n },\n };\n}\n\nfunction installDevtoolsPlugin(app) {\n if ((process.env.NODE_ENV !== 'production')) {\n setupDevtoolsPlugin({\n id: 'vee-validate-devtools-plugin',\n label: 'VeeValidate Plugin',\n packageName: 'vee-validate',\n homepage: 'https://vee-validate.logaretm.com/v4',\n app,\n logo: 'https://vee-validate.logaretm.com/v4/logo.png',\n }, setupApiHooks);\n }\n}\nconst DEVTOOLS_FORMS = {};\nconst DEVTOOLS_FIELDS = {};\nlet API;\nconst refreshInspector = throttle(() => {\n setTimeout(async () => {\n await nextTick();\n API === null || API === void 0 ? void 0 : API.sendInspectorState(INSPECTOR_ID);\n API === null || API === void 0 ? void 0 : API.sendInspectorTree(INSPECTOR_ID);\n }, 100);\n}, 100);\nfunction registerFormWithDevTools(form) {\n const vm = getCurrentInstance();\n if (!API) {\n const app = vm === null || vm === void 0 ? void 0 : vm.appContext.app;\n if (!app) {\n return;\n }\n installDevtoolsPlugin(app);\n }\n DEVTOOLS_FORMS[form.formId] = Object.assign({}, form);\n DEVTOOLS_FORMS[form.formId]._vm = vm;\n onUnmounted(() => {\n delete DEVTOOLS_FORMS[form.formId];\n refreshInspector();\n });\n refreshInspector();\n}\nfunction registerSingleFieldWithDevtools(field) {\n const vm = getCurrentInstance();\n if (!API) {\n const app = vm === null || vm === void 0 ? void 0 : vm.appContext.app;\n if (!app) {\n return;\n }\n installDevtoolsPlugin(app);\n }\n DEVTOOLS_FIELDS[field.id] = Object.assign({}, field);\n DEVTOOLS_FIELDS[field.id]._vm = vm;\n onUnmounted(() => {\n delete DEVTOOLS_FIELDS[field.id];\n refreshInspector();\n });\n refreshInspector();\n}\nconst INSPECTOR_ID = 'vee-validate-inspector';\nconst COLORS = {\n error: 0xbd4b4b,\n success: 0x06d77b,\n unknown: 0x54436b,\n white: 0xffffff,\n black: 0x000000,\n blue: 0x035397,\n purple: 0xb980f0,\n orange: 0xf5a962,\n gray: 0xbbbfca,\n};\nlet SELECTED_NODE = null;\nfunction setupApiHooks(api) {\n API = api;\n api.addInspector({\n id: INSPECTOR_ID,\n icon: 'rule',\n label: 'vee-validate',\n noSelectionText: 'Select a vee-validate node to inspect',\n actions: [\n {\n icon: 'done_outline',\n tooltip: 'Validate selected item',\n action: async () => {\n if (!SELECTED_NODE) {\n console.error('There is not a valid selected vee-validate node or component');\n return;\n }\n if (SELECTED_NODE.type === 'field') {\n await SELECTED_NODE.field.validate();\n return;\n }\n if (SELECTED_NODE.type === 'form') {\n await SELECTED_NODE.form.validate();\n return;\n }\n if (SELECTED_NODE.type === 'pathState') {\n await SELECTED_NODE.form.validateField(SELECTED_NODE.state.path);\n }\n },\n },\n {\n icon: 'delete_sweep',\n tooltip: 'Clear validation state of the selected item',\n action: () => {\n if (!SELECTED_NODE) {\n console.error('There is not a valid selected vee-validate node or component');\n return;\n }\n if (SELECTED_NODE.type === 'field') {\n SELECTED_NODE.field.resetField();\n return;\n }\n if (SELECTED_NODE.type === 'form') {\n SELECTED_NODE.form.resetForm();\n }\n if (SELECTED_NODE.type === 'pathState') {\n SELECTED_NODE.form.resetField(SELECTED_NODE.state.path);\n }\n },\n },\n ],\n });\n api.on.getInspectorTree(payload => {\n if (payload.inspectorId !== INSPECTOR_ID) {\n return;\n }\n const forms = Object.values(DEVTOOLS_FORMS);\n const fields = Object.values(DEVTOOLS_FIELDS);\n payload.rootNodes = [\n ...forms.map(mapFormForDevtoolsInspector),\n ...fields.map(field => mapFieldForDevtoolsInspector(field)),\n ];\n });\n api.on.getInspectorState((payload, ctx) => {\n if (payload.inspectorId !== INSPECTOR_ID || ctx.currentTab !== `custom-inspector:${INSPECTOR_ID}`) {\n return;\n }\n const { form, field, state, type } = decodeNodeId(payload.nodeId);\n if (form && type === 'form') {\n payload.state = buildFormState(form);\n SELECTED_NODE = { type: 'form', form };\n return;\n }\n if (state && type === 'pathState' && form) {\n payload.state = buildFieldState(state);\n SELECTED_NODE = { type: 'pathState', state, form };\n return;\n }\n if (field && type === 'field') {\n payload.state = buildFieldState({\n errors: field.errors.value,\n dirty: field.meta.dirty,\n valid: field.meta.valid,\n touched: field.meta.touched,\n value: field.value.value,\n initialValue: field.meta.initialValue,\n });\n SELECTED_NODE = { field, type: 'field' };\n return;\n }\n SELECTED_NODE = null;\n });\n}\nfunction mapFormForDevtoolsInspector(form) {\n const { textColor, bgColor } = getValidityColors(form.meta.value.valid);\n const formTreeNodes = {};\n Object.values(form.getAllPathStates()).forEach(state => {\n setInPath(formTreeNodes, unref(state.path), mapPathForDevtoolsInspector(state, form));\n });\n function buildFormTree(tree, path = []) {\n const key = [...path].pop();\n if ('id' in tree) {\n return Object.assign(Object.assign({}, tree), { label: key || tree.label });\n }\n if (isObject(tree)) {\n return {\n id: `${path.join('.')}`,\n label: key || '',\n children: Object.keys(tree).map(key => buildFormTree(tree[key], [...path, key])),\n };\n }\n if (Array.isArray(tree)) {\n return {\n id: `${path.join('.')}`,\n label: `${key}[]`,\n children: tree.map((c, idx) => buildFormTree(c, [...path, String(idx)])),\n };\n }\n return { id: '', label: '', children: [] };\n }\n const { children } = buildFormTree(formTreeNodes);\n return {\n id: encodeNodeId(form),\n label: 'Form',\n children,\n tags: [\n {\n label: 'Form',\n textColor,\n backgroundColor: bgColor,\n },\n {\n label: `${form.getAllPathStates().length} fields`,\n textColor: COLORS.white,\n backgroundColor: COLORS.unknown,\n },\n ],\n };\n}\nfunction mapPathForDevtoolsInspector(state, form) {\n return {\n id: encodeNodeId(form, state),\n label: unref(state.path),\n tags: getFieldNodeTags(state.multiple, state.fieldsCount, state.type, state.valid, form),\n };\n}\nfunction mapFieldForDevtoolsInspector(field, form) {\n return {\n id: encodeNodeId(form, field),\n label: unref(field.name),\n tags: getFieldNodeTags(false, 1, field.type, field.meta.valid, form),\n };\n}\nfunction getFieldNodeTags(multiple, fieldsCount, type, valid, form) {\n const { textColor, bgColor } = getValidityColors(valid);\n return [\n multiple\n ? undefined\n : {\n label: 'Field',\n textColor,\n backgroundColor: bgColor,\n },\n !form\n ? {\n label: 'Standalone',\n textColor: COLORS.black,\n backgroundColor: COLORS.gray,\n }\n : undefined,\n type === 'checkbox'\n ? {\n label: 'Checkbox',\n textColor: COLORS.white,\n backgroundColor: COLORS.blue,\n }\n : undefined,\n type === 'radio'\n ? {\n label: 'Radio',\n textColor: COLORS.white,\n backgroundColor: COLORS.purple,\n }\n : undefined,\n multiple\n ? {\n label: 'Multiple',\n textColor: COLORS.black,\n backgroundColor: COLORS.orange,\n }\n : undefined,\n ].filter(Boolean);\n}\nfunction encodeNodeId(form, stateOrField) {\n const type = stateOrField ? ('path' in stateOrField ? 'pathState' : 'field') : 'form';\n const fieldPath = stateOrField ? ('path' in stateOrField ? stateOrField === null || stateOrField === void 0 ? void 0 : stateOrField.path : unref(stateOrField === null || stateOrField === void 0 ? void 0 : stateOrField.name)) : '';\n const idObject = { f: form === null || form === void 0 ? void 0 : form.formId, ff: fieldPath, type };\n return btoa(encodeURIComponent(JSON.stringify(idObject)));\n}\nfunction decodeNodeId(nodeId) {\n try {\n const idObject = JSON.parse(decodeURIComponent(atob(nodeId)));\n const form = DEVTOOLS_FORMS[idObject.f];\n if (!form && idObject.ff) {\n const field = DEVTOOLS_FIELDS[idObject.ff];\n if (!field) {\n return {};\n }\n return {\n type: idObject.type,\n field,\n };\n }\n if (!form) {\n return {};\n }\n const state = form.getPathState(idObject.ff);\n return {\n type: idObject.type,\n form,\n state,\n };\n }\n catch (err) {\n // console.error(`Devtools: [vee-validate] Failed to parse node id ${nodeId}`);\n }\n return {};\n}\nfunction buildFieldState(state) {\n return {\n 'Field state': [\n { key: 'errors', value: state.errors },\n {\n key: 'initialValue',\n value: state.initialValue,\n },\n {\n key: 'currentValue',\n value: state.value,\n },\n {\n key: 'touched',\n value: state.touched,\n },\n {\n key: 'dirty',\n value: state.dirty,\n },\n {\n key: 'valid',\n value: state.valid,\n },\n ],\n };\n}\nfunction buildFormState(form) {\n const { errorBag, meta, values, isSubmitting, isValidating, submitCount } = form;\n return {\n 'Form state': [\n {\n key: 'submitCount',\n value: submitCount.value,\n },\n {\n key: 'isSubmitting',\n value: isSubmitting.value,\n },\n {\n key: 'isValidating',\n value: isValidating.value,\n },\n {\n key: 'touched',\n value: meta.value.touched,\n },\n {\n key: 'dirty',\n value: meta.value.dirty,\n },\n {\n key: 'valid',\n value: meta.value.valid,\n },\n {\n key: 'initialValues',\n value: meta.value.initialValues,\n },\n {\n key: 'currentValues',\n value: values,\n },\n {\n key: 'errors',\n value: keysOf(errorBag.value).reduce((acc, key) => {\n var _a;\n const message = (_a = errorBag.value[key]) === null || _a === void 0 ? void 0 : _a[0];\n if (message) {\n acc[key] = message;\n }\n return acc;\n }, {}),\n },\n ],\n };\n}\n/**\n * Resolves the tag color based on the form state\n */\nfunction getValidityColors(valid) {\n return {\n bgColor: valid ? COLORS.success : COLORS.error,\n textColor: valid ? COLORS.black : COLORS.white,\n };\n}\n\n/**\n * Creates a field composite.\n */\nfunction useField(path, rules, opts) {\n if (hasCheckedAttr(opts === null || opts === void 0 ? void 0 : opts.type)) {\n return useFieldWithChecked(path, rules, opts);\n }\n return _useField(path, rules, opts);\n}\nfunction _useField(path, rules, opts) {\n const { initialValue: modelValue, validateOnMount, bails, type, checkedValue, label, validateOnValueUpdate, uncheckedValue, controlled, keepValueOnUnmount, syncVModel, form: controlForm, } = normalizeOptions(opts);\n const injectedForm = controlled ? injectWithSelf(FormContextKey) : undefined;\n const form = controlForm || injectedForm;\n const name = computed(() => normalizeFormPath(toValue(path)));\n const validator = computed(() => {\n const schema = toValue(form === null || form === void 0 ? void 0 : form.schema);\n if (schema) {\n return undefined;\n }\n const rulesValue = unref(rules);\n if (isYupValidator(rulesValue) ||\n isTypedSchema(rulesValue) ||\n isCallable(rulesValue) ||\n Array.isArray(rulesValue)) {\n return rulesValue;\n }\n return normalizeRules(rulesValue);\n });\n const { id, value, initialValue, meta, setState, errors, flags } = useFieldState(name, {\n modelValue,\n form,\n bails,\n label,\n type,\n validate: validator.value ? validate$1 : undefined,\n schema: isTypedSchema(rules) ? rules : undefined,\n });\n const errorMessage = computed(() => errors.value[0]);\n if (syncVModel) {\n useVModel({\n value,\n prop: syncVModel,\n handleChange,\n shouldValidate: () => validateOnValueUpdate && !flags.pendingReset,\n });\n }\n /**\n * Handles common onBlur meta update\n */\n const handleBlur = (evt, shouldValidate = false) => {\n meta.touched = true;\n if (shouldValidate) {\n validateWithStateMutation();\n }\n };\n async function validateCurrentValue(mode) {\n var _a, _b;\n if (form === null || form === void 0 ? void 0 : form.validateSchema) {\n const { results } = await form.validateSchema(mode);\n return (_a = results[toValue(name)]) !== null && _a !== void 0 ? _a : { valid: true, errors: [] };\n }\n if (validator.value) {\n return validate(value.value, validator.value, {\n name: toValue(name),\n label: toValue(label),\n values: (_b = form === null || form === void 0 ? void 0 : form.values) !== null && _b !== void 0 ? _b : {},\n bails,\n });\n }\n return { valid: true, errors: [] };\n }\n const validateWithStateMutation = withLatest(async () => {\n meta.pending = true;\n meta.validated = true;\n return validateCurrentValue('validated-only');\n }, result => {\n if (flags.pendingUnmount[field.id]) {\n return result;\n }\n setState({ errors: result.errors });\n meta.pending = false;\n meta.valid = result.valid;\n return result;\n });\n const validateValidStateOnly = withLatest(async () => {\n return validateCurrentValue('silent');\n }, result => {\n meta.valid = result.valid;\n return result;\n });\n function validate$1(opts) {\n if ((opts === null || opts === void 0 ? void 0 : opts.mode) === 'silent') {\n return validateValidStateOnly();\n }\n return validateWithStateMutation();\n }\n // Common input/change event handler\n function handleChange(e, shouldValidate = true) {\n const newValue = normalizeEventValue(e);\n setValue(newValue, shouldValidate);\n }\n // Runs the initial validation\n onMounted(() => {\n if (validateOnMount) {\n return validateWithStateMutation();\n }\n // validate self initially if no form was handling this\n // forms should have their own initial silent validation run to make things more efficient\n if (!form || !form.validateSchema) {\n validateValidStateOnly();\n }\n });\n function setTouched(isTouched) {\n meta.touched = isTouched;\n }\n function resetField(state) {\n var _a;\n const newValue = state && 'value' in state ? state.value : initialValue.value;\n setState({\n value: klona(newValue),\n initialValue: klona(newValue),\n touched: (_a = state === null || state === void 0 ? void 0 : state.touched) !== null && _a !== void 0 ? _a : false,\n errors: (state === null || state === void 0 ? void 0 : state.errors) || [],\n });\n meta.pending = false;\n meta.validated = false;\n validateValidStateOnly();\n }\n const vm = getCurrentInstance();\n function setValue(newValue, shouldValidate = true) {\n value.value = vm && syncVModel ? applyModelModifiers(newValue, vm.props.modelModifiers) : newValue;\n const validateFn = shouldValidate ? validateWithStateMutation : validateValidStateOnly;\n validateFn();\n }\n function setErrors(errors) {\n setState({ errors: Array.isArray(errors) ? errors : [errors] });\n }\n const valueProxy = computed({\n get() {\n return value.value;\n },\n set(newValue) {\n setValue(newValue, validateOnValueUpdate);\n },\n });\n const field = {\n id,\n name,\n label,\n value: valueProxy,\n meta,\n errors,\n errorMessage,\n type,\n checkedValue,\n uncheckedValue,\n bails,\n keepValueOnUnmount,\n resetField,\n handleReset: () => resetField(),\n validate: validate$1,\n handleChange,\n handleBlur,\n setState,\n setTouched,\n setErrors,\n setValue,\n };\n provide(FieldContextKey, field);\n if (isRef(rules) && typeof unref(rules) !== 'function') {\n watch(rules, (value, oldValue) => {\n if (isEqual(value, oldValue)) {\n return;\n }\n meta.validated ? validateWithStateMutation() : validateValidStateOnly();\n }, {\n deep: true,\n });\n }\n if ((process.env.NODE_ENV !== 'production')) {\n field._vm = getCurrentInstance();\n watch(() => (Object.assign(Object.assign({ errors: errors.value }, meta), { value: value.value })), refreshInspector, {\n deep: true,\n });\n if (!form) {\n registerSingleFieldWithDevtools(field);\n }\n }\n // if no associated form return the field API immediately\n if (!form) {\n return field;\n }\n // associate the field with the given form\n // extract cross-field dependencies in a computed prop\n const dependencies = computed(() => {\n const rulesVal = validator.value;\n // is falsy, a function schema or a yup schema\n if (!rulesVal ||\n isCallable(rulesVal) ||\n isYupValidator(rulesVal) ||\n isTypedSchema(rulesVal) ||\n Array.isArray(rulesVal)) {\n return {};\n }\n return Object.keys(rulesVal).reduce((acc, rule) => {\n const deps = extractLocators(rulesVal[rule])\n .map((dep) => dep.__locatorRef)\n .reduce((depAcc, depName) => {\n const depValue = getFromPath(form.values, depName) || form.values[depName];\n if (depValue !== undefined) {\n depAcc[depName] = depValue;\n }\n return depAcc;\n }, {});\n Object.assign(acc, deps);\n return acc;\n }, {});\n });\n // Adds a watcher that runs the validation whenever field dependencies change\n watch(dependencies, (deps, oldDeps) => {\n // Skip if no dependencies or if the field wasn't manipulated\n if (!Object.keys(deps).length) {\n return;\n }\n const shouldValidate = !isEqual(deps, oldDeps);\n if (shouldValidate) {\n meta.validated ? validateWithStateMutation() : validateValidStateOnly();\n }\n });\n onBeforeUnmount(() => {\n var _a;\n const shouldKeepValue = (_a = toValue(field.keepValueOnUnmount)) !== null && _a !== void 0 ? _a : toValue(form.keepValuesOnUnmount);\n const path = toValue(name);\n if (shouldKeepValue || !form || flags.pendingUnmount[field.id]) {\n form === null || form === void 0 ? void 0 : form.removePathState(path, id);\n return;\n }\n flags.pendingUnmount[field.id] = true;\n const pathState = form.getPathState(path);\n const matchesId = Array.isArray(pathState === null || pathState === void 0 ? void 0 : pathState.id) && (pathState === null || pathState === void 0 ? void 0 : pathState.multiple)\n ? pathState === null || pathState === void 0 ? void 0 : pathState.id.includes(field.id)\n : (pathState === null || pathState === void 0 ? void 0 : pathState.id) === field.id;\n if (!matchesId) {\n return;\n }\n if ((pathState === null || pathState === void 0 ? void 0 : pathState.multiple) && Array.isArray(pathState.value)) {\n const valueIdx = pathState.value.findIndex(i => isEqual(i, toValue(field.checkedValue)));\n if (valueIdx > -1) {\n const newVal = [...pathState.value];\n newVal.splice(valueIdx, 1);\n form.setFieldValue(path, newVal);\n }\n if (Array.isArray(pathState.id)) {\n pathState.id.splice(pathState.id.indexOf(field.id), 1);\n }\n }\n else {\n form.unsetPathValue(toValue(name));\n }\n form.removePathState(path, id);\n });\n return field;\n}\n/**\n * Normalizes partial field options to include the full options\n */\nfunction normalizeOptions(opts) {\n const defaults = () => ({\n initialValue: undefined,\n validateOnMount: false,\n bails: true,\n label: undefined,\n validateOnValueUpdate: true,\n keepValueOnUnmount: undefined,\n syncVModel: false,\n controlled: true,\n });\n const isVModelSynced = !!(opts === null || opts === void 0 ? void 0 : opts.syncVModel);\n const modelPropName = typeof (opts === null || opts === void 0 ? void 0 : opts.syncVModel) === 'string' ? opts.syncVModel : (opts === null || opts === void 0 ? void 0 : opts.modelPropName) || 'modelValue';\n const initialValue = isVModelSynced && !('initialValue' in (opts || {}))\n ? getCurrentModelValue(getCurrentInstance(), modelPropName)\n : opts === null || opts === void 0 ? void 0 : opts.initialValue;\n if (!opts) {\n return Object.assign(Object.assign({}, defaults()), { initialValue });\n }\n // TODO: Deprecate this in next major release\n const checkedValue = 'valueProp' in opts ? opts.valueProp : opts.checkedValue;\n const controlled = 'standalone' in opts ? !opts.standalone : opts.controlled;\n const syncVModel = (opts === null || opts === void 0 ? void 0 : opts.modelPropName) || (opts === null || opts === void 0 ? void 0 : opts.syncVModel) || false;\n return Object.assign(Object.assign(Object.assign({}, defaults()), (opts || {})), { initialValue, controlled: controlled !== null && controlled !== void 0 ? controlled : true, checkedValue,\n syncVModel });\n}\nfunction useFieldWithChecked(name, rules, opts) {\n const form = !(opts === null || opts === void 0 ? void 0 : opts.standalone) ? injectWithSelf(FormContextKey) : undefined;\n const checkedValue = opts === null || opts === void 0 ? void 0 : opts.checkedValue;\n const uncheckedValue = opts === null || opts === void 0 ? void 0 : opts.uncheckedValue;\n function patchCheckedApi(field) {\n const handleChange = field.handleChange;\n const checked = computed(() => {\n const currentValue = toValue(field.value);\n const checkedVal = toValue(checkedValue);\n return Array.isArray(currentValue)\n ? currentValue.findIndex(v => isEqual(v, checkedVal)) >= 0\n : isEqual(checkedVal, currentValue);\n });\n function handleCheckboxChange(e, shouldValidate = true) {\n var _a, _b;\n if (checked.value === ((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.checked)) {\n if (shouldValidate) {\n field.validate();\n }\n return;\n }\n const path = toValue(name);\n const pathState = form === null || form === void 0 ? void 0 : form.getPathState(path);\n const value = normalizeEventValue(e);\n let newValue = (_b = toValue(checkedValue)) !== null && _b !== void 0 ? _b : value;\n if (form && (pathState === null || pathState === void 0 ? void 0 : pathState.multiple) && pathState.type === 'checkbox') {\n newValue = resolveNextCheckboxValue(getFromPath(form.values, path) || [], newValue, undefined);\n }\n else if ((opts === null || opts === void 0 ? void 0 : opts.type) === 'checkbox') {\n newValue = resolveNextCheckboxValue(toValue(field.value), newValue, toValue(uncheckedValue));\n }\n handleChange(newValue, shouldValidate);\n }\n return Object.assign(Object.assign({}, field), { checked,\n checkedValue,\n uncheckedValue, handleChange: handleCheckboxChange });\n }\n return patchCheckedApi(_useField(name, rules, opts));\n}\nfunction useVModel({ prop, value, handleChange, shouldValidate }) {\n const vm = getCurrentInstance();\n /* istanbul ignore next */\n if (!vm || !prop) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn('Failed to setup model events because `useField` was not called in setup.');\n }\n return;\n }\n const propName = typeof prop === 'string' ? prop : 'modelValue';\n const emitName = `update:${propName}`;\n // Component doesn't have a model prop setup (must be defined on the props)\n if (!(propName in vm.props)) {\n return;\n }\n watch(value, newValue => {\n if (isEqual(newValue, getCurrentModelValue(vm, propName))) {\n return;\n }\n vm.emit(emitName, newValue);\n });\n watch(() => getCurrentModelValue(vm, propName), propValue => {\n if (propValue === IS_ABSENT && value.value === undefined) {\n return;\n }\n const newValue = propValue === IS_ABSENT ? undefined : propValue;\n if (isEqual(newValue, value.value)) {\n return;\n }\n handleChange(newValue, shouldValidate());\n });\n}\nfunction getCurrentModelValue(vm, propName) {\n if (!vm) {\n return undefined;\n }\n return vm.props[propName];\n}\n\nconst FieldImpl = /** #__PURE__ */ defineComponent({\n name: 'Field',\n inheritAttrs: false,\n props: {\n as: {\n type: [String, Object],\n default: undefined,\n },\n name: {\n type: String,\n required: true,\n },\n rules: {\n type: [Object, String, Function],\n default: undefined,\n },\n validateOnMount: {\n type: Boolean,\n default: false,\n },\n validateOnBlur: {\n type: Boolean,\n default: undefined,\n },\n validateOnChange: {\n type: Boolean,\n default: undefined,\n },\n validateOnInput: {\n type: Boolean,\n default: undefined,\n },\n validateOnModelUpdate: {\n type: Boolean,\n default: undefined,\n },\n bails: {\n type: Boolean,\n default: () => getConfig().bails,\n },\n label: {\n type: String,\n default: undefined,\n },\n uncheckedValue: {\n type: null,\n default: undefined,\n },\n modelValue: {\n type: null,\n default: IS_ABSENT,\n },\n modelModifiers: {\n type: null,\n default: () => ({}),\n },\n 'onUpdate:modelValue': {\n type: null,\n default: undefined,\n },\n standalone: {\n type: Boolean,\n default: false,\n },\n keepValue: {\n type: Boolean,\n default: undefined,\n },\n },\n setup(props, ctx) {\n const rules = toRef(props, 'rules');\n const name = toRef(props, 'name');\n const label = toRef(props, 'label');\n const uncheckedValue = toRef(props, 'uncheckedValue');\n const keepValue = toRef(props, 'keepValue');\n const { errors, value, errorMessage, validate: validateField, handleChange, handleBlur, setTouched, resetField, handleReset, meta, checked, setErrors, } = useField(name, rules, {\n validateOnMount: props.validateOnMount,\n bails: props.bails,\n standalone: props.standalone,\n type: ctx.attrs.type,\n initialValue: resolveInitialValue(props, ctx),\n // Only for checkboxes and radio buttons\n checkedValue: ctx.attrs.value,\n uncheckedValue,\n label,\n validateOnValueUpdate: props.validateOnModelUpdate,\n keepValueOnUnmount: keepValue,\n syncVModel: true,\n });\n // If there is a v-model applied on the component we need to emit the `update:modelValue` whenever the value binding changes\n const onChangeHandler = function handleChangeWithModel(e, shouldValidate = true) {\n handleChange(e, shouldValidate);\n };\n const sharedProps = computed(() => {\n const { validateOnInput, validateOnChange, validateOnBlur, validateOnModelUpdate } = resolveValidationTriggers(props);\n function baseOnBlur(e) {\n handleBlur(e, validateOnBlur);\n if (isCallable(ctx.attrs.onBlur)) {\n ctx.attrs.onBlur(e);\n }\n }\n function baseOnInput(e) {\n onChangeHandler(e, validateOnInput);\n if (isCallable(ctx.attrs.onInput)) {\n ctx.attrs.onInput(e);\n }\n }\n function baseOnChange(e) {\n onChangeHandler(e, validateOnChange);\n if (isCallable(ctx.attrs.onChange)) {\n ctx.attrs.onChange(e);\n }\n }\n const attrs = {\n name: props.name,\n onBlur: baseOnBlur,\n onInput: baseOnInput,\n onChange: baseOnChange,\n };\n attrs['onUpdate:modelValue'] = e => onChangeHandler(e, validateOnModelUpdate);\n return attrs;\n });\n const fieldProps = computed(() => {\n const attrs = Object.assign({}, sharedProps.value);\n if (hasCheckedAttr(ctx.attrs.type) && checked) {\n attrs.checked = checked.value;\n }\n const tag = resolveTag(props, ctx);\n if (shouldHaveValueBinding(tag, ctx.attrs)) {\n attrs.value = value.value;\n }\n return attrs;\n });\n const componentProps = computed(() => {\n return Object.assign(Object.assign({}, sharedProps.value), { modelValue: value.value });\n });\n function slotProps() {\n return {\n field: fieldProps.value,\n componentField: componentProps.value,\n value: value.value,\n meta,\n errors: errors.value,\n errorMessage: errorMessage.value,\n validate: validateField,\n resetField,\n handleChange: onChangeHandler,\n handleInput: e => onChangeHandler(e, false),\n handleReset,\n handleBlur: sharedProps.value.onBlur,\n setTouched,\n setErrors,\n };\n }\n ctx.expose({\n value,\n meta,\n errors,\n errorMessage,\n setErrors,\n setTouched,\n reset: resetField,\n validate: validateField,\n handleChange,\n });\n return () => {\n const tag = resolveDynamicComponent(resolveTag(props, ctx));\n const children = normalizeChildren(tag, ctx, slotProps);\n if (tag) {\n return h(tag, Object.assign(Object.assign({}, ctx.attrs), fieldProps.value), children);\n }\n return children;\n };\n },\n});\nfunction resolveTag(props, ctx) {\n let tag = props.as || '';\n if (!props.as && !ctx.slots.default) {\n tag = 'input';\n }\n return tag;\n}\nfunction resolveValidationTriggers(props) {\n var _a, _b, _c, _d;\n const { validateOnInput, validateOnChange, validateOnBlur, validateOnModelUpdate } = getConfig();\n return {\n validateOnInput: (_a = props.validateOnInput) !== null && _a !== void 0 ? _a : validateOnInput,\n validateOnChange: (_b = props.validateOnChange) !== null && _b !== void 0 ? _b : validateOnChange,\n validateOnBlur: (_c = props.validateOnBlur) !== null && _c !== void 0 ? _c : validateOnBlur,\n validateOnModelUpdate: (_d = props.validateOnModelUpdate) !== null && _d !== void 0 ? _d : validateOnModelUpdate,\n };\n}\nfunction resolveInitialValue(props, ctx) {\n // Gets the initial value either from `value` prop/attr or `v-model` binding (modelValue)\n // For checkboxes and radio buttons it will always be the model value not the `value` attribute\n if (!hasCheckedAttr(ctx.attrs.type)) {\n return isPropPresent(props, 'modelValue') ? props.modelValue : ctx.attrs.value;\n }\n return isPropPresent(props, 'modelValue') ? props.modelValue : undefined;\n}\nconst Field = FieldImpl;\n\nlet FORM_COUNTER = 0;\nconst PRIVATE_PATH_STATE_KEYS = ['bails', 'fieldsCount', 'id', 'multiple', 'type', 'validate'];\nfunction resolveInitialValues(opts) {\n const providedValues = Object.assign({}, toValue((opts === null || opts === void 0 ? void 0 : opts.initialValues) || {}));\n const schema = unref(opts === null || opts === void 0 ? void 0 : opts.validationSchema);\n if (schema && isTypedSchema(schema) && isCallable(schema.cast)) {\n return klona(schema.cast(providedValues) || {});\n }\n return klona(providedValues);\n}\nfunction useForm(opts) {\n var _a;\n const formId = FORM_COUNTER++;\n // Prevents fields from double resetting their values, which causes checkboxes to toggle their initial value\n let FIELD_ID_COUNTER = 0;\n // If the form is currently submitting\n const isSubmitting = ref(false);\n // If the form is currently validating\n const isValidating = ref(false);\n // The number of times the user tried to submit the form\n const submitCount = ref(0);\n // field arrays managed by this form\n const fieldArrays = [];\n // a private ref for all form values\n const formValues = reactive(resolveInitialValues(opts));\n const pathStates = ref([]);\n const extraErrorsBag = ref({});\n const pathStateLookup = ref({});\n const rebuildPathLookup = debounceNextTick(() => {\n pathStateLookup.value = pathStates.value.reduce((names, state) => {\n names[normalizeFormPath(toValue(state.path))] = state;\n return names;\n }, {});\n });\n /**\n * Manually sets an error message on a specific field\n */\n function setFieldError(field, message) {\n const state = findPathState(field);\n if (!state) {\n if (typeof field === 'string') {\n extraErrorsBag.value[normalizeFormPath(field)] = normalizeErrorItem(message);\n }\n return;\n }\n // Move the error from the extras path if exists\n if (typeof field === 'string') {\n const normalizedPath = normalizeFormPath(field);\n if (extraErrorsBag.value[normalizedPath]) {\n delete extraErrorsBag.value[normalizedPath];\n }\n }\n state.errors = normalizeErrorItem(message);\n state.valid = !state.errors.length;\n }\n /**\n * Sets errors for the fields specified in the object\n */\n function setErrors(paths) {\n keysOf(paths).forEach(path => {\n setFieldError(path, paths[path]);\n });\n }\n if (opts === null || opts === void 0 ? void 0 : opts.initialErrors) {\n setErrors(opts.initialErrors);\n }\n const errorBag = computed(() => {\n const pathErrors = pathStates.value.reduce((acc, state) => {\n if (state.errors.length) {\n acc[state.path] = state.errors;\n }\n return acc;\n }, {});\n return Object.assign(Object.assign({}, extraErrorsBag.value), pathErrors);\n });\n // Gets the first error of each field\n const errors = computed(() => {\n return keysOf(errorBag.value).reduce((acc, key) => {\n const errors = errorBag.value[key];\n if (errors === null || errors === void 0 ? void 0 : errors.length) {\n acc[key] = errors[0];\n }\n return acc;\n }, {});\n });\n /**\n * Holds a computed reference to all fields names and labels\n */\n const fieldNames = computed(() => {\n return pathStates.value.reduce((names, state) => {\n names[state.path] = { name: state.path || '', label: state.label || '' };\n return names;\n }, {});\n });\n const fieldBailsMap = computed(() => {\n return pathStates.value.reduce((map, state) => {\n var _a;\n map[state.path] = (_a = state.bails) !== null && _a !== void 0 ? _a : true;\n return map;\n }, {});\n });\n // mutable non-reactive reference to initial errors\n // we need this to process initial errors then unset them\n const initialErrors = Object.assign({}, ((opts === null || opts === void 0 ? void 0 : opts.initialErrors) || {}));\n const keepValuesOnUnmount = (_a = opts === null || opts === void 0 ? void 0 : opts.keepValuesOnUnmount) !== null && _a !== void 0 ? _a : false;\n // initial form values\n const { initialValues, originalInitialValues, setInitialValues } = useFormInitialValues(pathStates, formValues, opts);\n // form meta aggregations\n const meta = useFormMeta(pathStates, formValues, originalInitialValues, errors);\n const controlledValues = computed(() => {\n return pathStates.value.reduce((acc, state) => {\n const value = getFromPath(formValues, state.path);\n setInPath(acc, state.path, value);\n return acc;\n }, {});\n });\n const schema = opts === null || opts === void 0 ? void 0 : opts.validationSchema;\n function createPathState(path, config) {\n var _a, _b;\n const initialValue = computed(() => getFromPath(initialValues.value, toValue(path)));\n const pathStateExists = pathStateLookup.value[toValue(path)];\n const isCheckboxOrRadio = (config === null || config === void 0 ? void 0 : config.type) === 'checkbox' || (config === null || config === void 0 ? void 0 : config.type) === 'radio';\n if (pathStateExists && isCheckboxOrRadio) {\n pathStateExists.multiple = true;\n const id = FIELD_ID_COUNTER++;\n if (Array.isArray(pathStateExists.id)) {\n pathStateExists.id.push(id);\n }\n else {\n pathStateExists.id = [pathStateExists.id, id];\n }\n pathStateExists.fieldsCount++;\n pathStateExists.__flags.pendingUnmount[id] = false;\n return pathStateExists;\n }\n const currentValue = computed(() => getFromPath(formValues, toValue(path)));\n const pathValue = toValue(path);\n const unsetBatchIndex = UNSET_BATCH.findIndex(_path => _path === pathValue);\n if (unsetBatchIndex !== -1) {\n UNSET_BATCH.splice(unsetBatchIndex, 1);\n }\n const isRequired = computed(() => {\n var _a, _b, _c, _d, _e, _f;\n if (isTypedSchema(schema)) {\n return (_c = (_b = (_a = schema).describe) === null || _b === void 0 ? void 0 : _b.call(_a, toValue(path)).required) !== null && _c !== void 0 ? _c : false;\n }\n // Path own schema\n if (isTypedSchema(config === null || config === void 0 ? void 0 : config.schema)) {\n return (_f = (_e = (_d = (config === null || config === void 0 ? void 0 : config.schema)).describe) === null || _e === void 0 ? void 0 : _e.call(_d).required) !== null && _f !== void 0 ? _f : false;\n }\n return false;\n });\n const id = FIELD_ID_COUNTER++;\n const state = reactive({\n id,\n path,\n touched: false,\n pending: false,\n valid: true,\n validated: !!((_a = initialErrors[pathValue]) === null || _a === void 0 ? void 0 : _a.length),\n required: isRequired,\n initialValue,\n errors: shallowRef([]),\n bails: (_b = config === null || config === void 0 ? void 0 : config.bails) !== null && _b !== void 0 ? _b : false,\n label: config === null || config === void 0 ? void 0 : config.label,\n type: (config === null || config === void 0 ? void 0 : config.type) || 'default',\n value: currentValue,\n multiple: false,\n __flags: {\n pendingUnmount: { [id]: false },\n pendingReset: false,\n },\n fieldsCount: 1,\n validate: config === null || config === void 0 ? void 0 : config.validate,\n dirty: computed(() => {\n return !isEqual(unref(currentValue), unref(initialValue));\n }),\n });\n pathStates.value.push(state);\n pathStateLookup.value[pathValue] = state;\n rebuildPathLookup();\n if (errors.value[pathValue] && !initialErrors[pathValue]) {\n nextTick(() => {\n validateField(pathValue, { mode: 'silent' });\n });\n }\n // Handles when a path changes\n if (isRef(path)) {\n watch(path, newPath => {\n rebuildPathLookup();\n const nextValue = klona(currentValue.value);\n pathStateLookup.value[newPath] = state;\n nextTick(() => {\n setInPath(formValues, newPath, nextValue);\n });\n });\n }\n return state;\n }\n /**\n * Batches validation runs in 5ms batches\n * Must have two distinct batch queues to make sure they don't override each other settings #3783\n */\n const debouncedSilentValidation = debounceAsync(_validateSchema, 5);\n const debouncedValidation = debounceAsync(_validateSchema, 5);\n const validateSchema = withLatest(async (mode) => {\n return (await (mode === 'silent'\n ? debouncedSilentValidation()\n : debouncedValidation()));\n }, (formResult, [mode]) => {\n // fields by id lookup\n // errors fields names, we need it to also check if custom errors are updated\n const currentErrorsPaths = keysOf(formCtx.errorBag.value);\n // collect all the keys from the schema and all fields\n // this ensures we have a complete key map of all the fields\n const paths = [\n ...new Set([...keysOf(formResult.results), ...pathStates.value.map(p => p.path), ...currentErrorsPaths]),\n ].sort();\n // aggregates the paths into a single result object while applying the results on the fields\n const results = paths.reduce((validation, _path) => {\n var _a;\n const expectedPath = _path;\n const pathState = findPathState(expectedPath) || findHoistedPath(expectedPath);\n const messages = ((_a = formResult.results[expectedPath]) === null || _a === void 0 ? void 0 : _a.errors) || [];\n // This is the real path of the field, because it might've been a hoisted field\n const path = (toValue(pathState === null || pathState === void 0 ? void 0 : pathState.path) || expectedPath);\n // It is possible that multiple paths are collected across loops\n // We want to merge them to avoid overriding any iteration's results\n const fieldResult = mergeValidationResults({ errors: messages, valid: !messages.length }, validation.results[path]);\n validation.results[path] = fieldResult;\n if (!fieldResult.valid) {\n validation.errors[path] = fieldResult.errors[0];\n }\n // clean up extra errors if path state exists\n if (pathState && extraErrorsBag.value[path]) {\n delete extraErrorsBag.value[path];\n }\n // field not rendered\n if (!pathState) {\n setFieldError(path, messages);\n return validation;\n }\n // always update the valid flag regardless of the mode\n pathState.valid = fieldResult.valid;\n if (mode === 'silent') {\n return validation;\n }\n if (mode === 'validated-only' && !pathState.validated) {\n return validation;\n }\n setFieldError(pathState, fieldResult.errors);\n return validation;\n }, { valid: formResult.valid, results: {}, errors: {} });\n if (formResult.values) {\n results.values = formResult.values;\n }\n return results;\n });\n function mutateAllPathState(mutation) {\n pathStates.value.forEach(mutation);\n }\n function findPathState(path) {\n const normalizedPath = typeof path === 'string' ? normalizeFormPath(path) : path;\n const pathState = typeof normalizedPath === 'string' ? pathStateLookup.value[normalizedPath] : normalizedPath;\n return pathState;\n }\n function findHoistedPath(path) {\n const candidates = pathStates.value.filter(state => path.startsWith(state.path));\n return candidates.reduce((bestCandidate, candidate) => {\n if (!bestCandidate) {\n return candidate;\n }\n return (candidate.path.length > bestCandidate.path.length ? candidate : bestCandidate);\n }, undefined);\n }\n let UNSET_BATCH = [];\n let PENDING_UNSET;\n function unsetPathValue(path) {\n UNSET_BATCH.push(path);\n if (!PENDING_UNSET) {\n PENDING_UNSET = nextTick(() => {\n const sortedPaths = [...UNSET_BATCH].sort().reverse();\n sortedPaths.forEach(p => {\n unsetPath(formValues, p);\n });\n UNSET_BATCH = [];\n PENDING_UNSET = null;\n });\n }\n return PENDING_UNSET;\n }\n function makeSubmissionFactory(onlyControlled) {\n return function submitHandlerFactory(fn, onValidationError) {\n return function submissionHandler(e) {\n if (e instanceof Event) {\n e.preventDefault();\n e.stopPropagation();\n }\n // Touch all fields\n mutateAllPathState(s => (s.touched = true));\n isSubmitting.value = true;\n submitCount.value++;\n return validate()\n .then(result => {\n const values = klona(formValues);\n if (result.valid && typeof fn === 'function') {\n const controlled = klona(controlledValues.value);\n let submittedValues = (onlyControlled ? controlled : values);\n if (result.values) {\n submittedValues = result.values;\n }\n return fn(submittedValues, {\n evt: e,\n controlledValues: controlled,\n setErrors,\n setFieldError,\n setTouched,\n setFieldTouched,\n setValues,\n setFieldValue,\n resetForm,\n resetField,\n });\n }\n if (!result.valid && typeof onValidationError === 'function') {\n onValidationError({\n values,\n evt: e,\n errors: result.errors,\n results: result.results,\n });\n }\n })\n .then(returnVal => {\n isSubmitting.value = false;\n return returnVal;\n }, err => {\n isSubmitting.value = false;\n // re-throw the err so it doesn't go silent\n throw err;\n });\n };\n };\n }\n const handleSubmitImpl = makeSubmissionFactory(false);\n const handleSubmit = handleSubmitImpl;\n handleSubmit.withControlled = makeSubmissionFactory(true);\n function removePathState(path, id) {\n const idx = pathStates.value.findIndex(s => s.path === path);\n const pathState = pathStates.value[idx];\n if (idx === -1 || !pathState) {\n return;\n }\n nextTick(() => {\n validateField(path, { mode: 'silent', warn: false });\n });\n if (pathState.multiple && pathState.fieldsCount) {\n pathState.fieldsCount--;\n }\n if (Array.isArray(pathState.id)) {\n const idIndex = pathState.id.indexOf(id);\n if (idIndex >= 0) {\n pathState.id.splice(idIndex, 1);\n }\n delete pathState.__flags.pendingUnmount[id];\n }\n if (!pathState.multiple || pathState.fieldsCount <= 0) {\n pathStates.value.splice(idx, 1);\n unsetInitialValue(path);\n rebuildPathLookup();\n delete pathStateLookup.value[path];\n }\n }\n function destroyPath(path) {\n keysOf(pathStateLookup.value).forEach(key => {\n if (key.startsWith(path)) {\n delete pathStateLookup.value[key];\n }\n });\n pathStates.value = pathStates.value.filter(s => !s.path.startsWith(path));\n nextTick(() => {\n rebuildPathLookup();\n });\n }\n const formCtx = {\n formId,\n values: formValues,\n controlledValues,\n errorBag,\n errors,\n schema,\n submitCount,\n meta,\n isSubmitting,\n isValidating,\n fieldArrays,\n keepValuesOnUnmount,\n validateSchema: unref(schema) ? validateSchema : undefined,\n validate,\n setFieldError,\n validateField,\n setFieldValue,\n setValues,\n setErrors,\n setFieldTouched,\n setTouched,\n resetForm,\n resetField,\n handleSubmit,\n useFieldModel,\n defineInputBinds,\n defineComponentBinds: defineComponentBinds,\n defineField,\n stageInitialValue,\n unsetInitialValue,\n setFieldInitialValue,\n createPathState,\n getPathState: findPathState,\n unsetPathValue,\n removePathState,\n initialValues: initialValues,\n getAllPathStates: () => pathStates.value,\n destroyPath,\n isFieldTouched,\n isFieldDirty,\n isFieldValid,\n };\n /**\n * Sets a single field value\n */\n function setFieldValue(field, value, shouldValidate = true) {\n const clonedValue = klona(value);\n const path = typeof field === 'string' ? field : field.path;\n const pathState = findPathState(path);\n if (!pathState) {\n createPathState(path);\n }\n setInPath(formValues, path, clonedValue);\n if (shouldValidate) {\n validateField(path);\n }\n }\n function forceSetValues(fields, shouldValidate = true) {\n // clean up old values\n keysOf(formValues).forEach(key => {\n delete formValues[key];\n });\n // set up new values\n keysOf(fields).forEach(path => {\n setFieldValue(path, fields[path], false);\n });\n if (shouldValidate) {\n validate();\n }\n }\n /**\n * Sets multiple fields values\n */\n function setValues(fields, shouldValidate = true) {\n merge(formValues, fields);\n // regenerate the arrays when the form values change\n fieldArrays.forEach(f => f && f.reset());\n if (shouldValidate) {\n validate();\n }\n }\n function createModel(path, shouldValidate) {\n const pathState = findPathState(toValue(path)) || createPathState(path);\n return computed({\n get() {\n return pathState.value;\n },\n set(value) {\n var _a;\n const pathValue = toValue(path);\n setFieldValue(pathValue, value, (_a = toValue(shouldValidate)) !== null && _a !== void 0 ? _a : false);\n },\n });\n }\n /**\n * Sets the touched meta state on a field\n */\n function setFieldTouched(field, isTouched) {\n const pathState = findPathState(field);\n if (pathState) {\n pathState.touched = isTouched;\n }\n }\n function isFieldTouched(field) {\n const pathState = findPathState(field);\n if (pathState) {\n return pathState.touched;\n }\n // Find all nested paths and consider their touched state\n return pathStates.value.filter(s => s.path.startsWith(field)).some(s => s.touched);\n }\n function isFieldDirty(field) {\n const pathState = findPathState(field);\n if (pathState) {\n return pathState.dirty;\n }\n return pathStates.value.filter(s => s.path.startsWith(field)).some(s => s.dirty);\n }\n function isFieldValid(field) {\n const pathState = findPathState(field);\n if (pathState) {\n return pathState.valid;\n }\n return pathStates.value.filter(s => s.path.startsWith(field)).every(s => s.valid);\n }\n /**\n * Sets the touched meta state on multiple fields\n */\n function setTouched(fields) {\n if (typeof fields === 'boolean') {\n mutateAllPathState(state => {\n state.touched = fields;\n });\n return;\n }\n keysOf(fields).forEach(field => {\n setFieldTouched(field, !!fields[field]);\n });\n }\n function resetField(field, state) {\n var _a;\n const newValue = state && 'value' in state ? state.value : getFromPath(initialValues.value, field);\n const pathState = findPathState(field);\n if (pathState) {\n pathState.__flags.pendingReset = true;\n }\n setFieldInitialValue(field, klona(newValue), true);\n setFieldValue(field, newValue, false);\n setFieldTouched(field, (_a = state === null || state === void 0 ? void 0 : state.touched) !== null && _a !== void 0 ? _a : false);\n setFieldError(field, (state === null || state === void 0 ? void 0 : state.errors) || []);\n nextTick(() => {\n if (pathState) {\n pathState.__flags.pendingReset = false;\n }\n });\n }\n /**\n * Resets all fields\n */\n function resetForm(resetState, opts) {\n let newValues = klona((resetState === null || resetState === void 0 ? void 0 : resetState.values) ? resetState.values : originalInitialValues.value);\n newValues = (opts === null || opts === void 0 ? void 0 : opts.force) ? newValues : merge(originalInitialValues.value, newValues);\n newValues = isTypedSchema(schema) && isCallable(schema.cast) ? schema.cast(newValues) : newValues;\n setInitialValues(newValues);\n mutateAllPathState(state => {\n var _a;\n state.__flags.pendingReset = true;\n state.validated = false;\n state.touched = ((_a = resetState === null || resetState === void 0 ? void 0 : resetState.touched) === null || _a === void 0 ? void 0 : _a[state.path]) || false;\n setFieldValue(state.path, getFromPath(newValues, state.path), false);\n setFieldError(state.path, undefined);\n });\n (opts === null || opts === void 0 ? void 0 : opts.force) ? forceSetValues(newValues, false) : setValues(newValues, false);\n setErrors((resetState === null || resetState === void 0 ? void 0 : resetState.errors) || {});\n submitCount.value = (resetState === null || resetState === void 0 ? void 0 : resetState.submitCount) || 0;\n nextTick(() => {\n validate({ mode: 'silent' });\n mutateAllPathState(state => {\n state.__flags.pendingReset = false;\n });\n });\n }\n async function validate(opts) {\n const mode = (opts === null || opts === void 0 ? void 0 : opts.mode) || 'force';\n if (mode === 'force') {\n mutateAllPathState(f => (f.validated = true));\n }\n if (formCtx.validateSchema) {\n return formCtx.validateSchema(mode);\n }\n isValidating.value = true;\n // No schema, each field is responsible to validate itself\n const validations = await Promise.all(pathStates.value.map(state => {\n if (!state.validate) {\n return Promise.resolve({\n key: state.path,\n valid: true,\n errors: [],\n });\n }\n return state.validate(opts).then((result) => {\n return {\n key: state.path,\n valid: result.valid,\n errors: result.errors,\n };\n });\n }));\n isValidating.value = false;\n const results = {};\n const errors = {};\n for (const validation of validations) {\n results[validation.key] = {\n valid: validation.valid,\n errors: validation.errors,\n };\n if (validation.errors.length) {\n errors[validation.key] = validation.errors[0];\n }\n }\n return {\n valid: validations.every(r => r.valid),\n results,\n errors,\n };\n }\n async function validateField(path, opts) {\n var _a;\n const state = findPathState(path);\n if (state && (opts === null || opts === void 0 ? void 0 : opts.mode) !== 'silent') {\n state.validated = true;\n }\n if (schema) {\n const { results } = await validateSchema((opts === null || opts === void 0 ? void 0 : opts.mode) || 'validated-only');\n return results[path] || { errors: [], valid: true };\n }\n if (state === null || state === void 0 ? void 0 : state.validate) {\n return state.validate(opts);\n }\n const shouldWarn = !state && ((_a = opts === null || opts === void 0 ? void 0 : opts.warn) !== null && _a !== void 0 ? _a : true);\n if (shouldWarn) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn$1(`field with path ${path} was not found`);\n }\n }\n return Promise.resolve({ errors: [], valid: true });\n }\n function unsetInitialValue(path) {\n unsetPath(initialValues.value, path);\n }\n /**\n * Sneaky function to set initial field values\n */\n function stageInitialValue(path, value, updateOriginal = false) {\n setFieldInitialValue(path, value);\n setInPath(formValues, path, value);\n if (updateOriginal && !(opts === null || opts === void 0 ? void 0 : opts.initialValues)) {\n setInPath(originalInitialValues.value, path, klona(value));\n }\n }\n function setFieldInitialValue(path, value, updateOriginal = false) {\n setInPath(initialValues.value, path, klona(value));\n if (updateOriginal) {\n setInPath(originalInitialValues.value, path, klona(value));\n }\n }\n async function _validateSchema() {\n const schemaValue = unref(schema);\n if (!schemaValue) {\n return { valid: true, results: {}, errors: {} };\n }\n isValidating.value = true;\n const formResult = isYupValidator(schemaValue) || isTypedSchema(schemaValue)\n ? await validateTypedSchema(schemaValue, formValues)\n : await validateObjectSchema(schemaValue, formValues, {\n names: fieldNames.value,\n bailsMap: fieldBailsMap.value,\n });\n isValidating.value = false;\n return formResult;\n }\n const submitForm = handleSubmit((_, { evt }) => {\n if (isFormSubmitEvent(evt)) {\n evt.target.submit();\n }\n });\n // Trigger initial validation\n onMounted(() => {\n if (opts === null || opts === void 0 ? void 0 : opts.initialErrors) {\n setErrors(opts.initialErrors);\n }\n if (opts === null || opts === void 0 ? void 0 : opts.initialTouched) {\n setTouched(opts.initialTouched);\n }\n // if validate on mount was enabled\n if (opts === null || opts === void 0 ? void 0 : opts.validateOnMount) {\n validate();\n return;\n }\n // otherwise run initial silent validation through schema if available\n // the useField should skip their own silent validation if a yup schema is present\n if (formCtx.validateSchema) {\n formCtx.validateSchema('silent');\n }\n });\n if (isRef(schema)) {\n watch(schema, () => {\n var _a;\n (_a = formCtx.validateSchema) === null || _a === void 0 ? void 0 : _a.call(formCtx, 'validated-only');\n });\n }\n // Provide injections\n provide(FormContextKey, formCtx);\n if ((process.env.NODE_ENV !== 'production')) {\n registerFormWithDevTools(formCtx);\n watch(() => (Object.assign(Object.assign({ errors: errorBag.value }, meta.value), { values: formValues, isSubmitting: isSubmitting.value, isValidating: isValidating.value, submitCount: submitCount.value })), refreshInspector, {\n deep: true,\n });\n }\n function defineField(path, config) {\n const label = isCallable(config) ? undefined : config === null || config === void 0 ? void 0 : config.label;\n const pathState = (findPathState(toValue(path)) || createPathState(path, { label }));\n const evalConfig = () => (isCallable(config) ? config(omit(pathState, PRIVATE_PATH_STATE_KEYS)) : config || {});\n function onBlur() {\n var _a;\n pathState.touched = true;\n const validateOnBlur = (_a = evalConfig().validateOnBlur) !== null && _a !== void 0 ? _a : getConfig().validateOnBlur;\n if (validateOnBlur) {\n validateField(pathState.path);\n }\n }\n function onInput() {\n var _a;\n const validateOnInput = (_a = evalConfig().validateOnInput) !== null && _a !== void 0 ? _a : getConfig().validateOnInput;\n if (validateOnInput) {\n nextTick(() => {\n validateField(pathState.path);\n });\n }\n }\n function onChange() {\n var _a;\n const validateOnChange = (_a = evalConfig().validateOnChange) !== null && _a !== void 0 ? _a : getConfig().validateOnChange;\n if (validateOnChange) {\n nextTick(() => {\n validateField(pathState.path);\n });\n }\n }\n const props = computed(() => {\n const base = {\n onChange,\n onInput,\n onBlur,\n };\n if (isCallable(config)) {\n return Object.assign(Object.assign({}, base), (config(omit(pathState, PRIVATE_PATH_STATE_KEYS)).props || {}));\n }\n if (config === null || config === void 0 ? void 0 : config.props) {\n return Object.assign(Object.assign({}, base), config.props(omit(pathState, PRIVATE_PATH_STATE_KEYS)));\n }\n return base;\n });\n const model = createModel(path, () => { var _a, _b, _c; return (_c = (_a = evalConfig().validateOnModelUpdate) !== null && _a !== void 0 ? _a : (_b = getConfig()) === null || _b === void 0 ? void 0 : _b.validateOnModelUpdate) !== null && _c !== void 0 ? _c : true; });\n return [model, props];\n }\n function useFieldModel(pathOrPaths) {\n if (!Array.isArray(pathOrPaths)) {\n return createModel(pathOrPaths);\n }\n return pathOrPaths.map(p => createModel(p, true));\n }\n /**\n * @deprecated use defineField instead\n */\n function defineInputBinds(path, config) {\n const [model, props] = defineField(path, config);\n function onBlur(e) {\n props.value.onBlur(e);\n }\n function onInput(e) {\n const value = normalizeEventValue(e);\n setFieldValue(toValue(path), value, false);\n props.value.onInput(e);\n }\n function onChange(e) {\n const value = normalizeEventValue(e);\n setFieldValue(toValue(path), value, false);\n props.value.onChange(e);\n }\n return computed(() => {\n return Object.assign(Object.assign({}, props.value), { onBlur,\n onInput,\n onChange, value: model.value });\n });\n }\n /**\n * @deprecated use defineField instead\n */\n function defineComponentBinds(path, config) {\n const [model, props] = defineField(path, config);\n const pathState = findPathState(toValue(path));\n function onUpdateModelValue(value) {\n model.value = value;\n }\n return computed(() => {\n const conf = isCallable(config) ? config(omit(pathState, PRIVATE_PATH_STATE_KEYS)) : config || {};\n return Object.assign({ [conf.model || 'modelValue']: model.value, [`onUpdate:${conf.model || 'modelValue'}`]: onUpdateModelValue }, props.value);\n });\n }\n return Object.assign(Object.assign({}, formCtx), { values: readonly(formValues), handleReset: () => resetForm(), submitForm });\n}\n/**\n * Manages form meta aggregation\n */\nfunction useFormMeta(pathsState, currentValues, initialValues, errors) {\n const MERGE_STRATEGIES = {\n touched: 'some',\n pending: 'some',\n valid: 'every',\n };\n const isDirty = computed(() => {\n return !isEqual(currentValues, unref(initialValues));\n });\n function calculateFlags() {\n const states = pathsState.value;\n return keysOf(MERGE_STRATEGIES).reduce((acc, flag) => {\n const mergeMethod = MERGE_STRATEGIES[flag];\n acc[flag] = states[mergeMethod](s => s[flag]);\n return acc;\n }, {});\n }\n const flags = reactive(calculateFlags());\n watchEffect(() => {\n const value = calculateFlags();\n flags.touched = value.touched;\n flags.valid = value.valid;\n flags.pending = value.pending;\n });\n return computed(() => {\n return Object.assign(Object.assign({ initialValues: unref(initialValues) }, flags), { valid: flags.valid && !keysOf(errors.value).length, dirty: isDirty.value });\n });\n}\n/**\n * Manages the initial values prop\n */\nfunction useFormInitialValues(pathsState, formValues, opts) {\n const values = resolveInitialValues(opts);\n // these are the mutable initial values as the fields are mounted/unmounted\n const initialValues = ref(values);\n // these are the original initial value as provided by the user initially, they don't keep track of conditional fields\n // this is important because some conditional fields will overwrite the initial values for other fields who had the same name\n // like array fields, any push/insert operation will overwrite the initial values because they \"create new fields\"\n // so these are the values that the reset function should use\n // these only change when the user explicitly changes the initial values or when the user resets them with new values.\n const originalInitialValues = ref(klona(values));\n function setInitialValues(values, updateFields = false) {\n initialValues.value = merge(klona(initialValues.value) || {}, klona(values));\n originalInitialValues.value = merge(klona(originalInitialValues.value) || {}, klona(values));\n if (!updateFields) {\n return;\n }\n // update the pristine non-touched fields\n // those are excluded because it's unlikely you want to change the form values using initial values\n // we mostly watch them for API population or newly inserted fields\n // if the user API is taking too much time before user interaction they should consider disabling or hiding their inputs until the values are ready\n pathsState.value.forEach(state => {\n const wasTouched = state.touched;\n if (wasTouched) {\n return;\n }\n const newValue = getFromPath(initialValues.value, state.path);\n setInPath(formValues, state.path, klona(newValue));\n });\n }\n return {\n initialValues,\n originalInitialValues,\n setInitialValues,\n };\n}\nfunction mergeValidationResults(a, b) {\n if (!b) {\n return a;\n }\n return {\n valid: a.valid && b.valid,\n errors: [...a.errors, ...b.errors],\n };\n}\n\nconst FormImpl = /** #__PURE__ */ defineComponent({\n name: 'Form',\n inheritAttrs: false,\n props: {\n as: {\n type: null,\n default: 'form',\n },\n validationSchema: {\n type: Object,\n default: undefined,\n },\n initialValues: {\n type: Object,\n default: undefined,\n },\n initialErrors: {\n type: Object,\n default: undefined,\n },\n initialTouched: {\n type: Object,\n default: undefined,\n },\n validateOnMount: {\n type: Boolean,\n default: false,\n },\n onSubmit: {\n type: Function,\n default: undefined,\n },\n onInvalidSubmit: {\n type: Function,\n default: undefined,\n },\n keepValues: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, ctx) {\n const validationSchema = toRef(props, 'validationSchema');\n const keepValues = toRef(props, 'keepValues');\n const { errors, errorBag, values, meta, isSubmitting, isValidating, submitCount, controlledValues, validate, validateField, handleReset, resetForm, handleSubmit, setErrors, setFieldError, setFieldValue, setValues, setFieldTouched, setTouched, resetField, } = useForm({\n validationSchema: validationSchema.value ? validationSchema : undefined,\n initialValues: props.initialValues,\n initialErrors: props.initialErrors,\n initialTouched: props.initialTouched,\n validateOnMount: props.validateOnMount,\n keepValuesOnUnmount: keepValues,\n });\n const submitForm = handleSubmit((_, { evt }) => {\n if (isFormSubmitEvent(evt)) {\n evt.target.submit();\n }\n }, props.onInvalidSubmit);\n const onSubmit = props.onSubmit ? handleSubmit(props.onSubmit, props.onInvalidSubmit) : submitForm;\n function handleFormReset(e) {\n if (isEvent(e)) {\n // Prevent default form reset behavior\n e.preventDefault();\n }\n handleReset();\n if (typeof ctx.attrs.onReset === 'function') {\n ctx.attrs.onReset();\n }\n }\n function handleScopedSlotSubmit(evt, onSubmit) {\n const onSuccess = typeof evt === 'function' && !onSubmit ? evt : onSubmit;\n return handleSubmit(onSuccess, props.onInvalidSubmit)(evt);\n }\n function getValues() {\n return klona(values);\n }\n function getMeta() {\n return klona(meta.value);\n }\n function getErrors() {\n return klona(errors.value);\n }\n function slotProps() {\n return {\n meta: meta.value,\n errors: errors.value,\n errorBag: errorBag.value,\n values,\n isSubmitting: isSubmitting.value,\n isValidating: isValidating.value,\n submitCount: submitCount.value,\n controlledValues: controlledValues.value,\n validate,\n validateField,\n handleSubmit: handleScopedSlotSubmit,\n handleReset,\n submitForm,\n setErrors,\n setFieldError,\n setFieldValue,\n setValues,\n setFieldTouched,\n setTouched,\n resetForm,\n resetField,\n getValues,\n getMeta,\n getErrors,\n };\n }\n // expose these functions and methods as part of public API\n ctx.expose({\n setFieldError,\n setErrors,\n setFieldValue,\n setValues,\n setFieldTouched,\n setTouched,\n resetForm,\n validate,\n validateField,\n resetField,\n getValues,\n getMeta,\n getErrors,\n values,\n meta,\n errors,\n });\n return function renderForm() {\n // avoid resolving the form component as itself\n const tag = props.as === 'form' ? props.as : !props.as ? null : resolveDynamicComponent(props.as);\n const children = normalizeChildren(tag, ctx, slotProps);\n if (!tag) {\n return children;\n }\n // Attributes to add on a native `form` tag\n const formAttrs = tag === 'form'\n ? {\n // Disables native validation as vee-validate will handle it.\n novalidate: true,\n }\n : {};\n return h(tag, Object.assign(Object.assign(Object.assign({}, formAttrs), ctx.attrs), { onSubmit, onReset: handleFormReset }), children);\n };\n },\n});\nconst Form = FormImpl;\n\nfunction useFieldArray(arrayPath) {\n const form = injectWithSelf(FormContextKey, undefined);\n const fields = ref([]);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const noOp = () => { };\n const noOpApi = {\n fields,\n remove: noOp,\n push: noOp,\n swap: noOp,\n insert: noOp,\n update: noOp,\n replace: noOp,\n prepend: noOp,\n move: noOp,\n };\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('FieldArray requires being a child of `
` or `useForm` being called before it. Array fields may not work correctly');\n }\n return noOpApi;\n }\n if (!unref(arrayPath)) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('FieldArray requires a field path to be provided, did you forget to pass the `name` prop?');\n }\n return noOpApi;\n }\n const alreadyExists = form.fieldArrays.find(a => unref(a.path) === unref(arrayPath));\n if (alreadyExists) {\n return alreadyExists;\n }\n let entryCounter = 0;\n function getCurrentValues() {\n return getFromPath(form === null || form === void 0 ? void 0 : form.values, toValue(arrayPath), []) || [];\n }\n function initFields() {\n const currentValues = getCurrentValues();\n if (!Array.isArray(currentValues)) {\n return;\n }\n fields.value = currentValues.map((v, idx) => createEntry(v, idx, fields.value));\n updateEntryFlags();\n }\n initFields();\n function updateEntryFlags() {\n const fieldsLength = fields.value.length;\n for (let i = 0; i < fieldsLength; i++) {\n const entry = fields.value[i];\n entry.isFirst = i === 0;\n entry.isLast = i === fieldsLength - 1;\n }\n }\n function createEntry(value, idx, currentFields) {\n // Skips the work by returning the current entry if it already exists\n // This should make the `key` prop stable and doesn't cause more re-renders than needed\n // The value is computed and should update anyways\n if (currentFields && !isNullOrUndefined(idx) && currentFields[idx]) {\n return currentFields[idx];\n }\n const key = entryCounter++;\n const entry = {\n key,\n value: computedDeep({\n get() {\n const currentValues = getFromPath(form === null || form === void 0 ? void 0 : form.values, toValue(arrayPath), []) || [];\n const idx = fields.value.findIndex(e => e.key === key);\n return idx === -1 ? value : currentValues[idx];\n },\n set(value) {\n const idx = fields.value.findIndex(e => e.key === key);\n if (idx === -1) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Attempting to update a non-existent array item`);\n }\n return;\n }\n update(idx, value);\n },\n }), // will be auto unwrapped\n isFirst: false,\n isLast: false,\n };\n return entry;\n }\n function afterMutation() {\n updateEntryFlags();\n // Should trigger a silent validation since a field may not do that #4096\n form === null || form === void 0 ? void 0 : form.validate({ mode: 'silent' });\n }\n function remove(idx) {\n const pathName = toValue(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!pathValue || !Array.isArray(pathValue)) {\n return;\n }\n const newValue = [...pathValue];\n newValue.splice(idx, 1);\n const fieldPath = pathName + `[${idx}]`;\n form.destroyPath(fieldPath);\n form.unsetInitialValue(fieldPath);\n setInPath(form.values, pathName, newValue);\n fields.value.splice(idx, 1);\n afterMutation();\n }\n function push(initialValue) {\n const value = klona(initialValue);\n const pathName = toValue(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n const normalizedPathValue = isNullOrUndefined(pathValue) ? [] : pathValue;\n if (!Array.isArray(normalizedPathValue)) {\n return;\n }\n const newValue = [...normalizedPathValue];\n newValue.push(value);\n form.stageInitialValue(pathName + `[${newValue.length - 1}]`, value);\n setInPath(form.values, pathName, newValue);\n fields.value.push(createEntry(value));\n afterMutation();\n }\n function swap(indexA, indexB) {\n const pathName = toValue(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!Array.isArray(pathValue) || !(indexA in pathValue) || !(indexB in pathValue)) {\n return;\n }\n const newValue = [...pathValue];\n const newFields = [...fields.value];\n // the old switcheroo\n const temp = newValue[indexA];\n newValue[indexA] = newValue[indexB];\n newValue[indexB] = temp;\n const tempEntry = newFields[indexA];\n newFields[indexA] = newFields[indexB];\n newFields[indexB] = tempEntry;\n setInPath(form.values, pathName, newValue);\n fields.value = newFields;\n updateEntryFlags();\n }\n function insert(idx, initialValue) {\n const value = klona(initialValue);\n const pathName = toValue(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!Array.isArray(pathValue) || pathValue.length < idx) {\n return;\n }\n const newValue = [...pathValue];\n const newFields = [...fields.value];\n newValue.splice(idx, 0, value);\n newFields.splice(idx, 0, createEntry(value));\n setInPath(form.values, pathName, newValue);\n fields.value = newFields;\n afterMutation();\n }\n function replace(arr) {\n const pathName = toValue(arrayPath);\n form.stageInitialValue(pathName, arr);\n setInPath(form.values, pathName, arr);\n initFields();\n afterMutation();\n }\n function update(idx, value) {\n const pathName = toValue(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!Array.isArray(pathValue) || pathValue.length - 1 < idx) {\n return;\n }\n setInPath(form.values, `${pathName}[${idx}]`, value);\n form === null || form === void 0 ? void 0 : form.validate({ mode: 'validated-only' });\n }\n function prepend(initialValue) {\n const value = klona(initialValue);\n const pathName = toValue(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n const normalizedPathValue = isNullOrUndefined(pathValue) ? [] : pathValue;\n if (!Array.isArray(normalizedPathValue)) {\n return;\n }\n const newValue = [value, ...normalizedPathValue];\n setInPath(form.values, pathName, newValue);\n form.stageInitialValue(pathName + `[0]`, value);\n fields.value.unshift(createEntry(value));\n afterMutation();\n }\n function move(oldIdx, newIdx) {\n const pathName = toValue(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n const newValue = isNullOrUndefined(pathValue) ? [] : [...pathValue];\n if (!Array.isArray(pathValue) || !(oldIdx in pathValue) || !(newIdx in pathValue)) {\n return;\n }\n const newFields = [...fields.value];\n const movedItem = newFields[oldIdx];\n newFields.splice(oldIdx, 1);\n newFields.splice(newIdx, 0, movedItem);\n const movedValue = newValue[oldIdx];\n newValue.splice(oldIdx, 1);\n newValue.splice(newIdx, 0, movedValue);\n setInPath(form.values, pathName, newValue);\n fields.value = newFields;\n afterMutation();\n }\n const fieldArrayCtx = {\n fields,\n remove,\n push,\n swap,\n insert,\n update,\n replace,\n prepend,\n move,\n };\n form.fieldArrays.push(Object.assign({ path: arrayPath, reset: initFields }, fieldArrayCtx));\n onBeforeUnmount(() => {\n const idx = form.fieldArrays.findIndex(i => toValue(i.path) === toValue(arrayPath));\n if (idx >= 0) {\n form.fieldArrays.splice(idx, 1);\n }\n });\n // Makes sure to sync the form values with the array value if they go out of sync\n // #4153\n watch(getCurrentValues, formValues => {\n const fieldsValues = fields.value.map(f => f.value);\n // If form values are not the same as the current values then something overrode them.\n if (!isEqual(formValues, fieldsValues)) {\n initFields();\n }\n });\n return fieldArrayCtx;\n}\n\nconst FieldArrayImpl = /** #__PURE__ */ defineComponent({\n name: 'FieldArray',\n inheritAttrs: false,\n props: {\n name: {\n type: String,\n required: true,\n },\n },\n setup(props, ctx) {\n const { push, remove, swap, insert, replace, update, prepend, move, fields } = useFieldArray(() => props.name);\n function slotProps() {\n return {\n fields: fields.value,\n push,\n remove,\n swap,\n insert,\n update,\n replace,\n prepend,\n move,\n };\n }\n ctx.expose({\n push,\n remove,\n swap,\n insert,\n update,\n replace,\n prepend,\n move,\n });\n return () => {\n const children = normalizeChildren(undefined, ctx, slotProps);\n return children;\n };\n },\n});\nconst FieldArray = FieldArrayImpl;\n\nconst ErrorMessageImpl = /** #__PURE__ */ defineComponent({\n name: 'ErrorMessage',\n props: {\n as: {\n type: String,\n default: undefined,\n },\n name: {\n type: String,\n required: true,\n },\n },\n setup(props, ctx) {\n const form = inject(FormContextKey, undefined);\n const message = computed(() => {\n return form === null || form === void 0 ? void 0 : form.errors.value[props.name];\n });\n function slotProps() {\n return {\n message: message.value,\n };\n }\n return () => {\n // Renders nothing if there are no messages\n if (!message.value) {\n return undefined;\n }\n const tag = (props.as ? resolveDynamicComponent(props.as) : props.as);\n const children = normalizeChildren(tag, ctx, slotProps);\n const attrs = Object.assign({ role: 'alert' }, ctx.attrs);\n // If no tag was specified and there are children\n // render the slot as is without wrapping it\n if (!tag && (Array.isArray(children) || !children) && (children === null || children === void 0 ? void 0 : children.length)) {\n return children;\n }\n // If no children in slot\n // render whatever specified and fallback to a with the message in it's contents\n if ((Array.isArray(children) || !children) && !(children === null || children === void 0 ? void 0 : children.length)) {\n return h(tag || 'span', attrs, message.value);\n }\n return h(tag, attrs, children);\n };\n },\n});\nconst ErrorMessage = ErrorMessageImpl;\n\nfunction useResetForm() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n }\n return function resetForm(state) {\n if (!form) {\n return;\n }\n return form.resetForm(state);\n };\n}\n\n/**\n * If a field is dirty or not\n */\nfunction useIsFieldDirty(path) {\n const fieldOrPath = resolveFieldOrPathState(path);\n return computed(() => {\n var _a, _b;\n if (!fieldOrPath) {\n return false;\n }\n return (_b = ('meta' in fieldOrPath ? fieldOrPath.meta.dirty : (_a = fieldOrPath === null || fieldOrPath === void 0 ? void 0 : fieldOrPath.value) === null || _a === void 0 ? void 0 : _a.dirty)) !== null && _b !== void 0 ? _b : false;\n });\n}\n\n/**\n * If a field is touched or not\n */\nfunction useIsFieldTouched(path) {\n const fieldOrPath = resolveFieldOrPathState(path);\n return computed(() => {\n var _a, _b;\n if (!fieldOrPath) {\n return false;\n }\n return (_b = ('meta' in fieldOrPath ? fieldOrPath.meta.touched : (_a = fieldOrPath === null || fieldOrPath === void 0 ? void 0 : fieldOrPath.value) === null || _a === void 0 ? void 0 : _a.touched)) !== null && _b !== void 0 ? _b : false;\n });\n}\n\n/**\n * If a field is validated and is valid\n */\nfunction useIsFieldValid(path) {\n const fieldOrPath = resolveFieldOrPathState(path);\n return computed(() => {\n var _a, _b;\n if (!fieldOrPath) {\n return false;\n }\n return (_b = ('meta' in fieldOrPath ? fieldOrPath.meta.valid : (_a = fieldOrPath === null || fieldOrPath === void 0 ? void 0 : fieldOrPath.value) === null || _a === void 0 ? void 0 : _a.valid)) !== null && _b !== void 0 ? _b : false;\n });\n}\n\n/**\n * If the form is submitting or not\n */\nfunction useIsSubmitting() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.isSubmitting.value) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * If the form is validating or not\n */\nfunction useIsValidating() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.isValidating.value) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * Validates a single field\n */\nfunction useValidateField(path) {\n const form = injectWithSelf(FormContextKey);\n const field = path ? undefined : inject(FieldContextKey);\n return function validateField() {\n if (field) {\n return field.validate();\n }\n if (form && path) {\n return form === null || form === void 0 ? void 0 : form.validateField(toValue(path));\n }\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`field with name ${unref(path)} was not found`);\n }\n return Promise.resolve({\n errors: [],\n valid: true,\n });\n };\n}\n\n/**\n * If the form is dirty or not\n */\nfunction useIsFormDirty() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.dirty) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * If the form is touched or not\n */\nfunction useIsFormTouched() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.touched) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * If the form has been validated and is valid\n */\nfunction useIsFormValid() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.valid) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * Validate multiple fields\n */\nfunction useValidateForm() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n }\n return function validateField() {\n if (!form) {\n return Promise.resolve({ results: {}, errors: {}, valid: true });\n }\n return form.validate();\n };\n}\n\n/**\n * The number of form's submission count\n */\nfunction useSubmitCount() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.submitCount.value) !== null && _a !== void 0 ? _a : 0;\n });\n}\n\n/**\n * Gives access to a field's current value\n */\nfunction useFieldValue(path) {\n const form = injectWithSelf(FormContextKey);\n // We don't want to use self injected context as it doesn't make sense\n const field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n return getFromPath(form === null || form === void 0 ? void 0 : form.values, toValue(path));\n }\n return toValue(field === null || field === void 0 ? void 0 : field.value);\n });\n}\n\n/**\n * Gives access to a form's values\n */\nfunction useFormValues() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n }\n return computed(() => {\n return (form === null || form === void 0 ? void 0 : form.values) || {};\n });\n}\n\n/**\n * Gives access to all form errors\n */\nfunction useFormErrors() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n }\n return computed(() => {\n return ((form === null || form === void 0 ? void 0 : form.errors.value) || {});\n });\n}\n\n/**\n * Gives access to a single field error\n */\nfunction useFieldError(path) {\n const form = injectWithSelf(FormContextKey);\n // We don't want to use self injected context as it doesn't make sense\n const field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n return form === null || form === void 0 ? void 0 : form.errors.value[toValue(path)];\n }\n return field === null || field === void 0 ? void 0 : field.errorMessage.value;\n });\n}\n\nfunction useSubmitForm(cb) {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n }\n const onSubmit = form ? form.handleSubmit(cb) : undefined;\n return function submitForm(e) {\n if (!onSubmit) {\n return;\n }\n return onSubmit(e);\n };\n}\n\n/**\n * Sets a field's error message\n */\nfunction useSetFieldError(path) {\n const form = injectWithSelf(FormContextKey);\n // We don't want to use self injected context as it doesn't make sense\n const field = path ? undefined : inject(FieldContextKey);\n return function setFieldError(message) {\n if (path && form) {\n form.setFieldError(toValue(path), message);\n return;\n }\n if (field) {\n field.setErrors(message || []);\n return;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Could not set error message since there is no form context or a field named \"${toValue(path)}\", did you forget to call \"useField\" or \"useForm\"?`);\n }\n };\n}\n\n/**\n * Sets a field's touched meta state\n */\nfunction useSetFieldTouched(path) {\n const form = injectWithSelf(FormContextKey);\n // We don't want to use self injected context as it doesn't make sense\n const field = path ? undefined : inject(FieldContextKey);\n return function setFieldTouched(touched) {\n if (path && form) {\n form.setFieldTouched(toValue(path), touched);\n return;\n }\n if (field) {\n field.setTouched(touched);\n return;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Could not set touched state since there is no form context or a field named \"${toValue(path)}\", did you forget to call \"useField\" or \"useForm\"?`);\n }\n };\n}\n\n/**\n * Sets a field's value\n */\nfunction useSetFieldValue(path) {\n const form = injectWithSelf(FormContextKey);\n // We don't want to use self injected context as it doesn't make sense\n const field = path ? undefined : inject(FieldContextKey);\n return function setFieldValue(value, shouldValidate = true) {\n if (path && form) {\n form.setFieldValue(toValue(path), value, shouldValidate);\n return;\n }\n if (field) {\n field.setValue(value, shouldValidate);\n return;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Could not set value since there is no form context or a field named \"${toValue(path)}\", did you forget to call \"useField\" or \"useForm\"?`);\n }\n };\n}\n\n/**\n * Sets multiple fields errors\n */\nfunction useSetFormErrors() {\n const form = injectWithSelf(FormContextKey);\n function setFormErrors(fields) {\n if (form) {\n form.setErrors(fields);\n return;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Could not set errors because a form was not detected, did you forget to use \"useForm\" in a parent component?`);\n }\n }\n return setFormErrors;\n}\n\n/**\n * Sets multiple fields touched or all fields in the form\n */\nfunction useSetFormTouched() {\n const form = injectWithSelf(FormContextKey);\n function setFormTouched(fields) {\n if (form) {\n form.setTouched(fields);\n return;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Could not set touched state because a form was not detected, did you forget to use \"useForm\" in a parent component?`);\n }\n }\n return setFormTouched;\n}\n\n/**\n * Sets multiple fields values\n */\nfunction useSetFormValues() {\n const form = injectWithSelf(FormContextKey);\n function setFormValues(fields, shouldValidate = true) {\n if (form) {\n form.setValues(fields, shouldValidate);\n return;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Could not set form values because a form was not detected, did you forget to use \"useForm\" in a parent component?`);\n }\n }\n return setFormValues;\n}\n\nexport { ErrorMessage, Field, FieldArray, FieldContextKey, Form, FormContextKey, IS_ABSENT, cleanupNonNestedPath, configure, defineRule, isNotNestedPath, normalizeRules, useField, useFieldArray, useFieldError, useFieldValue, useForm, useFormErrors, useFormValues, useIsFieldDirty, useIsFieldTouched, useIsFieldValid, useIsFormDirty, useIsFormTouched, useIsFormValid, useIsSubmitting, useIsValidating, useResetForm, useSetFieldError, useSetFieldTouched, useSetFieldValue, useSetFormErrors, useSetFormTouched, useSetFormValues, useSubmitCount, useSubmitForm, useValidateField, useValidateForm, validate, validateObjectSchema as validateObject };\n","\n\n\n","\n\n","\n\n\n\n\n","import type { ComputedRef, Ref } from \"vue\";\n\n// NullRef -> For non-initialized refs\nexport type NullRef = Ref;\n\n// MaybeRef -> For things that could be refs or not\nexport type MaybeRef = T | Ref | ComputedRef;\n\nexport enum View {\n MAIN,\n CONFIRM,\n SUCCESS,\n ERROR\n}\n\n/* export enum GoBackBehavior {\n DEFAULT = \"DEFAULT\"\n} */\n\nexport type Form = {\n [P in keyof T]: T[P] | null;\n};\n\nexport function isEmptyObject(object: Record) {\n return JSON.stringify(object) === \"{}\";\n}\n\nexport function isEqualObject(obj1: any, obj2: any) {\n return JSON.stringify(obj1) === JSON.stringify(obj2);\n}\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n","\n\n\n\n\n","import { warn as vueWarn } from \"vue-demi\";\nexport function warn(msg, ...params) {\n vueWarn(`[vue-recaptcha]: ${msg}`, ...params);\n}\nexport function invariant(condition, msg) {\n if (!condition) {\n warn(msg);\n throw new Error(`Invariant violation: ${msg}`);\n }\n}\n","import { inject } from \"vue-demi\";\nimport { invariant, warn } from \"../utils.mjs\";\nexport const RecaptchaContextKey = \"vue-recaptcha-context\";\nexport function useRecaptchaContext() {\n const context = inject(RecaptchaContextKey);\n if (!context) {\n warn(\"You may forget to `use` vue-recaptcha plugin\");\n throw new Error(\"useRecaptcha() is called without provider.\");\n }\n return context;\n}\nexport function useRecaptchaProxy() {\n const ctx = useRecaptchaContext();\n return ctx.proxy;\n}\nexport function useAssertV2SiteKey() {\n const ctx = useRecaptchaContext();\n invariant(ctx.options.v2SiteKey, \"Your config is not compatible with recaptcha v2, please provide v2SiteKey\");\n return ctx.options.v2SiteKey;\n}\nexport function useAssertV3SiteKey() {\n const ctx = useRecaptchaContext();\n invariant(ctx.options.v3SiteKey, \"Your config is not compatible with recaptcha v3, please provide v3SiteKey\");\n return ctx.options.v3SiteKey;\n}\nexport function normalizeOptions(input) {\n invariant(\n input.v2SiteKey || input.v3SiteKey,\n \"You didn't pass v2SiteKey or v3SiteKey to plugin, which may be a mistake\"\n );\n return {\n ...input,\n loaderOptions: {\n ...input.loaderOptions,\n params: {\n ...input.loaderOptions?.params,\n render: input.v3SiteKey ?? \"explicit\"\n }\n }\n };\n}\n","export default function pDefer() {\n\tconst deferred = {};\n\n\tdeferred.promise = new Promise((resolve, reject) => {\n\t\tdeferred.resolve = resolve;\n\t\tdeferred.reject = reject;\n\t});\n\n\treturn deferred;\n}\n","function isPlainObject(value) {\n if (value === null || typeof value !== \"object\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== null && prototype !== Object.prototype && Object.getPrototypeOf(prototype) !== null) {\n return false;\n }\n if (Symbol.iterator in value) {\n return false;\n }\n if (Symbol.toStringTag in value) {\n return Object.prototype.toString.call(value) === \"[object Module]\";\n }\n return true;\n}\n\nfunction _defu(baseObject, defaults, namespace = \".\", merger) {\n if (!isPlainObject(defaults)) {\n return _defu(baseObject, {}, namespace, merger);\n }\n const object = Object.assign({}, defaults);\n for (const key in baseObject) {\n if (key === \"__proto__\" || key === \"constructor\") {\n continue;\n }\n const value = baseObject[key];\n if (value === null || value === void 0) {\n continue;\n }\n if (merger && merger(object, key, value, namespace)) {\n continue;\n }\n if (Array.isArray(value) && Array.isArray(object[key])) {\n object[key] = [...value, ...object[key]];\n } else if (isPlainObject(value) && isPlainObject(object[key])) {\n object[key] = _defu(\n value,\n object[key],\n (namespace ? `${namespace}.` : \"\") + key.toString(),\n merger\n );\n } else {\n object[key] = value;\n }\n }\n return object;\n}\nfunction createDefu(merger) {\n return (...arguments_) => (\n // eslint-disable-next-line unicorn/no-array-reduce\n arguments_.reduce((p, c) => _defu(p, c, \"\", merger), {})\n );\n}\nconst defu = createDefu();\nconst defuFn = createDefu((object, key, currentValue) => {\n if (object[key] !== void 0 && typeof currentValue === \"function\") {\n object[key] = currentValue(object[key]);\n return true;\n }\n});\nconst defuArrayFn = createDefu((object, key, currentValue) => {\n if (Array.isArray(object[key]) && typeof currentValue === \"function\") {\n object[key] = currentValue(object[key]);\n return true;\n }\n});\n\nexport { createDefu, defu as default, defu, defuArrayFn, defuFn };\n","import pDefer from \"p-defer\";\nimport defu from \"defu\";\nimport { warn } from \"../utils.mjs\";\nexport function defineScriptLoader(fn) {\n return (options) => {\n return fn(normalizeScriptLoaderOptions(options));\n };\n}\nexport function normalizeScriptLoaderOptions(options) {\n return {\n ...options,\n recaptchaApiURL: options.recaptchaApiURL ?? (options.useRecaptchaNet ? \"https://www.recaptcha.net/recaptcha/api.js\" : \"https://www.google.com/recaptcha/api.js\")\n };\n}\nexport const recaptchaLoaded = pDefer();\nconst ONLOAD_KEY = \"__vueRecaptchaLoaded\";\nif (typeof window !== \"undefined\") {\n window[ONLOAD_KEY] = () => {\n recaptchaLoaded.resolve();\n };\n}\nexport function toQueryString(params) {\n return new URLSearchParams(normalizeParams(params)).toString();\n}\nexport function normalizeParams(raw) {\n const params = defu(raw, { onload: ONLOAD_KEY, render: \"explicit\" });\n if (params.render === \"onload\") {\n warn(\"passing `onload` as `render` param is not allowed\");\n params.render = \"explicit\";\n }\n if (params.onload !== ONLOAD_KEY) {\n warn(\"passing `onload` param with other value is not allowed\");\n params.onload = ONLOAD_KEY;\n }\n return toStringPair(params);\n}\nexport function toStringPair(params) {\n return Object.entries(params).filter((pair) => typeof pair[1] === \"string\");\n}\nexport function checkRecaptchaLoad() {\n if (typeof window === \"undefined\") {\n return false;\n }\n const isLoaded = Object.hasOwn(window, \"grecaptcha\") && Object.hasOwn(window.grecaptcha, \"execute\");\n if (isLoaded) {\n recaptchaLoaded.resolve();\n }\n return isLoaded;\n}\n","import { invariant } from \"../utils.mjs\";\nimport { recaptchaLoaded } from \"../script-manager/common.mjs\";\nexport function createRecaptchaProxy(isReady, getRecaptcha) {\n function assertLoaded() {\n invariant(isReady.value, \"ReCAPTCHA is not loaded\");\n }\n async function wait() {\n await recaptchaLoaded.promise;\n isReady.value = true;\n }\n return {\n async render(ele, options) {\n await wait();\n return getRecaptcha().render(ele, options);\n },\n reset(widgetId) {\n if (typeof widgetId === \"undefined\") {\n return;\n }\n assertLoaded();\n getRecaptcha().reset(widgetId);\n },\n async execute(widgetId, options) {\n if (typeof widgetId === \"undefined\") {\n return;\n }\n await wait();\n return getRecaptcha().execute(widgetId, options);\n }\n };\n}\n","import { ref } from \"vue-demi\";\nimport { RecaptchaContextKey, normalizeOptions } from \"./composables/context.mjs\";\nimport { createRecaptchaProxy } from \"./composables/proxy.mjs\";\nimport { checkRecaptchaLoad, recaptchaLoaded } from \"./script-manager/common.mjs\";\nimport { warn } from \"./utils.mjs\";\nexport function createPlugin(scriptLoaderFactory, { getRecaptcha = () => window.grecaptcha } = {}) {\n return {\n install(app, options) {\n const isReady = ref(false);\n async function waitLoaded() {\n await recaptchaLoaded.promise;\n isReady.value = true;\n }\n waitLoaded().catch((error) => warn(\"fail to load reCAPTCHA script\", error));\n checkRecaptchaLoad();\n const opt = normalizeOptions(options);\n app.provide(RecaptchaContextKey, {\n isReady,\n scriptInjected: false,\n proxy: createRecaptchaProxy(isReady, getRecaptcha),\n useScriptProvider: scriptLoaderFactory(opt.loaderOptions),\n options: opt\n });\n }\n };\n}\n","import { onMounted } from \"vue\";\nimport { defineScriptLoader, toQueryString } from \"./common.mjs\";\nexport const createHeadRecaptcha = defineScriptLoader((options) => {\n return () => {\n onMounted(() => {\n const script = document.createElement(\"script\");\n script.src = `${options.recaptchaApiURL}?${toQueryString(options.params)}`;\n script.async = true;\n script.defer = true;\n if (options.nonce) {\n script.nonce = options.nonce;\n }\n document.head.append(script);\n });\n };\n});\n","import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(\"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(\n source,\n (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n },\n options\n );\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { createEventHook, toRef, whenever } from \"@vueuse/shared\";\nimport { ref } from \"vue-demi\";\nimport { useAssertV2SiteKey, useRecaptchaProxy } from \"./context.mjs\";\nexport var RecaptchaV2State = /* @__PURE__ */ ((RecaptchaV2State2) => {\n RecaptchaV2State2[\"Init\"] = \"init\";\n RecaptchaV2State2[\"Verified\"] = \"verified\";\n RecaptchaV2State2[\"Expired\"] = \"expired\";\n RecaptchaV2State2[\"Error\"] = \"error\";\n return RecaptchaV2State2;\n})(RecaptchaV2State || {});\nexport function useChallengeV2({ root = ref(), options = {} }) {\n const siteKey = useAssertV2SiteKey();\n const widgetID = ref();\n const proxy = useRecaptchaProxy();\n const verify = createEventHook();\n const expired = createEventHook();\n const error = createEventHook();\n const rootRef = toRef(root);\n const state = ref(\"init\" /* Init */);\n whenever(rootRef, async (el) => {\n const id = await proxy.render(el, {\n ...options,\n sitekey: siteKey,\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n callback: verify.trigger,\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n \"expired-callback\": expired.trigger,\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n \"error-callback\": error.trigger\n });\n widgetID.value = id;\n });\n verify.on(() => {\n state.value = \"verified\" /* Verified */;\n });\n expired.on(() => {\n state.value = \"expired\" /* Expired */;\n });\n error.on(() => {\n state.value = \"error\" /* Error */;\n });\n return {\n root: rootRef,\n widgetID,\n execute() {\n if (typeof widgetID.value !== \"undefined\") {\n proxy.execute(widgetID.value);\n }\n },\n reset() {\n state.value = \"init\" /* Init */;\n if (typeof widgetID.value !== \"undefined\") {\n proxy.reset(widgetID.value);\n }\n },\n state,\n onVerify: verify.on,\n onExpired: expired.on,\n onError: error.on\n };\n}\n","import { onMounted } from \"vue-demi\";\nimport { checkRecaptchaLoad } from \"../script-manager/common.mjs\";\nimport { warn } from \"../utils.mjs\";\nimport { useRecaptchaContext } from \"./context.mjs\";\nexport function useRecaptchaProvider() {\n const ctx = useRecaptchaContext();\n if (ctx.scriptInjected) {\n warn(\"`useRecaptchaProvider` is used multiple time\");\n } else {\n ctx.scriptInjected = true;\n ctx.useScriptProvider();\n onMounted(() => {\n checkRecaptchaLoad();\n });\n }\n}\n","import { whenever } from \"@vueuse/shared\";\nimport { computed, watch } from \"vue-demi\";\nimport { RecaptchaV2State, useChallengeV2 } from \"./challenge-v2.mjs\";\nexport function useComponentV2(options, modelValue, emit) {\n const { root, state, widgetID, onError, onExpired, onVerify, reset, execute } = useChallengeV2({\n options: options || {}\n });\n const isExpired = computed(() => state.value === RecaptchaV2State.Expired);\n const isError = computed(() => state.value === RecaptchaV2State.Error);\n const isVerified = computed(() => state.value === RecaptchaV2State.Verified);\n whenever(widgetID, (id) => {\n emit(\"load\", id);\n emit(\"update:widgetId\", id);\n });\n watch(modelValue, (res, old) => {\n if (!res && old && !isExpired.value) {\n callReset();\n }\n });\n onExpired(() => {\n emit(\"update:modelValue\", null);\n emit(\"expired\", widgetID.value);\n });\n onError((err) => {\n emit(\"error\", err);\n });\n onVerify((response) => {\n emit(\"success\", response);\n emit(\"update:modelValue\", response);\n });\n return { root, widgetID, state, isError, isExpired, isVerified, reset: callReset, execute };\n function callReset() {\n reset();\n resetState();\n }\n function resetState() {\n emit(\"update:modelValue\", null);\n }\n}\n","\n\n\n","import { createPlugin } from \"./plugin.mjs\";\nimport { createHeadRecaptcha } from \"./script-manager/head.mjs\";\nexport * from \"./api.mjs\";\nconst plugin = createPlugin(createHeadRecaptcha);\nexport { plugin as default, plugin as VueRecaptchaPlugin };\n","\n\n\n\n\n","\n\n\n","import type { Directive } from \"vue\";\n\nexport const scrollableDirectiveOptions: Directive = {\n mounted(el: HTMLElement, binding: any, vnode: any) {\n if (binding.value === true) {\n el.style.overflow = \"auto\";\n el.style.scrollBehavior = \"smooth\";\n // @ts-ignore\n el.style.scrollbarWidth = \"none\";\n } else {\n el.style.overflow = \"hidden\";\n }\n },\n updated(el, binding, vnode) {\n if (binding.value === true) {\n el.style.overflow = \"auto\";\n el.style.scrollBehavior = \"smooth\";\n // @ts-ignore\n el.style.scrollbarWidth = \"none\";\n } else {\n el.style.overflow = \"hidden\";\n }\n }\n};\n","import { type Ref, ref, type Directive } from \"vue\";\n\nexport enum ScrollTriggerRoles {\n TRIGGER = \"trigger\",\n SCROLLER = \"scroller\"\n}\n\nexport interface ScrollTriggerAnimation {\n name: K;\n scroller?: Element | null;\n trigger?: Element | null;\n timeline?: GSAPTimeline;\n elements: Record;\n}\n\nconst animations: Ref[]> = ref([]);\n\nexport function useAnimations() {\n const getByName = (name: string) => {\n return animations.value.find(animation => animation.name === name) || null;\n };\n\n return { getByName };\n}\n\nexport const scrollTriggerDirectiveOptions: Directive = {\n mounted(el, binding) {\n for (const animationName of binding.value.animations) {\n let animationIndex = animations.value.findIndex(\n animation => animation.name === animationName\n );\n if (animationIndex < 0)\n animationIndex = animations.value.push({ name: animationName, elements: {} }) - 1;\n animations.value[animationIndex][binding.value.role as ScrollTriggerRoles] = el;\n }\n },\n unmounted(el, binding) {\n for (const animationName of binding.value.animations) {\n const animationIndex = animations.value.findIndex(\n animation => animation.name === animationName\n );\n animations.value[animationIndex][binding.value.role as ScrollTriggerRoles] = null;\n }\n }\n};\n\nexport const animatableDirectiveOptions: Directive = {\n mounted(el, binding) {\n for (const animationName of binding.value.animations) {\n let animationIndex = animations.value.findIndex(\n animation => animation.name === animationName\n );\n if (animationIndex < 0)\n animationIndex = animations.value.push({ name: animationName, elements: {} }) - 1;\n animations.value[animationIndex].elements[binding.value.name] = el;\n }\n },\n unmounted(el, binding) {\n for (const animationName of binding.value.animations) {\n const animationIndex = animations.value.findIndex(\n animation => animation.name === animationName\n );\n animations.value[animationIndex].elements[binding.value.name] = null;\n }\n }\n};\n","/*!\n * vue-router v4.2.5\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, shallowReactive, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\n return obj.__esModule || obj[Symbol.toStringTag] === 'Module';\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n const newParams = {};\n for (const key in params) {\n const value = params[key];\n newParams[key] = isArray(value)\n ? value.map(fn)\n : fn(value);\n }\n return newParams;\n}\nconst noop = () => { };\n/**\n * Typesafe alternative to Array.isArray\n * https://github.com/microsoft/TypeScript/pull/48228\n */\nconst isArray = Array.isArray;\n\nfunction warn(msg) {\n // avoid using ...args as it breaks in older Edge builds\n const args = Array.from(arguments).slice(1);\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\n/**\n * Transforms a URI into a normalized history location\n *\n * @param parseQuery\n * @param location - URI to normalize\n * @param currentLocation - current absolute location. Allows resolving relative\n * paths. Must start with `/`. Defaults to `/`\n * @returns a normalized history location\n */\nfunction parseURL(parseQuery, location, currentLocation = '/') {\n let path, query = {}, searchString = '', hash = '';\n // Could use URL and URLSearchParams but IE 11 doesn't support it\n // TODO: move to new URL()\n const hashPos = location.indexOf('#');\n let searchPos = location.indexOf('?');\n // the hash appears before the search, so it's not part of the search string\n if (hashPos < searchPos && hashPos >= 0) {\n searchPos = -1;\n }\n if (searchPos > -1) {\n path = location.slice(0, searchPos);\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\n query = parseQuery(searchString);\n }\n if (hashPos > -1) {\n path = path || location.slice(0, hashPos);\n // keep the # character\n hash = location.slice(hashPos, location.length);\n }\n // no search and no query\n path = resolveRelativePath(path != null ? path : location, currentLocation);\n // empty path means a relative query or hash `?foo=f`, `#thing`\n return {\n fullPath: path + (searchString && '?') + searchString + hash,\n path,\n query,\n hash,\n };\n}\n/**\n * Stringifies a URL object\n *\n * @param stringifyQuery\n * @param location\n */\nfunction stringifyURL(stringifyQuery, location) {\n const query = location.query ? stringifyQuery(location.query) : '';\n return location.path + (query && '?') + query + (location.hash || '');\n}\n/**\n * Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n *\n * @param pathname - location.pathname\n * @param base - base to strip off\n */\nfunction stripBase(pathname, base) {\n // no base or base is not found at the beginning\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\n return pathname;\n return pathname.slice(base.length) || '/';\n}\n/**\n * Checks if two RouteLocation are equal. This means that both locations are\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\n * parameters and `hash` are the same\n *\n * @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n * @param a - first {@link RouteLocation}\n * @param b - second {@link RouteLocation}\n */\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n const aLastIndex = a.matched.length - 1;\n const bLastIndex = b.matched.length - 1;\n return (aLastIndex > -1 &&\n aLastIndex === bLastIndex &&\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\n isSameRouteLocationParams(a.params, b.params) &&\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\n a.hash === b.hash);\n}\n/**\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\n * considered equal to the `RouteRecord` they are aliasing.\n *\n * @param a - first {@link RouteRecord}\n * @param b - second {@link RouteRecord}\n */\nfunction isSameRouteRecord(a, b) {\n // since the original record has an undefined value for aliasOf\n // but all aliases point to the original record, this will always compare\n // the original record\n return (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n if (Object.keys(a).length !== Object.keys(b).length)\n return false;\n for (const key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\n return false;\n }\n return true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n return isArray(a)\n ? isEquivalentArray(a, b)\n : isArray(b)\n ? isEquivalentArray(b, a)\n : a === b;\n}\n/**\n * Check if two arrays are the same or if an array with one single entry is the\n * same as another primitive value. Used to check query and parameters\n *\n * @param a - array of values\n * @param b - array of values or a single value\n */\nfunction isEquivalentArray(a, b) {\n return isArray(b)\n ? a.length === b.length && a.every((value, i) => value === b[i])\n : a.length === 1 && a[0] === b;\n}\n/**\n * Resolves a relative path that starts with `.`.\n *\n * @param to - path location we are resolving\n * @param from - currentLocation.path, should start with `/`\n */\nfunction resolveRelativePath(to, from) {\n if (to.startsWith('/'))\n return to;\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n return to;\n }\n if (!to)\n return from;\n const fromSegments = from.split('/');\n const toSegments = to.split('/');\n const lastToSegment = toSegments[toSegments.length - 1];\n // make . and ./ the same (../ === .., ../../ === ../..)\n // this is the same behavior as new URL()\n if (lastToSegment === '..' || lastToSegment === '.') {\n toSegments.push('');\n }\n let position = fromSegments.length - 1;\n let toPosition;\n let segment;\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n segment = toSegments[toPosition];\n // we stay on the same position\n if (segment === '.')\n continue;\n // go up in the from array\n if (segment === '..') {\n // we can't go below zero, but we still need to increment toPosition\n if (position > 1)\n position--;\n // continue\n }\n // we reached a non-relative path, we stop here\n else\n break;\n }\n return (fromSegments.slice(0, position).join('/') +\n '/' +\n toSegments\n // ensure we use at least the last element in the toSegments\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\n .join('/'));\n}\n\nvar NavigationType;\n(function (NavigationType) {\n NavigationType[\"pop\"] = \"pop\";\n NavigationType[\"push\"] = \"push\";\n})(NavigationType || (NavigationType = {}));\nvar NavigationDirection;\n(function (NavigationDirection) {\n NavigationDirection[\"back\"] = \"back\";\n NavigationDirection[\"forward\"] = \"forward\";\n NavigationDirection[\"unknown\"] = \"\";\n})(NavigationDirection || (NavigationDirection = {}));\n/**\n * Starting location for Histories\n */\nconst START = '';\n// Generic utils\n/**\n * Normalizes a base by removing any trailing slash and reading the base tag if\n * present.\n *\n * @param base - base to normalize\n */\nfunction normalizeBase(base) {\n if (!base) {\n if (isBrowser) {\n // respect tag\n const baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\n }\n else {\n base = '/';\n }\n }\n // ensure leading slash when it was removed by the regex above avoid leading\n // slash with hash because the file could be read from the disk like file://\n // and the leading slash would cause problems\n if (base[0] !== '/' && base[0] !== '#')\n base = '/' + base;\n // remove the trailing slash so all other method can just do `base + fullPath`\n // to build an href\n return removeTrailingSlash(base);\n}\n// remove any character before the hash\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n return base.replace(BEFORE_HASH_RE, '#') + location;\n}\n\nfunction getElementPosition(el, offset) {\n const docRect = document.documentElement.getBoundingClientRect();\n const elRect = el.getBoundingClientRect();\n return {\n behavior: offset.behavior,\n left: elRect.left - docRect.left - (offset.left || 0),\n top: elRect.top - docRect.top - (offset.top || 0),\n };\n}\nconst computeScrollPosition = () => ({\n left: window.pageXOffset,\n top: window.pageYOffset,\n});\nfunction scrollToPosition(position) {\n let scrollToOptions;\n if ('el' in position) {\n const positionEl = position.el;\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\n /**\n * `id`s can accept pretty much any characters, including CSS combinators\n * like `>` or `~`. It's still possible to retrieve elements using\n * `document.getElementById('~')` but it needs to be escaped when using\n * `document.querySelector('#\\\\~')` for it to be valid. The only\n * requirements for `id`s are them to be unique on the page and to not be\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\n * be properly escaped for it to work with `querySelector`. We could check\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\n * would make things inconsistent since they are valid characters for an\n * `id` but would need to be escaped when using `querySelector`, breaking\n * their usage and ending up in no selector returned. Selectors need to be\n * escaped:\n *\n * - `#1-thing` becomes `#\\31 -thing`\n * - `#with~symbols` becomes `#with\\\\~symbols`\n *\n * - More information about the topic can be found at\n * https://mathiasbynens.be/notes/html5-id-class.\n * - Practical example: https://mathiasbynens.be/demo/html5-id\n */\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\n try {\n const foundEl = document.querySelector(position.el);\n if (isIdSelector && foundEl) {\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n // return to avoid other warnings\n return;\n }\n }\n catch (err) {\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n // return to avoid other warnings\n return;\n }\n }\n }\n const el = typeof positionEl === 'string'\n ? isIdSelector\n ? document.getElementById(positionEl.slice(1))\n : document.querySelector(positionEl)\n : positionEl;\n if (!el) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n return;\n }\n scrollToOptions = getElementPosition(el, position);\n }\n else {\n scrollToOptions = position;\n }\n if ('scrollBehavior' in document.documentElement.style)\n window.scrollTo(scrollToOptions);\n else {\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\n }\n}\nfunction getScrollKey(path, delta) {\n const position = history.state ? history.state.position - delta : -1;\n return position + path;\n}\nconst scrollPositions = new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n scrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n const scroll = scrollPositions.get(key);\n // consume it so it's not used again\n scrollPositions.delete(key);\n return scroll;\n}\n// TODO: RFC about how to save scroll position\n/**\n * ScrollBehavior instance used by the router to compute and restore the scroll\n * position when navigating.\n */\n// export interface ScrollHandler {\n// // returns a scroll position that can be saved in history\n// compute(): ScrollPositionEntry\n// // can take an extended ScrollPositionEntry\n// scroll(position: ScrollPosition): void\n// }\n// export const scrollHandler: ScrollHandler = {\n// compute: computeScroll,\n// scroll: scrollToPosition,\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\n/**\n * Creates a normalized history location from a window.location object\n * @param base - The base path\n * @param location - The window.location object\n */\nfunction createCurrentLocation(base, location) {\n const { pathname, search, hash } = location;\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\n const hashPos = base.indexOf('#');\n if (hashPos > -1) {\n let slicePos = hash.includes(base.slice(hashPos))\n ? base.slice(hashPos).length\n : 1;\n let pathFromHash = hash.slice(slicePos);\n // prepend the starting slash to hash so the url starts with /#\n if (pathFromHash[0] !== '/')\n pathFromHash = '/' + pathFromHash;\n return stripBase(pathFromHash, '');\n }\n const path = stripBase(pathname, base);\n return path + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n let listeners = [];\n let teardowns = [];\n // TODO: should it be a stack? a Dict. Check if the popstate listener\n // can trigger twice\n let pauseState = null;\n const popStateHandler = ({ state, }) => {\n const to = createCurrentLocation(base, location);\n const from = currentLocation.value;\n const fromState = historyState.value;\n let delta = 0;\n if (state) {\n currentLocation.value = to;\n historyState.value = state;\n // ignore the popstate and reset the pauseState\n if (pauseState && pauseState === from) {\n pauseState = null;\n return;\n }\n delta = fromState ? state.position - fromState.position : 0;\n }\n else {\n replace(to);\n }\n // Here we could also revert the navigation by calling history.go(-delta)\n // this listener will have to be adapted to not trigger again and to wait for the url\n // to be updated before triggering the listeners. Some kind of validation function would also\n // need to be passed to the listeners so the navigation can be accepted\n // call all listeners\n listeners.forEach(listener => {\n listener(currentLocation.value, from, {\n delta,\n type: NavigationType.pop,\n direction: delta\n ? delta > 0\n ? NavigationDirection.forward\n : NavigationDirection.back\n : NavigationDirection.unknown,\n });\n });\n };\n function pauseListeners() {\n pauseState = currentLocation.value;\n }\n function listen(callback) {\n // set up the listener and prepare teardown callbacks\n listeners.push(callback);\n const teardown = () => {\n const index = listeners.indexOf(callback);\n if (index > -1)\n listeners.splice(index, 1);\n };\n teardowns.push(teardown);\n return teardown;\n }\n function beforeUnloadListener() {\n const { history } = window;\n if (!history.state)\n return;\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\n }\n function destroy() {\n for (const teardown of teardowns)\n teardown();\n teardowns = [];\n window.removeEventListener('popstate', popStateHandler);\n window.removeEventListener('beforeunload', beforeUnloadListener);\n }\n // set up the listeners and prepare teardown callbacks\n window.addEventListener('popstate', popStateHandler);\n // TODO: could we use 'pagehide' or 'visibilitychange' instead?\n // https://developer.chrome.com/blog/page-lifecycle-api/\n window.addEventListener('beforeunload', beforeUnloadListener, {\n passive: true,\n });\n return {\n pauseListeners,\n listen,\n destroy,\n };\n}\n/**\n * Creates a state object\n */\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n return {\n back,\n current,\n forward,\n replaced,\n position: window.history.length,\n scroll: computeScroll ? computeScrollPosition() : null,\n };\n}\nfunction useHistoryStateNavigation(base) {\n const { history, location } = window;\n // private variables\n const currentLocation = {\n value: createCurrentLocation(base, location),\n };\n const historyState = { value: history.state };\n // build current history entry as this is a fresh navigation\n if (!historyState.value) {\n changeLocation(currentLocation.value, {\n back: null,\n current: currentLocation.value,\n forward: null,\n // the length is off by one, we need to decrease it\n position: history.length - 1,\n replaced: true,\n // don't add a scroll as the user may have an anchor, and we want\n // scrollBehavior to be triggered without a saved position\n scroll: null,\n }, true);\n }\n function changeLocation(to, state, replace) {\n /**\n * if a base tag is provided, and we are on a normal domain, we have to\n * respect the provided `base` attribute because pushState() will use it and\n * potentially erase anything before the `#` like at\n * https://github.com/vuejs/router/issues/685 where a base of\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\n * there is no host, the `` tag makes no sense and if there isn't a\n * base tag we can just use everything after the `#`.\n */\n const hashIndex = base.indexOf('#');\n const url = hashIndex > -1\n ? (location.host && document.querySelector('base')\n ? base\n : base.slice(hashIndex)) + to\n : createBaseLocation() + base + to;\n try {\n // BROWSER QUIRK\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\n historyState.value = state;\n }\n catch (err) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('Error with push/replace State', err);\n }\n else {\n console.error(err);\n }\n // Force the navigation, this also resets the call count\n location[replace ? 'replace' : 'assign'](url);\n }\n }\n function replace(to, data) {\n const state = assign({}, history.state, buildState(historyState.value.back, \n // keep back and forward entries but override current position\n to, historyState.value.forward, true), data, { position: historyState.value.position });\n changeLocation(to, state, true);\n currentLocation.value = to;\n }\n function push(to, data) {\n // Add to current entry the information of where we are going\n // as well as saving the current position\n const currentState = assign({}, \n // use current history state to gracefully handle a wrong call to\n // history.replaceState\n // https://github.com/vuejs/router/issues/366\n historyState.value, history.state, {\n forward: to,\n scroll: computeScrollPosition(),\n });\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\n `history.replaceState(history.state, '', url)\\n\\n` +\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\n }\n changeLocation(currentState.current, currentState, true);\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\n changeLocation(to, state, false);\n currentLocation.value = to;\n }\n return {\n location: currentLocation,\n state: historyState,\n push,\n replace,\n };\n}\n/**\n * Creates an HTML5 history. Most common history for single page applications.\n *\n * @param base -\n */\nfunction createWebHistory(base) {\n base = normalizeBase(base);\n const historyNavigation = useHistoryStateNavigation(base);\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n function go(delta, triggerListeners = true) {\n if (!triggerListeners)\n historyListeners.pauseListeners();\n history.go(delta);\n }\n const routerHistory = assign({\n // it's overridden right after\n location: '',\n base,\n go,\n createHref: createHref.bind(null, base),\n }, historyNavigation, historyListeners);\n Object.defineProperty(routerHistory, 'location', {\n enumerable: true,\n get: () => historyNavigation.location.value,\n });\n Object.defineProperty(routerHistory, 'state', {\n enumerable: true,\n get: () => historyNavigation.state.value,\n });\n return routerHistory;\n}\n\n/**\n * Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n *\n * @param base - Base applied to all urls, defaults to '/'\n * @returns a history object that can be passed to the router constructor\n */\nfunction createMemoryHistory(base = '') {\n let listeners = [];\n let queue = [START];\n let position = 0;\n base = normalizeBase(base);\n function setLocation(location) {\n position++;\n if (position !== queue.length) {\n // we are in the middle, we remove everything from here in the queue\n queue.splice(position);\n }\n queue.push(location);\n }\n function triggerListeners(to, from, { direction, delta }) {\n const info = {\n direction,\n delta,\n type: NavigationType.pop,\n };\n for (const callback of listeners) {\n callback(to, from, info);\n }\n }\n const routerHistory = {\n // rewritten by Object.defineProperty\n location: START,\n // TODO: should be kept in queue\n state: {},\n base,\n createHref: createHref.bind(null, base),\n replace(to) {\n // remove current entry and decrement position\n queue.splice(position--, 1);\n setLocation(to);\n },\n push(to, data) {\n setLocation(to);\n },\n listen(callback) {\n listeners.push(callback);\n return () => {\n const index = listeners.indexOf(callback);\n if (index > -1)\n listeners.splice(index, 1);\n };\n },\n destroy() {\n listeners = [];\n queue = [START];\n position = 0;\n },\n go(delta, shouldTrigger = true) {\n const from = this.location;\n const direction = \n // we are considering delta === 0 going forward, but in abstract mode\n // using 0 for the delta doesn't make sense like it does in html5 where\n // it reloads the page\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\n if (shouldTrigger) {\n triggerListeners(this.location, from, {\n direction,\n delta,\n });\n }\n },\n };\n Object.defineProperty(routerHistory, 'location', {\n enumerable: true,\n get: () => queue[position],\n });\n return routerHistory;\n}\n\n/**\n * Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n * handle any URL is not possible.\n *\n * @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n * in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n * calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n * after the `#`).\n *\n * @example\n * ```js\n * // at https://example.com/folder\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n * // you should avoid doing this because it changes the original url and breaks copying urls\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n *\n * // at file:///usr/etc/folder/index.html\n * // for locations with no `host`, the base is ignored\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n * ```\n */\nfunction createWebHashHistory(base) {\n // Make sure this implementation is fine in terms of encoding, specially for IE11\n // for `file://`, directly use the pathname and ignore the base\n // location.pathname contains an initial `/` even at the root: `https://example.com`\n base = location.host ? base || location.pathname + location.search : '';\n // allow the user to provide a `#` in the middle: `/base/#/app`\n if (!base.includes('#'))\n base += '#';\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\n }\n return createWebHistory(base);\n}\n\nfunction isRouteLocation(route) {\n return typeof route === 'string' || (route && typeof route === 'object');\n}\nfunction isRouteName(name) {\n return typeof name === 'string' || typeof name === 'symbol';\n}\n\n/**\n * Initial route location where the router is. Can be used in navigation guards\n * to differentiate the initial navigation.\n *\n * @example\n * ```js\n * import { START_LOCATION } from 'vue-router'\n *\n * router.beforeEach((to, from) => {\n * if (from === START_LOCATION) {\n * // initial navigation\n * }\n * })\n * ```\n */\nconst START_LOCATION_NORMALIZED = {\n path: '/',\n name: undefined,\n params: {},\n query: {},\n hash: '',\n fullPath: '/',\n matched: [],\n meta: {},\n redirectedFrom: undefined,\n};\n\nconst NavigationFailureSymbol = Symbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : '');\n/**\n * Enumeration with all possible types for navigation failures. Can be passed to\n * {@link isNavigationFailure} to check for specific failures.\n */\nvar NavigationFailureType;\n(function (NavigationFailureType) {\n /**\n * An aborted navigation is a navigation that failed because a navigation\n * guard returned `false` or called `next(false)`\n */\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\n /**\n * A cancelled navigation is a navigation that failed because a more recent\n * navigation finished started (not necessarily finished).\n */\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\n /**\n * A duplicated navigation is a navigation that failed because it was\n * initiated while already being at the exact same location.\n */\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\n})(NavigationFailureType || (NavigationFailureType = {}));\n// DEV only debug messages\nconst ErrorTypeMessages = {\n [1 /* ErrorTypes.MATCHER_NOT_FOUND */]({ location, currentLocation }) {\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\n : ''}`;\n },\n [2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n },\n [4 /* ErrorTypes.NAVIGATION_ABORTED */]({ from, to }) {\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n },\n [8 /* ErrorTypes.NAVIGATION_CANCELLED */]({ from, to }) {\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n },\n [16 /* ErrorTypes.NAVIGATION_DUPLICATED */]({ from, to }) {\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n },\n};\nfunction createRouterError(type, params) {\n // keep full error messages in cjs versions\n if ((process.env.NODE_ENV !== 'production') || !true) {\n return assign(new Error(ErrorTypeMessages[type](params)), {\n type,\n [NavigationFailureSymbol]: true,\n }, params);\n }\n else {\n return assign(new Error(), {\n type,\n [NavigationFailureSymbol]: true,\n }, params);\n }\n}\nfunction isNavigationFailure(error, type) {\n return (error instanceof Error &&\n NavigationFailureSymbol in error &&\n (type == null || !!(error.type & type)));\n}\nconst propertiesToLog = ['params', 'query', 'hash'];\nfunction stringifyRoute(to) {\n if (typeof to === 'string')\n return to;\n if ('path' in to)\n return to.path;\n const location = {};\n for (const key of propertiesToLog) {\n if (key in to)\n location[key] = to[key];\n }\n return JSON.stringify(location, null, 2);\n}\n\n// default pattern for a param: non-greedy everything but /\nconst BASE_PARAM_PATTERN = '[^/]+?';\nconst BASE_PATH_PARSER_OPTIONS = {\n sensitive: false,\n strict: false,\n start: true,\n end: true,\n};\n// Special Regex characters that must be escaped in static tokens\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\n *\n * @param segments - array of segments returned by tokenizePath\n * @param extraOptions - optional options for the regexp\n * @returns a PathParser\n */\nfunction tokensToParser(segments, extraOptions) {\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\n const score = [];\n // the regexp as a string\n let pattern = options.start ? '^' : '';\n // extracted keys\n const keys = [];\n for (const segment of segments) {\n // the root segment needs special treatment\n const segmentScores = segment.length ? [] : [90 /* PathScore.Root */];\n // allow trailing slash\n if (options.strict && !segment.length)\n pattern += '/';\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n const token = segment[tokenIndex];\n // resets the score if we are inside a sub-segment /:a-other-:b\n let subSegmentScore = 40 /* PathScore.Segment */ +\n (options.sensitive ? 0.25 /* PathScore.BonusCaseSensitive */ : 0);\n if (token.type === 0 /* TokenType.Static */) {\n // prepend the slash if we are starting a new segment\n if (!tokenIndex)\n pattern += '/';\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\n subSegmentScore += 40 /* PathScore.Static */;\n }\n else if (token.type === 1 /* TokenType.Param */) {\n const { value, repeatable, optional, regexp } = token;\n keys.push({\n name: value,\n repeatable,\n optional,\n });\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\n // the user provided a custom regexp /:id(\\\\d+)\n if (re !== BASE_PARAM_PATTERN) {\n subSegmentScore += 10 /* PathScore.BonusCustomRegExp */;\n // make sure the regexp is valid before using it\n try {\n new RegExp(`(${re})`);\n }\n catch (err) {\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\n err.message);\n }\n }\n // when we repeat we must take care of the repeating leading slash\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n // prepend the slash if we are starting a new segment\n if (!tokenIndex)\n subPattern =\n // avoid an optional / if there are more segments e.g. /:p?-static\n // or /:p?-:p2\n optional && segment.length < 2\n ? `(?:/${subPattern})`\n : '/' + subPattern;\n if (optional)\n subPattern += '?';\n pattern += subPattern;\n subSegmentScore += 20 /* PathScore.Dynamic */;\n if (optional)\n subSegmentScore += -8 /* PathScore.BonusOptional */;\n if (repeatable)\n subSegmentScore += -20 /* PathScore.BonusRepeatable */;\n if (re === '.*')\n subSegmentScore += -50 /* PathScore.BonusWildcard */;\n }\n segmentScores.push(subSegmentScore);\n }\n // an empty array like /home/ -> [[{home}], []]\n // if (!segment.length) pattern += '/'\n score.push(segmentScores);\n }\n // only apply the strict bonus to the last score\n if (options.strict && options.end) {\n const i = score.length - 1;\n score[i][score[i].length - 1] += 0.7000000000000001 /* PathScore.BonusStrict */;\n }\n // TODO: dev only warn double trailing slash\n if (!options.strict)\n pattern += '/?';\n if (options.end)\n pattern += '$';\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\n else if (options.strict)\n pattern += '(?:/|$)';\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\n function parse(path) {\n const match = path.match(re);\n const params = {};\n if (!match)\n return null;\n for (let i = 1; i < match.length; i++) {\n const value = match[i] || '';\n const key = keys[i - 1];\n params[key.name] = value && key.repeatable ? value.split('/') : value;\n }\n return params;\n }\n function stringify(params) {\n let path = '';\n // for optional parameters to allow to be empty\n let avoidDuplicatedSlash = false;\n for (const segment of segments) {\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\n path += '/';\n avoidDuplicatedSlash = false;\n for (const token of segment) {\n if (token.type === 0 /* TokenType.Static */) {\n path += token.value;\n }\n else if (token.type === 1 /* TokenType.Param */) {\n const { value, repeatable, optional } = token;\n const param = value in params ? params[value] : '';\n if (isArray(param) && !repeatable) {\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n }\n const text = isArray(param)\n ? param.join('/')\n : param;\n if (!text) {\n if (optional) {\n // if we have more than one optional param like /:a?-static we don't need to care about the optional param\n if (segment.length < 2) {\n // remove the last slash as we could be at the end\n if (path.endsWith('/'))\n path = path.slice(0, -1);\n // do not append a slash on the next iteration\n else\n avoidDuplicatedSlash = true;\n }\n }\n else\n throw new Error(`Missing required param \"${value}\"`);\n }\n path += text;\n }\n }\n }\n // avoid empty path when we have multiple optional params\n return path || '/';\n }\n return {\n re,\n score,\n keys,\n parse,\n stringify,\n };\n}\n/**\n * Compares an array of numbers as used in PathParser.score and returns a\n * number. This function can be used to `sort` an array\n *\n * @param a - first array of numbers\n * @param b - second array of numbers\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n * should be sorted first\n */\nfunction compareScoreArray(a, b) {\n let i = 0;\n while (i < a.length && i < b.length) {\n const diff = b[i] - a[i];\n // only keep going if diff === 0\n if (diff)\n return diff;\n i++;\n }\n // if the last subsegment was Static, the shorter segments should be sorted first\n // otherwise sort the longest segment first\n if (a.length < b.length) {\n return a.length === 1 && a[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\n ? -1\n : 1;\n }\n else if (a.length > b.length) {\n return b.length === 1 && b[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\n ? 1\n : -1;\n }\n return 0;\n}\n/**\n * Compare function that can be used with `sort` to sort an array of PathParser\n *\n * @param a - first PathParser\n * @param b - second PathParser\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n */\nfunction comparePathParserScore(a, b) {\n let i = 0;\n const aScore = a.score;\n const bScore = b.score;\n while (i < aScore.length && i < bScore.length) {\n const comp = compareScoreArray(aScore[i], bScore[i]);\n // do not return if both are equal\n if (comp)\n return comp;\n i++;\n }\n if (Math.abs(bScore.length - aScore.length) === 1) {\n if (isLastScoreNegative(aScore))\n return 1;\n if (isLastScoreNegative(bScore))\n return -1;\n }\n // if a and b share the same score entries but b has more, sort b first\n return bScore.length - aScore.length;\n // this is the ternary version\n // return aScore.length < bScore.length\n // ? 1\n // : aScore.length > bScore.length\n // ? -1\n // : 0\n}\n/**\n * This allows detecting splats at the end of a path: /home/:id(.*)*\n *\n * @param score - score to check\n * @returns true if the last entry is negative\n */\nfunction isLastScoreNegative(score) {\n const last = score[score.length - 1];\n return score.length > 0 && last[last.length - 1] < 0;\n}\n\nconst ROOT_TOKEN = {\n type: 0 /* TokenType.Static */,\n value: '',\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\n// After some profiling, the cache seems to be unnecessary because tokenizePath\n// (the slowest part of adding a route) is very fast\n// const tokenCache = new Map()\nfunction tokenizePath(path) {\n if (!path)\n return [[]];\n if (path === '/')\n return [[ROOT_TOKEN]];\n if (!path.startsWith('/')) {\n throw new Error((process.env.NODE_ENV !== 'production')\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\n : `Invalid path \"${path}\"`);\n }\n // if (tokenCache.has(path)) return tokenCache.get(path)!\n function crash(message) {\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n }\n let state = 0 /* TokenizerState.Static */;\n let previousState = state;\n const tokens = [];\n // the segment will always be valid because we get into the initial state\n // with the leading /\n let segment;\n function finalizeSegment() {\n if (segment)\n tokens.push(segment);\n segment = [];\n }\n // index on the path\n let i = 0;\n // char at index\n let char;\n // buffer of the value read\n let buffer = '';\n // custom regexp for a param\n let customRe = '';\n function consumeBuffer() {\n if (!buffer)\n return;\n if (state === 0 /* TokenizerState.Static */) {\n segment.push({\n type: 0 /* TokenType.Static */,\n value: buffer,\n });\n }\n else if (state === 1 /* TokenizerState.Param */ ||\n state === 2 /* TokenizerState.ParamRegExp */ ||\n state === 3 /* TokenizerState.ParamRegExpEnd */) {\n if (segment.length > 1 && (char === '*' || char === '+'))\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n segment.push({\n type: 1 /* TokenType.Param */,\n value: buffer,\n regexp: customRe,\n repeatable: char === '*' || char === '+',\n optional: char === '*' || char === '?',\n });\n }\n else {\n crash('Invalid state to consume buffer');\n }\n buffer = '';\n }\n function addCharToBuffer() {\n buffer += char;\n }\n while (i < path.length) {\n char = path[i++];\n if (char === '\\\\' && state !== 2 /* TokenizerState.ParamRegExp */) {\n previousState = state;\n state = 4 /* TokenizerState.EscapeNext */;\n continue;\n }\n switch (state) {\n case 0 /* TokenizerState.Static */:\n if (char === '/') {\n if (buffer) {\n consumeBuffer();\n }\n finalizeSegment();\n }\n else if (char === ':') {\n consumeBuffer();\n state = 1 /* TokenizerState.Param */;\n }\n else {\n addCharToBuffer();\n }\n break;\n case 4 /* TokenizerState.EscapeNext */:\n addCharToBuffer();\n state = previousState;\n break;\n case 1 /* TokenizerState.Param */:\n if (char === '(') {\n state = 2 /* TokenizerState.ParamRegExp */;\n }\n else if (VALID_PARAM_RE.test(char)) {\n addCharToBuffer();\n }\n else {\n consumeBuffer();\n state = 0 /* TokenizerState.Static */;\n // go back one character if we were not modifying\n if (char !== '*' && char !== '?' && char !== '+')\n i--;\n }\n break;\n case 2 /* TokenizerState.ParamRegExp */:\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\n // it already works by escaping the closing )\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\n // is this really something people need since you can also write\n // /prefix_:p()_suffix\n if (char === ')') {\n // handle the escaped )\n if (customRe[customRe.length - 1] == '\\\\')\n customRe = customRe.slice(0, -1) + char;\n else\n state = 3 /* TokenizerState.ParamRegExpEnd */;\n }\n else {\n customRe += char;\n }\n break;\n case 3 /* TokenizerState.ParamRegExpEnd */:\n // same as finalizing a param\n consumeBuffer();\n state = 0 /* TokenizerState.Static */;\n // go back one character if we were not modifying\n if (char !== '*' && char !== '?' && char !== '+')\n i--;\n customRe = '';\n break;\n default:\n crash('Unknown state');\n break;\n }\n }\n if (state === 2 /* TokenizerState.ParamRegExp */)\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n consumeBuffer();\n finalizeSegment();\n // tokenCache.set(path, tokens)\n return tokens;\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\n const parser = tokensToParser(tokenizePath(record.path), options);\n // warn against params with the same name\n if ((process.env.NODE_ENV !== 'production')) {\n const existingKeys = new Set();\n for (const key of parser.keys) {\n if (existingKeys.has(key.name))\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n existingKeys.add(key.name);\n }\n }\n const matcher = assign(parser, {\n record,\n parent,\n // these needs to be populated by the parent\n children: [],\n alias: [],\n });\n if (parent) {\n // both are aliases or both are not aliases\n // we don't want to mix them because the order is used when\n // passing originalRecord in Matcher.addRoute\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\n parent.children.push(matcher);\n }\n return matcher;\n}\n\n/**\n * Creates a Router Matcher.\n *\n * @internal\n * @param routes - array of initial routes\n * @param globalOptions - global route options\n */\nfunction createRouterMatcher(routes, globalOptions) {\n // normalized ordered array of matchers\n const matchers = [];\n const matcherMap = new Map();\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\n function getRecordMatcher(name) {\n return matcherMap.get(name);\n }\n function addRoute(record, parent, originalRecord) {\n // used later on to remove by name\n const isRootAdd = !originalRecord;\n const mainNormalizedRecord = normalizeRouteRecord(record);\n if ((process.env.NODE_ENV !== 'production')) {\n checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n }\n // we might be the child of an alias\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n const options = mergeOptions(globalOptions, record);\n // generate an array of records to correctly handle aliases\n const normalizedRecords = [\n mainNormalizedRecord,\n ];\n if ('alias' in record) {\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\n for (const alias of aliases) {\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\n // this allows us to hold a copy of the `components` option\n // so that async components cache is hold on the original record\n components: originalRecord\n ? originalRecord.record.components\n : mainNormalizedRecord.components,\n path: alias,\n // we might be the child of an alias\n aliasOf: originalRecord\n ? originalRecord.record\n : mainNormalizedRecord,\n // the aliases are always of the same kind as the original since they\n // are defined on the same record\n }));\n }\n }\n let matcher;\n let originalMatcher;\n for (const normalizedRecord of normalizedRecords) {\n const { path } = normalizedRecord;\n // Build up the path for nested routes if the child isn't an absolute\n // route. Only add the / delimiter if the child path isn't empty and if the\n // parent path doesn't have a trailing slash\n if (parent && path[0] !== '/') {\n const parentPath = parent.record.path;\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\n normalizedRecord.path =\n parent.record.path + (path && connectingSlash + path);\n }\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\n }\n // create the object beforehand, so it can be passed to children\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\n checkMissingParamsInAbsolutePath(matcher, parent);\n // if we are an alias we must tell the original record that we exist,\n // so we can be removed\n if (originalRecord) {\n originalRecord.alias.push(matcher);\n if ((process.env.NODE_ENV !== 'production')) {\n checkSameParams(originalRecord, matcher);\n }\n }\n else {\n // otherwise, the first record is the original and others are aliases\n originalMatcher = originalMatcher || matcher;\n if (originalMatcher !== matcher)\n originalMatcher.alias.push(matcher);\n // remove the route if named and only for the top record (avoid in nested calls)\n // this works because the original record is the first one\n if (isRootAdd && record.name && !isAliasRecord(matcher))\n removeRoute(record.name);\n }\n if (mainNormalizedRecord.children) {\n const children = mainNormalizedRecord.children;\n for (let i = 0; i < children.length; i++) {\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n }\n }\n // if there was no original record, then the first one was not an alias and all\n // other aliases (if any) need to reference this record when adding children\n originalRecord = originalRecord || matcher;\n // TODO: add normalized records for more flexibility\n // if (parent && isAliasRecord(originalRecord)) {\n // parent.children.push(originalRecord)\n // }\n // Avoid adding a record that doesn't display anything. This allows passing through records without a component to\n // not be reached and pass through the catch all route\n if ((matcher.record.components &&\n Object.keys(matcher.record.components).length) ||\n matcher.record.name ||\n matcher.record.redirect) {\n insertMatcher(matcher);\n }\n }\n return originalMatcher\n ? () => {\n // since other matchers are aliases, they should be removed by the original matcher\n removeRoute(originalMatcher);\n }\n : noop;\n }\n function removeRoute(matcherRef) {\n if (isRouteName(matcherRef)) {\n const matcher = matcherMap.get(matcherRef);\n if (matcher) {\n matcherMap.delete(matcherRef);\n matchers.splice(matchers.indexOf(matcher), 1);\n matcher.children.forEach(removeRoute);\n matcher.alias.forEach(removeRoute);\n }\n }\n else {\n const index = matchers.indexOf(matcherRef);\n if (index > -1) {\n matchers.splice(index, 1);\n if (matcherRef.record.name)\n matcherMap.delete(matcherRef.record.name);\n matcherRef.children.forEach(removeRoute);\n matcherRef.alias.forEach(removeRoute);\n }\n }\n }\n function getRoutes() {\n return matchers;\n }\n function insertMatcher(matcher) {\n let i = 0;\n while (i < matchers.length &&\n comparePathParserScore(matcher, matchers[i]) >= 0 &&\n // Adding children with empty path should still appear before the parent\n // https://github.com/vuejs/router/issues/1124\n (matcher.record.path !== matchers[i].record.path ||\n !isRecordChildOf(matcher, matchers[i])))\n i++;\n matchers.splice(i, 0, matcher);\n // only add the original record to the name map\n if (matcher.record.name && !isAliasRecord(matcher))\n matcherMap.set(matcher.record.name, matcher);\n }\n function resolve(location, currentLocation) {\n let matcher;\n let params = {};\n let path;\n let name;\n if ('name' in location && location.name) {\n matcher = matcherMap.get(location.name);\n if (!matcher)\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\n location,\n });\n // warn if the user is passing invalid params so they can debug it better when they get removed\n if ((process.env.NODE_ENV !== 'production')) {\n const invalidParams = Object.keys(location.params || {}).filter(paramName => !matcher.keys.find(k => k.name === paramName));\n if (invalidParams.length) {\n warn(`Discarded invalid param(s) \"${invalidParams.join('\", \"')}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n }\n }\n name = matcher.record.name;\n params = assign(\n // paramsFromLocation is a new object\n paramsFromLocation(currentLocation.params, \n // only keep params that exist in the resolved location\n // TODO: only keep optional params coming from a parent record\n matcher.keys.filter(k => !k.optional).map(k => k.name)), \n // discard any existing params in the current location that do not exist here\n // #1497 this ensures better active/exact matching\n location.params &&\n paramsFromLocation(location.params, matcher.keys.map(k => k.name)));\n // throws if cannot be stringified\n path = matcher.stringify(params);\n }\n else if ('path' in location) {\n // no need to resolve the path with the matcher as it was provided\n // this also allows the user to control the encoding\n path = location.path;\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n }\n matcher = matchers.find(m => m.re.test(path));\n // matcher should have a value after the loop\n if (matcher) {\n // we know the matcher works because we tested the regexp\n params = matcher.parse(path);\n name = matcher.record.name;\n }\n // location is a relative path\n }\n else {\n // match by name or path of current route\n matcher = currentLocation.name\n ? matcherMap.get(currentLocation.name)\n : matchers.find(m => m.re.test(currentLocation.path));\n if (!matcher)\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\n location,\n currentLocation,\n });\n name = matcher.record.name;\n // since we are navigating to the same location, we don't need to pick the\n // params like when `name` is provided\n params = assign({}, currentLocation.params, location.params);\n path = matcher.stringify(params);\n }\n const matched = [];\n let parentMatcher = matcher;\n while (parentMatcher) {\n // reversed order so parents are at the beginning\n matched.unshift(parentMatcher.record);\n parentMatcher = parentMatcher.parent;\n }\n return {\n name,\n path,\n params,\n matched,\n meta: mergeMetaFields(matched),\n };\n }\n // add initial routes\n routes.forEach(route => addRoute(route));\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\n}\nfunction paramsFromLocation(params, keys) {\n const newParams = {};\n for (const key of keys) {\n if (key in params)\n newParams[key] = params[key];\n }\n return newParams;\n}\n/**\n * Normalizes a RouteRecordRaw. Creates a copy\n *\n * @param record\n * @returns the normalized version\n */\nfunction normalizeRouteRecord(record) {\n return {\n path: record.path,\n redirect: record.redirect,\n name: record.name,\n meta: record.meta || {},\n aliasOf: undefined,\n beforeEnter: record.beforeEnter,\n props: normalizeRecordProps(record),\n children: record.children || [],\n instances: {},\n leaveGuards: new Set(),\n updateGuards: new Set(),\n enterCallbacks: {},\n components: 'components' in record\n ? record.components || null\n : record.component && { default: record.component },\n };\n}\n/**\n * Normalize the optional `props` in a record to always be an object similar to\n * components. Also accept a boolean for components.\n * @param record\n */\nfunction normalizeRecordProps(record) {\n const propsObject = {};\n // props does not exist on redirect records, but we can set false directly\n const props = record.props || false;\n if ('component' in record) {\n propsObject.default = props;\n }\n else {\n // NOTE: we could also allow a function to be applied to every component.\n // Would need user feedback for use cases\n for (const name in record.components)\n propsObject[name] = typeof props === 'object' ? props[name] : props;\n }\n return propsObject;\n}\n/**\n * Checks if a record or any of its parent is an alias\n * @param record\n */\nfunction isAliasRecord(record) {\n while (record) {\n if (record.record.aliasOf)\n return true;\n record = record.parent;\n }\n return false;\n}\n/**\n * Merge meta fields of an array of records\n *\n * @param matched - array of matched records\n */\nfunction mergeMetaFields(matched) {\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction mergeOptions(defaults, partialOptions) {\n const options = {};\n for (const key in defaults) {\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n }\n return options;\n}\nfunction isSameParam(a, b) {\n return (a.name === b.name &&\n a.optional === b.optional &&\n a.repeatable === b.repeatable);\n}\n/**\n * Check if a path and its alias have the same required params\n *\n * @param a - original record\n * @param b - alias record\n */\nfunction checkSameParams(a, b) {\n for (const key of a.keys) {\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n }\n for (const key of b.keys) {\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n }\n}\n/**\n * A route with a name and a child with an empty path without a name should warn when adding the route\n *\n * @param mainNormalizedRecord - RouteRecordNormalized\n * @param parent - RouteRecordMatcher\n */\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n if (parent &&\n parent.record.name &&\n !mainNormalizedRecord.name &&\n !mainNormalizedRecord.path) {\n warn(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\n }\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n for (const key of parent.keys) {\n if (!record.keys.find(isSameParam.bind(null, key)))\n return warn(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n }\n}\nfunction isRecordChildOf(record, parent) {\n return parent.children.some(child => child === record || isRecordChildOf(record, child));\n}\n\n/**\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\n * < > `\n *\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n * defines some extra characters to be encoded. Most browsers do not encode them\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n * also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n * plus `-._~`. This extra safety should be applied to query by patching the\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\n * encoded everywhere because some browsers like FF encode it when directly\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n */\n// const EXTRA_RESERVED_RE = /[!'()*]/g\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\nconst HASH_RE = /#/g; // %23\nconst AMPERSAND_RE = /&/g; // %26\nconst SLASH_RE = /\\//g; // %2F\nconst EQUAL_RE = /=/g; // %3D\nconst IM_RE = /\\?/g; // %3F\nconst PLUS_RE = /\\+/g; // %2B\n/**\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\n * seems to be less flexible than not doing so and I can't find out the legacy\n * systems requiring this for regular requests like text/html. In the standard,\n * the encoding of the plus character is only mentioned for\n * application/x-www-form-urlencoded\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n * leave the plus character as is in queries. To be more flexible, we allow the\n * plus character on the query, but it can also be manually encoded by the user.\n *\n * Resources:\n * - https://url.spec.whatwg.org/#urlencoded-parsing\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n */\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\nconst ENC_CARET_RE = /%5E/g; // ^\nconst ENC_BACKTICK_RE = /%60/g; // `\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\nconst ENC_PIPE_RE = /%7C/g; // |\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\nconst ENC_SPACE_RE = /%20/g; // }\n/**\n * Encode characters that need to be encoded on the path, search and hash\n * sections of the URL.\n *\n * @internal\n * @param text - string to encode\n * @returns encoded string\n */\nfunction commonEncode(text) {\n return encodeURI('' + text)\n .replace(ENC_PIPE_RE, '|')\n .replace(ENC_BRACKET_OPEN_RE, '[')\n .replace(ENC_BRACKET_CLOSE_RE, ']');\n}\n/**\n * Encode characters that need to be encoded on the hash section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeHash(text) {\n return commonEncode(text)\n .replace(ENC_CURLY_OPEN_RE, '{')\n .replace(ENC_CURLY_CLOSE_RE, '}')\n .replace(ENC_CARET_RE, '^');\n}\n/**\n * Encode characters that need to be encoded query values on the query\n * section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeQueryValue(text) {\n return (commonEncode(text)\n // Encode the space as +, encode the + to differentiate it from the space\n .replace(PLUS_RE, '%2B')\n .replace(ENC_SPACE_RE, '+')\n .replace(HASH_RE, '%23')\n .replace(AMPERSAND_RE, '%26')\n .replace(ENC_BACKTICK_RE, '`')\n .replace(ENC_CURLY_OPEN_RE, '{')\n .replace(ENC_CURLY_CLOSE_RE, '}')\n .replace(ENC_CARET_RE, '^'));\n}\n/**\n * Like `encodeQueryValue` but also encodes the `=` character.\n *\n * @param text - string to encode\n */\nfunction encodeQueryKey(text) {\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodePath(text) {\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL as a\n * param. This function encodes everything {@link encodePath} does plus the\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n * string instead.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeParam(text) {\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\n}\n/**\n * Decode text using `decodeURIComponent`. Returns the original text if it\n * fails.\n *\n * @param text - string to decode\n * @returns decoded string\n */\nfunction decode(text) {\n try {\n return decodeURIComponent('' + text);\n }\n catch (err) {\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\n }\n return '' + text;\n}\n\n/**\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n * version with the leading `?` and without Should work as URLSearchParams\n\n * @internal\n *\n * @param search - search string to parse\n * @returns a query object\n */\nfunction parseQuery(search) {\n const query = {};\n // avoid creating an object with an empty key and empty value\n // because of split('&')\n if (search === '' || search === '?')\n return query;\n const hasLeadingIM = search[0] === '?';\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\n for (let i = 0; i < searchParams.length; ++i) {\n // pre decode the + into space\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\n // allow the = character\n const eqPos = searchParam.indexOf('=');\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n if (key in query) {\n // an extra variable for ts types\n let currentValue = query[key];\n if (!isArray(currentValue)) {\n currentValue = query[key] = [currentValue];\n }\n currentValue.push(value);\n }\n else {\n query[key] = value;\n }\n }\n return query;\n}\n/**\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n * doesn't prepend a `?`\n *\n * @internal\n *\n * @param query - query object to stringify\n * @returns string version of the query without the leading `?`\n */\nfunction stringifyQuery(query) {\n let search = '';\n for (let key in query) {\n const value = query[key];\n key = encodeQueryKey(key);\n if (value == null) {\n // only null adds the value\n if (value !== undefined) {\n search += (search.length ? '&' : '') + key;\n }\n continue;\n }\n // keep null values\n const values = isArray(value)\n ? value.map(v => v && encodeQueryValue(v))\n : [value && encodeQueryValue(value)];\n values.forEach(value => {\n // skip undefined values in arrays as if they were not present\n // smaller code than using filter\n if (value !== undefined) {\n // only append & with non-empty search\n search += (search.length ? '&' : '') + key;\n if (value != null)\n search += '=' + value;\n }\n });\n }\n return search;\n}\n/**\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n * numbers into strings, removing keys with an undefined value and replacing\n * undefined with null in arrays\n *\n * @param query - query object to normalize\n * @returns a normalized query object\n */\nfunction normalizeQuery(query) {\n const normalizedQuery = {};\n for (const key in query) {\n const value = query[key];\n if (value !== undefined) {\n normalizedQuery[key] = isArray(value)\n ? value.map(v => (v == null ? null : '' + v))\n : value == null\n ? value\n : '' + value;\n }\n }\n return normalizedQuery;\n}\n\n/**\n * RouteRecord being rendered by the closest ancestor Router View. Used for\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n * Location Matched\n *\n * @internal\n */\nconst matchedRouteKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : '');\n/**\n * Allows overriding the router view depth to control which component in\n * `matched` is rendered. rvd stands for Router View Depth\n *\n * @internal\n */\nconst viewDepthKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : '');\n/**\n * Allows overriding the router instance returned by `useRouter` in tests. r\n * stands for router\n *\n * @internal\n */\nconst routerKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router' : '');\n/**\n * Allows overriding the current route returned by `useRoute` in tests. rl\n * stands for route location\n *\n * @internal\n */\nconst routeLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'route location' : '');\n/**\n * Allows overriding the current route used by router-view. Internally this is\n * used when the `route` prop is passed.\n *\n * @internal\n */\nconst routerViewLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location' : '');\n\n/**\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n */\nfunction useCallbacks() {\n let handlers = [];\n function add(handler) {\n handlers.push(handler);\n return () => {\n const i = handlers.indexOf(handler);\n if (i > -1)\n handlers.splice(i, 1);\n };\n }\n function reset() {\n handlers = [];\n }\n return {\n add,\n list: () => handlers.slice(),\n reset,\n };\n}\n\nfunction registerGuard(record, name, guard) {\n const removeFromList = () => {\n record[name].delete(guard);\n };\n onUnmounted(removeFromList);\n onDeactivated(removeFromList);\n onActivated(() => {\n record[name].add(guard);\n });\n record[name].add(guard);\n}\n/**\n * Add a navigation guard that triggers whenever the component for the current\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\n * used in any component. The guard is removed when the component is unmounted.\n *\n * @param leaveGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteLeave(leaveGuard) {\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\n return;\n }\n const activeRecord = inject(matchedRouteKey, \n // to avoid warning\n {}).value;\n if (!activeRecord) {\n (process.env.NODE_ENV !== 'production') &&\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?');\n return;\n }\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\n}\n/**\n * Add a navigation guard that triggers whenever the current location is about\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n * component. The guard is removed when the component is unmounted.\n *\n * @param updateGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteUpdate(updateGuard) {\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\n return;\n }\n const activeRecord = inject(matchedRouteKey, \n // to avoid warning\n {}).value;\n if (!activeRecord) {\n (process.env.NODE_ENV !== 'production') &&\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?');\n return;\n }\n registerGuard(activeRecord, 'updateGuards', updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name) {\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\n const enterCallbackArray = record &&\n // name is defined if record is because of the function overload\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n return () => new Promise((resolve, reject) => {\n const next = (valid) => {\n if (valid === false) {\n reject(createRouterError(4 /* ErrorTypes.NAVIGATION_ABORTED */, {\n from,\n to,\n }));\n }\n else if (valid instanceof Error) {\n reject(valid);\n }\n else if (isRouteLocation(valid)) {\n reject(createRouterError(2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */, {\n from: to,\n to: valid,\n }));\n }\n else {\n if (enterCallbackArray &&\n // since enterCallbackArray is truthy, both record and name also are\n record.enterCallbacks[name] === enterCallbackArray &&\n typeof valid === 'function') {\n enterCallbackArray.push(valid);\n }\n resolve();\n }\n };\n // wrapping with Promise.resolve allows it to work with both async and sync guards\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\n let guardCall = Promise.resolve(guardReturn);\n if (guard.length < 3)\n guardCall = guardCall.then(next);\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\n guardCall = guardCall.then(resolvedValue => {\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n if (!next._called) {\n warn(message);\n return Promise.reject(new Error('Invalid navigation guard'));\n }\n return resolvedValue;\n });\n }\n else if (guardReturn !== undefined) {\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n if (!next._called) {\n warn(message);\n reject(new Error('Invalid navigation guard'));\n return;\n }\n }\n }\n guardCall.catch(err => reject(err));\n });\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n let called = 0;\n return function () {\n if (called++ === 1)\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n // @ts-expect-error: we put it in the original one because it's easier to check\n next._called = true;\n if (called === 1)\n next.apply(null, arguments);\n };\n}\nfunction extractComponentsGuards(matched, guardType, to, from) {\n const guards = [];\n for (const record of matched) {\n if ((process.env.NODE_ENV !== 'production') && !record.components && !record.children.length) {\n warn(`Record with path \"${record.path}\" is either missing a \"component(s)\"` +\n ` or \"children\" property.`);\n }\n for (const name in record.components) {\n let rawComponent = record.components[name];\n if ((process.env.NODE_ENV !== 'production')) {\n if (!rawComponent ||\n (typeof rawComponent !== 'object' &&\n typeof rawComponent !== 'function')) {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\n ` a valid component. Received \"${String(rawComponent)}\".`);\n // throw to ensure we stop here but warn to ensure the message isn't\n // missed by the user\n throw new Error('Invalid route component');\n }\n else if ('then' in rawComponent) {\n // warn if user wrote import('/component.vue') instead of () =>\n // import('./component.vue')\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\n `Promise instead of a function that returns a Promise. Did you ` +\n `write \"import('./MyPage.vue')\" instead of ` +\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\n `production if not fixed.`);\n const promise = rawComponent;\n rawComponent = () => promise;\n }\n else if (rawComponent.__asyncLoader &&\n // warn only once per component\n !rawComponent.__warnedDefineAsync) {\n rawComponent.__warnedDefineAsync = true;\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\n `using \"defineAsyncComponent()\". ` +\n `Write \"() => import('./MyPage.vue')\" instead of ` +\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n }\n }\n // skip update and leave guards if the route component is not mounted\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\n continue;\n if (isRouteComponent(rawComponent)) {\n // __vccOpts is added by vue-class-component and contain the regular options\n const options = rawComponent.__vccOpts || rawComponent;\n const guard = options[guardType];\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\n }\n else {\n // start requesting the chunk already\n let componentPromise = rawComponent();\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n componentPromise = Promise.resolve(componentPromise);\n }\n guards.push(() => componentPromise.then(resolved => {\n if (!resolved)\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\n const resolvedComponent = isESModule(resolved)\n ? resolved.default\n : resolved;\n // replace the function with the resolved component\n // cannot be null or undefined because we went into the for loop\n record.components[name] = resolvedComponent;\n // __vccOpts is added by vue-class-component and contain the regular options\n const options = resolvedComponent.__vccOpts || resolvedComponent;\n const guard = options[guardType];\n return guard && guardToPromiseFn(guard, to, from, record, name)();\n }));\n }\n }\n }\n return guards;\n}\n/**\n * Allows differentiating lazy components from functional components and vue-class-component\n * @internal\n *\n * @param component\n */\nfunction isRouteComponent(component) {\n return (typeof component === 'object' ||\n 'displayName' in component ||\n 'props' in component ||\n '__vccOpts' in component);\n}\n/**\n * Ensures a route is loaded, so it can be passed as o prop to ``.\n *\n * @param route - resolved route to load\n */\nfunction loadRouteLocation(route) {\n return route.matched.every(record => record.redirect)\n ? Promise.reject(new Error('Cannot load a route that redirects.'))\n : Promise.all(route.matched.map(record => record.components &&\n Promise.all(Object.keys(record.components).reduce((promises, name) => {\n const rawComponent = record.components[name];\n if (typeof rawComponent === 'function' &&\n !('displayName' in rawComponent)) {\n promises.push(rawComponent().then(resolved => {\n if (!resolved)\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n const resolvedComponent = isESModule(resolved)\n ? resolved.default\n : resolved;\n // replace the function with the resolved component\n // cannot be null or undefined because we went into the for loop\n record.components[name] = resolvedComponent;\n return;\n }));\n }\n return promises;\n }, [])))).then(() => route);\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\n// `isExactActive` behavior should go through an RFC\nfunction useLink(props) {\n const router = inject(routerKey);\n const currentRoute = inject(routeLocationKey);\n const route = computed(() => router.resolve(unref(props.to)));\n const activeRecordIndex = computed(() => {\n const { matched } = route.value;\n const { length } = matched;\n const routeMatched = matched[length - 1];\n const currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length)\n return -1;\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n if (index > -1)\n return index;\n // possible parent record\n const parentRecordPath = getOriginalPath(matched[length - 2]);\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n getOriginalPath(routeMatched) === parentRecordPath &&\n // avoid comparing the child with its parent\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\n : index);\n });\n const isActive = computed(() => activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, route.value.params));\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, route.value.params));\n function navigate(e = {}) {\n if (guardEvent(e)) {\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\n // avoid uncaught errors are they are logged anyway\n ).catch(noop);\n }\n return Promise.resolve();\n }\n // devtools only\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n const instance = getCurrentInstance();\n if (instance) {\n const linkContextDevtools = {\n route: route.value,\n isActive: isActive.value,\n isExactActive: isExactActive.value,\n };\n // @ts-expect-error: this is internal\n instance.__vrl_devtools = instance.__vrl_devtools || [];\n // @ts-expect-error: this is internal\n instance.__vrl_devtools.push(linkContextDevtools);\n watchEffect(() => {\n linkContextDevtools.route = route.value;\n linkContextDevtools.isActive = isActive.value;\n linkContextDevtools.isExactActive = isExactActive.value;\n }, { flush: 'post' });\n }\n }\n /**\n * NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n */\n return {\n route,\n href: computed(() => route.value.href),\n isActive,\n isExactActive,\n navigate,\n };\n}\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\n name: 'RouterLink',\n compatConfig: { MODE: 3 },\n props: {\n to: {\n type: [String, Object],\n required: true,\n },\n replace: Boolean,\n activeClass: String,\n // inactiveClass: String,\n exactActiveClass: String,\n custom: Boolean,\n ariaCurrentValue: {\n type: String,\n default: 'page',\n },\n },\n useLink,\n setup(props, { slots }) {\n const link = reactive(useLink(props));\n const { options } = inject(routerKey);\n const elClass = computed(() => ({\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\n // [getLinkClass(\n // props.inactiveClass,\n // options.linkInactiveClass,\n // 'router-link-inactive'\n // )]: !link.isExactActive,\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\n }));\n return () => {\n const children = slots.default && slots.default(link);\n return props.custom\n ? children\n : h('a', {\n 'aria-current': link.isExactActive\n ? props.ariaCurrentValue\n : null,\n href: link.href,\n // this would override user added attrs but Vue will still add\n // the listener, so we end up triggering both\n onClick: link.navigate,\n class: elClass.value,\n }, children);\n };\n },\n});\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to render a link that triggers a navigation on click.\n */\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n return;\n // don't redirect when preventDefault called\n if (e.defaultPrevented)\n return;\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0)\n return;\n // don't redirect if `target=\"_blank\"`\n // @ts-expect-error getAttribute does exist\n if (e.currentTarget && e.currentTarget.getAttribute) {\n // @ts-expect-error getAttribute exists\n const target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target))\n return;\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault)\n e.preventDefault();\n return true;\n}\nfunction includesParams(outer, inner) {\n for (const key in inner) {\n const innerValue = inner[key];\n const outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue)\n return false;\n }\n else {\n if (!isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some((value, i) => value !== outerValue[i]))\n return false;\n }\n }\n return true;\n}\n/**\n * Get the original path value of a record by following its aliasOf\n * @param record\n */\nfunction getOriginalPath(record) {\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\n}\n/**\n * Utility class to get the active class based on defaults.\n * @param propClass\n * @param globalClass\n * @param defaultClass\n */\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\n ? propClass\n : globalClass != null\n ? globalClass\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\n name: 'RouterView',\n // #674 we manually inherit them\n inheritAttrs: false,\n props: {\n name: {\n type: String,\n default: 'default',\n },\n route: Object,\n },\n // Better compat for @vue/compat users\n // https://github.com/vuejs/router/issues/1315\n compatConfig: { MODE: 3 },\n setup(props, { attrs, slots }) {\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\n const injectedRoute = inject(routerViewLocationKey);\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\n const injectedDepth = inject(viewDepthKey, 0);\n // The depth changes based on empty components option, which allows passthrough routes e.g. routes with children\n // that are used to reuse the `path` property\n const depth = computed(() => {\n let initialDepth = unref(injectedDepth);\n const { matched } = routeToDisplay.value;\n let matchedRoute;\n while ((matchedRoute = matched[initialDepth]) &&\n !matchedRoute.components) {\n initialDepth++;\n }\n return initialDepth;\n });\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n provide(viewDepthKey, computed(() => depth.value + 1));\n provide(matchedRouteKey, matchedRouteRef);\n provide(routerViewLocationKey, routeToDisplay);\n const viewRef = ref();\n // watch at the same time the component instance, the route record we are\n // rendering, and the name\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\n // copy reused instances\n if (to) {\n // this will update the instance for new instances as well as reused\n // instances when navigating to a new route\n to.instances[name] = instance;\n // the component instance is reused for a different route or name, so\n // we copy any saved update or leave guards. With async setup, the\n // mounting component will mount before the matchedRoute changes,\n // making instance === oldInstance, so we check if guards have been\n // added before. This works because we remove guards when\n // unmounting/deactivating components\n if (from && from !== to && instance && instance === oldInstance) {\n if (!to.leaveGuards.size) {\n to.leaveGuards = from.leaveGuards;\n }\n if (!to.updateGuards.size) {\n to.updateGuards = from.updateGuards;\n }\n }\n }\n // trigger beforeRouteEnter next callbacks\n if (instance &&\n to &&\n // if there is no instance but to and from are the same this might be\n // the first visit\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\n }\n }, { flush: 'post' });\n return () => {\n const route = routeToDisplay.value;\n // we need the value at the time we render because when we unmount, we\n // navigated to a different location so the value is different\n const currentName = props.name;\n const matchedRoute = matchedRouteRef.value;\n const ViewComponent = matchedRoute && matchedRoute.components[currentName];\n if (!ViewComponent) {\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\n }\n // props from route configuration\n const routePropsOption = matchedRoute.props[currentName];\n const routeProps = routePropsOption\n ? routePropsOption === true\n ? route.params\n : typeof routePropsOption === 'function'\n ? routePropsOption(route)\n : routePropsOption\n : null;\n const onVnodeUnmounted = vnode => {\n // remove the instance reference to prevent leak\n if (vnode.component.isUnmounted) {\n matchedRoute.instances[currentName] = null;\n }\n };\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\n onVnodeUnmounted,\n ref: viewRef,\n }));\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n isBrowser &&\n component.ref) {\n // TODO: can display if it's an alias, its props\n const info = {\n depth: depth.value,\n name: matchedRoute.name,\n path: matchedRoute.path,\n meta: matchedRoute.meta,\n };\n const internalInstances = isArray(component.ref)\n ? component.ref.map(r => r.i)\n : [component.ref.i];\n internalInstances.forEach(instance => {\n // @ts-expect-error\n instance.__vrv_devtools = info;\n });\n }\n return (\n // pass the vnode to the slot as a prop.\n // h and both accept vnodes\n normalizeSlot(slots.default, { Component: component, route }) ||\n component);\n };\n },\n});\nfunction normalizeSlot(slot, data) {\n if (!slot)\n return null;\n const slotContent = slot(data);\n return slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to display the current route the user is at.\n */\nconst RouterView = RouterViewImpl;\n// warn against deprecated usage with & \n// due to functional component being no longer eager in Vue 3\nfunction warnDeprecatedUsage() {\n const instance = getCurrentInstance();\n const parentName = instance.parent && instance.parent.type.name;\n const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n if (parentName &&\n (parentName === 'KeepAlive' || parentName.includes('Transition')) &&\n typeof parentSubTreeType === 'object' &&\n parentSubTreeType.name === 'RouterView') {\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\n warn(` can no longer be used directly inside or .\\n` +\n `Use slot props instead:\\n\\n` +\n `\\n` +\n ` <${comp}>\\n` +\n ` \\n` +\n ` \\n` +\n ``);\n }\n}\n\n/**\n * Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n *\n * @param routeLocation - routeLocation to format\n * @param tooltip - optional tooltip\n * @returns a copy of the routeLocation\n */\nfunction formatRouteLocation(routeLocation, tooltip) {\n const copy = assign({}, routeLocation, {\n // remove variables that can contain vue instances\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\n });\n return {\n _custom: {\n type: null,\n readOnly: true,\n display: routeLocation.fullPath,\n tooltip,\n value: copy,\n },\n };\n}\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\n// to support multiple router instances\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n // Take over router.beforeEach and afterEach\n // make sure we are not registering the devtool twice\n if (router.__hasDevtools)\n return;\n router.__hasDevtools = true;\n // increment to support multiple router instances\n const id = routerId++;\n setupDevtoolsPlugin({\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\n label: 'Vue Router',\n packageName: 'vue-router',\n homepage: 'https://router.vuejs.org',\n logo: 'https://router.vuejs.org/logo.png',\n componentStateTypes: ['Routing'],\n app,\n }, api => {\n if (typeof api.now !== 'function') {\n console.warn('[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n // display state added by the router\n api.on.inspectComponent((payload, ctx) => {\n if (payload.instanceData) {\n payload.instanceData.state.push({\n type: 'Routing',\n key: '$route',\n editable: false,\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\n });\n }\n });\n // mark router-link as active and display tags on router views\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n if (componentInstance.__vrv_devtools) {\n const info = componentInstance.__vrv_devtools;\n node.tags.push({\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\n textColor: 0,\n tooltip: 'This component is rendered by <router-view>',\n backgroundColor: PINK_500,\n });\n }\n // if multiple useLink are used\n if (isArray(componentInstance.__vrl_devtools)) {\n componentInstance.__devtoolsApi = api;\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\n let backgroundColor = ORANGE_400;\n let tooltip = '';\n if (devtoolsData.isExactActive) {\n backgroundColor = LIME_500;\n tooltip = 'This is exactly active';\n }\n else if (devtoolsData.isActive) {\n backgroundColor = BLUE_600;\n tooltip = 'This link is active';\n }\n node.tags.push({\n label: devtoolsData.route.path,\n textColor: 0,\n tooltip,\n backgroundColor,\n });\n });\n }\n });\n watch(router.currentRoute, () => {\n // refresh active state\n refreshRoutesView();\n api.notifyComponentUpdate();\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n const navigationsLayerId = 'router:navigations:' + id;\n api.addTimelineLayer({\n id: navigationsLayerId,\n label: `Router${id ? ' ' + id : ''} Navigations`,\n color: 0x40a8c4,\n });\n // const errorsLayerId = 'router:errors'\n // api.addTimelineLayer({\n // id: errorsLayerId,\n // label: 'Router Errors',\n // color: 0xea5455,\n // })\n router.onError((error, to) => {\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: 'Error during Navigation',\n subtitle: to.fullPath,\n logType: 'error',\n time: api.now(),\n data: { error },\n groupId: to.meta.__navigationId,\n },\n });\n });\n // attached to `meta` and used to group events\n let navigationId = 0;\n router.beforeEach((to, from) => {\n const data = {\n guard: formatDisplay('beforeEach'),\n from: formatRouteLocation(from, 'Current Location during this navigation'),\n to: formatRouteLocation(to, 'Target location'),\n };\n // Used to group navigations together, hide from devtools\n Object.defineProperty(to.meta, '__navigationId', {\n value: navigationId++,\n });\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n time: api.now(),\n title: 'Start of navigation',\n subtitle: to.fullPath,\n data,\n groupId: to.meta.__navigationId,\n },\n });\n });\n router.afterEach((to, from, failure) => {\n const data = {\n guard: formatDisplay('afterEach'),\n };\n if (failure) {\n data.failure = {\n _custom: {\n type: Error,\n readOnly: true,\n display: failure ? failure.message : '',\n tooltip: 'Navigation Failure',\n value: failure,\n },\n };\n data.status = formatDisplay('❌');\n }\n else {\n data.status = formatDisplay('✅');\n }\n // we set here to have the right order\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\n data.to = formatRouteLocation(to, 'Target location');\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: 'End of navigation',\n subtitle: to.fullPath,\n time: api.now(),\n data,\n logType: failure ? 'warning' : 'default',\n groupId: to.meta.__navigationId,\n },\n });\n });\n /**\n * Inspector of Existing routes\n */\n const routerInspectorId = 'router-inspector:' + id;\n api.addInspector({\n id: routerInspectorId,\n label: 'Routes' + (id ? ' ' + id : ''),\n icon: 'book',\n treeFilterPlaceholder: 'Search routes',\n });\n function refreshRoutesView() {\n // the routes view isn't active\n if (!activeRoutesPayload)\n return;\n const payload = activeRoutesPayload;\n // children routes will appear as nested\n let routes = matcher.getRoutes().filter(route => !route.parent ||\n // these routes have a parent with no component which will not appear in the view\n // therefore we still need to include them\n !route.parent.record.components);\n // reset match state to false\n routes.forEach(resetMatchStateOnRouteRecord);\n // apply a match state if there is a payload\n if (payload.filter) {\n routes = routes.filter(route => \n // save matches state based on the payload\n isRouteMatching(route, payload.filter.toLowerCase()));\n }\n // mark active routes\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\n }\n let activeRoutesPayload;\n api.on.getInspectorTree(payload => {\n activeRoutesPayload = payload;\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n refreshRoutesView();\n }\n });\n /**\n * Display information about the currently selected route record\n */\n api.on.getInspectorState(payload => {\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n const routes = matcher.getRoutes();\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\n if (route) {\n payload.state = {\n options: formatRouteRecordMatcherForStateInspector(route),\n };\n }\n }\n });\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n}\nfunction modifierForKey(key) {\n if (key.optional) {\n return key.repeatable ? '*' : '?';\n }\n else {\n return key.repeatable ? '+' : '';\n }\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n const { record } = route;\n const fields = [\n { editable: false, key: 'path', value: record.path },\n ];\n if (record.name != null) {\n fields.push({\n editable: false,\n key: 'name',\n value: record.name,\n });\n }\n fields.push({ editable: false, key: 'regexp', value: route.re });\n if (route.keys.length) {\n fields.push({\n editable: false,\n key: 'keys',\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.keys\n .map(key => `${key.name}${modifierForKey(key)}`)\n .join(' '),\n tooltip: 'Param keys',\n value: route.keys,\n },\n },\n });\n }\n if (record.redirect != null) {\n fields.push({\n editable: false,\n key: 'redirect',\n value: record.redirect,\n });\n }\n if (route.alias.length) {\n fields.push({\n editable: false,\n key: 'aliases',\n value: route.alias.map(alias => alias.record.path),\n });\n }\n if (Object.keys(route.record.meta).length) {\n fields.push({\n editable: false,\n key: 'meta',\n value: route.record.meta,\n });\n }\n fields.push({\n key: 'score',\n editable: false,\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.score.map(score => score.join(', ')).join(' | '),\n tooltip: 'Score used to sort routes',\n value: route.score,\n },\n },\n });\n return fields;\n}\n/**\n * Extracted from tailwind palette\n */\nconst PINK_500 = 0xec4899;\nconst BLUE_600 = 0x2563eb;\nconst LIME_500 = 0x84cc16;\nconst CYAN_400 = 0x22d3ee;\nconst ORANGE_400 = 0xfb923c;\n// const GRAY_100 = 0xf4f4f5\nconst DARK = 0x666666;\nfunction formatRouteRecordForInspector(route) {\n const tags = [];\n const { record } = route;\n if (record.name != null) {\n tags.push({\n label: String(record.name),\n textColor: 0,\n backgroundColor: CYAN_400,\n });\n }\n if (record.aliasOf) {\n tags.push({\n label: 'alias',\n textColor: 0,\n backgroundColor: ORANGE_400,\n });\n }\n if (route.__vd_match) {\n tags.push({\n label: 'matches',\n textColor: 0,\n backgroundColor: PINK_500,\n });\n }\n if (route.__vd_exactActive) {\n tags.push({\n label: 'exact',\n textColor: 0,\n backgroundColor: LIME_500,\n });\n }\n if (route.__vd_active) {\n tags.push({\n label: 'active',\n textColor: 0,\n backgroundColor: BLUE_600,\n });\n }\n if (record.redirect) {\n tags.push({\n label: typeof record.redirect === 'string'\n ? `redirect: ${record.redirect}`\n : 'redirects',\n textColor: 0xffffff,\n backgroundColor: DARK,\n });\n }\n // add an id to be able to select it. Using the `path` is not possible because\n // empty path children would collide with their parents\n let id = record.__vd_id;\n if (id == null) {\n id = String(routeRecordId++);\n record.__vd_id = id;\n }\n return {\n id,\n label: record.path,\n tags,\n children: route.children.map(formatRouteRecordForInspector),\n };\n}\n// incremental id for route records and inspector state\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n // no route will be active if matched is empty\n // reset the matching state\n const isExactActive = currentRoute.matched.length &&\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n route.__vd_exactActive = route.__vd_active = isExactActive;\n if (!isExactActive) {\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\n }\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n route.__vd_match = false;\n route.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\n route.__vd_match = false;\n if (!found || found.length < 3) {\n return false;\n }\n // use a regexp without $ at the end to match nested routes better\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\n if (nonEndingRE.test(filter)) {\n // mark children as matches\n route.children.forEach(child => isRouteMatching(child, filter));\n // exception case: `/`\n if (route.record.path !== '/' || filter === '/') {\n route.__vd_match = route.re.test(filter);\n return true;\n }\n // hide the / route\n return false;\n }\n const path = route.record.path.toLowerCase();\n const decodedPath = decode(path);\n // also allow partial matching on the path\n if (!filter.startsWith('/') &&\n (decodedPath.includes(filter) || path.includes(filter)))\n return true;\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\n return true;\n if (route.record.name && String(route.record.name).includes(filter))\n return true;\n return route.children.some(child => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n const ret = {};\n for (const key in obj) {\n if (!keys.includes(key)) {\n // @ts-expect-error\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n\n/**\n * Creates a Router instance that can be used by a Vue app.\n *\n * @param options - {@link RouterOptions}\n */\nfunction createRouter(options) {\n const matcher = createRouterMatcher(options.routes, options);\n const parseQuery$1 = options.parseQuery || parseQuery;\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n const routerHistory = options.history;\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\n ' https://next.router.vuejs.org/api/#history.');\n const beforeGuards = useCallbacks();\n const beforeResolveGuards = useCallbacks();\n const afterGuards = useCallbacks();\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n let pendingLocation = START_LOCATION_NORMALIZED;\n // leave the scrollRestoration if no scrollBehavior is provided\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\n history.scrollRestoration = 'manual';\n }\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\n const encodeParams = applyToParams.bind(null, encodeParam);\n const decodeParams = \n // @ts-expect-error: intentionally avoid the type check\n applyToParams.bind(null, decode);\n function addRoute(parentOrRoute, route) {\n let parent;\n let record;\n if (isRouteName(parentOrRoute)) {\n parent = matcher.getRecordMatcher(parentOrRoute);\n record = route;\n }\n else {\n record = parentOrRoute;\n }\n return matcher.addRoute(record, parent);\n }\n function removeRoute(name) {\n const recordMatcher = matcher.getRecordMatcher(name);\n if (recordMatcher) {\n matcher.removeRoute(recordMatcher);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\n }\n }\n function getRoutes() {\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\n }\n function hasRoute(name) {\n return !!matcher.getRecordMatcher(name);\n }\n function resolve(rawLocation, currentLocation) {\n // const objectLocation = routerLocationAsObject(rawLocation)\n // we create a copy to modify it later\n currentLocation = assign({}, currentLocation || currentRoute.value);\n if (typeof rawLocation === 'string') {\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n const href = routerHistory.createHref(locationNormalized.fullPath);\n if ((process.env.NODE_ENV !== 'production')) {\n if (href.startsWith('//'))\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n else if (!matchedRoute.matched.length) {\n warn(`No match found for location with path \"${rawLocation}\"`);\n }\n }\n // locationNormalized is always a new object\n return assign(locationNormalized, matchedRoute, {\n params: decodeParams(matchedRoute.params),\n hash: decode(locationNormalized.hash),\n redirectedFrom: undefined,\n href,\n });\n }\n let matcherLocation;\n // path could be relative in object as well\n if ('path' in rawLocation) {\n if ((process.env.NODE_ENV !== 'production') &&\n 'params' in rawLocation &&\n !('name' in rawLocation) &&\n // @ts-expect-error: the type is never\n Object.keys(rawLocation.params).length) {\n warn(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n }\n matcherLocation = assign({}, rawLocation, {\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\n });\n }\n else {\n // remove any nullish param\n const targetParams = assign({}, rawLocation.params);\n for (const key in targetParams) {\n if (targetParams[key] == null) {\n delete targetParams[key];\n }\n }\n // pass encoded values to the matcher, so it can produce encoded path and fullPath\n matcherLocation = assign({}, rawLocation, {\n params: encodeParams(targetParams),\n });\n // current location params are decoded, we need to encode them in case the\n // matcher merges the params\n currentLocation.params = encodeParams(currentLocation.params);\n }\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n const hash = rawLocation.hash || '';\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n }\n // the matcher might have merged current location params, so\n // we need to run the decoding again\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n hash: encodeHash(hash),\n path: matchedRoute.path,\n }));\n const href = routerHistory.createHref(fullPath);\n if ((process.env.NODE_ENV !== 'production')) {\n if (href.startsWith('//')) {\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n }\n else if (!matchedRoute.matched.length) {\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\n }\n }\n return assign({\n fullPath,\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\n // hash\n hash,\n query: \n // if the user is using a custom query lib like qs, we might have\n // nested objects, so we keep the query as is, meaning it can contain\n // numbers at `$route.query`, but at the point, the user will have to\n // use their own type anyway.\n // https://github.com/vuejs/router/issues/328#issuecomment-649481567\n stringifyQuery$1 === stringifyQuery\n ? normalizeQuery(rawLocation.query)\n : (rawLocation.query || {}),\n }, matchedRoute, {\n redirectedFrom: undefined,\n href,\n });\n }\n function locationAsObject(to) {\n return typeof to === 'string'\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\n : assign({}, to);\n }\n function checkCanceledNavigation(to, from) {\n if (pendingLocation !== to) {\n return createRouterError(8 /* ErrorTypes.NAVIGATION_CANCELLED */, {\n from,\n to,\n });\n }\n }\n function push(to) {\n return pushWithRedirect(to);\n }\n function replace(to) {\n return push(assign(locationAsObject(to), { replace: true }));\n }\n function handleRedirectRecord(to) {\n const lastMatched = to.matched[to.matched.length - 1];\n if (lastMatched && lastMatched.redirect) {\n const { redirect } = lastMatched;\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\n if (typeof newTargetLocation === 'string') {\n newTargetLocation =\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\n ? (newTargetLocation = locationAsObject(newTargetLocation))\n : // force empty params\n { path: newTargetLocation };\n // @ts-expect-error: force empty params when a string is passed to let\n // the router parse them again\n newTargetLocation.params = {};\n }\n if ((process.env.NODE_ENV !== 'production') &&\n !('path' in newTargetLocation) &&\n !('name' in newTargetLocation)) {\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n throw new Error('Invalid redirect');\n }\n return assign({\n query: to.query,\n hash: to.hash,\n // avoid transferring params if the redirect has a path\n params: 'path' in newTargetLocation ? {} : to.params,\n }, newTargetLocation);\n }\n }\n function pushWithRedirect(to, redirectedFrom) {\n const targetLocation = (pendingLocation = resolve(to));\n const from = currentRoute.value;\n const data = to.state;\n const force = to.force;\n // to could be a string where `replace` is a function\n const replace = to.replace === true;\n const shouldRedirect = handleRedirectRecord(targetLocation);\n if (shouldRedirect)\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n state: typeof shouldRedirect === 'object'\n ? assign({}, data, shouldRedirect.state)\n : data,\n force,\n replace,\n }), \n // keep original redirectedFrom if it exists\n redirectedFrom || targetLocation);\n // if it was a redirect we already called `pushWithRedirect` above\n const toLocation = targetLocation;\n toLocation.redirectedFrom = redirectedFrom;\n let failure;\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n failure = createRouterError(16 /* ErrorTypes.NAVIGATION_DUPLICATED */, { to: toLocation, from });\n // trigger scroll to allow scrolling to the same anchor\n handleScroll(from, from, \n // this is a push, the only way for it to be triggered from a\n // history.listen is with a redirect, which makes it become a push\n true, \n // This cannot be the first navigation because the initial location\n // cannot be manually navigated to\n false);\n }\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\n .catch((error) => isNavigationFailure(error)\n ? // navigation redirects still mark the router as ready\n isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)\n ? error\n : markAsReady(error) // also returns the error\n : // reject any unknown error\n triggerError(error, toLocation, from))\n .then((failure) => {\n if (failure) {\n if (isNavigationFailure(failure, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\n if ((process.env.NODE_ENV !== 'production') &&\n // we are redirecting to the same location we were already at\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\n // and we have done it a couple of times\n redirectedFrom &&\n // @ts-expect-error: added only in dev\n (redirectedFrom._count = redirectedFrom._count\n ? // @ts-expect-error\n redirectedFrom._count + 1\n : 1) > 30) {\n warn(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\n }\n return pushWithRedirect(\n // keep options\n assign({\n // preserve an existing replacement but allow the redirect to override it\n replace,\n }, locationAsObject(failure.to), {\n state: typeof failure.to === 'object'\n ? assign({}, data, failure.to.state)\n : data,\n force,\n }), \n // preserve the original redirectedFrom if any\n redirectedFrom || toLocation);\n }\n }\n else {\n // if we fail we don't finalize the navigation\n failure = finalizeNavigation(toLocation, from, true, replace, data);\n }\n triggerAfterEach(toLocation, from, failure);\n return failure;\n });\n }\n /**\n * Helper to reject and skip all navigation guards if a new navigation happened\n * @param to\n * @param from\n */\n function checkCanceledNavigationAndReject(to, from) {\n const error = checkCanceledNavigation(to, from);\n return error ? Promise.reject(error) : Promise.resolve();\n }\n function runWithContext(fn) {\n const app = installedApps.values().next().value;\n // support Vue < 3.3\n return app && typeof app.runWithContext === 'function'\n ? app.runWithContext(fn)\n : fn();\n }\n // TODO: refactor the whole before guards by internally using router.beforeEach\n function navigate(to, from) {\n let guards;\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n // all components here have been resolved once because we are leaving\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\n // leavingRecords is already reversed\n for (const record of leavingRecords) {\n record.leaveGuards.forEach(guard => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeRouteLeave guards\n return (runGuardQueue(guards)\n .then(() => {\n // check global guards beforeEach\n guards = [];\n for (const guard of beforeGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n })\n .then(() => {\n // check in components beforeRouteUpdate\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\n for (const record of updatingRecords) {\n record.updateGuards.forEach(guard => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // check the route beforeEnter\n guards = [];\n for (const record of enteringRecords) {\n // do not trigger beforeEnter on reused views\n if (record.beforeEnter) {\n if (isArray(record.beforeEnter)) {\n for (const beforeEnter of record.beforeEnter)\n guards.push(guardToPromiseFn(beforeEnter, to, from));\n }\n else {\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n }\n }\n }\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise\n // clear existing enterCallbacks, these are added by extractComponentsGuards\n to.matched.forEach(record => (record.enterCallbacks = {}));\n // check in-component beforeRouteEnter\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // check global guards beforeResolve\n guards = [];\n for (const guard of beforeResolveGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n })\n // catch any navigation canceled\n .catch(err => isNavigationFailure(err, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)\n ? err\n : Promise.reject(err)));\n }\n function triggerAfterEach(to, from, failure) {\n // navigation is confirmed, call afterGuards\n // TODO: wrap with error handlers\n afterGuards\n .list()\n .forEach(guard => runWithContext(() => guard(to, from, failure)));\n }\n /**\n * - Cleans up any navigation guards\n * - Changes the url if necessary\n * - Calls the scrollBehavior\n */\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\n // a more recent navigation took place\n const error = checkCanceledNavigation(toLocation, from);\n if (error)\n return error;\n // only consider as push if it's not the first navigation\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\n const state = !isBrowser ? {} : history.state;\n // change URL only if the user did a push/replace and if it's not the initial navigation because\n // it's just reflecting the url\n if (isPush) {\n // on the initial navigation, we want to reuse the scroll position from\n // history state if it exists\n if (replace || isFirstNavigation)\n routerHistory.replace(toLocation.fullPath, assign({\n scroll: isFirstNavigation && state && state.scroll,\n }, data));\n else\n routerHistory.push(toLocation.fullPath, data);\n }\n // accept current navigation\n currentRoute.value = toLocation;\n handleScroll(toLocation, from, isPush, isFirstNavigation);\n markAsReady();\n }\n let removeHistoryListener;\n // attach listener to history to trigger navigations\n function setupListeners() {\n // avoid setting up listeners twice due to an invalid first navigation\n if (removeHistoryListener)\n return;\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\n if (!router.listening)\n return;\n // cannot be a redirect route because it was in history\n const toLocation = resolve(to);\n // due to dynamic routing, and to hash history with manual navigation\n // (manually changing the url or calling history.hash = '#/somewhere'),\n // there could be a redirect record in history\n const shouldRedirect = handleRedirectRecord(toLocation);\n if (shouldRedirect) {\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\n return;\n }\n pendingLocation = toLocation;\n const from = currentRoute.value;\n // TODO: should be moved to web history?\n if (isBrowser) {\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n }\n navigate(toLocation, from)\n .catch((error) => {\n if (isNavigationFailure(error, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\n return error;\n }\n if (isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\n // false) but this is bug prone as we have no way to wait the\n // navigation to be finished before calling pushWithRedirect. Using\n // a setTimeout of 16ms seems to work but there is no guarantee for\n // it to work on every browser. So instead we do not restore the\n // history entry and trigger a new navigation as requested by the\n // navigation guard.\n // the error is already handled by router.push we just want to avoid\n // logging the error\n pushWithRedirect(error.to, toLocation\n // avoid an uncaught rejection, let push call triggerError\n )\n .then(failure => {\n // manual change in hash history #916 ending up in the URL not\n // changing, but it was changed by the manual url change, so we\n // need to manually change it ourselves\n if (isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ |\n 16 /* ErrorTypes.NAVIGATION_DUPLICATED */) &&\n !info.delta &&\n info.type === NavigationType.pop) {\n routerHistory.go(-1, false);\n }\n })\n .catch(noop);\n // avoid the then branch\n return Promise.reject();\n }\n // do not restore history on unknown direction\n if (info.delta) {\n routerHistory.go(-info.delta, false);\n }\n // unrecognized error, transfer to the global handler\n return triggerError(error, toLocation, from);\n })\n .then((failure) => {\n failure =\n failure ||\n finalizeNavigation(\n // after navigation, all matched components are resolved\n toLocation, from, false);\n // revert the navigation\n if (failure) {\n if (info.delta &&\n // a new navigation has been triggered, so we do not want to revert, that will change the current history\n // entry while a different route is displayed\n !isNavigationFailure(failure, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\n routerHistory.go(-info.delta, false);\n }\n else if (info.type === NavigationType.pop &&\n isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 16 /* ErrorTypes.NAVIGATION_DUPLICATED */)) {\n // manual change in hash history #916\n // it's like a push but lacks the information of the direction\n routerHistory.go(-1, false);\n }\n }\n triggerAfterEach(toLocation, from, failure);\n })\n // avoid warnings in the console about uncaught rejections, they are logged by triggerErrors\n .catch(noop);\n });\n }\n // Initialization and Errors\n let readyHandlers = useCallbacks();\n let errorListeners = useCallbacks();\n let ready;\n /**\n * Trigger errorListeners added via onError and throws the error as well\n *\n * @param error - error to throw\n * @param to - location we were navigating to when the error happened\n * @param from - location we were navigating from when the error happened\n * @returns the error as a rejected promise\n */\n function triggerError(error, to, from) {\n markAsReady(error);\n const list = errorListeners.list();\n if (list.length) {\n list.forEach(handler => handler(error, to, from));\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('uncaught error during route navigation:');\n }\n console.error(error);\n }\n // reject the error no matter there were error listeners or not\n return Promise.reject(error);\n }\n function isReady() {\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\n return Promise.resolve();\n return new Promise((resolve, reject) => {\n readyHandlers.add([resolve, reject]);\n });\n }\n function markAsReady(err) {\n if (!ready) {\n // still not ready if an error happened\n ready = !err;\n setupListeners();\n readyHandlers\n .list()\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\n readyHandlers.reset();\n }\n return err;\n }\n // Scroll behavior\n function handleScroll(to, from, isPush, isFirstNavigation) {\n const { scrollBehavior } = options;\n if (!isBrowser || !scrollBehavior)\n return Promise.resolve();\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\n ((isFirstNavigation || !isPush) &&\n history.state &&\n history.state.scroll) ||\n null;\n return nextTick()\n .then(() => scrollBehavior(to, from, scrollPosition))\n .then(position => position && scrollToPosition(position))\n .catch(err => triggerError(err, to, from));\n }\n const go = (delta) => routerHistory.go(delta);\n let started;\n const installedApps = new Set();\n const router = {\n currentRoute,\n listening: true,\n addRoute,\n removeRoute,\n hasRoute,\n getRoutes,\n resolve,\n options,\n push,\n replace,\n go,\n back: () => go(-1),\n forward: () => go(1),\n beforeEach: beforeGuards.add,\n beforeResolve: beforeResolveGuards.add,\n afterEach: afterGuards.add,\n onError: errorListeners.add,\n isReady,\n install(app) {\n const router = this;\n app.component('RouterLink', RouterLink);\n app.component('RouterView', RouterView);\n app.config.globalProperties.$router = router;\n Object.defineProperty(app.config.globalProperties, '$route', {\n enumerable: true,\n get: () => unref(currentRoute),\n });\n // this initial navigation is only necessary on client, on server it doesn't\n // make sense because it will create an extra unnecessary navigation and could\n // lead to problems\n if (isBrowser &&\n // used for the initial navigation client side to avoid pushing\n // multiple times when the router is used in multiple apps\n !started &&\n currentRoute.value === START_LOCATION_NORMALIZED) {\n // see above\n started = true;\n push(routerHistory.location).catch(err => {\n if ((process.env.NODE_ENV !== 'production'))\n warn('Unexpected error when starting the router:', err);\n });\n }\n const reactiveRoute = {};\n for (const key in START_LOCATION_NORMALIZED) {\n Object.defineProperty(reactiveRoute, key, {\n get: () => currentRoute.value[key],\n enumerable: true,\n });\n }\n app.provide(routerKey, router);\n app.provide(routeLocationKey, shallowReactive(reactiveRoute));\n app.provide(routerViewLocationKey, currentRoute);\n const unmountApp = app.unmount;\n installedApps.add(app);\n app.unmount = function () {\n installedApps.delete(app);\n // the router is not attached to an app anymore\n if (installedApps.size < 1) {\n // invalidate the current navigation\n pendingLocation = START_LOCATION_NORMALIZED;\n removeHistoryListener && removeHistoryListener();\n removeHistoryListener = null;\n currentRoute.value = START_LOCATION_NORMALIZED;\n started = false;\n ready = false;\n }\n unmountApp();\n };\n // TODO: this probably needs to be updated so it can be used by vue-termui\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n addDevtools(app, router, matcher);\n }\n },\n };\n // TODO: type this as NavigationGuardReturn or similar instead of any\n function runGuardQueue(guards) {\n return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n }\n return router;\n}\nfunction extractChangingRecords(to, from) {\n const leavingRecords = [];\n const updatingRecords = [];\n const enteringRecords = [];\n const len = Math.max(from.matched.length, to.matched.length);\n for (let i = 0; i < len; i++) {\n const recordFrom = from.matched[i];\n if (recordFrom) {\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\n updatingRecords.push(recordFrom);\n else\n leavingRecords.push(recordFrom);\n }\n const recordTo = to.matched[i];\n if (recordTo) {\n // the type doesn't matter because we are comparing per reference\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\n enteringRecords.push(recordTo);\n }\n }\n }\n return [leavingRecords, updatingRecords, enteringRecords];\n}\n\n/**\n * Returns the router instance. Equivalent to using `$router` inside\n * templates.\n */\nfunction useRouter() {\n return inject(routerKey);\n}\n/**\n * Returns the current route location. Equivalent to using `$route` inside\n * templates.\n */\nfunction useRoute() {\n return inject(routeLocationKey);\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/*!\n * GSAP 3.12.4\n * https://gsap.com\n *\n * @license Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _config = {\n autoSleep: 120,\n force3D: \"auto\",\n nullTargetWarn: 1,\n units: {\n lineHeight: \"\"\n }\n},\n _defaults = {\n duration: .5,\n overwrite: false,\n delay: 0\n},\n _suppressOverwrites,\n _reverting,\n _context,\n _bigNum = 1e8,\n _tinyNum = 1 / _bigNum,\n _2PI = Math.PI * 2,\n _HALF_PI = _2PI / 4,\n _gsID = 0,\n _sqrt = Math.sqrt,\n _cos = Math.cos,\n _sin = Math.sin,\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _isObject = function _isObject(value) {\n return typeof value === \"object\";\n},\n _isNotFalse = function _isNotFalse(value) {\n return value !== false;\n},\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _isFuncOrString = function _isFuncOrString(value) {\n return _isFunction(value) || _isString(value);\n},\n _isTypedArray = typeof ArrayBuffer === \"function\" && ArrayBuffer.isView || function () {},\n // note: IE10 has ArrayBuffer, but NOT ArrayBuffer.isView().\n_isArray = Array.isArray,\n _strictNumExp = /(?:-?\\.?\\d|\\.)+/gi,\n //only numbers (including negatives and decimals) but NOT relative values.\n_numExp = /[-+=.]*\\d+[.e\\-+]*\\d*[e\\-+]*\\d*/g,\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n_numWithUnitExp = /[-+=.]*\\d+[.e-]*\\d*[a-z%]*/g,\n _complexStringNumExp = /[-+=.]*\\d+\\.?\\d*(?:e-|e\\+)?\\d*/gi,\n //duplicate so that while we're looping through matches from exec(), it doesn't contaminate the lastIndex of _numExp which we use to search for colors too.\n_relExp = /[+-]=-?[.\\d]+/,\n _delimitedValueExp = /[^,'\"\\[\\]\\s]+/gi,\n // previously /[#\\-+.]*\\b[a-z\\d\\-=+%.]+/gi but didn't catch special characters.\n_unitExp = /^[+\\-=e\\s\\d]*\\d+[.\\d]*([a-z]*|%)\\s*$/i,\n _globalTimeline,\n _win,\n _coreInitted,\n _doc,\n _globals = {},\n _installScope = {},\n _coreReady,\n _install = function _install(scope) {\n return (_installScope = _merge(scope, _globals)) && gsap;\n},\n _missingPlugin = function _missingPlugin(property, value) {\n return console.warn(\"Invalid property\", property, \"set to\", value, \"Missing plugin? gsap.registerPlugin()\");\n},\n _warn = function _warn(message, suppress) {\n return !suppress && console.warn(message);\n},\n _addGlobal = function _addGlobal(name, obj) {\n return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;\n},\n _emptyFunc = function _emptyFunc() {\n return 0;\n},\n _startAtRevertConfig = {\n suppressEvents: true,\n isStart: true,\n kill: false\n},\n _revertConfigNoKill = {\n suppressEvents: true,\n kill: false\n},\n _revertConfig = {\n suppressEvents: true\n},\n _reservedProps = {},\n _lazyTweens = [],\n _lazyLookup = {},\n _lastRenderedFrame,\n _plugins = {},\n _effects = {},\n _nextGCFrame = 30,\n _harnessPlugins = [],\n _callbackNames = \"\",\n _harness = function _harness(targets) {\n var target = targets[0],\n harnessPlugin,\n i;\n _isObject(target) || _isFunction(target) || (targets = [targets]);\n\n if (!(harnessPlugin = (target._gsap || {}).harness)) {\n // find the first target with a harness. We assume targets passed into an animation will be of similar type, meaning the same kind of harness can be used for them all (performance optimization)\n i = _harnessPlugins.length;\n\n while (i-- && !_harnessPlugins[i].targetTest(target)) {}\n\n harnessPlugin = _harnessPlugins[i];\n }\n\n i = targets.length;\n\n while (i--) {\n targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);\n }\n\n return targets;\n},\n _getCache = function _getCache(target) {\n return target._gsap || _harness(toArray(target))[0]._gsap;\n},\n _getProperty = function _getProperty(target, property, v) {\n return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;\n},\n _forEachName = function _forEachName(names, func) {\n return (names = names.split(\",\")).forEach(func) || names;\n},\n //split a comma-delimited list of names into an array, then run a forEach() function and return the split array (this is just a way to consolidate/shorten some code).\n_round = function _round(value) {\n return Math.round(value * 100000) / 100000 || 0;\n},\n _roundPrecise = function _roundPrecise(value) {\n return Math.round(value * 10000000) / 10000000 || 0;\n},\n // increased precision mostly for timing values.\n_parseRelative = function _parseRelative(start, value) {\n var operator = value.charAt(0),\n end = parseFloat(value.substr(2));\n start = parseFloat(start);\n return operator === \"+\" ? start + end : operator === \"-\" ? start - end : operator === \"*\" ? start * end : start / end;\n},\n _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) {\n //searches one array to find matches for any of the items in the toFind array. As soon as one is found, it returns true. It does NOT return all the matches; it's simply a boolean search.\n var l = toFind.length,\n i = 0;\n\n for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {}\n\n return i < l;\n},\n _lazyRender = function _lazyRender() {\n var l = _lazyTweens.length,\n a = _lazyTweens.slice(0),\n i,\n tween;\n\n _lazyLookup = {};\n _lazyTweens.length = 0;\n\n for (i = 0; i < l; i++) {\n tween = a[i];\n tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);\n }\n},\n _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) {\n _lazyTweens.length && !_reverting && _lazyRender();\n animation.render(time, suppressEvents, force || _reverting && time < 0 && (animation._initted || animation._startAt));\n _lazyTweens.length && !_reverting && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render.\n},\n _numericIfPossible = function _numericIfPossible(value) {\n var n = parseFloat(value);\n return (n || n === 0) && (value + \"\").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;\n},\n _passThrough = function _passThrough(p) {\n return p;\n},\n _setDefaults = function _setDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n\n return obj;\n},\n _setKeyframeDefaults = function _setKeyframeDefaults(excludeDuration) {\n return function (obj, defaults) {\n for (var p in defaults) {\n p in obj || p === \"duration\" && excludeDuration || p === \"ease\" || (obj[p] = defaults[p]);\n }\n };\n},\n _merge = function _merge(base, toMerge) {\n for (var p in toMerge) {\n base[p] = toMerge[p];\n }\n\n return base;\n},\n _mergeDeep = function _mergeDeep(base, toMerge) {\n for (var p in toMerge) {\n p !== \"__proto__\" && p !== \"constructor\" && p !== \"prototype\" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);\n }\n\n return base;\n},\n _copyExcluding = function _copyExcluding(obj, excluding) {\n var copy = {},\n p;\n\n for (p in obj) {\n p in excluding || (copy[p] = obj[p]);\n }\n\n return copy;\n},\n _inheritDefaults = function _inheritDefaults(vars) {\n var parent = vars.parent || _globalTimeline,\n func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;\n\n if (_isNotFalse(vars.inherit)) {\n while (parent) {\n func(vars, parent.vars.defaults);\n parent = parent.parent || parent._dp;\n }\n }\n\n return vars;\n},\n _arraysMatch = function _arraysMatch(a1, a2) {\n var i = a1.length,\n match = i === a2.length;\n\n while (match && i-- && a1[i] === a2[i]) {}\n\n return i < 0;\n},\n _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = parent[lastProp],\n t;\n\n if (sortBy) {\n t = child[sortBy];\n\n while (prev && prev[sortBy] > t) {\n prev = prev._prev;\n }\n }\n\n if (prev) {\n child._next = prev._next;\n prev._next = child;\n } else {\n child._next = parent[firstProp];\n parent[firstProp] = child;\n }\n\n if (child._next) {\n child._next._prev = child;\n } else {\n parent[lastProp] = child;\n }\n\n child._prev = prev;\n child.parent = child._dp = parent;\n return child;\n},\n _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = child._prev,\n next = child._next;\n\n if (prev) {\n prev._next = next;\n } else if (parent[firstProp] === child) {\n parent[firstProp] = next;\n }\n\n if (next) {\n next._prev = prev;\n } else if (parent[lastProp] === child) {\n parent[lastProp] = prev;\n }\n\n child._next = child._prev = child.parent = null; // don't delete the _dp just so we can revert if necessary. But parent should be null to indicate the item isn't in a linked list.\n},\n _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) {\n child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child);\n child._act = 0;\n},\n _uncache = function _uncache(animation, child) {\n if (animation && (!child || child._end > animation._dur || child._start < 0)) {\n // performance optimization: if a child animation is passed in we should only uncache if that child EXTENDS the animation (its end time is beyond the end)\n var a = animation;\n\n while (a) {\n a._dirty = 1;\n a = a.parent;\n }\n }\n\n return animation;\n},\n _recacheAncestors = function _recacheAncestors(animation) {\n var parent = animation.parent;\n\n while (parent && parent.parent) {\n //sometimes we must force a re-sort of all children and update the duration/totalDuration of all ancestor timelines immediately in case, for example, in the middle of a render loop, one tween alters another tween's timeScale which shoves its startTime before 0, forcing the parent timeline to shift around and shiftChildren() which could affect that next tween's render (startTime). Doesn't matter for the root timeline though.\n parent._dirty = 1;\n parent.totalDuration();\n parent = parent.parent;\n }\n\n return animation;\n},\n _rewindStartAt = function _rewindStartAt(tween, totalTime, suppressEvents, force) {\n return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force));\n},\n _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) {\n return !animation || animation._ts && _hasNoPausedAncestors(animation.parent);\n},\n _elapsedCycleDuration = function _elapsedCycleDuration(animation) {\n return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;\n},\n // feed in the totalTime and cycleDuration and it'll return the cycle (iteration minus 1) and if the playhead is exactly at the very END, it will NOT bump up to the next cycle.\n_animationCycle = function _animationCycle(tTime, cycleDuration) {\n var whole = Math.floor(tTime /= cycleDuration);\n return tTime && whole === tTime ? whole - 1 : whole;\n},\n _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) {\n return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);\n},\n _setEnd = function _setEnd(animation) {\n return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));\n},\n _alignPlayhead = function _alignPlayhead(animation, totalTime) {\n // adjusts the animation's _start and _end according to the provided totalTime (only if the parent's smoothChildTiming is true and the animation isn't paused). It doesn't do any rendering or forcing things back into parent timelines, etc. - that's what totalTime() is for.\n var parent = animation._dp;\n\n if (parent && parent.smoothChildTiming && animation._ts) {\n animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));\n\n _setEnd(animation);\n\n parent._dirty || _uncache(parent, animation); //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here.\n }\n\n return animation;\n},\n\n/*\n_totalTimeToTime = (clampedTotalTime, duration, repeat, repeatDelay, yoyo) => {\n\tlet cycleDuration = duration + repeatDelay,\n\t\ttime = _round(clampedTotalTime % cycleDuration);\n\tif (time > duration) {\n\t\ttime = duration;\n\t}\n\treturn (yoyo && (~~(clampedTotalTime / cycleDuration) & 1)) ? duration - time : time;\n},\n*/\n_postAddChecks = function _postAddChecks(timeline, child) {\n var t;\n\n if (child._time || !child._dur && child._initted || child._start < timeline._time && (child._dur || !child.add)) {\n // in case, for example, the _start is moved on a tween that has already rendered, or if it's being inserted into a timeline BEFORE where the playhead is currently. Imagine it's at its end state, then the startTime is moved WAY later (after the end of this timeline), it should render at its beginning. Special case: if it's a timeline (has .add() method) and no duration, we can skip rendering because the user may be populating it AFTER adding it to a parent timeline (unconventional, but possible, and we wouldn't want it to get removed if the parent's autoRemoveChildren is true).\n t = _parentToChildTotalTime(timeline.rawTime(), child);\n\n if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {\n child.render(t, true);\n }\n } //if the timeline has already ended but the inserted tween/timeline extends the duration, we should enable this timeline again so that it renders properly. We should also align the playhead with the parent timeline's when appropriate.\n\n\n if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) {\n //in case any of the ancestors had completed but should now be enabled...\n if (timeline._dur < timeline.duration()) {\n t = timeline;\n\n while (t._dp) {\n t.rawTime() >= 0 && t.totalTime(t._tTime); //moves the timeline (shifts its startTime) if necessary, and also enables it. If it's currently zero, though, it may not be scheduled to render until later so there's no need to force it to align with the current playhead position. Only move to catch up with the playhead.\n\n t = t._dp;\n }\n }\n\n timeline._zTime = -_tinyNum; // helps ensure that the next render() will be forced (crossingStart = true in render()), even if the duration hasn't changed (we're adding a child which would need to get rendered). Definitely an edge case. Note: we MUST do this AFTER the loop above where the totalTime() might trigger a render() because this _addToTimeline() method gets called from the Animation constructor, BEFORE tweens even record their targets, etc. so we wouldn't want things to get triggered in the wrong order.\n }\n},\n _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) {\n child.parent && _removeFromParent(child);\n child._start = _roundPrecise((_isNumber(position) ? position : position || timeline !== _globalTimeline ? _parsePosition(timeline, position, child) : timeline._time) + child._delay);\n child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));\n\n _addLinkedListItem(timeline, child, \"_first\", \"_last\", timeline._sort ? \"_start\" : 0);\n\n _isFromOrFromStart(child) || (timeline._recent = child);\n skipChecks || _postAddChecks(timeline, child);\n timeline._ts < 0 && _alignPlayhead(timeline, timeline._tTime); // if the timeline is reversed and the new child makes it longer, we may need to adjust the parent's _start (push it back)\n\n return timeline;\n},\n _scrollTrigger = function _scrollTrigger(animation, trigger) {\n return (_globals.ScrollTrigger || _missingPlugin(\"scrollTrigger\", trigger)) && _globals.ScrollTrigger.create(trigger, animation);\n},\n _attemptInitTween = function _attemptInitTween(tween, time, force, suppressEvents, tTime) {\n _initTween(tween, time, tTime);\n\n if (!tween._initted) {\n return 1;\n }\n\n if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {\n _lazyTweens.push(tween);\n\n tween._lazy = [tTime, suppressEvents];\n return 1;\n }\n},\n _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) {\n var parent = _ref.parent;\n return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent));\n},\n // check parent's _lock because when a timeline repeats/yoyos and does its artificial wrapping, we shouldn't force the ratio back to 0\n_isFromOrFromStart = function _isFromOrFromStart(_ref2) {\n var data = _ref2.data;\n return data === \"isFromStart\" || data === \"isStart\";\n},\n _renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) {\n var prevRatio = tween.ratio,\n ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1,\n // if the tween or its parent is reversed and the totalTime is 0, we should go to a ratio of 0. Edge case: if a from() or fromTo() stagger tween is placed later in a timeline, the \"startAt\" zero-duration tween could initially render at a time when the parent timeline's playhead is technically BEFORE where this tween is, so make sure that any \"from\" and \"fromTo\" startAt tweens are rendered the first time at a ratio of 1.\n repeatDelay = tween._rDelay,\n tTime = 0,\n pt,\n iteration,\n prevIteration;\n\n if (repeatDelay && tween._repeat) {\n // in case there's a zero-duration tween that has a repeat with a repeatDelay\n tTime = _clamp(0, tween._tDur, totalTime);\n iteration = _animationCycle(tTime, repeatDelay);\n tween._yoyo && iteration & 1 && (ratio = 1 - ratio);\n\n if (iteration !== _animationCycle(tween._tTime, repeatDelay)) {\n // if iteration changed\n prevRatio = 1 - ratio;\n tween.vars.repeatRefresh && tween._initted && tween.invalidate();\n }\n }\n\n if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {\n if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) {\n // if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.\n return;\n }\n\n prevIteration = tween._zTime;\n tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); // when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n suppressEvents || (suppressEvents = totalTime && !prevIteration); // if it was rendered previously at exactly 0 (_zTime) and now the playhead is moving away, DON'T fire callbacks otherwise they'll seem like duplicates.\n\n tween.ratio = ratio;\n tween._from && (ratio = 1 - ratio);\n tween._time = 0;\n tween._tTime = tTime;\n pt = tween._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);\n tween._onUpdate && !suppressEvents && _callback(tween, \"onUpdate\");\n tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, \"onRepeat\");\n\n if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {\n ratio && _removeFromParent(tween, 1);\n\n if (!suppressEvents && !_reverting) {\n _callback(tween, ratio ? \"onComplete\" : \"onReverseComplete\", true);\n\n tween._prom && tween._prom();\n }\n }\n } else if (!tween._zTime) {\n tween._zTime = totalTime;\n }\n},\n _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) {\n var child;\n\n if (time > prevTime) {\n child = animation._first;\n\n while (child && child._start <= time) {\n if (child.data === \"isPause\" && child._start > prevTime) {\n return child;\n }\n\n child = child._next;\n }\n } else {\n child = animation._last;\n\n while (child && child._start >= time) {\n if (child.data === \"isPause\" && child._start < prevTime) {\n return child;\n }\n\n child = child._prev;\n }\n }\n},\n _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) {\n var repeat = animation._repeat,\n dur = _roundPrecise(duration) || 0,\n totalProgress = animation._tTime / animation._tDur;\n totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);\n animation._dur = dur;\n animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat);\n totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress);\n animation.parent && _setEnd(animation);\n skipUncache || _uncache(animation.parent, animation);\n return animation;\n},\n _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) {\n return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);\n},\n _zeroPosition = {\n _start: 0,\n endTime: _emptyFunc,\n totalDuration: _emptyFunc\n},\n _parsePosition = function _parsePosition(animation, position, percentAnimation) {\n var labels = animation.labels,\n recent = animation._recent || _zeroPosition,\n clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur,\n //in case there's a child that infinitely repeats, users almost never intend for the insertion point of a new child to be based on a SUPER long value like that so we clip it and assume the most recently-added child's endTime should be used instead.\n i,\n offset,\n isPercent;\n\n if (_isString(position) && (isNaN(position) || position in labels)) {\n //if the string is a number like \"1\", check to see if there's a label with that name, otherwise interpret it as a number (absolute value).\n offset = position.charAt(0);\n isPercent = position.substr(-1) === \"%\";\n i = position.indexOf(\"=\");\n\n if (offset === \"<\" || offset === \">\") {\n i >= 0 && (position = position.replace(/=/, \"\"));\n return (offset === \"<\" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);\n }\n\n if (i < 0) {\n position in labels || (labels[position] = clippedDuration);\n return labels[position];\n }\n\n offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1));\n\n if (isPercent && percentAnimation) {\n offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();\n }\n\n return i > 1 ? _parsePosition(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset;\n }\n\n return position == null ? clippedDuration : +position;\n},\n _createTweenType = function _createTweenType(type, params, timeline) {\n var isLegacy = _isNumber(params[1]),\n varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1),\n vars = params[varsIndex],\n irVars,\n parent;\n\n isLegacy && (vars.duration = params[1]);\n vars.parent = timeline;\n\n if (type) {\n irVars = vars;\n parent = timeline;\n\n while (parent && !(\"immediateRender\" in irVars)) {\n // inheritance hasn't happened yet, but someone may have set a default in an ancestor timeline. We could do vars.immediateRender = _isNotFalse(_inheritDefaults(vars).immediateRender) but that'd exact a slight performance penalty because _inheritDefaults() also runs in the Tween constructor. We're paying a small kb price here to gain speed.\n irVars = parent.vars.defaults || {};\n parent = _isNotFalse(parent.vars.inherit) && parent.parent;\n }\n\n vars.immediateRender = _isNotFalse(irVars.immediateRender);\n type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; // \"from\" vars\n }\n\n return new Tween(params[0], vars, params[varsIndex + 1]);\n},\n _conditionalReturn = function _conditionalReturn(value, func) {\n return value || value === 0 ? func(value) : func;\n},\n _clamp = function _clamp(min, max, value) {\n return value < min ? min : value > max ? max : value;\n},\n getUnit = function getUnit(value, v) {\n return !_isString(value) || !(v = _unitExp.exec(value)) ? \"\" : v[1];\n},\n // note: protect against padded numbers as strings, like \"100.100\". That shouldn't return \"00\" as the unit. If it's numeric, return no unit.\nclamp = function clamp(min, max, value) {\n return _conditionalReturn(value, function (v) {\n return _clamp(min, max, v);\n });\n},\n _slice = [].slice,\n _isArrayLike = function _isArrayLike(value, nonEmpty) {\n return value && _isObject(value) && \"length\" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;\n},\n _flatten = function _flatten(ar, leaveStrings, accumulator) {\n if (accumulator === void 0) {\n accumulator = [];\n }\n\n return ar.forEach(function (value) {\n var _accumulator;\n\n return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);\n }) || accumulator;\n},\n //takes any value and returns an array. If it's a string (and leaveStrings isn't true), it'll use document.querySelectorAll() and convert that to an array. It'll also accept iterables like jQuery objects.\ntoArray = function toArray(value, scope, leaveStrings) {\n return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];\n},\n selector = function selector(value) {\n value = toArray(value)[0] || _warn(\"Invalid scope\") || {};\n return function (v) {\n var el = value.current || value.nativeElement || value;\n return toArray(v, el.querySelectorAll ? el : el === value ? _warn(\"Invalid scope\") || _doc.createElement(\"div\") : value);\n };\n},\n shuffle = function shuffle(a) {\n return a.sort(function () {\n return .5 - Math.random();\n });\n},\n // alternative that's a bit faster and more reliably diverse but bigger: for (let j, v, i = a.length; i; j = Math.floor(Math.random() * i), v = a[--i], a[i] = a[j], a[j] = v); return a;\n//for distributing values across an array. Can accept a number, a function or (most commonly) a function which can contain the following properties: {base, amount, from, ease, grid, axis, length, each}. Returns a function that expects the following parameters: index, target, array. Recognizes the following\ndistribute = function distribute(v) {\n if (_isFunction(v)) {\n return v;\n }\n\n var vars = _isObject(v) ? v : {\n each: v\n },\n //n:1 is just to indicate v was a number; we leverage that later to set v according to the length we get. If a number is passed in, we treat it like the old stagger value where 0.1, for example, would mean that things would be distributed with 0.1 between each element in the array rather than a total \"amount\" that's chunked out among them all.\n ease = _parseEase(vars.ease),\n from = vars.from || 0,\n base = parseFloat(vars.base) || 0,\n cache = {},\n isDecimal = from > 0 && from < 1,\n ratios = isNaN(from) || isDecimal,\n axis = vars.axis,\n ratioX = from,\n ratioY = from;\n\n if (_isString(from)) {\n ratioX = ratioY = {\n center: .5,\n edges: .5,\n end: 1\n }[from] || 0;\n } else if (!isDecimal && ratios) {\n ratioX = from[0];\n ratioY = from[1];\n }\n\n return function (i, target, a) {\n var l = (a || vars).length,\n distances = cache[l],\n originX,\n originY,\n x,\n y,\n d,\n j,\n max,\n min,\n wrapAt;\n\n if (!distances) {\n wrapAt = vars.grid === \"auto\" ? 0 : (vars.grid || [1, _bigNum])[1];\n\n if (!wrapAt) {\n max = -_bigNum;\n\n while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {}\n\n wrapAt < l && wrapAt--;\n }\n\n distances = cache[l] = [];\n originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt;\n originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0;\n max = 0;\n min = _bigNum;\n\n for (j = 0; j < l; j++) {\n x = j % wrapAt - originX;\n y = originY - (j / wrapAt | 0);\n distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === \"y\" ? y : x);\n d > max && (max = d);\n d < min && (min = d);\n }\n\n from === \"random\" && shuffle(distances);\n distances.max = max - min;\n distances.min = min;\n distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === \"y\" ? l / wrapAt : wrapAt) || 0) * (from === \"edges\" ? -1 : 1);\n distances.b = l < 0 ? base - l : base;\n distances.u = getUnit(vars.amount || vars.each) || 0; //unit\n\n ease = ease && l < 0 ? _invertEase(ease) : ease;\n }\n\n l = (distances[i] - distances.min) / distances.max || 0;\n return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; //round in order to work around floating point errors\n };\n},\n _roundModifier = function _roundModifier(v) {\n //pass in 0.1 get a function that'll round to the nearest tenth, or 5 to round to the closest 5, or 0.001 to the closest 1000th, etc.\n var p = Math.pow(10, ((v + \"\").split(\".\")[1] || \"\").length); //to avoid floating point math errors (like 24 * 0.1 == 2.4000000000000004), we chop off at a specific number of decimal places (much faster than toFixed())\n\n return function (raw) {\n var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p);\n\n return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); // n - n % 1 replaces Math.floor() in order to handle negative values properly. For example, Math.floor(-150.00000000000003) is 151!\n };\n},\n snap = function snap(snapTo, value) {\n var isArray = _isArray(snapTo),\n radius,\n is2D;\n\n if (!isArray && _isObject(snapTo)) {\n radius = isArray = snapTo.radius || _bigNum;\n\n if (snapTo.values) {\n snapTo = toArray(snapTo.values);\n\n if (is2D = !_isNumber(snapTo[0])) {\n radius *= radius; //performance optimization so we don't have to Math.sqrt() in the loop.\n }\n } else {\n snapTo = _roundModifier(snapTo.increment);\n }\n }\n\n return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) {\n is2D = snapTo(raw);\n return Math.abs(is2D - raw) <= radius ? is2D : raw;\n } : function (raw) {\n var x = parseFloat(is2D ? raw.x : raw),\n y = parseFloat(is2D ? raw.y : 0),\n min = _bigNum,\n closest = 0,\n i = snapTo.length,\n dx,\n dy;\n\n while (i--) {\n if (is2D) {\n dx = snapTo[i].x - x;\n dy = snapTo[i].y - y;\n dx = dx * dx + dy * dy;\n } else {\n dx = Math.abs(snapTo[i] - x);\n }\n\n if (dx < min) {\n min = dx;\n closest = i;\n }\n }\n\n closest = !radius || min <= radius ? snapTo[closest] : raw;\n return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);\n });\n},\n random = function random(min, max, roundingIncrement, returnFunction) {\n return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () {\n return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + \"\").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;\n });\n},\n pipe = function pipe() {\n for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {\n functions[_key] = arguments[_key];\n }\n\n return function (value) {\n return functions.reduce(function (v, f) {\n return f(v);\n }, value);\n };\n},\n unitize = function unitize(func, unit) {\n return function (value) {\n return func(parseFloat(value)) + (unit || getUnit(value));\n };\n},\n normalize = function normalize(min, max, value) {\n return mapRange(min, max, 0, 1, value);\n},\n _wrapArray = function _wrapArray(a, wrapper, value) {\n return _conditionalReturn(value, function (index) {\n return a[~~wrapper(index)];\n });\n},\n wrap = function wrap(min, max, value) {\n // NOTE: wrap() CANNOT be an arrow function! A very odd compiling bug causes problems (unrelated to GSAP).\n var range = max - min;\n return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) {\n return (range + (value - min) % range) % range + min;\n });\n},\n wrapYoyo = function wrapYoyo(min, max, value) {\n var range = max - min,\n total = range * 2;\n return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) {\n value = (total + (value - min) % total) % total || 0;\n return min + (value > range ? total - value : value);\n });\n},\n _replaceRandom = function _replaceRandom(value) {\n //replaces all occurrences of random(...) in a string with the calculated random value. can be a range like random(-100, 100, 5) or an array like random([0, 100, 500])\n var prev = 0,\n s = \"\",\n i,\n nums,\n end,\n isArray;\n\n while (~(i = value.indexOf(\"random(\", prev))) {\n end = value.indexOf(\")\", i);\n isArray = value.charAt(i + 7) === \"[\";\n nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);\n s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);\n prev = end + 1;\n }\n\n return s + value.substr(prev, value.length - prev);\n},\n mapRange = function mapRange(inMin, inMax, outMin, outMax, value) {\n var inRange = inMax - inMin,\n outRange = outMax - outMin;\n return _conditionalReturn(value, function (value) {\n return outMin + ((value - inMin) / inRange * outRange || 0);\n });\n},\n interpolate = function interpolate(start, end, progress, mutate) {\n var func = isNaN(start + end) ? 0 : function (p) {\n return (1 - p) * start + p * end;\n };\n\n if (!func) {\n var isString = _isString(start),\n master = {},\n p,\n i,\n interpolators,\n l,\n il;\n\n progress === true && (mutate = 1) && (progress = null);\n\n if (isString) {\n start = {\n p: start\n };\n end = {\n p: end\n };\n } else if (_isArray(start) && !_isArray(end)) {\n interpolators = [];\n l = start.length;\n il = l - 2;\n\n for (i = 1; i < l; i++) {\n interpolators.push(interpolate(start[i - 1], start[i])); //build the interpolators up front as a performance optimization so that when the function is called many times, it can just reuse them.\n }\n\n l--;\n\n func = function func(p) {\n p *= l;\n var i = Math.min(il, ~~p);\n return interpolators[i](p - i);\n };\n\n progress = end;\n } else if (!mutate) {\n start = _merge(_isArray(start) ? [] : {}, start);\n }\n\n if (!interpolators) {\n for (p in end) {\n _addPropTween.call(master, start, p, \"get\", end[p]);\n }\n\n func = function func(p) {\n return _renderPropTweens(p, master) || (isString ? start.p : start);\n };\n }\n }\n\n return _conditionalReturn(progress, func);\n},\n _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) {\n //used for nextLabel() and previousLabel()\n var labels = timeline.labels,\n min = _bigNum,\n p,\n distance,\n label;\n\n for (p in labels) {\n distance = labels[p] - fromTime;\n\n if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {\n label = p;\n min = distance;\n }\n }\n\n return label;\n},\n _callback = function _callback(animation, type, executeLazyFirst) {\n var v = animation.vars,\n callback = v[type],\n prevContext = _context,\n context = animation._ctx,\n params,\n scope,\n result;\n\n if (!callback) {\n return;\n }\n\n params = v[type + \"Params\"];\n scope = v.callbackScope || animation;\n executeLazyFirst && _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when a timeline finishes, users expect things to have rendered fully. Imagine an onUpdate on a timeline that reports/checks tweened values.\n\n context && (_context = context);\n result = params ? callback.apply(scope, params) : callback.call(scope);\n _context = prevContext;\n return result;\n},\n _interrupt = function _interrupt(animation) {\n _removeFromParent(animation);\n\n animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);\n animation.progress() < 1 && _callback(animation, \"onInterrupt\");\n return animation;\n},\n _quickTween,\n _registerPluginQueue = [],\n _createPlugin = function _createPlugin(config) {\n if (_windowExists() && config) {\n // edge case: some build tools may pass in a null/undefined value\n config = !config.name && config[\"default\"] || config; //UMD packaging wraps things oddly, so for example MotionPathHelper becomes {MotionPathHelper:MotionPathHelper, default:MotionPathHelper}.\n\n var name = config.name,\n isFunc = _isFunction(config),\n Plugin = name && !isFunc && config.init ? function () {\n this._props = [];\n } : config,\n //in case someone passes in an object that's not a plugin, like CustomEase\n instanceDefaults = {\n init: _emptyFunc,\n render: _renderPropTweens,\n add: _addPropTween,\n kill: _killPropTweensOf,\n modifier: _addPluginModifier,\n rawVars: 0\n },\n statics = {\n targetTest: 0,\n get: 0,\n getSetter: _getSetter,\n aliases: {},\n register: 0\n };\n\n _wake();\n\n if (config !== Plugin) {\n if (_plugins[name]) {\n return;\n }\n\n _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics)); //static methods\n\n\n _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics))); //instance methods\n\n\n _plugins[Plugin.prop = name] = Plugin;\n\n if (config.targetTest) {\n _harnessPlugins.push(Plugin);\n\n _reservedProps[name] = 1;\n }\n\n name = (name === \"css\" ? \"CSS\" : name.charAt(0).toUpperCase() + name.substr(1)) + \"Plugin\"; //for the global name. \"motionPath\" should become MotionPathPlugin\n }\n\n _addGlobal(name, Plugin);\n\n config.register && config.register(gsap, Plugin, PropTween);\n } else {\n config && _registerPluginQueue.push(config);\n }\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * COLORS\n * --------------------------------------------------------------------------------------\n */\n_255 = 255,\n _colorLookup = {\n aqua: [0, _255, _255],\n lime: [0, _255, 0],\n silver: [192, 192, 192],\n black: [0, 0, 0],\n maroon: [128, 0, 0],\n teal: [0, 128, 128],\n blue: [0, 0, _255],\n navy: [0, 0, 128],\n white: [_255, _255, _255],\n olive: [128, 128, 0],\n yellow: [_255, _255, 0],\n orange: [_255, 165, 0],\n gray: [128, 128, 128],\n purple: [128, 0, 128],\n green: [0, 128, 0],\n red: [_255, 0, 0],\n pink: [_255, 192, 203],\n cyan: [0, _255, _255],\n transparent: [_255, _255, _255, 0]\n},\n // possible future idea to replace the hard-coded color name values - put this in the ticker.wake() where we set the _doc:\n// let ctx = _doc.createElement(\"canvas\").getContext(\"2d\");\n// _forEachName(\"aqua,lime,silver,black,maroon,teal,blue,navy,white,olive,yellow,orange,gray,purple,green,red,pink,cyan\", color => {ctx.fillStyle = color; _colorLookup[color] = splitColor(ctx.fillStyle)});\n_hue = function _hue(h, m1, m2) {\n h += h < 0 ? 1 : h > 1 ? -1 : 0;\n return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0;\n},\n splitColor = function splitColor(v, toHSL, forceAlpha) {\n var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0,\n r,\n g,\n b,\n h,\n s,\n l,\n max,\n min,\n d,\n wasHSL;\n\n if (!a) {\n if (v.substr(-1) === \",\") {\n //sometimes a trailing comma is included and we should chop it off (typically from a comma-delimited list of values like a textShadow:\"2px 2px 2px blue, 5px 5px 5px rgb(255,0,0)\" - in this example \"blue,\" has a trailing comma. We could strip it out inside parseComplex() but we'd need to do it to the beginning and ending values plus it wouldn't provide protection from other potential scenarios like if the user passes in a similar value.\n v = v.substr(0, v.length - 1);\n }\n\n if (_colorLookup[v]) {\n a = _colorLookup[v];\n } else if (v.charAt(0) === \"#\") {\n if (v.length < 6) {\n //for shorthand like #9F0 or #9F0F (could have alpha)\n r = v.charAt(1);\n g = v.charAt(2);\n b = v.charAt(3);\n v = \"#\" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : \"\");\n }\n\n if (v.length === 9) {\n // hex with alpha, like #fd5e53ff\n a = parseInt(v.substr(1, 6), 16);\n return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];\n }\n\n v = parseInt(v.substr(1), 16);\n a = [v >> 16, v >> 8 & _255, v & _255];\n } else if (v.substr(0, 3) === \"hsl\") {\n a = wasHSL = v.match(_strictNumExp);\n\n if (!toHSL) {\n h = +a[0] % 360 / 360;\n s = +a[1] / 100;\n l = +a[2] / 100;\n g = l <= .5 ? l * (s + 1) : l + s - l * s;\n r = l * 2 - g;\n a.length > 3 && (a[3] *= 1); //cast as number\n\n a[0] = _hue(h + 1 / 3, r, g);\n a[1] = _hue(h, r, g);\n a[2] = _hue(h - 1 / 3, r, g);\n } else if (~v.indexOf(\"=\")) {\n //if relative values are found, just return the raw strings with the relative prefixes in place.\n a = v.match(_numExp);\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n }\n } else {\n a = v.match(_strictNumExp) || _colorLookup.transparent;\n }\n\n a = a.map(Number);\n }\n\n if (toHSL && !wasHSL) {\n r = a[0] / _255;\n g = a[1] / _255;\n b = a[2] / _255;\n max = Math.max(r, g, b);\n min = Math.min(r, g, b);\n l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h *= 60;\n }\n\n a[0] = ~~(h + .5);\n a[1] = ~~(s * 100 + .5);\n a[2] = ~~(l * 100 + .5);\n }\n\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n},\n _colorOrderData = function _colorOrderData(v) {\n // strips out the colors from the string, finds all the numeric slots (with units) and returns an array of those. The Array also has a \"c\" property which is an Array of the index values where the colors belong. This is to help work around issues where there's a mis-matched order of color/numeric data like drop-shadow(#f00 0px 1px 2px) and drop-shadow(0x 1px 2px #f00). This is basically a helper function used in _formatColors()\n var values = [],\n c = [],\n i = -1;\n v.split(_colorExp).forEach(function (v) {\n var a = v.match(_numWithUnitExp) || [];\n values.push.apply(values, a);\n c.push(i += a.length + 1);\n });\n values.c = c;\n return values;\n},\n _formatColors = function _formatColors(s, toHSL, orderMatchData) {\n var result = \"\",\n colors = (s + result).match(_colorExp),\n type = toHSL ? \"hsla(\" : \"rgba(\",\n i = 0,\n c,\n shell,\n d,\n l;\n\n if (!colors) {\n return s;\n }\n\n colors = colors.map(function (color) {\n return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + \",\" + color[1] + \"%,\" + color[2] + \"%,\" + color[3] : color.join(\",\")) + \")\";\n });\n\n if (orderMatchData) {\n d = _colorOrderData(s);\n c = orderMatchData.c;\n\n if (c.join(result) !== d.c.join(result)) {\n shell = s.replace(_colorExp, \"1\").split(_numWithUnitExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + \"0,0,0,0)\" : (d.length ? d : colors.length ? colors : orderMatchData).shift());\n }\n }\n }\n\n if (!shell) {\n shell = s.split(_colorExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + colors[i];\n }\n }\n\n return result + shell[l];\n},\n _colorExp = function () {\n var s = \"(?:\\\\b(?:(?:rgb|rgba|hsl|hsla)\\\\(.+?\\\\))|\\\\B#(?:[0-9a-f]{3,4}){1,2}\\\\b\",\n //we'll dynamically build this Regular Expression to conserve file size. After building it, it will be able to find rgb(), rgba(), # (hexadecimal), and named color values like red, blue, purple, etc.,\n p;\n\n for (p in _colorLookup) {\n s += \"|\" + p + \"\\\\b\";\n }\n\n return new RegExp(s + \")\", \"gi\");\n}(),\n _hslExp = /hsl[a]?\\(/,\n _colorStringFilter = function _colorStringFilter(a) {\n var combined = a.join(\" \"),\n toHSL;\n _colorExp.lastIndex = 0;\n\n if (_colorExp.test(combined)) {\n toHSL = _hslExp.test(combined);\n a[1] = _formatColors(a[1], toHSL);\n a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); // make sure the order of numbers/colors match with the END value.\n\n return true;\n }\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TICKER\n * --------------------------------------------------------------------------------------\n */\n_tickerActive,\n _ticker = function () {\n var _getTime = Date.now,\n _lagThreshold = 500,\n _adjustedLag = 33,\n _startTime = _getTime(),\n _lastUpdate = _startTime,\n _gap = 1000 / 240,\n _nextTime = _gap,\n _listeners = [],\n _id,\n _req,\n _raf,\n _self,\n _delta,\n _i,\n _tick = function _tick(v) {\n var elapsed = _getTime() - _lastUpdate,\n manual = v === true,\n overlap,\n dispatch,\n time,\n frame;\n\n elapsed > _lagThreshold && (_startTime += elapsed - _adjustedLag);\n _lastUpdate += elapsed;\n time = _lastUpdate - _startTime;\n overlap = time - _nextTime;\n\n if (overlap > 0 || manual) {\n frame = ++_self.frame;\n _delta = time - _self.time * 1000;\n _self.time = time = time / 1000;\n _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);\n dispatch = 1;\n }\n\n manual || (_id = _req(_tick)); //make sure the request is made before we dispatch the \"tick\" event so that timing is maintained. Otherwise, if processing the \"tick\" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise.\n\n if (dispatch) {\n for (_i = 0; _i < _listeners.length; _i++) {\n // use _i and check _listeners.length instead of a variable because a listener could get removed during the loop, and if that happens to an element less than the current index, it'd throw things off in the loop.\n _listeners[_i](time, _delta, frame, v);\n }\n }\n };\n\n _self = {\n time: 0,\n frame: 0,\n tick: function tick() {\n _tick(true);\n },\n deltaRatio: function deltaRatio(fps) {\n return _delta / (1000 / (fps || 60));\n },\n wake: function wake() {\n if (_coreReady) {\n if (!_coreInitted && _windowExists()) {\n _win = _coreInitted = window;\n _doc = _win.document || {};\n _globals.gsap = gsap;\n (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);\n\n _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});\n\n _raf = _win.requestAnimationFrame;\n\n _registerPluginQueue.forEach(_createPlugin);\n }\n\n _id && _self.sleep();\n\n _req = _raf || function (f) {\n return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0);\n };\n\n _tickerActive = 1;\n\n _tick(2);\n }\n },\n sleep: function sleep() {\n (_raf ? _win.cancelAnimationFrame : clearTimeout)(_id);\n _tickerActive = 0;\n _req = _emptyFunc;\n },\n lagSmoothing: function lagSmoothing(threshold, adjustedLag) {\n _lagThreshold = threshold || Infinity; // zero should be interpreted as basically unlimited\n\n _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold);\n },\n fps: function fps(_fps) {\n _gap = 1000 / (_fps || 240);\n _nextTime = _self.time * 1000 + _gap;\n },\n add: function add(callback, once, prioritize) {\n var func = once ? function (t, d, f, v) {\n callback(t, d, f, v);\n\n _self.remove(func);\n } : callback;\n\n _self.remove(callback);\n\n _listeners[prioritize ? \"unshift\" : \"push\"](func);\n\n _wake();\n\n return func;\n },\n remove: function remove(callback, i) {\n ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--;\n },\n _listeners: _listeners\n };\n return _self;\n}(),\n _wake = function _wake() {\n return !_tickerActive && _ticker.wake();\n},\n //also ensures the core classes are initialized.\n\n/*\n* -------------------------------------------------\n* EASING\n* -------------------------------------------------\n*/\n_easeMap = {},\n _customEaseExp = /^[\\d.\\-M][\\d.\\-,\\s]/,\n _quotesExp = /[\"']/g,\n _parseObjectInString = function _parseObjectInString(value) {\n //takes a string like \"{wiggles:10, type:anticipate})\" and turns it into a real object. Notice it ends in \")\" and includes the {} wrappers. This is because we only use this function for parsing ease configs and prioritized optimization rather than reusability.\n var obj = {},\n split = value.substr(1, value.length - 3).split(\":\"),\n key = split[0],\n i = 1,\n l = split.length,\n index,\n val,\n parsedVal;\n\n for (; i < l; i++) {\n val = split[i];\n index = i !== l - 1 ? val.lastIndexOf(\",\") : val.length;\n parsedVal = val.substr(0, index);\n obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, \"\").trim() : +parsedVal;\n key = val.substr(index + 1).trim();\n }\n\n return obj;\n},\n _valueInParentheses = function _valueInParentheses(value) {\n var open = value.indexOf(\"(\") + 1,\n close = value.indexOf(\")\"),\n nested = value.indexOf(\"(\", open);\n return value.substring(open, ~nested && nested < close ? value.indexOf(\")\", close + 1) : close);\n},\n _configEaseFromString = function _configEaseFromString(name) {\n //name can be a string like \"elastic.out(1,0.5)\", and pass in _easeMap as obj and it'll parse it out and call the actual function like _easeMap.Elastic.easeOut.config(1,0.5). It will also parse custom ease strings as long as CustomEase is loaded and registered (internally as _easeMap._CE).\n var split = (name + \"\").split(\"(\"),\n ease = _easeMap[split[0]];\n return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf(\"{\") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(\",\").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE(\"\", name) : ease;\n},\n _invertEase = function _invertEase(ease) {\n return function (p) {\n return 1 - ease(1 - p);\n };\n},\n // allow yoyoEase to be set in children and have those affected when the parent/ancestor timeline yoyos.\n_propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) {\n var child = timeline._first,\n ease;\n\n while (child) {\n if (child instanceof Timeline) {\n _propagateYoyoEase(child, isYoyo);\n } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {\n if (child.timeline) {\n _propagateYoyoEase(child.timeline, isYoyo);\n } else {\n ease = child._ease;\n child._ease = child._yEase;\n child._yEase = ease;\n child._yoyo = isYoyo;\n }\n }\n\n child = child._next;\n }\n},\n _parseEase = function _parseEase(ease, defaultEase) {\n return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;\n},\n _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) {\n if (easeOut === void 0) {\n easeOut = function easeOut(p) {\n return 1 - easeIn(1 - p);\n };\n }\n\n if (easeInOut === void 0) {\n easeInOut = function easeInOut(p) {\n return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;\n };\n }\n\n var ease = {\n easeIn: easeIn,\n easeOut: easeOut,\n easeInOut: easeInOut\n },\n lowercaseName;\n\n _forEachName(names, function (name) {\n _easeMap[name] = _globals[name] = ease;\n _easeMap[lowercaseName = name.toLowerCase()] = easeOut;\n\n for (var p in ease) {\n _easeMap[lowercaseName + (p === \"easeIn\" ? \".in\" : p === \"easeOut\" ? \".out\" : \".inOut\")] = _easeMap[name + \".\" + p] = ease[p];\n }\n });\n\n return ease;\n},\n _easeInOutFromOut = function _easeInOutFromOut(easeOut) {\n return function (p) {\n return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2;\n };\n},\n _configElastic = function _configElastic(type, amplitude, period) {\n var p1 = amplitude >= 1 ? amplitude : 1,\n //note: if amplitude is < 1, we simply adjust the period for a more natural feel. Otherwise the math doesn't work right and the curve starts at 1.\n p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1),\n p3 = p2 / _2PI * (Math.asin(1 / p1) || 0),\n easeOut = function easeOut(p) {\n return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n p2 = _2PI / p2; //precalculate to optimize\n\n ease.config = function (amplitude, period) {\n return _configElastic(type, amplitude, period);\n };\n\n return ease;\n},\n _configBack = function _configBack(type, overshoot) {\n if (overshoot === void 0) {\n overshoot = 1.70158;\n }\n\n var easeOut = function easeOut(p) {\n return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n ease.config = function (overshoot) {\n return _configBack(type, overshoot);\n };\n\n return ease;\n}; // a cheaper (kb and cpu) but more mild way to get a parameterized weighted ease by feeding in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEase = ratio => {\n// \tlet y = 0.5 + ratio / 2;\n// \treturn p => (2 * (1 - p) * p * y + p * p);\n// },\n// a stronger (but more expensive kb/cpu) parameterized weighted ease that lets you feed in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEaseStrong = ratio => {\n// \tratio = .5 + ratio / 2;\n// \tlet o = 1 / 3 * (ratio < .5 ? ratio : 1 - ratio),\n// \t\tb = ratio - o,\n// \t\tc = ratio + o;\n// \treturn p => p === 1 ? p : 3 * b * (1 - p) * (1 - p) * p + 3 * c * (1 - p) * p * p + p * p * p;\n// };\n\n\n_forEachName(\"Linear,Quad,Cubic,Quart,Quint,Strong\", function (name, i) {\n var power = i < 5 ? i + 1 : i;\n\n _insertEase(name + \",Power\" + (power - 1), i ? function (p) {\n return Math.pow(p, power);\n } : function (p) {\n return p;\n }, function (p) {\n return 1 - Math.pow(1 - p, power);\n }, function (p) {\n return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;\n });\n});\n\n_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;\n\n_insertEase(\"Elastic\", _configElastic(\"in\"), _configElastic(\"out\"), _configElastic());\n\n(function (n, c) {\n var n1 = 1 / c,\n n2 = 2 * n1,\n n3 = 2.5 * n1,\n easeOut = function easeOut(p) {\n return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375;\n };\n\n _insertEase(\"Bounce\", function (p) {\n return 1 - easeOut(1 - p);\n }, easeOut);\n})(7.5625, 2.75);\n\n_insertEase(\"Expo\", function (p) {\n return p ? Math.pow(2, 10 * (p - 1)) : 0;\n});\n\n_insertEase(\"Circ\", function (p) {\n return -(_sqrt(1 - p * p) - 1);\n});\n\n_insertEase(\"Sine\", function (p) {\n return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;\n});\n\n_insertEase(\"Back\", _configBack(\"in\"), _configBack(\"out\"), _configBack());\n\n_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {\n config: function config(steps, immediateStart) {\n if (steps === void 0) {\n steps = 1;\n }\n\n var p1 = 1 / steps,\n p2 = steps + (immediateStart ? 0 : 1),\n p3 = immediateStart ? 1 : 0,\n max = 1 - _tinyNum;\n return function (p) {\n return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;\n };\n }\n};\n_defaults.ease = _easeMap[\"quad.out\"];\n\n_forEachName(\"onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt\", function (name) {\n return _callbackNames += name + \",\" + name + \"Params,\";\n});\n/*\n * --------------------------------------------------------------------------------------\n * CACHE\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var GSCache = function GSCache(target, harness) {\n this.id = _gsID++;\n target._gsap = this;\n this.target = target;\n this.harness = harness;\n this.get = harness ? harness.get : _getProperty;\n this.set = harness ? harness.getSetter : _getSetter;\n};\n/*\n * --------------------------------------------------------------------------------------\n * ANIMATION\n * --------------------------------------------------------------------------------------\n */\n\nexport var Animation = /*#__PURE__*/function () {\n function Animation(vars) {\n this.vars = vars;\n this._delay = +vars.delay || 0;\n\n if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {\n // TODO: repeat: Infinity on a timeline's children must flag that timeline internally and affect its totalDuration, otherwise it'll stop in the negative direction when reaching the start.\n this._rDelay = vars.repeatDelay || 0;\n this._yoyo = !!vars.yoyo || !!vars.yoyoEase;\n }\n\n this._ts = 1;\n\n _setDuration(this, +vars.duration, 1, 1);\n\n this.data = vars.data;\n\n if (_context) {\n this._ctx = _context;\n\n _context.data.push(this);\n }\n\n _tickerActive || _ticker.wake();\n }\n\n var _proto = Animation.prototype;\n\n _proto.delay = function delay(value) {\n if (value || value === 0) {\n this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);\n this._delay = value;\n return this;\n }\n\n return this._delay;\n };\n\n _proto.duration = function duration(value) {\n return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;\n };\n\n _proto.totalDuration = function totalDuration(value) {\n if (!arguments.length) {\n return this._tDur;\n }\n\n this._dirty = 0;\n return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));\n };\n\n _proto.totalTime = function totalTime(_totalTime, suppressEvents) {\n _wake();\n\n if (!arguments.length) {\n return this._tTime;\n }\n\n var parent = this._dp;\n\n if (parent && parent.smoothChildTiming && this._ts) {\n _alignPlayhead(this, _totalTime);\n\n !parent._dp || parent.parent || _postAddChecks(parent, this); // edge case: if this is a child of a timeline that already completed, for example, we must re-activate the parent.\n //in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The start of that child would get pushed out, but one of the ancestors may have completed.\n\n while (parent && parent.parent) {\n if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {\n parent.totalTime(parent._tTime, true);\n }\n\n parent = parent.parent;\n }\n\n if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {\n //if the animation doesn't have a parent, put it back into its last parent (recorded as _dp for exactly cases like this). Limit to parents with autoRemoveChildren (like globalTimeline) so that if the user manually removes an animation from a timeline and then alters its playhead, it doesn't get added back in.\n _addToTimeline(this._dp, this, this._start - this._delay);\n }\n }\n\n if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {\n // check for _ptLookup on a Tween instance to ensure it has actually finished being instantiated, otherwise if this.reverse() gets called in the Animation constructor, it could trigger a render() here even though the _targets weren't populated, thus when _init() is called there won't be any PropTweens (it'll act like the tween is non-functional)\n this._ts || (this._pTime = _totalTime); // otherwise, if an animation is paused, then the playhead is moved back to zero, then resumed, it'd revert back to the original time at the pause\n //if (!this._lock) { // avoid endless recursion (not sure we need this yet or if it's worth the performance hit)\n // this._lock = 1;\n\n _lazySafeRender(this, _totalTime, suppressEvents); // this._lock = 0;\n //}\n\n }\n\n return this;\n };\n\n _proto.time = function time(value, suppressEvents) {\n return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time; // note: if the modulus results in 0, the playhead could be exactly at the end or the beginning, and we always defer to the END with a non-zero value, otherwise if you set the time() to the very end (duration()), it would render at the START!\n };\n\n _proto.totalProgress = function totalProgress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.rawTime() > 0 ? 1 : 0;\n };\n\n _proto.progress = function progress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.rawTime() > 0 ? 1 : 0;\n };\n\n _proto.iteration = function iteration(value, suppressEvents) {\n var cycleDuration = this.duration() + this._rDelay;\n\n return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;\n } // potential future addition:\n // isPlayingBackwards() {\n // \tlet animation = this,\n // \t\torientation = 1; // 1 = forward, -1 = backward\n // \twhile (animation) {\n // \t\torientation *= animation.reversed() || (animation.repeat() && !(animation.iteration() & 1)) ? -1 : 1;\n // \t\tanimation = animation.parent;\n // \t}\n // \treturn orientation < 0;\n // }\n ;\n\n _proto.timeScale = function timeScale(value, suppressEvents) {\n if (!arguments.length) {\n return this._rts === -_tinyNum ? 0 : this._rts; // recorded timeScale. Special case: if someone calls reverse() on an animation with timeScale of 0, we assign it -_tinyNum to remember it's reversed.\n }\n\n if (this._rts === value) {\n return this;\n }\n\n var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; // make sure to do the parentToChildTotalTime() BEFORE setting the new _ts because the old one must be used in that calculation.\n // future addition? Up side: fast and minimal file size. Down side: only works on this animation; if a timeline is reversed, for example, its childrens' onReverse wouldn't get called.\n //(+value < 0 && this._rts >= 0) && _callback(this, \"onReverse\", true);\n // prioritize rendering where the parent's playhead lines up instead of this._tTime because there could be a tween that's animating another tween's timeScale in the same rendering loop (same parent), thus if the timeScale tween renders first, it would alter _start BEFORE _tTime was set on that tick (in the rendering loop), effectively freezing it until the timeScale tween finishes.\n\n this._rts = +value || 0;\n this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; // _ts is the functional timeScale which would be 0 if the animation is paused.\n\n this.totalTime(_clamp(-Math.abs(this._delay), this._tDur, tTime), suppressEvents !== false);\n\n _setEnd(this); // if parent.smoothChildTiming was false, the end time didn't get updated in the _alignPlayhead() method, so do it here.\n\n\n return _recacheAncestors(this);\n };\n\n _proto.paused = function paused(value) {\n if (!arguments.length) {\n return this._ps;\n }\n\n if (this._ps !== value) {\n this._ps = value;\n\n if (value) {\n this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); // if the pause occurs during the delay phase, make sure that's factored in when resuming.\n\n this._ts = this._act = 0; // _ts is the functional timeScale, so a paused tween would effectively have a timeScale of 0. We record the \"real\" timeScale as _rts (recorded time scale)\n } else {\n _wake();\n\n this._ts = this._rts; //only defer to _pTime (pauseTime) if tTime is zero. Remember, someone could pause() an animation, then scrub the playhead and resume(). If the parent doesn't have smoothChildTiming, we render at the rawTime() because the startTime won't get updated.\n\n this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); // edge case: animation.progress(1).pause().play() wouldn't render again because the playhead is already at the end, but the call to totalTime() below will add it back to its parent...and not remove it again (since removing only happens upon rendering at a new time). Offsetting the _tTime slightly is done simply to cause the final render in totalTime() that'll pop it off its timeline (if autoRemoveChildren is true, of course). Check to make sure _zTime isn't -_tinyNum to avoid an edge case where the playhead is pushed to the end but INSIDE a tween/callback, the timeline itself is paused thus halting rendering and leaving a few unrendered. When resuming, it wouldn't render those otherwise.\n }\n }\n\n return this;\n };\n\n _proto.startTime = function startTime(value) {\n if (arguments.length) {\n this._start = value;\n var parent = this.parent || this._dp;\n parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);\n return this;\n }\n\n return this._start;\n };\n\n _proto.endTime = function endTime(includeRepeats) {\n return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);\n };\n\n _proto.rawTime = function rawTime(wrapRepeats) {\n var parent = this.parent || this._dp; // _dp = detached parent\n\n return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);\n };\n\n _proto.revert = function revert(config) {\n if (config === void 0) {\n config = _revertConfig;\n }\n\n var prevIsReverting = _reverting;\n _reverting = config;\n\n if (this._initted || this._startAt) {\n this.timeline && this.timeline.revert(config);\n this.totalTime(-0.01, config.suppressEvents);\n }\n\n this.data !== \"nested\" && config.kill !== false && this.kill();\n _reverting = prevIsReverting;\n return this;\n };\n\n _proto.globalTime = function globalTime(rawTime) {\n var animation = this,\n time = arguments.length ? rawTime : animation.rawTime();\n\n while (animation) {\n time = animation._start + time / (Math.abs(animation._ts) || 1);\n animation = animation._dp;\n }\n\n return !this.parent && this._sat ? this._sat.globalTime(rawTime) : time; // the _startAt tweens for .fromTo() and .from() that have immediateRender should always be FIRST in the timeline (important for context.revert()). \"_sat\" stands for _startAtTween, referring to the parent tween that created the _startAt. We must discern if that tween had immediateRender so that we can know whether or not to prioritize it in revert().\n };\n\n _proto.repeat = function repeat(value) {\n if (arguments.length) {\n this._repeat = value === Infinity ? -2 : value;\n return _onUpdateTotalDuration(this);\n }\n\n return this._repeat === -2 ? Infinity : this._repeat;\n };\n\n _proto.repeatDelay = function repeatDelay(value) {\n if (arguments.length) {\n var time = this._time;\n this._rDelay = value;\n\n _onUpdateTotalDuration(this);\n\n return time ? this.time(time) : this;\n }\n\n return this._rDelay;\n };\n\n _proto.yoyo = function yoyo(value) {\n if (arguments.length) {\n this._yoyo = value;\n return this;\n }\n\n return this._yoyo;\n };\n\n _proto.seek = function seek(position, suppressEvents) {\n return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));\n };\n\n _proto.restart = function restart(includeDelay, suppressEvents) {\n return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));\n };\n\n _proto.play = function play(from, suppressEvents) {\n from != null && this.seek(from, suppressEvents);\n return this.reversed(false).paused(false);\n };\n\n _proto.reverse = function reverse(from, suppressEvents) {\n from != null && this.seek(from || this.totalDuration(), suppressEvents);\n return this.reversed(true).paused(false);\n };\n\n _proto.pause = function pause(atTime, suppressEvents) {\n atTime != null && this.seek(atTime, suppressEvents);\n return this.paused(true);\n };\n\n _proto.resume = function resume() {\n return this.paused(false);\n };\n\n _proto.reversed = function reversed(value) {\n if (arguments.length) {\n !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); // in case timeScale is zero, reversing would have no effect so we use _tinyNum.\n\n return this;\n }\n\n return this._rts < 0;\n };\n\n _proto.invalidate = function invalidate() {\n this._initted = this._act = 0;\n this._zTime = -_tinyNum;\n return this;\n };\n\n _proto.isActive = function isActive() {\n var parent = this.parent || this._dp,\n start = this._start,\n rawTime;\n return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);\n };\n\n _proto.eventCallback = function eventCallback(type, callback, params) {\n var vars = this.vars;\n\n if (arguments.length > 1) {\n if (!callback) {\n delete vars[type];\n } else {\n vars[type] = callback;\n params && (vars[type + \"Params\"] = params);\n type === \"onUpdate\" && (this._onUpdate = callback);\n }\n\n return this;\n }\n\n return vars[type];\n };\n\n _proto.then = function then(onFulfilled) {\n var self = this;\n return new Promise(function (resolve) {\n var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough,\n _resolve = function _resolve() {\n var _then = self.then;\n self.then = null; // temporarily null the then() method to avoid an infinite loop (see https://github.com/greensock/GSAP/issues/322)\n\n _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);\n resolve(f);\n self.then = _then;\n };\n\n if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {\n _resolve();\n } else {\n self._prom = _resolve;\n }\n });\n };\n\n _proto.kill = function kill() {\n _interrupt(this);\n };\n\n return Animation;\n}();\n\n_setDefaults(Animation.prototype, {\n _time: 0,\n _start: 0,\n _end: 0,\n _tTime: 0,\n _tDur: 0,\n _dirty: 0,\n _repeat: 0,\n _yoyo: false,\n parent: null,\n _initted: false,\n _rDelay: 0,\n _ts: 1,\n _dp: 0,\n ratio: 0,\n _zTime: -_tinyNum,\n _prom: 0,\n _ps: false,\n _rts: 1\n});\n/*\n * -------------------------------------------------\n * TIMELINE\n * -------------------------------------------------\n */\n\n\nexport var Timeline = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(Timeline, _Animation);\n\n function Timeline(vars, position) {\n var _this;\n\n if (vars === void 0) {\n vars = {};\n }\n\n _this = _Animation.call(this, vars) || this;\n _this.labels = {};\n _this.smoothChildTiming = !!vars.smoothChildTiming;\n _this.autoRemoveChildren = !!vars.autoRemoveChildren;\n _this._sort = _isNotFalse(vars.sortChildren);\n _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position);\n vars.reversed && _this.reverse();\n vars.paused && _this.paused(true);\n vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);\n return _this;\n }\n\n var _proto2 = Timeline.prototype;\n\n _proto2.to = function to(targets, vars, position) {\n _createTweenType(0, arguments, this);\n\n return this;\n };\n\n _proto2.from = function from(targets, vars, position) {\n _createTweenType(1, arguments, this);\n\n return this;\n };\n\n _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {\n _createTweenType(2, arguments, this);\n\n return this;\n };\n\n _proto2.set = function set(targets, vars, position) {\n vars.duration = 0;\n vars.parent = this;\n _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);\n vars.immediateRender = !!vars.immediateRender;\n new Tween(targets, vars, _parsePosition(this, position), 1);\n return this;\n };\n\n _proto2.call = function call(callback, params, position) {\n return _addToTimeline(this, Tween.delayedCall(0, callback, params), position);\n } //ONLY for backward compatibility! Maybe delete?\n ;\n\n _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.duration = duration;\n vars.stagger = vars.stagger || stagger;\n vars.onComplete = onCompleteAll;\n vars.onCompleteParams = onCompleteAllParams;\n vars.parent = this;\n new Tween(targets, vars, _parsePosition(this, position));\n return this;\n };\n\n _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.runBackwards = 1;\n _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);\n return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {\n toVars.startAt = fromVars;\n _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);\n return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._dirty ? this.totalDuration() : this._tDur,\n dur = this._dur,\n tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime),\n // if a paused timeline is resumed (or its _start is updated for another reason...which rounds it), that could result in the playhead shifting a **tiny** amount and a zero-duration child at that spot may get rendered at a different ratio, like its totalTime in render() may be 1e-17 instead of 0, for example.\n crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur),\n time,\n child,\n next,\n iteration,\n cycleDuration,\n prevPaused,\n pauseTween,\n timeScale,\n prevStart,\n prevIteration,\n yoyo,\n isYoyo;\n this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);\n\n if (tTime !== this._tTime || force || crossingStart) {\n if (prevTime !== this._time && dur) {\n //if totalDuration() finds a child with a negative startTime and smoothChildTiming is true, things get shifted around internally so we need to adjust the time accordingly. For example, if a tween starts at -30 we must shift EVERYTHING forward 30 seconds and move this timeline's startTime backward by 30 seconds so that things align with the playhead (no jump).\n tTime += this._time - prevTime;\n totalTime += this._time - prevTime;\n }\n\n time = tTime;\n prevStart = this._start;\n timeScale = this._ts;\n prevPaused = !timeScale;\n\n if (crossingStart) {\n dur || (prevTime = this._zTime); //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n (totalTime || !suppressEvents) && (this._zTime = totalTime);\n }\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n yoyo = this._yoyo;\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && totalTime < 0) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === tTime / cycleDuration) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration); // edge case - if someone does addPause() at the very beginning of a repeating timeline, that pause is technically at the same spot as the end which causes this._time to get set to 0 when the totalTime would normally place the playhead at the end. See https://gsap.com/forums/topic/23823-closing-nav-animation-not-working-on-ie-and-iphone-6-maybe-other-older-browser/?tab=comments#comment-113005 also, this._tTime - prevIteration * cycleDuration - this._dur <= 0 just checks to make sure it wasn't previously in the \"repeatDelay\" portion\n\n if (yoyo && iteration & 1) {\n time = dur - time;\n isYoyo = 1;\n }\n /*\n make sure children at the end/beginning of the timeline are rendered properly. If, for example,\n a 3-second long timeline rendered at 2.9 seconds previously, and now renders at 3.2 seconds (which\n would get translated to 2.8 seconds if the timeline yoyos or 0.2 seconds if it just repeats), there\n could be a callback or a short tween that's at 2.95 or 3 seconds in which wouldn't render. So\n we need to push the timeline to the end (and/or beginning depending on its yoyo value). Also we must\n ensure that zero-duration tweens at the very beginning or end of the Timeline work.\n */\n\n\n if (iteration !== prevIteration && !this._lock) {\n var rewinding = yoyo && prevIteration & 1,\n doesWrap = rewinding === (yoyo && iteration & 1);\n iteration < prevIteration && (rewinding = !rewinding);\n prevTime = rewinding ? 0 : tTime % dur ? dur : tTime; // if the playhead is landing exactly at the end of an iteration, use that totalTime rather than only the duration, otherwise it'll skip the 2nd render since it's effectively at the same time.\n\n this._lock = 1;\n this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;\n this._tTime = tTime; // if a user gets the iteration() inside the onRepeat, for example, it should be accurate.\n\n !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);\n\n if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {\n // if prevTime is 0 and we render at the very end, _time will be the end, thus won't match. So in this edge case, prevTime won't match _time but that's okay. If it gets killed in the onRepeat, eject as well.\n return this;\n }\n\n dur = this._dur; // in case the duration changed in the onRepeat\n\n tDur = this._tDur;\n\n if (doesWrap) {\n this._lock = 2;\n prevTime = rewinding ? dur : -0.0001;\n this.render(prevTime, true);\n this.vars.repeatRefresh && !isYoyo && this.invalidate();\n }\n\n this._lock = 0;\n\n if (!this._ts && !prevPaused) {\n return this;\n } //in order for yoyoEase to work properly when there's a stagger, we must swap out the ease in each sub-tween.\n\n\n _propagateYoyoEase(this, isYoyo);\n }\n }\n\n if (this._hasPause && !this._forcing && this._lock < 2) {\n pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));\n\n if (pauseTween) {\n tTime -= time - (time = pauseTween._start);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n this._act = !timeScale; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n if (!this._initted) {\n this._onUpdate = this.vars.onUpdate;\n this._initted = 1;\n this._zTime = totalTime;\n prevTime = 0; // upon init, the playhead should always go forward; someone could invalidate() a completed timeline and then if they restart(), that would make child tweens render in reverse order which could lock in the wrong starting values if they build on each other, like tl.to(obj, {x: 100}).to(obj, {x: 0}).\n }\n\n if (!prevTime && time && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n\n if (this._tTime !== tTime) {\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n return this;\n }\n }\n\n if (time >= prevTime && totalTime >= 0) {\n child = this._first;\n\n while (child) {\n next = child._next;\n\n if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = -_tinyNum); // it didn't finish rendering, so flag zTime as negative so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n } else {\n child = this._last;\n var adjustedTime = totalTime < 0 ? totalTime : time; //when the playhead goes backward beyond the start of this timeline, we must pass that information down to the child animations so that zero-duration tweens know whether to render their starting or ending values.\n\n while (child) {\n next = child._prev;\n\n if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && (child._initted || child._startAt)); // if reverting, we should always force renders of initted tweens (but remember that .fromTo() or .from() may have a _startAt but not _initted yet). If, for example, a .fromTo() tween with a stagger (which creates an internal timeline) gets reverted BEFORE some of its child tweens render for the first time, it may not properly trigger them to revert.\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); // it didn't finish rendering, so adjust zTime so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n }\n\n if (pauseTween && !suppressEvents) {\n this.pause();\n pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;\n\n if (this._ts) {\n //the callback resumed playback! So since we may have held back the playhead due to where the pause is positioned, go ahead and jump to where it's SUPPOSED to be (if no pause happened).\n this._start = prevStart; //if the pause was at an earlier time and the user resumed in the callback, it could reposition the timeline (changing its startTime), throwing things off slightly, so we make sure the _start doesn't shift.\n\n _setEnd(this);\n\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._onUpdate && !suppressEvents && _callback(this, \"onUpdate\", true);\n if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) {\n // remember, a child's callback may alter this timeline's playhead or timeScale which is why we need to add some of these checks.\n (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {\n _callback(this, tTime === tDur && totalTime >= 0 ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto2.add = function add(child, position) {\n var _this2 = this;\n\n _isNumber(position) || (position = _parsePosition(this, position, child));\n\n if (!(child instanceof Animation)) {\n if (_isArray(child)) {\n child.forEach(function (obj) {\n return _this2.add(obj, position);\n });\n return this;\n }\n\n if (_isString(child)) {\n return this.addLabel(child, position);\n }\n\n if (_isFunction(child)) {\n child = Tween.delayedCall(0, child);\n } else {\n return this;\n }\n }\n\n return this !== child ? _addToTimeline(this, child, position) : this; //don't allow a timeline to be added to itself as a child!\n };\n\n _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {\n if (nested === void 0) {\n nested = true;\n }\n\n if (tweens === void 0) {\n tweens = true;\n }\n\n if (timelines === void 0) {\n timelines = true;\n }\n\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = -_bigNum;\n }\n\n var a = [],\n child = this._first;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n if (child instanceof Tween) {\n tweens && a.push(child);\n } else {\n timelines && a.push(child);\n nested && a.push.apply(a, child.getChildren(true, tweens, timelines));\n }\n }\n\n child = child._next;\n }\n\n return a;\n };\n\n _proto2.getById = function getById(id) {\n var animations = this.getChildren(1, 1, 1),\n i = animations.length;\n\n while (i--) {\n if (animations[i].vars.id === id) {\n return animations[i];\n }\n }\n };\n\n _proto2.remove = function remove(child) {\n if (_isString(child)) {\n return this.removeLabel(child);\n }\n\n if (_isFunction(child)) {\n return this.killTweensOf(child);\n }\n\n _removeLinkedListItem(this, child);\n\n if (child === this._recent) {\n this._recent = this._last;\n }\n\n return _uncache(this);\n };\n\n _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {\n if (!arguments.length) {\n return this._tTime;\n }\n\n this._forcing = 1;\n\n if (!this._dp && this._ts) {\n //special case for the global timeline (or any other that has no parent or detached parent).\n this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));\n }\n\n _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);\n\n this._forcing = 0;\n return this;\n };\n\n _proto2.addLabel = function addLabel(label, position) {\n this.labels[label] = _parsePosition(this, position);\n return this;\n };\n\n _proto2.removeLabel = function removeLabel(label) {\n delete this.labels[label];\n return this;\n };\n\n _proto2.addPause = function addPause(position, callback, params) {\n var t = Tween.delayedCall(0, callback || _emptyFunc, params);\n t.data = \"isPause\";\n this._hasPause = 1;\n return _addToTimeline(this, t, _parsePosition(this, position));\n };\n\n _proto2.removePause = function removePause(position) {\n var child = this._first;\n position = _parsePosition(this, position);\n\n while (child) {\n if (child._start === position && child.data === \"isPause\") {\n _removeFromParent(child);\n }\n\n child = child._next;\n }\n };\n\n _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n var tweens = this.getTweensOf(targets, onlyActive),\n i = tweens.length;\n\n while (i--) {\n _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);\n }\n\n return this;\n };\n\n _proto2.getTweensOf = function getTweensOf(targets, onlyActive) {\n var a = [],\n parsedTargets = toArray(targets),\n child = this._first,\n isGlobalTime = _isNumber(onlyActive),\n // a number is interpreted as a global time. If the animation spans\n children;\n\n while (child) {\n if (child instanceof Tween) {\n if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {\n // note: if this is for overwriting, it should only be for tweens that aren't paused and are initted.\n a.push(child);\n }\n } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {\n a.push.apply(a, children);\n }\n\n child = child._next;\n }\n\n return a;\n } // potential future feature - targets() on timelines\n // targets() {\n // \tlet result = [];\n // \tthis.getChildren(true, true, false).forEach(t => result.push(...t.targets()));\n // \treturn result.filter((v, i) => result.indexOf(v) === i);\n // }\n ;\n\n _proto2.tweenTo = function tweenTo(position, vars) {\n vars = vars || {};\n\n var tl = this,\n endTime = _parsePosition(tl, position),\n _vars = vars,\n startAt = _vars.startAt,\n _onStart = _vars.onStart,\n onStartParams = _vars.onStartParams,\n immediateRender = _vars.immediateRender,\n initted,\n tween = Tween.to(tl, _setDefaults({\n ease: vars.ease || \"none\",\n lazy: false,\n immediateRender: false,\n time: endTime,\n overwrite: \"auto\",\n duration: vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,\n onStart: function onStart() {\n tl.pause();\n\n if (!initted) {\n var duration = vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale());\n tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);\n initted = 1;\n }\n\n _onStart && _onStart.apply(tween, onStartParams || []); //in case the user had an onStart in the vars - we don't want to overwrite it.\n }\n }, vars));\n\n return immediateRender ? tween.render(0) : tween;\n };\n\n _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {\n return this.tweenTo(toPosition, _setDefaults({\n startAt: {\n time: _parsePosition(this, fromPosition)\n }\n }, vars));\n };\n\n _proto2.recent = function recent() {\n return this._recent;\n };\n\n _proto2.nextLabel = function nextLabel(afterTime) {\n if (afterTime === void 0) {\n afterTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, afterTime));\n };\n\n _proto2.previousLabel = function previousLabel(beforeTime) {\n if (beforeTime === void 0) {\n beforeTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);\n };\n\n _proto2.currentLabel = function currentLabel(value) {\n return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);\n };\n\n _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = 0;\n }\n\n var child = this._first,\n labels = this.labels,\n p;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n child._start += amount;\n child._end += amount;\n }\n\n child = child._next;\n }\n\n if (adjustLabels) {\n for (p in labels) {\n if (labels[p] >= ignoreBeforeTime) {\n labels[p] += amount;\n }\n }\n }\n\n return _uncache(this);\n };\n\n _proto2.invalidate = function invalidate(soft) {\n var child = this._first;\n this._lock = 0;\n\n while (child) {\n child.invalidate(soft);\n child = child._next;\n }\n\n return _Animation.prototype.invalidate.call(this, soft);\n };\n\n _proto2.clear = function clear(includeLabels) {\n if (includeLabels === void 0) {\n includeLabels = true;\n }\n\n var child = this._first,\n next;\n\n while (child) {\n next = child._next;\n this.remove(child);\n child = next;\n }\n\n this._dp && (this._time = this._tTime = this._pTime = 0);\n includeLabels && (this.labels = {});\n return _uncache(this);\n };\n\n _proto2.totalDuration = function totalDuration(value) {\n var max = 0,\n self = this,\n child = self._last,\n prevStart = _bigNum,\n prev,\n start,\n parent;\n\n if (arguments.length) {\n return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));\n }\n\n if (self._dirty) {\n parent = self.parent;\n\n while (child) {\n prev = child._prev; //record it here in case the tween changes position in the sequence...\n\n child._dirty && child.totalDuration(); //could change the tween._startTime, so make sure the animation's cache is clean before analyzing it.\n\n start = child._start;\n\n if (start > prevStart && self._sort && child._ts && !self._lock) {\n //in case one of the tweens shifted out of order, it needs to be re-inserted into the correct position in the sequence\n self._lock = 1; //prevent endless recursive calls - there are methods that get triggered that check duration/totalDuration when we add().\n\n _addToTimeline(self, child, start - child._delay, 1)._lock = 0;\n } else {\n prevStart = start;\n }\n\n if (start < 0 && child._ts) {\n //children aren't allowed to have negative startTimes unless smoothChildTiming is true, so adjust here if one is found.\n max -= start;\n\n if (!parent && !self._dp || parent && parent.smoothChildTiming) {\n self._start += start / self._ts;\n self._time -= start;\n self._tTime -= start;\n }\n\n self.shiftChildren(-start, false, -1e999);\n prevStart = 0;\n }\n\n child._end > max && child._ts && (max = child._end);\n child = prev;\n }\n\n _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);\n\n self._dirty = 0;\n }\n\n return self._tDur;\n };\n\n Timeline.updateRoot = function updateRoot(time) {\n if (_globalTimeline._ts) {\n _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));\n\n _lastRenderedFrame = _ticker.frame;\n }\n\n if (_ticker.frame >= _nextGCFrame) {\n _nextGCFrame += _config.autoSleep || 120;\n var child = _globalTimeline._first;\n if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) {\n while (child && !child._ts) {\n child = child._next;\n }\n\n child || _ticker.sleep();\n }\n }\n };\n\n return Timeline;\n}(Animation);\n\n_setDefaults(Timeline.prototype, {\n _lock: 0,\n _hasPause: 0,\n _forcing: 0\n});\n\nvar _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) {\n //note: we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter),\n index = 0,\n matchIndex = 0,\n result,\n startNums,\n color,\n endNum,\n chunk,\n startNum,\n hasRandom,\n a;\n pt.b = start;\n pt.e = end;\n start += \"\"; //ensure values are strings\n\n end += \"\";\n\n if (hasRandom = ~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (stringFilter) {\n a = [start, end];\n stringFilter(a, target, prop); //pass an array with the starting and ending values and let the filter do whatever it needs to the values.\n\n start = a[0];\n end = a[1];\n }\n\n startNums = start.match(_complexStringNumExp) || [];\n\n while (result = _complexStringNumExp.exec(end)) {\n endNum = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\") {\n color = 1;\n }\n\n if (endNum !== startNums[matchIndex++]) {\n startNum = parseFloat(startNums[matchIndex - 1]) || 0; //these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum.charAt(1) === \"=\" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,\n m: color && color < 4 ? Math.round : 0\n };\n index = _complexStringNumExp.lastIndex;\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n\n pt.fp = funcParam;\n\n if (_relExp.test(end) || hasRandom) {\n pt.e = 0; //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n }\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {\n _isFunction(end) && (end = end(index || 0, target, targets));\n var currentValue = target[prop],\n parsedStart = start !== \"get\" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf(\"set\") || !_isFunction(target[\"get\" + prop.substr(3)]) ? prop : \"get\" + prop.substr(3)](funcParam) : target[prop](),\n setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc,\n pt;\n\n if (_isString(end)) {\n if (~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (end.charAt(1) === \"=\") {\n pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);\n\n if (pt || pt === 0) {\n // to avoid isNaN, like if someone passes in a value like \"!= whatever\"\n end = pt;\n }\n }\n }\n\n if (!optional || parsedStart !== end || _forceAllPropTweens) {\n if (!isNaN(parsedStart * end) && end !== \"\") {\n // fun fact: any number multiplied by \"\" is evaluated as the number 0!\n pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === \"boolean\" ? _renderBoolean : _renderPlain, 0, setter);\n funcParam && (pt.fp = funcParam);\n modifier && pt.modifier(modifier, this, target);\n return this._pt = pt;\n }\n\n !currentValue && !(prop in target) && _missingPlugin(prop, end);\n return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);\n }\n},\n //creates a copy of the vars object and processes any function-based values (putting the resulting values directly into the copy) as well as strings with \"random()\" in them. It does NOT process relative values.\n_processVars = function _processVars(vars, index, target, targets, tween) {\n _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));\n\n if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {\n return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;\n }\n\n var copy = {},\n p;\n\n for (p in vars) {\n copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);\n }\n\n return copy;\n},\n _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) {\n var plugin, pt, ptLookup, i;\n\n if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n if (tween !== _quickTween) {\n ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; //note: we can't use tween._ptLookup[index] because for staggered tweens, the index from the fullTargets array won't match what it is in each individual tween that spawns from the stagger.\n\n i = plugin._props.length;\n\n while (i--) {\n ptLookup[plugin._props[i]] = pt;\n }\n }\n }\n\n return plugin;\n},\n _overwritingTween,\n //store a reference temporarily so we can avoid overwriting itself.\n_forceAllPropTweens,\n _initTween = function _initTween(tween, time, tTime) {\n var vars = tween.vars,\n ease = vars.ease,\n startAt = vars.startAt,\n immediateRender = vars.immediateRender,\n lazy = vars.lazy,\n onUpdate = vars.onUpdate,\n runBackwards = vars.runBackwards,\n yoyoEase = vars.yoyoEase,\n keyframes = vars.keyframes,\n autoRevert = vars.autoRevert,\n dur = tween._dur,\n prevStartAt = tween._startAt,\n targets = tween._targets,\n parent = tween.parent,\n fullTargets = parent && parent.data === \"nested\" ? parent.vars.targets : targets,\n autoOverwrite = tween._overwrite === \"auto\" && !_suppressOverwrites,\n tl = tween.timeline,\n cleanVars,\n i,\n p,\n pt,\n target,\n hasPriority,\n gsData,\n harness,\n plugin,\n ptLookup,\n index,\n harnessVars,\n overwritten;\n tl && (!keyframes || !ease) && (ease = \"none\");\n tween._ease = _parseEase(ease, _defaults.ease);\n tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;\n\n if (yoyoEase && tween._yoyo && !tween._repeat) {\n //there must have been a parent timeline with yoyo:true that is currently in its yoyo phase, so flip the eases.\n yoyoEase = tween._yEase;\n tween._yEase = tween._ease;\n tween._ease = yoyoEase;\n }\n\n tween._from = !tl && !!vars.runBackwards; //nested timelines should never run backwards - the backwards-ness is in the child tweens.\n\n if (!tl || keyframes && !vars.stagger) {\n //if there's an internal timeline, skip all the parsing because we passed that task down the chain.\n harness = targets[0] ? _getCache(targets[0]).harness : 0;\n harnessVars = harness && vars[harness.prop]; //someone may need to specify CSS-specific values AND non-CSS values, like if the element has an \"x\" property plus it's a standard DOM element. We allow people to distinguish by wrapping plugin-specific stuff in a css:{} object for example.\n\n cleanVars = _copyExcluding(vars, _reservedProps);\n\n if (prevStartAt) {\n prevStartAt._zTime < 0 && prevStartAt.progress(1); // in case it's a lazy startAt that hasn't rendered yet.\n\n time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig); // if it's a \"startAt\" (not \"from()\" or runBackwards: true), we only need to do a shallow revert (keep transforms cached in CSSPlugin)\n // don't just _removeFromParent(prevStartAt.render(-1, true)) because that'll leave inline styles. We're creating a new _startAt for \"startAt\" tweens that re-capture things to ensure that if the pre-tween values changed since the tween was created, they're recorded.\n\n prevStartAt._lazy = 0;\n }\n\n if (startAt) {\n _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({\n data: \"isStart\",\n overwrite: false,\n parent: parent,\n immediateRender: true,\n lazy: !prevStartAt && _isNotFalse(lazy),\n startAt: null,\n delay: 0,\n onUpdate: onUpdate && function () {\n return _callback(tween, \"onUpdate\");\n },\n stagger: 0\n }, startAt))); //copy the properties/values into a new object to avoid collisions, like var to = {x:0}, from = {x:500}; timeline.fromTo(e, from, to).fromTo(e, to, from);\n\n\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline! Like when revert() is called and totalTime() gets set.\n\n tween._startAt._sat = tween; // used in globalTime(). _sat stands for _startAtTween\n\n time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill); // rare edge case, like if a render is forced in the negative direction of a non-initted tween.\n\n if (immediateRender) {\n if (dur && time <= 0 && tTime <= 0) {\n // check tTime here because in the case of a yoyo tween whose playhead gets pushed to the end like tween.progress(1), we should allow it through so that the onComplete gets fired properly.\n time && (tween._zTime = time);\n return; //we skip initialization here so that overwriting doesn't occur until the tween actually begins. Otherwise, if you create several immediateRender:true tweens of the same target/properties to drop into a Timeline, the last one created would overwrite the first ones because they didn't get placed into the timeline yet before the first render occurs and kicks in overwriting.\n }\n }\n } else if (runBackwards && dur) {\n //from() tweens must be handled uniquely: their beginning values must be rendered but we don't want overwriting to occur yet (when time is still 0). Wait until the tween actually begins before doing all the routines like overwriting. At that time, we should render at the END of the tween to ensure that things initialize correctly (remember, from() tweens go backwards)\n if (!prevStartAt) {\n time && (immediateRender = false); //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0\n\n p = _setDefaults({\n overwrite: false,\n data: \"isFromStart\",\n //we tag the tween with as \"isFromStart\" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a \"from()\" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:\"height\", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.\n lazy: immediateRender && !prevStartAt && _isNotFalse(lazy),\n immediateRender: immediateRender,\n //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)\n stagger: 0,\n parent: parent //ensures that nested tweens that had a stagger are handled properly, like gsap.from(\".class\", {y: gsap.utils.wrap([-100,100]), stagger: 0.5})\n\n }, cleanVars);\n harnessVars && (p[harness.prop] = harnessVars); // in case someone does something like .from(..., {css:{}})\n\n _removeFromParent(tween._startAt = Tween.set(targets, p));\n\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline!\n\n tween._startAt._sat = tween; // used in globalTime()\n\n time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));\n tween._zTime = time;\n\n if (!immediateRender) {\n _initTween(tween._startAt, _tinyNum, _tinyNum); //ensures that the initial values are recorded\n\n } else if (!time) {\n return;\n }\n }\n }\n\n tween._pt = tween._ptCache = 0;\n lazy = dur && _isNotFalse(lazy) || lazy && !dur;\n\n for (i = 0; i < targets.length; i++) {\n target = targets[i];\n gsData = target._gsap || _harness(targets)[i]._gsap;\n tween._ptLookup[i] = ptLookup = {};\n _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); //if other tweens of the same target have recently initted but haven't rendered yet, we've got to force the render so that the starting values are correct (imagine populating a timeline with a bunch of sequential tweens and then jumping to the end)\n\n index = fullTargets === targets ? i : fullTargets.indexOf(target);\n\n if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n plugin._props.forEach(function (name) {\n ptLookup[name] = pt;\n });\n\n plugin.priority && (hasPriority = 1);\n }\n\n if (!harness || harnessVars) {\n for (p in cleanVars) {\n if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {\n plugin.priority && (hasPriority = 1);\n } else {\n ptLookup[p] = pt = _addPropTween.call(tween, target, p, \"get\", cleanVars[p], index, fullTargets, 0, vars.stringFilter);\n }\n }\n }\n\n tween._op && tween._op[i] && tween.kill(target, tween._op[i]);\n\n if (autoOverwrite && tween._pt) {\n _overwritingTween = tween;\n\n _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time)); // make sure the overwriting doesn't overwrite THIS tween!!!\n\n\n overwritten = !tween.parent;\n _overwritingTween = 0;\n }\n\n tween._pt && lazy && (_lazyLookup[gsData.id] = 1);\n }\n\n hasPriority && _sortPropTweensByPriority(tween);\n tween._onInit && tween._onInit(tween); //plugins like RoundProps must wait until ALL of the PropTweens are instantiated. In the plugin's init() function, it sets the _onInit on the tween instance. May not be pretty/intuitive, but it's fast and keeps file size down.\n }\n\n tween._onUpdate = onUpdate;\n tween._initted = (!tween._op || tween._pt) && !overwritten; // if overwrittenProps resulted in the entire tween being killed, do NOT flag it as initted or else it may render for one tick.\n\n keyframes && time <= 0 && tl.render(_bigNum, true, true); // if there's a 0% keyframe, it'll render in the \"before\" state for any staggered/delayed animations thus when the following tween initializes, it'll use the \"before\" state instead of the \"after\" state as the initial values.\n},\n _updatePropTweens = function _updatePropTweens(tween, property, value, start, startIsRelative, ratio, time, skipRecursion) {\n var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property],\n pt,\n rootPT,\n lookup,\n i;\n\n if (!ptCache) {\n ptCache = tween._ptCache[property] = [];\n lookup = tween._ptLookup;\n i = tween._targets.length;\n\n while (i--) {\n pt = lookup[i][property];\n\n if (pt && pt.d && pt.d._pt) {\n // it's a plugin, so find the nested PropTween\n pt = pt.d._pt;\n\n while (pt && pt.p !== property && pt.fp !== property) {\n // \"fp\" is functionParam for things like setting CSS variables which require .setProperty(\"--var-name\", value)\n pt = pt._next;\n }\n }\n\n if (!pt) {\n // there is no PropTween associated with that property, so we must FORCE one to be created and ditch out of this\n // if the tween has other properties that already rendered at new positions, we'd normally have to rewind to put them back like tween.render(0, true) before forcing an _initTween(), but that can create another edge case like tweening a timeline's progress would trigger onUpdates to fire which could move other things around. It's better to just inform users that .resetTo() should ONLY be used for tweens that already have that property. For example, you can't gsap.to(...{ y: 0 }) and then tween.restTo(\"x\", 200) for example.\n _forceAllPropTweens = 1; // otherwise, when we _addPropTween() and it finds no change between the start and end values, it skips creating a PropTween (for efficiency...why tween when there's no difference?) but in this case we NEED that PropTween created so we can edit it.\n\n tween.vars[property] = \"+=0\";\n\n _initTween(tween, time);\n\n _forceAllPropTweens = 0;\n return skipRecursion ? _warn(property + \" not eligible for reset\") : 1; // if someone tries to do a quickTo() on a special property like borderRadius which must get split into 4 different properties, that's not eligible for .resetTo().\n }\n\n ptCache.push(pt);\n }\n }\n\n i = ptCache.length;\n\n while (i--) {\n rootPT = ptCache[i];\n pt = rootPT._pt || rootPT; // complex values may have nested PropTweens. We only accommodate the FIRST value.\n\n pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;\n pt.c = value - pt.s;\n rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e)); // mainly for CSSPlugin (end value)\n\n rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b)); // (beginning value)\n }\n},\n _addAliasesToVars = function _addAliasesToVars(targets, vars) {\n var harness = targets[0] ? _getCache(targets[0]).harness : 0,\n propertyAliases = harness && harness.aliases,\n copy,\n p,\n i,\n aliases;\n\n if (!propertyAliases) {\n return vars;\n }\n\n copy = _merge({}, vars);\n\n for (p in propertyAliases) {\n if (p in copy) {\n aliases = propertyAliases[p].split(\",\");\n i = aliases.length;\n\n while (i--) {\n copy[aliases[i]] = copy[p];\n }\n }\n }\n\n return copy;\n},\n // parses multiple formats, like {\"0%\": {x: 100}, {\"50%\": {x: -20}} and { x: {\"0%\": 100, \"50%\": -20} }, and an \"ease\" can be set on any object. We populate an \"allProps\" object with an Array for each property, like {x: [{}, {}], y:[{}, {}]} with data for each property tween. The objects have a \"t\" (time), \"v\", (value), and \"e\" (ease) property. This allows us to piece together a timeline later.\n_parseKeyframe = function _parseKeyframe(prop, obj, allProps, easeEach) {\n var ease = obj.ease || easeEach || \"power1.inOut\",\n p,\n a;\n\n if (_isArray(obj)) {\n a = allProps[prop] || (allProps[prop] = []); // t = time (out of 100), v = value, e = ease\n\n obj.forEach(function (value, i) {\n return a.push({\n t: i / (obj.length - 1) * 100,\n v: value,\n e: ease\n });\n });\n } else {\n for (p in obj) {\n a = allProps[p] || (allProps[p] = []);\n p === \"ease\" || a.push({\n t: parseFloat(prop),\n v: obj[p],\n e: ease\n });\n }\n }\n},\n _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) {\n return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf(\"random(\") ? _replaceRandom(value) : value;\n},\n _staggerTweenProps = _callbackNames + \"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert\",\n _staggerPropsToSkip = {};\n\n_forEachName(_staggerTweenProps + \",id,stagger,delay,duration,paused,scrollTrigger\", function (name) {\n return _staggerPropsToSkip[name] = 1;\n});\n/*\n * --------------------------------------------------------------------------------------\n * TWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var Tween = /*#__PURE__*/function (_Animation2) {\n _inheritsLoose(Tween, _Animation2);\n\n function Tween(targets, vars, position, skipInherit) {\n var _this3;\n\n if (typeof vars === \"number\") {\n position.duration = vars;\n vars = position;\n position = null;\n }\n\n _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this;\n var _this3$vars = _this3.vars,\n duration = _this3$vars.duration,\n delay = _this3$vars.delay,\n immediateRender = _this3$vars.immediateRender,\n stagger = _this3$vars.stagger,\n overwrite = _this3$vars.overwrite,\n keyframes = _this3$vars.keyframes,\n defaults = _this3$vars.defaults,\n scrollTrigger = _this3$vars.scrollTrigger,\n yoyoEase = _this3$vars.yoyoEase,\n parent = vars.parent || _globalTimeline,\n parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : \"length\" in vars) ? [targets] : toArray(targets),\n tl,\n i,\n copy,\n l,\n p,\n curTarget,\n staggerFunc,\n staggerVarsToMerge;\n _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn(\"GSAP target \" + targets + \" not found. https://gsap.com\", !_config.nullTargetWarn) || [];\n _this3._ptLookup = []; //PropTween lookup. An array containing an object for each target, having keys for each tweening property\n\n _this3._overwrite = overwrite;\n\n if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n vars = _this3.vars;\n tl = _this3.timeline = new Timeline({\n data: \"nested\",\n defaults: defaults || {},\n targets: parent && parent.data === \"nested\" ? parent.vars.targets : parsedTargets\n }); // we need to store the targets because for staggers and keyframes, we end up creating an individual tween for each but function-based values need to know the index and the whole Array of targets.\n\n tl.kill();\n tl.parent = tl._dp = _assertThisInitialized(_this3);\n tl._start = 0;\n\n if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n l = parsedTargets.length;\n staggerFunc = stagger && distribute(stagger);\n\n if (_isObject(stagger)) {\n //users can pass in callbacks like onStart/onComplete in the stagger object. These should fire with each individual tween.\n for (p in stagger) {\n if (~_staggerTweenProps.indexOf(p)) {\n staggerVarsToMerge || (staggerVarsToMerge = {});\n staggerVarsToMerge[p] = stagger[p];\n }\n }\n }\n\n for (i = 0; i < l; i++) {\n copy = _copyExcluding(vars, _staggerPropsToSkip);\n copy.stagger = 0;\n yoyoEase && (copy.yoyoEase = yoyoEase);\n staggerVarsToMerge && _merge(copy, staggerVarsToMerge);\n curTarget = parsedTargets[i]; //don't just copy duration or delay because if they're a string or function, we'd end up in an infinite loop because _isFuncOrString() would evaluate as true in the child tweens, entering this loop, etc. So we parse the value straight from vars and default to 0.\n\n copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);\n copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;\n\n if (!stagger && l === 1 && copy.delay) {\n // if someone does delay:\"random(1, 5)\", repeat:-1, for example, the delay shouldn't be inside the repeat.\n _this3._delay = delay = copy.delay;\n _this3._start += delay;\n copy.delay = 0;\n }\n\n tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0);\n tl._ease = _easeMap.none;\n }\n\n tl.duration() ? duration = delay = 0 : _this3.timeline = 0; // if the timeline's duration is 0, we don't need a timeline internally!\n } else if (keyframes) {\n _inheritDefaults(_setDefaults(tl.vars.defaults, {\n ease: \"none\"\n }));\n\n tl._ease = _parseEase(keyframes.ease || vars.ease || \"none\");\n var time = 0,\n a,\n kf,\n v;\n\n if (_isArray(keyframes)) {\n keyframes.forEach(function (frame) {\n return tl.to(parsedTargets, frame, \">\");\n });\n tl.duration(); // to ensure tl._dur is cached because we tap into it for performance purposes in the render() method.\n } else {\n copy = {};\n\n for (p in keyframes) {\n p === \"ease\" || p === \"easeEach\" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach);\n }\n\n for (p in copy) {\n a = copy[p].sort(function (a, b) {\n return a.t - b.t;\n });\n time = 0;\n\n for (i = 0; i < a.length; i++) {\n kf = a[i];\n v = {\n ease: kf.e,\n duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration\n };\n v[p] = kf.v;\n tl.to(parsedTargets, v, time);\n time += v.duration;\n }\n }\n\n tl.duration() < duration && tl.to({}, {\n duration: duration - tl.duration()\n }); // in case keyframes didn't go to 100%\n }\n }\n\n duration || _this3.duration(duration = tl.duration());\n } else {\n _this3.timeline = 0; //speed optimization, faster lookups (no going up the prototype chain)\n }\n\n if (overwrite === true && !_suppressOverwrites) {\n _overwritingTween = _assertThisInitialized(_this3);\n\n _globalTimeline.killTweensOf(parsedTargets);\n\n _overwritingTween = 0;\n }\n\n _addToTimeline(parent, _assertThisInitialized(_this3), position);\n\n vars.reversed && _this3.reverse();\n vars.paused && _this3.paused(true);\n\n if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== \"nested\") {\n _this3._tTime = -_tinyNum; //forces a render without having to set the render() \"force\" parameter to true because we want to allow lazying by default (using the \"force\" parameter always forces an immediate full render)\n\n _this3.render(Math.max(0, -delay) || 0); //in case delay is negative\n\n }\n\n scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);\n return _this3;\n }\n\n var _proto3 = Tween.prototype;\n\n _proto3.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._tDur,\n dur = this._dur,\n isNegative = totalTime < 0,\n tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime,\n time,\n pt,\n iteration,\n cycleDuration,\n prevIteration,\n isYoyo,\n ratio,\n timeline,\n yoyoEase;\n\n if (!dur) {\n _renderZeroDurationTween(this, totalTime, suppressEvents, force);\n } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative) {\n //this senses if we're crossing over the start time, in which case we must record _zTime and force the render, but we do it in this lengthy conditional way for performance reasons (usually we can skip the calculations): this._initted && (this._zTime < 0) !== (totalTime < 0)\n time = tTime;\n timeline = this.timeline;\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && isNegative) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === _roundPrecise(tTime / cycleDuration)) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n isYoyo = this._yoyo && iteration & 1;\n\n if (isYoyo) {\n yoyoEase = this._yEase;\n time = dur - time;\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n\n if (time === prevTime && !force && this._initted && iteration === prevIteration) {\n //could be during the repeatDelay part. No need to render and fire callbacks.\n this._tTime = tTime;\n return this;\n }\n\n if (iteration !== prevIteration) {\n timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo); //repeatRefresh functionality\n\n if (this.vars.repeatRefresh && !isYoyo && !this._lock && this._time !== dur && this._initted) {\n // this._time will === dur when we render at EXACTLY the end of an iteration. Without this condition, it'd often do the repeatRefresh render TWICE (again on the very next tick).\n this._lock = force = 1; //force, otherwise if lazy is true, the _attemptInitTween() will return and we'll jump out and get caught bouncing on each tick.\n\n this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;\n }\n }\n }\n\n if (!this._initted) {\n if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {\n this._tTime = 0; // in constructor if immediateRender is true, we set _tTime to -_tinyNum to have the playhead cross the starting point but we can't leave _tTime as a negative number.\n\n return this;\n }\n\n if (prevTime !== this._time && !(force && this.vars.repeatRefresh && iteration !== prevIteration)) {\n // rare edge case - during initialization, an onUpdate in the _startAt (.fromTo()) might force this tween to render at a different spot in which case we should ditch this render() call so that it doesn't revert the values. But we also don't want to dump if we're doing a repeatRefresh render!\n return this;\n }\n\n if (dur !== this._dur) {\n // while initting, a plugin like InertiaPlugin might alter the duration, so rerun from the start to ensure everything renders as it should.\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n\n if (!this._act && this._ts) {\n this._act = 1; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n this._lazy = 0;\n }\n\n this.ratio = ratio = (yoyoEase || this._ease)(time / dur);\n\n if (this._from) {\n this.ratio = ratio = 1 - ratio;\n }\n\n if (time && !prevTime && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n\n if (this._tTime !== tTime) {\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n return this;\n }\n }\n\n pt = this._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n timeline && timeline.render(totalTime < 0 ? totalTime : !time && isYoyo ? -_tinyNum : timeline._dur * timeline._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime);\n\n if (this._onUpdate && !suppressEvents) {\n isNegative && _rewindStartAt(this, totalTime, suppressEvents, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete.\n\n _callback(this, \"onUpdate\");\n }\n\n this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n\n if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {\n isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);\n (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if we're rendering at exactly a time of 0, as there could be autoRevert values that should get set on the next tick (if the playhead goes backward beyond the startTime, negative totalTime). Don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) {\n // if prevTime and tTime are zero, we shouldn't fire the onReverseComplete. This could happen if you gsap.to(... {paused:true}).play();\n _callback(this, tTime === tDur ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto3.targets = function targets() {\n return this._targets;\n };\n\n _proto3.invalidate = function invalidate(soft) {\n // \"soft\" gives us a way to clear out everything EXCEPT the recorded pre-\"from\" portion of from() tweens. Otherwise, for example, if you tween.progress(1).render(0, true true).invalidate(), the \"from\" values would persist and then on the next render, the from() tweens would initialize and the current value would match the \"from\" values, thus animate from the same value to the same value (no animation). We tap into this in ScrollTrigger's refresh() where we must push a tween to completion and then back again but honor its init state in case the tween is dependent on another tween further up on the page.\n (!soft || !this.vars.runBackwards) && (this._startAt = 0);\n this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;\n this._ptLookup = [];\n this.timeline && this.timeline.invalidate(soft);\n return _Animation2.prototype.invalidate.call(this, soft);\n };\n\n _proto3.resetTo = function resetTo(property, value, start, startIsRelative, skipRecursion) {\n _tickerActive || _ticker.wake();\n this._ts || this.play();\n var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts),\n ratio;\n this._initted || _initTween(this, time);\n ratio = this._ease(time / this._dur); // don't just get tween.ratio because it may not have rendered yet.\n // possible future addition to allow an object with multiple values to update, like tween.resetTo({x: 100, y: 200}); At this point, it doesn't seem worth the added kb given the fact that most users will likely opt for the convenient gsap.quickTo() way of interacting with this method.\n // if (_isObject(property)) { // performance optimization\n // \tfor (p in property) {\n // \t\tif (_updatePropTweens(this, p, property[p], value ? value[p] : null, start, ratio, time)) {\n // \t\t\treturn this.resetTo(property, value, start, startIsRelative); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n // \t\t}\n // \t}\n // } else {\n\n if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time, skipRecursion)) {\n return this.resetTo(property, value, start, startIsRelative, 1); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n } //}\n\n\n _alignPlayhead(this, 0);\n\n this.parent || _addLinkedListItem(this._dp, this, \"_first\", \"_last\", this._dp._sort ? \"_start\" : 0);\n return this.render(0);\n };\n\n _proto3.kill = function kill(targets, vars) {\n if (vars === void 0) {\n vars = \"all\";\n }\n\n if (!targets && (!vars || vars === \"all\")) {\n this._lazy = this._pt = 0;\n return this.parent ? _interrupt(this) : this;\n }\n\n if (this.timeline) {\n var tDur = this.timeline.totalDuration();\n this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); // if nothing is left tweening, interrupt.\n\n this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); // if a nested tween is killed that changes the duration, it should affect this tween's duration. We must use the ratio, though, because sometimes the internal timeline is stretched like for keyframes where they don't all add up to whatever the parent tween's duration was set to.\n\n return this;\n }\n\n var parsedTargets = this._targets,\n killingTargets = targets ? toArray(targets) : parsedTargets,\n propTweenLookup = this._ptLookup,\n firstPT = this._pt,\n overwrittenProps,\n curLookup,\n curOverwriteProps,\n props,\n p,\n pt,\n i;\n\n if ((!vars || vars === \"all\") && _arraysMatch(parsedTargets, killingTargets)) {\n vars === \"all\" && (this._pt = 0);\n return _interrupt(this);\n }\n\n overwrittenProps = this._op = this._op || [];\n\n if (vars !== \"all\") {\n //so people can pass in a comma-delimited list of property names\n if (_isString(vars)) {\n p = {};\n\n _forEachName(vars, function (name) {\n return p[name] = 1;\n });\n\n vars = p;\n }\n\n vars = _addAliasesToVars(parsedTargets, vars);\n }\n\n i = parsedTargets.length;\n\n while (i--) {\n if (~killingTargets.indexOf(parsedTargets[i])) {\n curLookup = propTweenLookup[i];\n\n if (vars === \"all\") {\n overwrittenProps[i] = vars;\n props = curLookup;\n curOverwriteProps = {};\n } else {\n curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};\n props = vars;\n }\n\n for (p in props) {\n pt = curLookup && curLookup[p];\n\n if (pt) {\n if (!(\"kill\" in pt.d) || pt.d.kill(p) === true) {\n _removeLinkedListItem(this, pt, \"_pt\");\n }\n\n delete curLookup[p];\n }\n\n if (curOverwriteProps !== \"all\") {\n curOverwriteProps[p] = 1;\n }\n }\n }\n }\n\n this._initted && !this._pt && firstPT && _interrupt(this); //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.\n\n return this;\n };\n\n Tween.to = function to(targets, vars) {\n return new Tween(targets, vars, arguments[2]);\n };\n\n Tween.from = function from(targets, vars) {\n return _createTweenType(1, arguments);\n };\n\n Tween.delayedCall = function delayedCall(delay, callback, params, scope) {\n return new Tween(callback, 0, {\n immediateRender: false,\n lazy: false,\n overwrite: false,\n delay: delay,\n onComplete: callback,\n onReverseComplete: callback,\n onCompleteParams: params,\n onReverseCompleteParams: params,\n callbackScope: scope\n }); // we must use onReverseComplete too for things like timeline.add(() => {...}) which should be triggered in BOTH directions (forward and reverse)\n };\n\n Tween.fromTo = function fromTo(targets, fromVars, toVars) {\n return _createTweenType(2, arguments);\n };\n\n Tween.set = function set(targets, vars) {\n vars.duration = 0;\n vars.repeatDelay || (vars.repeat = 0);\n return new Tween(targets, vars);\n };\n\n Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n return _globalTimeline.killTweensOf(targets, props, onlyActive);\n };\n\n return Tween;\n}(Animation);\n\n_setDefaults(Tween.prototype, {\n _targets: [],\n _lazy: 0,\n _startAt: 0,\n _op: 0,\n _onInit: 0\n}); //add the pertinent timeline methods to Tween instances so that users can chain conveniently and create a timeline automatically. (removed due to concerns that it'd ultimately add to more confusion especially for beginners)\n// _forEachName(\"to,from,fromTo,set,call,add,addLabel,addPause\", name => {\n// \tTween.prototype[name] = function() {\n// \t\tlet tl = new Timeline();\n// \t\treturn _addToTimeline(tl, this)[name].apply(tl, toArray(arguments));\n// \t}\n// });\n//for backward compatibility. Leverage the timeline calls.\n\n\n_forEachName(\"staggerTo,staggerFrom,staggerFromTo\", function (name) {\n Tween[name] = function () {\n var tl = new Timeline(),\n params = _slice.call(arguments, 0);\n\n params.splice(name === \"staggerFromTo\" ? 5 : 4, 0, 0);\n return tl[name].apply(tl, params);\n };\n});\n/*\n * --------------------------------------------------------------------------------------\n * PROPTWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _setterPlain = function _setterPlain(target, property, value) {\n return target[property] = value;\n},\n _setterFunc = function _setterFunc(target, property, value) {\n return target[property](value);\n},\n _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) {\n return target[property](data.fp, value);\n},\n _setterAttribute = function _setterAttribute(target, property, value) {\n return target.setAttribute(property, value);\n},\n _getSetter = function _getSetter(target, property) {\n return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;\n},\n _renderPlain = function _renderPlain(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1000000) / 1000000, data);\n},\n _renderBoolean = function _renderBoolean(ratio, data) {\n return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);\n},\n _renderComplexString = function _renderComplexString(ratio, data) {\n var pt = data._pt,\n s = \"\";\n\n if (!ratio && data.b) {\n //b = beginning string\n s = data.b;\n } else if (ratio === 1 && data.e) {\n //e = ending string\n s = data.e;\n } else {\n while (pt) {\n s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s; //we use the \"p\" property for the text inbetween (like a suffix). And in the context of a complex string, the modifier (m) is typically just Math.round(), like for RGB colors.\n\n pt = pt._next;\n }\n\n s += data.c; //we use the \"c\" of the PropTween to store the final chunk of non-numeric text.\n }\n\n data.set(data.t, data.p, s, data);\n},\n _renderPropTweens = function _renderPropTweens(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n},\n _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) {\n var pt = this._pt,\n next;\n\n while (pt) {\n next = pt._next;\n pt.p === property && pt.modifier(modifier, tween, target);\n pt = next;\n }\n},\n _killPropTweensOf = function _killPropTweensOf(property) {\n var pt = this._pt,\n hasNonDependentRemaining,\n next;\n\n while (pt) {\n next = pt._next;\n\n if (pt.p === property && !pt.op || pt.op === property) {\n _removeLinkedListItem(this, pt, \"_pt\");\n } else if (!pt.dep) {\n hasNonDependentRemaining = 1;\n }\n\n pt = next;\n }\n\n return !hasNonDependentRemaining;\n},\n _setterWithModifier = function _setterWithModifier(target, property, value, data) {\n data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);\n},\n _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) {\n var pt = parent._pt,\n next,\n pt2,\n first,\n last; //sorts the PropTween linked list in order of priority because some plugins need to do their work after ALL of the PropTweens were created (like RoundPropsPlugin and ModifiersPlugin)\n\n while (pt) {\n next = pt._next;\n pt2 = first;\n\n while (pt2 && pt2.pr > pt.pr) {\n pt2 = pt2._next;\n }\n\n if (pt._prev = pt2 ? pt2._prev : last) {\n pt._prev._next = pt;\n } else {\n first = pt;\n }\n\n if (pt._next = pt2) {\n pt2._prev = pt;\n } else {\n last = pt;\n }\n\n pt = next;\n }\n\n parent._pt = first;\n}; //PropTween key: t = target, p = prop, r = renderer, d = data, s = start, c = change, op = overwriteProperty (ONLY populated when it's different than p), pr = priority, _next/_prev for the linked list siblings, set = setter, m = modifier, mSet = modifierSetter (the original setter, before a modifier was added)\n\n\nexport var PropTween = /*#__PURE__*/function () {\n function PropTween(next, target, prop, start, change, renderer, data, setter, priority) {\n this.t = target;\n this.s = start;\n this.c = change;\n this.p = prop;\n this.r = renderer || _renderPlain;\n this.d = data || this;\n this.set = setter || _setterPlain;\n this.pr = priority || 0;\n this._next = next;\n\n if (next) {\n next._prev = this;\n }\n }\n\n var _proto4 = PropTween.prototype;\n\n _proto4.modifier = function modifier(func, tween, target) {\n this.mSet = this.mSet || this.set; //in case it was already set (a PropTween can only have one modifier)\n\n this.set = _setterWithModifier;\n this.m = func;\n this.mt = target; //modifier target\n\n this.tween = tween;\n };\n\n return PropTween;\n}(); //Initialization tasks\n\n_forEachName(_callbackNames + \"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger\", function (name) {\n return _reservedProps[name] = 1;\n});\n\n_globals.TweenMax = _globals.TweenLite = Tween;\n_globals.TimelineLite = _globals.TimelineMax = Timeline;\n_globalTimeline = new Timeline({\n sortChildren: false,\n defaults: _defaults,\n autoRemoveChildren: true,\n id: \"root\",\n smoothChildTiming: true\n});\n_config.stringFilter = _colorStringFilter;\n\nvar _media = [],\n _listeners = {},\n _emptyArray = [],\n _lastMediaTime = 0,\n _contextID = 0,\n _dispatch = function _dispatch(type) {\n return (_listeners[type] || _emptyArray).map(function (f) {\n return f();\n });\n},\n _onMediaChange = function _onMediaChange() {\n var time = Date.now(),\n matches = [];\n\n if (time - _lastMediaTime > 2) {\n _dispatch(\"matchMediaInit\");\n\n _media.forEach(function (c) {\n var queries = c.queries,\n conditions = c.conditions,\n match,\n p,\n anyMatch,\n toggled;\n\n for (p in queries) {\n match = _win.matchMedia(queries[p]).matches; // Firefox doesn't update the \"matches\" property of the MediaQueryList object correctly - it only does so as it calls its change handler - so we must re-create a media query here to ensure it's accurate.\n\n match && (anyMatch = 1);\n\n if (match !== conditions[p]) {\n conditions[p] = match;\n toggled = 1;\n }\n }\n\n if (toggled) {\n c.revert();\n anyMatch && matches.push(c);\n }\n });\n\n _dispatch(\"matchMediaRevert\");\n\n matches.forEach(function (c) {\n return c.onMatch(c, function (func) {\n return c.add(null, func);\n });\n });\n _lastMediaTime = time;\n\n _dispatch(\"matchMedia\");\n }\n};\n\nvar Context = /*#__PURE__*/function () {\n function Context(func, scope) {\n this.selector = scope && selector(scope);\n this.data = [];\n this._r = []; // returned/cleanup functions\n\n this.isReverted = false;\n this.id = _contextID++; // to work around issues that frameworks like Vue cause by making things into Proxies which make it impossible to do something like _media.indexOf(this) because \"this\" would no longer refer to the Context instance itself - it'd refer to a Proxy! We needed a way to identify the context uniquely\n\n func && this.add(func);\n }\n\n var _proto5 = Context.prototype;\n\n _proto5.add = function add(name, func, scope) {\n // possible future addition if we need the ability to add() an animation to a context and for whatever reason cannot create that animation inside of a context.add(() => {...}) function.\n // if (name && _isFunction(name.revert)) {\n // \tthis.data.push(name);\n // \treturn (name._ctx = this);\n // }\n if (_isFunction(name)) {\n scope = func;\n func = name;\n name = _isFunction;\n }\n\n var self = this,\n f = function f() {\n var prev = _context,\n prevSelector = self.selector,\n result;\n prev && prev !== self && prev.data.push(self);\n scope && (self.selector = selector(scope));\n _context = self;\n result = func.apply(self, arguments);\n _isFunction(result) && self._r.push(result);\n _context = prev;\n self.selector = prevSelector;\n self.isReverted = false;\n return result;\n };\n\n self.last = f;\n return name === _isFunction ? f(self, function (func) {\n return self.add(null, func);\n }) : name ? self[name] = f : f;\n };\n\n _proto5.ignore = function ignore(func) {\n var prev = _context;\n _context = null;\n func(this);\n _context = prev;\n };\n\n _proto5.getTweens = function getTweens() {\n var a = [];\n this.data.forEach(function (e) {\n return e instanceof Context ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === \"nested\") && a.push(e);\n });\n return a;\n };\n\n _proto5.clear = function clear() {\n this._r.length = this.data.length = 0;\n };\n\n _proto5.kill = function kill(revert, matchMedia) {\n var _this4 = this;\n\n if (revert) {\n (function () {\n var tweens = _this4.getTweens(),\n i = _this4.data.length,\n t;\n\n while (i--) {\n // Flip plugin tweens are very different in that they should actually be pushed to their end. The plugin replaces the timeline's .revert() method to do exactly that. But we also need to remove any of those nested tweens inside the flip timeline so that they don't get individually reverted.\n t = _this4.data[i];\n\n if (t.data === \"isFlip\") {\n t.revert();\n t.getChildren(true, true, false).forEach(function (tween) {\n return tweens.splice(tweens.indexOf(tween), 1);\n });\n }\n } // save as an object so that we can cache the globalTime for each tween to optimize performance during the sort\n\n\n tweens.map(function (t) {\n return {\n g: t._dur || t._delay || t._sat && !t._sat.vars.immediateRender ? t.globalTime(0) : -Infinity,\n t: t\n };\n }).sort(function (a, b) {\n return b.g - a.g || -Infinity;\n }).forEach(function (o) {\n return o.t.revert(revert);\n }); // note: all of the _startAt tweens should be reverted in reverse order that they were created, and they'll all have the same globalTime (-1) so the \" || -1\" in the sort keeps the order properly.\n\n i = _this4.data.length;\n\n while (i--) {\n // make sure we loop backwards so that, for example, SplitTexts that were created later on the same element get reverted first\n t = _this4.data[i];\n\n if (t instanceof Timeline) {\n if (t.data !== \"nested\") {\n t.scrollTrigger && t.scrollTrigger.revert();\n t.kill(); // don't revert() the timeline because that's duplicating efforts since we already reverted all the tweens\n }\n } else {\n !(t instanceof Tween) && t.revert && t.revert(revert);\n }\n }\n\n _this4._r.forEach(function (f) {\n return f(revert, _this4);\n });\n\n _this4.isReverted = true;\n })();\n } else {\n this.data.forEach(function (e) {\n return e.kill && e.kill();\n });\n }\n\n this.clear();\n\n if (matchMedia) {\n var i = _media.length;\n\n while (i--) {\n // previously, we checked _media.indexOf(this), but some frameworks like Vue enforce Proxy objects that make it impossible to get the proper result that way, so we must use a unique ID number instead.\n _media[i].id === this.id && _media.splice(i, 1);\n }\n }\n };\n\n _proto5.revert = function revert(config) {\n this.kill(config || {});\n };\n\n return Context;\n}();\n\nvar MatchMedia = /*#__PURE__*/function () {\n function MatchMedia(scope) {\n this.contexts = [];\n this.scope = scope;\n }\n\n var _proto6 = MatchMedia.prototype;\n\n _proto6.add = function add(conditions, func, scope) {\n _isObject(conditions) || (conditions = {\n matches: conditions\n });\n var context = new Context(0, scope || this.scope),\n cond = context.conditions = {},\n mq,\n p,\n active;\n _context && !context.selector && (context.selector = _context.selector); // in case a context is created inside a context. Like a gsap.matchMedia() that's inside a scoped gsap.context()\n\n this.contexts.push(context);\n func = context.add(\"onMatch\", func);\n context.queries = conditions;\n\n for (p in conditions) {\n if (p === \"all\") {\n active = 1;\n } else {\n mq = _win.matchMedia(conditions[p]);\n\n if (mq) {\n _media.indexOf(context) < 0 && _media.push(context);\n (cond[p] = mq.matches) && (active = 1);\n mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener(\"change\", _onMediaChange);\n }\n }\n }\n\n active && func(context, function (f) {\n return context.add(null, f);\n });\n return this;\n } // refresh() {\n // \tlet time = _lastMediaTime,\n // \t\tmedia = _media;\n // \t_lastMediaTime = -1;\n // \t_media = this.contexts;\n // \t_onMediaChange();\n // \t_lastMediaTime = time;\n // \t_media = media;\n // }\n ;\n\n _proto6.revert = function revert(config) {\n this.kill(config || {});\n };\n\n _proto6.kill = function kill(revert) {\n this.contexts.forEach(function (c) {\n return c.kill(revert, true);\n });\n };\n\n return MatchMedia;\n}();\n/*\n * --------------------------------------------------------------------------------------\n * GSAP\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _gsap = {\n registerPlugin: function registerPlugin() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n args.forEach(function (config) {\n return _createPlugin(config);\n });\n },\n timeline: function timeline(vars) {\n return new Timeline(vars);\n },\n getTweensOf: function getTweensOf(targets, onlyActive) {\n return _globalTimeline.getTweensOf(targets, onlyActive);\n },\n getProperty: function getProperty(target, property, unit, uncache) {\n _isString(target) && (target = toArray(target)[0]); //in case selector text or an array is passed in\n\n var getter = _getCache(target || {}).get,\n format = unit ? _passThrough : _numericIfPossible;\n\n unit === \"native\" && (unit = \"\");\n return !target ? target : !property ? function (property, unit, uncache) {\n return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n },\n quickSetter: function quickSetter(target, property, unit) {\n target = toArray(target);\n\n if (target.length > 1) {\n var setters = target.map(function (t) {\n return gsap.quickSetter(t, property, unit);\n }),\n l = setters.length;\n return function (value) {\n var i = l;\n\n while (i--) {\n setters[i](value);\n }\n };\n }\n\n target = target[0] || {};\n\n var Plugin = _plugins[property],\n cache = _getCache(target),\n p = cache.harness && (cache.harness.aliases || {})[property] || property,\n // in case it's an alias, like \"rotate\" for \"rotation\".\n setter = Plugin ? function (value) {\n var p = new Plugin();\n _quickTween._pt = 0;\n p.init(target, unit ? value + unit : value, _quickTween, 0, [target]);\n p.render(1, p);\n _quickTween._pt && _renderPropTweens(1, _quickTween);\n } : cache.set(target, p);\n\n return Plugin ? setter : function (value) {\n return setter(target, p, unit ? value + unit : value, cache, 1);\n };\n },\n quickTo: function quickTo(target, property, vars) {\n var _merge2;\n\n var tween = gsap.to(target, _merge((_merge2 = {}, _merge2[property] = \"+=0.1\", _merge2.paused = true, _merge2), vars || {})),\n func = function func(value, start, startIsRelative) {\n return tween.resetTo(property, value, start, startIsRelative);\n };\n\n func.tween = tween;\n return func;\n },\n isTweening: function isTweening(targets) {\n return _globalTimeline.getTweensOf(targets, true).length > 0;\n },\n defaults: function defaults(value) {\n value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));\n return _mergeDeep(_defaults, value || {});\n },\n config: function config(value) {\n return _mergeDeep(_config, value || {});\n },\n registerEffect: function registerEffect(_ref3) {\n var name = _ref3.name,\n effect = _ref3.effect,\n plugins = _ref3.plugins,\n defaults = _ref3.defaults,\n extendTimeline = _ref3.extendTimeline;\n (plugins || \"\").split(\",\").forEach(function (pluginName) {\n return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + \" effect requires \" + pluginName + \" plugin.\");\n });\n\n _effects[name] = function (targets, vars, tl) {\n return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl);\n };\n\n if (extendTimeline) {\n Timeline.prototype[name] = function (targets, vars, position) {\n return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);\n };\n }\n },\n registerEase: function registerEase(name, ease) {\n _easeMap[name] = _parseEase(ease);\n },\n parseEase: function parseEase(ease, defaultEase) {\n return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;\n },\n getById: function getById(id) {\n return _globalTimeline.getById(id);\n },\n exportRoot: function exportRoot(vars, includeDelayedCalls) {\n if (vars === void 0) {\n vars = {};\n }\n\n var tl = new Timeline(vars),\n child,\n next;\n tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);\n\n _globalTimeline.remove(tl);\n\n tl._dp = 0; //otherwise it'll get re-activated when adding children and be re-introduced into _globalTimeline's linked list (then added to itself).\n\n tl._time = tl._tTime = _globalTimeline._time;\n child = _globalTimeline._first;\n\n while (child) {\n next = child._next;\n\n if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {\n _addToTimeline(tl, child, child._start - child._delay);\n }\n\n child = next;\n }\n\n _addToTimeline(_globalTimeline, tl, 0);\n\n return tl;\n },\n context: function context(func, scope) {\n return func ? new Context(func, scope) : _context;\n },\n matchMedia: function matchMedia(scope) {\n return new MatchMedia(scope);\n },\n matchMediaRefresh: function matchMediaRefresh() {\n return _media.forEach(function (c) {\n var cond = c.conditions,\n found,\n p;\n\n for (p in cond) {\n if (cond[p]) {\n cond[p] = false;\n found = 1;\n }\n }\n\n found && c.revert();\n }) || _onMediaChange();\n },\n addEventListener: function addEventListener(type, callback) {\n var a = _listeners[type] || (_listeners[type] = []);\n ~a.indexOf(callback) || a.push(callback);\n },\n removeEventListener: function removeEventListener(type, callback) {\n var a = _listeners[type],\n i = a && a.indexOf(callback);\n i >= 0 && a.splice(i, 1);\n },\n utils: {\n wrap: wrap,\n wrapYoyo: wrapYoyo,\n distribute: distribute,\n random: random,\n snap: snap,\n normalize: normalize,\n getUnit: getUnit,\n clamp: clamp,\n splitColor: splitColor,\n toArray: toArray,\n selector: selector,\n mapRange: mapRange,\n pipe: pipe,\n unitize: unitize,\n interpolate: interpolate,\n shuffle: shuffle\n },\n install: _install,\n effects: _effects,\n ticker: _ticker,\n updateRoot: Timeline.updateRoot,\n plugins: _plugins,\n globalTimeline: _globalTimeline,\n core: {\n PropTween: PropTween,\n globals: _addGlobal,\n Tween: Tween,\n Timeline: Timeline,\n Animation: Animation,\n getCache: _getCache,\n _removeLinkedListItem: _removeLinkedListItem,\n reverting: function reverting() {\n return _reverting;\n },\n context: function context(toAdd) {\n if (toAdd && _context) {\n _context.data.push(toAdd);\n\n toAdd._ctx = _context;\n }\n\n return _context;\n },\n suppressOverwrites: function suppressOverwrites(value) {\n return _suppressOverwrites = value;\n }\n }\n};\n\n_forEachName(\"to,from,fromTo,delayedCall,set,killTweensOf\", function (name) {\n return _gsap[name] = Tween[name];\n});\n\n_ticker.add(Timeline.updateRoot);\n\n_quickTween = _gsap.to({}, {\n duration: 0\n}); // ---- EXTRA PLUGINS --------------------------------------------------------\n\nvar _getPluginPropTween = function _getPluginPropTween(plugin, prop) {\n var pt = plugin._pt;\n\n while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {\n pt = pt._next;\n }\n\n return pt;\n},\n _addModifiers = function _addModifiers(tween, modifiers) {\n var targets = tween._targets,\n p,\n i,\n pt;\n\n for (p in modifiers) {\n i = targets.length;\n\n while (i--) {\n pt = tween._ptLookup[i][p];\n\n if (pt && (pt = pt.d)) {\n if (pt._pt) {\n // is a plugin\n pt = _getPluginPropTween(pt, p);\n }\n\n pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);\n }\n }\n }\n},\n _buildModifierPlugin = function _buildModifierPlugin(name, modifier) {\n return {\n name: name,\n rawVars: 1,\n //don't pre-process function-based values or \"random()\" strings.\n init: function init(target, vars, tween) {\n tween._onInit = function (tween) {\n var temp, p;\n\n if (_isString(vars)) {\n temp = {};\n\n _forEachName(vars, function (name) {\n return temp[name] = 1;\n }); //if the user passes in a comma-delimited list of property names to roundProps, like \"x,y\", we round to whole numbers.\n\n\n vars = temp;\n }\n\n if (modifier) {\n temp = {};\n\n for (p in vars) {\n temp[p] = modifier(vars[p]);\n }\n\n vars = temp;\n }\n\n _addModifiers(tween, vars);\n };\n }\n };\n}; //register core plugins\n\n\nexport var gsap = _gsap.registerPlugin({\n name: \"attr\",\n init: function init(target, vars, tween, index, targets) {\n var p, pt, v;\n this.tween = tween;\n\n for (p in vars) {\n v = target.getAttribute(p) || \"\";\n pt = this.add(target, \"setAttribute\", (v || 0) + \"\", vars[p], index, targets, 0, 0, p);\n pt.op = p;\n pt.b = v; // record the beginning value so we can revert()\n\n this._props.push(p);\n }\n },\n render: function render(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d); // if reverting, go back to the original (pt.b)\n\n pt = pt._next;\n }\n }\n}, {\n name: \"endArray\",\n init: function init(target, value) {\n var i = value.length;\n\n while (i--) {\n this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1);\n }\n }\n}, _buildModifierPlugin(\"roundProps\", _roundModifier), _buildModifierPlugin(\"modifiers\"), _buildModifierPlugin(\"snap\", snap)) || _gsap; //to prevent the core plugins from being dropped via aggressive tree shaking, we must include them in the variable declaration in this way.\n\nTween.version = Timeline.version = gsap.version = \"3.12.4\";\n_coreReady = 1;\n_windowExists() && _wake();\nvar Power0 = _easeMap.Power0,\n Power1 = _easeMap.Power1,\n Power2 = _easeMap.Power2,\n Power3 = _easeMap.Power3,\n Power4 = _easeMap.Power4,\n Linear = _easeMap.Linear,\n Quad = _easeMap.Quad,\n Cubic = _easeMap.Cubic,\n Quart = _easeMap.Quart,\n Quint = _easeMap.Quint,\n Strong = _easeMap.Strong,\n Elastic = _easeMap.Elastic,\n Back = _easeMap.Back,\n SteppedEase = _easeMap.SteppedEase,\n Bounce = _easeMap.Bounce,\n Sine = _easeMap.Sine,\n Expo = _easeMap.Expo,\n Circ = _easeMap.Circ;\nexport { Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };\nexport { Tween as TweenMax, Tween as TweenLite, Timeline as TimelineMax, Timeline as TimelineLite, gsap as default, wrap, wrapYoyo, distribute, random, snap, normalize, getUnit, clamp, splitColor, toArray, selector, mapRange, pipe, unitize, interpolate, shuffle }; //export some internal methods/orojects for use in CSSPlugin so that we can externalize that file and allow custom builds that exclude it.\n\nexport { _getProperty, _numExp, _numWithUnitExp, _isString, _isUndefined, _renderComplexString, _relExp, _setDefaults, _removeLinkedListItem, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _replaceRandom, _checkPlugin, _plugins, _ticker, _config, _roundModifier, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative };","/*!\n * CSSPlugin 3.12.4\n * https://gsap.com\n *\n * Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { gsap, _getProperty, _numExp, _numWithUnitExp, getUnit, _isString, _isUndefined, _renderComplexString, _relExp, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _checkPlugin, _replaceRandom, _plugins, GSCache, PropTween, _config, _ticker, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative, _setDefaults, _removeLinkedListItem //for the commented-out className feature.\n} from \"./gsap-core.js\";\n\nvar _win,\n _doc,\n _docElement,\n _pluginInitted,\n _tempDiv,\n _tempDivStyler,\n _recentSetterPlugin,\n _reverting,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _transformProps = {},\n _RAD2DEG = 180 / Math.PI,\n _DEG2RAD = Math.PI / 180,\n _atan2 = Math.atan2,\n _bigNum = 1e8,\n _capsExp = /([A-Z])/g,\n _horizontalExp = /(left|right|width|margin|padding|x)/i,\n _complexExp = /[\\s,\\(]\\S/,\n _propertyAliases = {\n autoAlpha: \"opacity,visibility\",\n scale: \"scaleX,scaleY\",\n alpha: \"opacity\"\n},\n _renderCSSProp = function _renderCSSProp(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {\n return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {\n return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);\n},\n //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0)\n_renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {\n var value = data.s + data.c * ratio;\n data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);\n},\n _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {\n return data.set(data.t, data.p, ratio ? data.e : data.b, data);\n},\n _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {\n return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);\n},\n _setterCSSStyle = function _setterCSSStyle(target, property, value) {\n return target.style[property] = value;\n},\n _setterCSSProp = function _setterCSSProp(target, property, value) {\n return target.style.setProperty(property, value);\n},\n _setterTransform = function _setterTransform(target, property, value) {\n return target._gsap[property] = value;\n},\n _setterScale = function _setterScale(target, property, value) {\n return target._gsap.scaleX = target._gsap.scaleY = value;\n},\n _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache.scaleX = cache.scaleY = value;\n cache.renderTransform(ratio, cache);\n},\n _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache[property] = value;\n cache.renderTransform(ratio, cache);\n},\n _transformProp = \"transform\",\n _transformOriginProp = _transformProp + \"Origin\",\n _saveStyle = function _saveStyle(property, isNotCSS) {\n var _this = this;\n\n var target = this.target,\n style = target.style,\n cache = target._gsap;\n\n if (property in _transformProps && style) {\n this.tfm = this.tfm || {};\n\n if (property !== \"transform\") {\n property = _propertyAliases[property] || property;\n ~property.indexOf(\",\") ? property.split(\",\").forEach(function (a) {\n return _this.tfm[a] = _get(target, a);\n }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property); // note: scale would map to \"scaleX,scaleY\", thus we loop and apply them both.\n\n property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin);\n } else {\n return _propertyAliases.transform.split(\",\").forEach(function (p) {\n return _saveStyle.call(_this, p, isNotCSS);\n });\n }\n\n if (this.props.indexOf(_transformProp) >= 0) {\n return;\n }\n\n if (cache.svg) {\n this.svgo = target.getAttribute(\"data-svg-origin\");\n this.props.push(_transformOriginProp, isNotCSS, \"\");\n }\n\n property = _transformProp;\n }\n\n (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);\n},\n _removeIndependentTransforms = function _removeIndependentTransforms(style) {\n if (style.translate) {\n style.removeProperty(\"translate\");\n style.removeProperty(\"scale\");\n style.removeProperty(\"rotate\");\n }\n},\n _revertStyle = function _revertStyle() {\n var props = this.props,\n target = this.target,\n style = target.style,\n cache = target._gsap,\n i,\n p;\n\n for (i = 0; i < props.length; i += 3) {\n // stored like this: property, isNotCSS, value\n props[i + 1] ? target[props[i]] = props[i + 2] : props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === \"--\" ? props[i] : props[i].replace(_capsExp, \"-$1\").toLowerCase());\n }\n\n if (this.tfm) {\n for (p in this.tfm) {\n cache[p] = this.tfm[p];\n }\n\n if (cache.svg) {\n cache.renderTransform();\n target.setAttribute(\"data-svg-origin\", this.svgo || \"\");\n }\n\n i = _reverting();\n\n if ((!i || !i.isStart) && !style[_transformProp]) {\n _removeIndependentTransforms(style);\n\n if (cache.zOrigin && style[_transformOriginProp]) {\n style[_transformOriginProp] += \" \" + cache.zOrigin + \"px\"; // since we're uncaching, we must put the zOrigin back into the transformOrigin so that we can pull it out accurately when we parse again. Otherwise, we'd lose the z portion of the origin since we extract it to protect from Safari bugs.\n\n cache.zOrigin = 0;\n cache.renderTransform();\n }\n\n cache.uncache = 1; // if it's a startAt that's being reverted in the _initTween() of the core, we don't need to uncache transforms. This is purely a performance optimization.\n }\n }\n},\n _getStyleSaver = function _getStyleSaver(target, properties) {\n var saver = {\n target: target,\n props: [],\n revert: _revertStyle,\n save: _saveStyle\n };\n target._gsap || gsap.core.getCache(target); // just make sure there's a _gsap cache defined because we read from it in _saveStyle() and it's more efficient to just check it here once.\n\n properties && properties.split(\",\").forEach(function (p) {\n return saver.save(p);\n });\n return saver;\n},\n _supports3D,\n _createElement = function _createElement(type, ns) {\n var e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\n return e && e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://gsap.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n},\n _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {\n var cs = getComputedStyle(target);\n return cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || \"\"; //css variables may not need caps swapped out for dashes and lowercase.\n},\n _prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\"),\n _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {\n var e = element || _tempDiv,\n s = e.style,\n i = 5;\n\n if (property in s && !preferPrefix) {\n return property;\n }\n\n property = property.charAt(0).toUpperCase() + property.substr(1);\n\n while (i-- && !(_prefixes[i] + property in s)) {}\n\n return i < 0 ? null : (i === 3 ? \"ms\" : i >= 0 ? _prefixes[i] : \"\") + property;\n},\n _initCore = function _initCore() {\n if (_windowExists() && window.document) {\n _win = window;\n _doc = _win.document;\n _docElement = _doc.documentElement;\n _tempDiv = _createElement(\"div\") || {\n style: {}\n };\n _tempDivStyler = _createElement(\"div\");\n _transformProp = _checkPropPrefix(_transformProp);\n _transformOriginProp = _transformProp + \"Origin\";\n _tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets.\n\n _supports3D = !!_checkPropPrefix(\"perspective\");\n _reverting = gsap.core.reverting;\n _pluginInitted = 1;\n }\n},\n _getBBoxHack = function _getBBoxHack(swapIfPossible) {\n //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a element and/or . We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it).\n var svg = _createElement(\"svg\", this.ownerSVGElement && this.ownerSVGElement.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\"),\n oldParent = this.parentNode,\n oldSibling = this.nextSibling,\n oldCSS = this.style.cssText,\n bbox;\n\n _docElement.appendChild(svg);\n\n svg.appendChild(this);\n this.style.display = \"block\";\n\n if (swapIfPossible) {\n try {\n bbox = this.getBBox();\n this._gsapBBox = this.getBBox; //store the original\n\n this.getBBox = _getBBoxHack;\n } catch (e) {}\n } else if (this._gsapBBox) {\n bbox = this._gsapBBox();\n }\n\n if (oldParent) {\n if (oldSibling) {\n oldParent.insertBefore(this, oldSibling);\n } else {\n oldParent.appendChild(this);\n }\n }\n\n _docElement.removeChild(svg);\n\n this.style.cssText = oldCSS;\n return bbox;\n},\n _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {\n var i = attributesArray.length;\n\n while (i--) {\n if (target.hasAttribute(attributesArray[i])) {\n return target.getAttribute(attributesArray[i]);\n }\n }\n},\n _getBBox = function _getBBox(target) {\n var bounds;\n\n try {\n bounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a or ). https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n } catch (error) {\n bounds = _getBBoxHack.call(target, true);\n }\n\n bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true)); //some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case.\n\n return bounds && !bounds.width && !bounds.x && !bounds.y ? {\n x: +_getAttributeFallbacks(target, [\"x\", \"cx\", \"x1\"]) || 0,\n y: +_getAttributeFallbacks(target, [\"y\", \"cy\", \"y1\"]) || 0,\n width: 0,\n height: 0\n } : bounds;\n},\n _isSVG = function _isSVG(e) {\n return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));\n},\n //reports if the element is an SVG on which getBBox() actually works\n_removeProperty = function _removeProperty(target, property) {\n if (property) {\n var style = target.style,\n first2Chars;\n\n if (property in _transformProps && property !== _transformOriginProp) {\n property = _transformProp;\n }\n\n if (style.removeProperty) {\n first2Chars = property.substr(0, 2);\n\n if (first2Chars === \"ms\" || property.substr(0, 6) === \"webkit\") {\n //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be \"ms-transform\" instead of \"-ms-transform\" for IE9, for example)\n property = \"-\" + property;\n }\n\n style.removeProperty(first2Chars === \"--\" ? property : property.replace(_capsExp, \"-$1\").toLowerCase());\n } else {\n //note: old versions of IE use \"removeAttribute()\" instead of \"removeProperty()\"\n style.removeAttribute(property);\n }\n }\n},\n _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {\n var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\n plugin._pt = pt;\n pt.b = beginning;\n pt.e = end;\n\n plugin._props.push(property);\n\n return pt;\n},\n _nonConvertibleUnits = {\n deg: 1,\n rad: 1,\n turn: 1\n},\n _nonStandardLayouts = {\n grid: 1,\n flex: 1\n},\n //takes a single value like 20px and converts it to the unit specified, like \"%\", returning only the numeric amount.\n_convertToUnit = function _convertToUnit(target, property, value, unit) {\n var curValue = parseFloat(value) || 0,\n curUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\",\n // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim()\n style = _tempDiv.style,\n horizontal = _horizontalExp.test(property),\n isRootSVG = target.tagName.toLowerCase() === \"svg\",\n measureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"),\n amount = 100,\n toPixels = unit === \"px\",\n toPercent = unit === \"%\",\n px,\n parent,\n cache,\n isSVG;\n\n if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\n return curValue;\n }\n\n curUnit !== \"px\" && !toPixels && (curValue = _convertToUnit(target, property, value, \"px\"));\n isSVG = target.getCTM && _isSVG(target);\n\n if ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\n px = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\n return _round(toPercent ? curValue / px * amount : curValue / 100 * px);\n }\n\n style[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\n parent = ~property.indexOf(\"adius\") || unit === \"em\" && target.appendChild && !isRootSVG ? target : target.parentNode;\n\n if (isSVG) {\n parent = (target.ownerSVGElement || {}).parentNode;\n }\n\n if (!parent || parent === _doc || !parent.appendChild) {\n parent = _doc.body;\n }\n\n cache = parent._gsap;\n\n if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {\n return _round(curValue / cache.width * amount);\n } else {\n if (toPercent && (property === \"height\" || property === \"width\")) {\n // if we're dealing with width/height that's inside a container with padding and/or it's a flexbox/grid container, we must apply it to the target itself rather than the _tempDiv in order to ensure complete accuracy, factoring in the parent's padding.\n var v = target.style[property];\n target.style[property] = amount + unit;\n px = target[measureProperty];\n v ? target.style[property] = v : _removeProperty(target, property);\n } else {\n (toPercent || curUnit === \"%\") && !_nonStandardLayouts[_getComputedProperty(parent, \"display\")] && (style.position = _getComputedProperty(target, \"position\"));\n parent === target && (style.position = \"static\"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that.\n\n parent.appendChild(_tempDiv);\n px = _tempDiv[measureProperty];\n parent.removeChild(_tempDiv);\n style.position = \"absolute\";\n }\n\n if (horizontal && toPercent) {\n cache = _getCache(parent);\n cache.time = _ticker.time;\n cache.width = parent[measureProperty];\n }\n }\n\n return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\n},\n _get = function _get(target, property, unit, uncache) {\n var value;\n _pluginInitted || _initCore();\n\n if (property in _propertyAliases && property !== \"transform\") {\n property = _propertyAliases[property];\n\n if (~property.indexOf(\",\")) {\n property = property.split(\",\")[0];\n }\n }\n\n if (_transformProps[property] && property !== \"transform\") {\n value = _parseTransform(target, uncache);\n value = property !== \"transformOrigin\" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\n } else {\n value = target.style[property];\n\n if (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\n value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === \"opacity\" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius\n }\n }\n\n return unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\n},\n _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {\n // note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n if (!start || start === \"none\") {\n // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style (\"clipPath\" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as \"none\" whereas WebkitClipPath reports accurately like \"ellipse(100% 0% at 50% 0%)\", so in this case we must SWITCH to using the prefixed property instead. See https://gsap.com/forums/topic/18310-clippath-doesnt-work-on-ios/\n var p = _checkPropPrefix(prop, target, 1),\n s = p && _getComputedProperty(target, p, 1);\n\n if (s && s !== start) {\n prop = p;\n start = s;\n } else if (prop === \"borderColor\") {\n start = _getComputedProperty(target, \"borderTopColor\"); // Firefox bug: always reports \"borderColor\" as \"\", so we must fall back to borderTopColor. See https://gsap.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/\n }\n }\n\n var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),\n index = 0,\n matchIndex = 0,\n a,\n result,\n startValues,\n startNum,\n color,\n startValue,\n endValue,\n endNum,\n chunk,\n endUnit,\n startUnit,\n endValues;\n pt.b = start;\n pt.e = end;\n start += \"\"; // ensure values are strings\n\n end += \"\";\n\n if (end === \"auto\") {\n startValue = target.style[prop];\n target.style[prop] = end;\n end = _getComputedProperty(target, prop) || end;\n startValue ? target.style[prop] = startValue : _removeProperty(target, prop);\n }\n\n a = [start, end];\n\n _colorStringFilter(a); // pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow().\n\n\n start = a[0];\n end = a[1];\n startValues = start.match(_numWithUnitExp) || [];\n endValues = end.match(_numWithUnitExp) || [];\n\n if (endValues.length) {\n while (result = _numWithUnitExp.exec(end)) {\n endValue = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\n color = 1;\n }\n\n if (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\n startNum = parseFloat(startValue) || 0;\n startUnit = startValue.substr((startNum + \"\").length);\n endValue.charAt(1) === \"=\" && (endValue = _parseRelative(startNum, endValue) + startUnit);\n endNum = parseFloat(endValue);\n endUnit = endValue.substr((endNum + \"\").length);\n index = _numWithUnitExp.lastIndex - endUnit.length;\n\n if (!endUnit) {\n //if something like \"perspective:300\" is passed in and we must add a unit to the end\n endUnit = endUnit || _config.units[prop] || startUnit;\n\n if (index === end.length) {\n end += endUnit;\n pt.e += endUnit;\n }\n }\n\n if (startUnit !== endUnit) {\n startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\n } // these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum - startNum,\n m: color && color < 4 || prop === \"zIndex\" ? Math.round : 0\n };\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n } else {\n pt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\n }\n\n _relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _keywordToPercent = {\n top: \"0%\",\n bottom: \"100%\",\n left: \"0%\",\n right: \"100%\",\n center: \"50%\"\n},\n _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {\n var split = value.split(\" \"),\n x = split[0],\n y = split[1] || \"50%\";\n\n if (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") {\n //the user provided them in the wrong order, so flip them\n value = x;\n x = y;\n y = value;\n }\n\n split[0] = _keywordToPercent[x] || x;\n split[1] = _keywordToPercent[y] || y;\n return split.join(\" \");\n},\n _renderClearProps = function _renderClearProps(ratio, data) {\n if (data.tween && data.tween._time === data.tween._dur) {\n var target = data.t,\n style = target.style,\n props = data.u,\n cache = target._gsap,\n prop,\n clearTransforms,\n i;\n\n if (props === \"all\" || props === true) {\n style.cssText = \"\";\n clearTransforms = 1;\n } else {\n props = props.split(\",\");\n i = props.length;\n\n while (--i > -1) {\n prop = props[i];\n\n if (_transformProps[prop]) {\n clearTransforms = 1;\n prop = prop === \"transformOrigin\" ? _transformOriginProp : _transformProp;\n }\n\n _removeProperty(target, prop);\n }\n }\n\n if (clearTransforms) {\n _removeProperty(target, _transformProp);\n\n if (cache) {\n cache.svg && target.removeAttribute(\"transform\");\n\n _parseTransform(target, 1); // force all the cached values back to \"normal\"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values.\n\n\n cache.uncache = 1;\n\n _removeIndependentTransforms(style);\n }\n }\n }\n},\n // note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list.\n_specialProps = {\n clearProps: function clearProps(plugin, target, property, endValue, tween) {\n if (tween.data !== \"isFromStart\") {\n var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\n pt.u = endValue;\n pt.pr = -10;\n pt.tween = tween;\n\n plugin._props.push(property);\n\n return 1;\n }\n }\n /* className feature (about 0.4kb gzipped).\n , className(plugin, target, property, endValue, tween) {\n \tlet _renderClassName = (ratio, data) => {\n \t\t\tdata.css.render(ratio, data.css);\n \t\t\tif (!ratio || ratio === 1) {\n \t\t\t\tlet inline = data.rmv,\n \t\t\t\t\ttarget = data.t,\n \t\t\t\t\tp;\n \t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\n \t\t\t\tfor (p in inline) {\n \t\t\t\t\t_removeProperty(target, p);\n \t\t\t\t}\n \t\t\t}\n \t\t},\n \t\t_getAllStyles = (target) => {\n \t\t\tlet styles = {},\n \t\t\t\tcomputed = getComputedStyle(target),\n \t\t\t\tp;\n \t\t\tfor (p in computed) {\n \t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\n \t\t\t\t\tstyles[p] = computed[p];\n \t\t\t\t}\n \t\t\t}\n \t\t\t_setDefaults(styles, _parseTransform(target, 1));\n \t\t\treturn styles;\n \t\t},\n \t\tstartClassList = target.getAttribute(\"class\"),\n \t\tstyle = target.style,\n \t\tcssText = style.cssText,\n \t\tcache = target._gsap,\n \t\tclassPT = cache.classPT,\n \t\tinlineToRemoveAtEnd = {},\n \t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\n \t\tchangingVars = {},\n \t\tstartVars = _getAllStyles(target),\n \t\ttransformRelated = /(transform|perspective)/i,\n \t\tendVars, p;\n \tif (classPT) {\n \t\tclassPT.r(1, classPT.d);\n \t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\n \t}\n \ttarget.setAttribute(\"class\", data.e);\n \tendVars = _getAllStyles(target, true);\n \ttarget.setAttribute(\"class\", startClassList);\n \tfor (p in endVars) {\n \t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\n \t\t\tchangingVars[p] = endVars[p];\n \t\t\tif (!style[p] && style[p] !== \"0\") {\n \t\t\t\tinlineToRemoveAtEnd[p] = 1;\n \t\t\t}\n \t\t}\n \t}\n \tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\n \tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://gsap.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\n \t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\n \t}\n \t_parseTransform(target, true); //to clear the caching of transforms\n \tdata.css = new gsap.plugins.css();\n \tdata.css.init(target, changingVars, tween);\n \tplugin._props.push(...data.css._props);\n \treturn 1;\n }\n */\n\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TRANSFORMS\n * --------------------------------------------------------------------------------------\n */\n_identity2DMatrix = [1, 0, 0, 1, 0, 0],\n _rotationalProperties = {},\n _isNullTransform = function _isNullTransform(value) {\n return value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value;\n},\n _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {\n var matrixString = _getComputedProperty(target, _transformProp);\n\n return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);\n},\n _getMatrix = function _getMatrix(target, force2D) {\n var cache = target._gsap || _getCache(target),\n style = target.style,\n matrix = _getComputedTransformMatrixAsArray(target),\n parent,\n nextSibling,\n temp,\n addedToDOM;\n\n if (cache.svg && target.getAttribute(\"transform\")) {\n temp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like \"translate(50,60) rotate(135,0,0)\" are parsed because it mashes it into a matrix.\n\n matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\n return matrix.join(\",\") === \"1,0,0,1,0,0\" ? _identity2DMatrix : matrix;\n } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {\n //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n //browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not \"none\". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px).\n temp = style.display;\n style.display = \"block\";\n parent = target.parentNode;\n\n if (!parent || !target.offsetParent) {\n // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375\n addedToDOM = 1; //flag\n\n nextSibling = target.nextElementSibling;\n\n _docElement.appendChild(target); //we must add it to the DOM in order to get values properly\n\n }\n\n matrix = _getComputedTransformMatrixAsArray(target);\n temp ? style.display = temp : _removeProperty(target, \"display\");\n\n if (addedToDOM) {\n nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\n }\n }\n\n return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\n},\n _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {\n var cache = target._gsap,\n matrix = matrixArray || _getMatrix(target, true),\n xOriginOld = cache.xOrigin || 0,\n yOriginOld = cache.yOrigin || 0,\n xOffsetOld = cache.xOffset || 0,\n yOffsetOld = cache.yOffset || 0,\n a = matrix[0],\n b = matrix[1],\n c = matrix[2],\n d = matrix[3],\n tx = matrix[4],\n ty = matrix[5],\n originSplit = origin.split(\" \"),\n xOrigin = parseFloat(originSplit[0]) || 0,\n yOrigin = parseFloat(originSplit[1]) || 0,\n bounds,\n determinant,\n x,\n y;\n\n if (!originIsAbsolute) {\n bounds = _getBBox(target);\n xOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\n yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf(\"%\") ? yOrigin / 100 * bounds.height : yOrigin); // if (!(\"xOrigin\" in cache) && (xOrigin || yOrigin)) { // added in 3.12.3, reverted in 3.12.4; requires more exploration\n // \txOrigin -= bounds.x;\n // \tyOrigin -= bounds.y;\n // }\n } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {\n //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero.\n x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;\n y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;\n xOrigin = x;\n yOrigin = y; // theory: we only had to do this for smoothing and it assumes that the previous one was not originIsAbsolute.\n }\n\n if (smooth || smooth !== false && cache.smooth) {\n tx = xOrigin - xOriginOld;\n ty = yOrigin - yOriginOld;\n cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\n cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\n } else {\n cache.xOffset = cache.yOffset = 0;\n }\n\n cache.xOrigin = xOrigin;\n cache.yOrigin = yOrigin;\n cache.smooth = !!smooth;\n cache.origin = origin;\n cache.originIsAbsolute = !!originIsAbsolute;\n target.style[_transformOriginProp] = \"0px 0px\"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value).\n\n if (pluginToAddPropTweensTo) {\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\n }\n\n target.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\n},\n _parseTransform = function _parseTransform(target, uncache) {\n var cache = target._gsap || new GSCache(target);\n\n if (\"x\" in cache && !uncache && !cache.uncache) {\n return cache;\n }\n\n var style = target.style,\n invertedScaleX = cache.scaleX < 0,\n px = \"px\",\n deg = \"deg\",\n cs = getComputedStyle(target),\n origin = _getComputedProperty(target, _transformOriginProp) || \"0\",\n x,\n y,\n z,\n scaleX,\n scaleY,\n rotation,\n rotationX,\n rotationY,\n skewX,\n skewY,\n perspective,\n xOrigin,\n yOrigin,\n matrix,\n angle,\n cos,\n sin,\n a,\n b,\n c,\n d,\n a12,\n a22,\n t1,\n t2,\n t3,\n a13,\n a23,\n a33,\n a42,\n a43,\n a32;\n x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\n scaleX = scaleY = 1;\n cache.svg = !!(target.getCTM && _isSVG(target));\n\n if (cs.translate) {\n // accommodate independent transforms by combining them into normal ones.\n if (cs.translate !== \"none\" || cs.scale !== \"none\" || cs.rotate !== \"none\") {\n style[_transformProp] = (cs.translate !== \"none\" ? \"translate3d(\" + (cs.translate + \" 0 0\").split(\" \").slice(0, 3).join(\", \") + \") \" : \"\") + (cs.rotate !== \"none\" ? \"rotate(\" + cs.rotate + \") \" : \"\") + (cs.scale !== \"none\" ? \"scale(\" + cs.scale.split(\" \").join(\",\") + \") \" : \"\") + (cs[_transformProp] !== \"none\" ? cs[_transformProp] : \"\");\n }\n\n style.scale = style.rotate = style.translate = \"none\";\n }\n\n matrix = _getMatrix(target, cache.svg);\n\n if (cache.svg) {\n if (cache.uncache) {\n // if cache.uncache is true (and maybe if origin is 0,0), we need to set element.style.transformOrigin = (cache.xOrigin - bbox.x) + \"px \" + (cache.yOrigin - bbox.y) + \"px\". Previously we let the data-svg-origin stay instead, but when introducing revert(), it complicated things.\n t2 = target.getBBox();\n origin = cache.xOrigin - t2.x + \"px \" + (cache.yOrigin - t2.y) + \"px\";\n t1 = \"\";\n } else {\n t1 = !uncache && target.getAttribute(\"data-svg-origin\"); // Remember, to work around browser inconsistencies we always force SVG elements' transformOrigin to 0,0 and offset the translation accordingly.\n }\n\n _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\n }\n\n xOrigin = cache.xOrigin || 0;\n yOrigin = cache.yOrigin || 0;\n\n if (matrix !== _identity2DMatrix) {\n a = matrix[0]; //a11\n\n b = matrix[1]; //a21\n\n c = matrix[2]; //a31\n\n d = matrix[3]; //a41\n\n x = a12 = matrix[4];\n y = a22 = matrix[5]; //2D matrix\n\n if (matrix.length === 6) {\n scaleX = Math.sqrt(a * a + b * b);\n scaleY = Math.sqrt(d * d + c * c);\n rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\n\n skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;\n skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\n\n if (cache.svg) {\n x -= xOrigin - (xOrigin * a + yOrigin * c);\n y -= yOrigin - (xOrigin * b + yOrigin * d);\n } //3D matrix\n\n } else {\n a32 = matrix[6];\n a42 = matrix[7];\n a13 = matrix[8];\n a23 = matrix[9];\n a33 = matrix[10];\n a43 = matrix[11];\n x = matrix[12];\n y = matrix[13];\n z = matrix[14];\n angle = _atan2(a32, a33);\n rotationX = angle * _RAD2DEG; //rotationX\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a12 * cos + a13 * sin;\n t2 = a22 * cos + a23 * sin;\n t3 = a32 * cos + a33 * sin;\n a13 = a12 * -sin + a13 * cos;\n a23 = a22 * -sin + a23 * cos;\n a33 = a32 * -sin + a33 * cos;\n a43 = a42 * -sin + a43 * cos;\n a12 = t1;\n a22 = t2;\n a32 = t3;\n } //rotationY\n\n\n angle = _atan2(-c, a33);\n rotationY = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a * cos - a13 * sin;\n t2 = b * cos - a23 * sin;\n t3 = c * cos - a33 * sin;\n a43 = d * sin + a43 * cos;\n a = t1;\n b = t2;\n c = t3;\n } //rotationZ\n\n\n angle = _atan2(b, a);\n rotation = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(angle);\n sin = Math.sin(angle);\n t1 = a * cos + b * sin;\n t2 = a12 * cos + a22 * sin;\n b = b * cos - a * sin;\n a22 = a22 * cos - a12 * sin;\n a = t1;\n a12 = t2;\n }\n\n if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {\n //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here.\n rotationX = rotation = 0;\n rotationY = 180 - rotationY;\n }\n\n scaleX = _round(Math.sqrt(a * a + b * b + c * c));\n scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));\n angle = _atan2(a12, a22);\n skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;\n perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;\n }\n\n if (cache.svg) {\n //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline).\n t1 = target.getAttribute(\"transform\");\n cache.forceCSS = target.setAttribute(\"transform\", \"\") || !_isNullTransform(_getComputedProperty(target, _transformProp));\n t1 && target.setAttribute(\"transform\", t1);\n }\n }\n\n if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\n if (invertedScaleX) {\n scaleX *= -1;\n skewX += rotation <= 0 ? 180 : -180;\n rotation += rotation <= 0 ? 180 : -180;\n } else {\n scaleY *= -1;\n skewX += skewX <= 0 ? 180 : -180;\n }\n }\n\n uncache = uncache || cache.uncache;\n cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\n cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\n cache.z = z + px;\n cache.scaleX = _round(scaleX);\n cache.scaleY = _round(scaleY);\n cache.rotation = _round(rotation) + deg;\n cache.rotationX = _round(rotationX) + deg;\n cache.rotationY = _round(rotationY) + deg;\n cache.skewX = skewX + deg;\n cache.skewY = skewY + deg;\n cache.transformPerspective = perspective + px;\n\n if (cache.zOrigin = parseFloat(origin.split(\" \")[2]) || !uncache && cache.zOrigin || 0) {\n style[_transformOriginProp] = _firstTwoOnly(origin);\n }\n\n cache.xOffset = cache.yOffset = 0;\n cache.force3D = _config.force3D;\n cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\n cache.uncache = 0;\n return cache;\n},\n _firstTwoOnly = function _firstTwoOnly(value) {\n return (value = value.split(\" \"))[0] + \" \" + value[1];\n},\n //for handling transformOrigin values, stripping out the 3rd dimension\n_addPxTranslate = function _addPxTranslate(target, start, value) {\n var unit = getUnit(start);\n return _round(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\n},\n _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {\n cache.z = \"0px\";\n cache.rotationY = cache.rotationX = \"0deg\";\n cache.force3D = 0;\n\n _renderCSSTransforms(ratio, cache);\n},\n _zeroDeg = \"0deg\",\n _zeroPx = \"0px\",\n _endParenthesis = \") \",\n _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {\n var _ref = cache || this,\n xPercent = _ref.xPercent,\n yPercent = _ref.yPercent,\n x = _ref.x,\n y = _ref.y,\n z = _ref.z,\n rotation = _ref.rotation,\n rotationY = _ref.rotationY,\n rotationX = _ref.rotationX,\n skewX = _ref.skewX,\n skewY = _ref.skewY,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n transformPerspective = _ref.transformPerspective,\n force3D = _ref.force3D,\n target = _ref.target,\n zOrigin = _ref.zOrigin,\n transforms = \"\",\n use3D = force3D === \"auto\" && ratio && ratio !== 1 || force3D === true; // Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually)\n\n\n if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\n var angle = parseFloat(rotationY) * _DEG2RAD,\n a13 = Math.sin(angle),\n a33 = Math.cos(angle),\n cos;\n\n angle = parseFloat(rotationX) * _DEG2RAD;\n cos = Math.cos(angle);\n x = _addPxTranslate(target, x, a13 * cos * -zOrigin);\n y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\n z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\n }\n\n if (transformPerspective !== _zeroPx) {\n transforms += \"perspective(\" + transformPerspective + _endParenthesis;\n }\n\n if (xPercent || yPercent) {\n transforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\n }\n\n if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\n transforms += z !== _zeroPx || use3D ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\n }\n\n if (rotation !== _zeroDeg) {\n transforms += \"rotate(\" + rotation + _endParenthesis;\n }\n\n if (rotationY !== _zeroDeg) {\n transforms += \"rotateY(\" + rotationY + _endParenthesis;\n }\n\n if (rotationX !== _zeroDeg) {\n transforms += \"rotateX(\" + rotationX + _endParenthesis;\n }\n\n if (skewX !== _zeroDeg || skewY !== _zeroDeg) {\n transforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\n }\n\n if (scaleX !== 1 || scaleY !== 1) {\n transforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\n }\n\n target.style[_transformProp] = transforms || \"translate(0, 0)\";\n},\n _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {\n var _ref2 = cache || this,\n xPercent = _ref2.xPercent,\n yPercent = _ref2.yPercent,\n x = _ref2.x,\n y = _ref2.y,\n rotation = _ref2.rotation,\n skewX = _ref2.skewX,\n skewY = _ref2.skewY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n target = _ref2.target,\n xOrigin = _ref2.xOrigin,\n yOrigin = _ref2.yOrigin,\n xOffset = _ref2.xOffset,\n yOffset = _ref2.yOffset,\n forceCSS = _ref2.forceCSS,\n tx = parseFloat(x),\n ty = parseFloat(y),\n a11,\n a21,\n a12,\n a22,\n temp;\n\n rotation = parseFloat(rotation);\n skewX = parseFloat(skewX);\n skewY = parseFloat(skewY);\n\n if (skewY) {\n //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees.\n skewY = parseFloat(skewY);\n skewX += skewY;\n rotation += skewY;\n }\n\n if (rotation || skewX) {\n rotation *= _DEG2RAD;\n skewX *= _DEG2RAD;\n a11 = Math.cos(rotation) * scaleX;\n a21 = Math.sin(rotation) * scaleX;\n a12 = Math.sin(rotation - skewX) * -scaleY;\n a22 = Math.cos(rotation - skewX) * scaleY;\n\n if (skewX) {\n skewY *= _DEG2RAD;\n temp = Math.tan(skewX - skewY);\n temp = Math.sqrt(1 + temp * temp);\n a12 *= temp;\n a22 *= temp;\n\n if (skewY) {\n temp = Math.tan(skewY);\n temp = Math.sqrt(1 + temp * temp);\n a11 *= temp;\n a21 *= temp;\n }\n }\n\n a11 = _round(a11);\n a21 = _round(a21);\n a12 = _round(a12);\n a22 = _round(a22);\n } else {\n a11 = scaleX;\n a22 = scaleY;\n a21 = a12 = 0;\n }\n\n if (tx && !~(x + \"\").indexOf(\"px\") || ty && !~(y + \"\").indexOf(\"px\")) {\n tx = _convertToUnit(target, \"x\", x, \"px\");\n ty = _convertToUnit(target, \"y\", y, \"px\");\n }\n\n if (xOrigin || yOrigin || xOffset || yOffset) {\n tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\n ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\n }\n\n if (xPercent || yPercent) {\n //The SVG spec doesn't support percentage-based translation in the \"transform\" attribute, so we merge it into the translation to simulate it.\n temp = target.getBBox();\n tx = _round(tx + xPercent / 100 * temp.width);\n ty = _round(ty + yPercent / 100 * temp.height);\n }\n\n temp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\n target.setAttribute(\"transform\", temp);\n forceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!)\n},\n _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue) {\n var cap = 360,\n isString = _isString(endValue),\n endNum = parseFloat(endValue) * (isString && ~endValue.indexOf(\"rad\") ? _RAD2DEG : 1),\n change = endNum - startNum,\n finalValue = startNum + change + \"deg\",\n direction,\n pt;\n\n if (isString) {\n direction = endValue.split(\"_\")[1];\n\n if (direction === \"short\") {\n change %= cap;\n\n if (change !== change % (cap / 2)) {\n change += change < 0 ? cap : -cap;\n }\n }\n\n if (direction === \"cw\" && change < 0) {\n change = (change + cap * _bigNum) % cap - ~~(change / cap) * cap;\n } else if (direction === \"ccw\" && change > 0) {\n change = (change - cap * _bigNum) % cap - ~~(change / cap) * cap;\n }\n }\n\n plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\n pt.e = finalValue;\n pt.u = \"deg\";\n\n plugin._props.push(property);\n\n return pt;\n},\n _assign = function _assign(target, source) {\n // Internet Explorer doesn't have Object.assign(), so we recreate it here.\n for (var p in source) {\n target[p] = source[p];\n }\n\n return target;\n},\n _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {\n //for handling cases where someone passes in a whole transform string, like transform: \"scale(2, 3) rotate(20deg) translateY(30em)\"\n var startCache = _assign({}, target._gsap),\n exclude = \"perspective,force3D,transformOrigin,svgOrigin\",\n style = target.style,\n endCache,\n p,\n startValue,\n endValue,\n startNum,\n endNum,\n startUnit,\n endUnit;\n\n if (startCache.svg) {\n startValue = target.getAttribute(\"transform\");\n target.setAttribute(\"transform\", \"\");\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n\n _removeProperty(target, _transformProp);\n\n target.setAttribute(\"transform\", startValue);\n } else {\n startValue = getComputedStyle(target)[_transformProp];\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n style[_transformProp] = startValue;\n }\n\n for (p in _transformProps) {\n startValue = startCache[p];\n endValue = endCache[p];\n\n if (startValue !== endValue && exclude.indexOf(p) < 0) {\n //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case.\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\n endNum = parseFloat(endValue);\n plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\n plugin._pt.u = endUnit || 0;\n\n plugin._props.push(p);\n }\n }\n\n _assign(endCache, startCache);\n}; // handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc.\n\n\n_forEachName(\"padding,margin,Width,Radius\", function (name, index) {\n var t = \"Top\",\n r = \"Right\",\n b = \"Bottom\",\n l = \"Left\",\n props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {\n return index < 2 ? name + side : \"border\" + side + name;\n });\n\n _specialProps[index > 1 ? \"border\" + name : name] = function (plugin, target, property, endValue, tween) {\n var a, vars;\n\n if (arguments.length < 4) {\n // getter, passed target, property, and unit (from _get())\n a = props.map(function (prop) {\n return _get(plugin, prop, property);\n });\n vars = a.join(\" \");\n return vars.split(a[0]).length === 5 ? a[0] : vars;\n }\n\n a = (endValue + \"\").split(\" \");\n vars = {};\n props.forEach(function (prop, i) {\n return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];\n });\n plugin.init(target, vars, tween);\n };\n});\n\nexport var CSSPlugin = {\n name: \"css\",\n register: _initCore,\n targetTest: function targetTest(target) {\n return target.style && target.nodeType;\n },\n init: function init(target, vars, tween, index, targets) {\n var props = this._props,\n style = target.style,\n startAt = tween.vars.startAt,\n startValue,\n endValue,\n endNum,\n startNum,\n type,\n specialProp,\n p,\n startUnit,\n endUnit,\n relative,\n isTransformRelated,\n transformPropTween,\n cache,\n smooth,\n hasPriority,\n inlineProps;\n _pluginInitted || _initCore(); // we may call init() multiple times on the same plugin instance, like when adding special properties, so make sure we don't overwrite the revert data or inlineProps\n\n this.styles = this.styles || _getStyleSaver(target);\n inlineProps = this.styles.props;\n this.tween = tween;\n\n for (p in vars) {\n if (p === \"autoRound\") {\n continue;\n }\n\n endValue = vars[p];\n\n if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {\n // plugins\n continue;\n }\n\n type = typeof endValue;\n specialProp = _specialProps[p];\n\n if (type === \"function\") {\n endValue = endValue.call(tween, index, target, targets);\n type = typeof endValue;\n }\n\n if (type === \"string\" && ~endValue.indexOf(\"random(\")) {\n endValue = _replaceRandom(endValue);\n }\n\n if (specialProp) {\n specialProp(this, target, p, endValue, tween) && (hasPriority = 1);\n } else if (p.substr(0, 2) === \"--\") {\n //CSS variable\n startValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\n endValue += \"\";\n _colorExp.lastIndex = 0;\n\n if (!_colorExp.test(startValue)) {\n // colors don't have units\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n }\n\n endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\n this.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\n props.push(p);\n inlineProps.push(p, 0, style[p]);\n } else if (type !== \"undefined\") {\n if (startAt && p in startAt) {\n // in case someone hard-codes a complex value as the start, like top: \"calc(2vh / 2)\". Without this, it'd use the computed value (always in px)\n startValue = typeof startAt[p] === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\n _isString(startValue) && ~startValue.indexOf(\"random(\") && (startValue = _replaceRandom(startValue));\n getUnit(startValue + \"\") || startValue === \"auto\" || (startValue += _config.units[p] || getUnit(_get(target, p)) || \"\"); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work.\n\n (startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p)); // can't work with relative values\n } else {\n startValue = _get(target, p);\n }\n\n startNum = parseFloat(startValue);\n relative = type === \"string\" && endValue.charAt(1) === \"=\" && endValue.substr(0, 2);\n relative && (endValue = endValue.substr(2));\n endNum = parseFloat(endValue);\n\n if (p in _propertyAliases) {\n if (p === \"autoAlpha\") {\n //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened.\n if (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) {\n //if visibility is initially set to \"hidden\", we should interpret that as intent to make opacity 0 (a convenience)\n startNum = 0;\n }\n\n inlineProps.push(\"visibility\", 0, style.visibility);\n\n _addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\n }\n\n if (p !== \"scale\" && p !== \"transform\") {\n p = _propertyAliases[p];\n ~p.indexOf(\",\") && (p = p.split(\",\")[0]);\n }\n }\n\n isTransformRelated = p in _transformProps; //--- TRANSFORM-RELATED ---\n\n if (isTransformRelated) {\n this.styles.save(p);\n\n if (!transformPropTween) {\n cache = target._gsap;\n cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:\"translateX(50vw)\"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here.\n\n smooth = vars.smoothOrigin !== false && cache.smooth;\n transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning)\n\n transformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween.\n }\n\n if (p === \"scale\") {\n this._pt = new PropTween(this._pt, cache, \"scaleY\", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);\n this._pt.u = 0;\n props.push(\"scaleY\", p);\n p += \"X\";\n } else if (p === \"transformOrigin\") {\n inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);\n endValue = _convertKeywordsToPercentages(endValue); //in case something like \"left top\" or \"bottom right\" is passed in. Convert to percentages.\n\n if (cache.svg) {\n _applySVGOrigin(target, endValue, 0, smooth, 0, this);\n } else {\n endUnit = parseFloat(endValue.split(\" \")[2]) || 0; //handle the zOrigin separately!\n\n endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\n\n _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\n }\n\n continue;\n } else if (p === \"svgOrigin\") {\n _applySVGOrigin(target, endValue, 1, smooth, 0, this);\n\n continue;\n } else if (p in _rotationalProperties) {\n _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);\n\n continue;\n } else if (p === \"smoothOrigin\") {\n _addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\n\n continue;\n } else if (p === \"force3D\") {\n cache[p] = endValue;\n continue;\n } else if (p === \"transform\") {\n _addRawTransformPTs(this, endValue, target);\n\n continue;\n }\n } else if (!(p in style)) {\n p = _checkPropPrefix(p) || p;\n }\n\n if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {\n startUnit = (startValue + \"\").substr((startNum + \"\").length);\n endNum || (endNum = 0); // protect against NaN\n\n endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);\n startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\n this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);\n this._pt.u = endUnit || 0;\n\n if (startUnit !== endUnit && endUnit !== \"%\") {\n //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a \"b\" (beginning) property and point to a render method that handles that. (performance optimization)\n this._pt.b = startValue;\n this._pt.r = _renderCSSPropWithBeginning;\n }\n } else if (!(p in style)) {\n if (p in target) {\n //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that.\n this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);\n } else if (p !== \"parseTransform\") {\n _missingPlugin(p, endValue);\n\n continue;\n }\n } else {\n _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);\n }\n\n isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : inlineProps.push(p, 1, startValue || target[p]));\n props.push(p);\n }\n }\n\n hasPriority && _sortPropTweensByPriority(this);\n },\n render: function render(ratio, data) {\n if (data.tween._time || !_reverting()) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n } else {\n data.styles.revert();\n }\n },\n get: _get,\n aliases: _propertyAliases,\n getSetter: function getSetter(target, property, plugin) {\n //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like \"x\" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer.\n var p = _propertyAliases[property];\n p && p.indexOf(\",\") < 0 && (property = p);\n return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\")) ? plugin && _recentSetterPlugin === plugin ? property === \"scale\" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : _getSetter(target, property);\n },\n core: {\n _removeProperty: _removeProperty,\n _getMatrix: _getMatrix\n }\n};\ngsap.utils.checkPrefix = _checkPropPrefix;\ngsap.core.getStyleSaver = _getStyleSaver;\n\n(function (positionAndScale, rotation, others, aliases) {\n var all = _forEachName(positionAndScale + \",\" + rotation + \",\" + others, function (name) {\n _transformProps[name] = 1;\n });\n\n _forEachName(rotation, function (name) {\n _config.units[name] = \"deg\";\n _rotationalProperties[name] = 1;\n });\n\n _propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\n\n _forEachName(aliases, function (name) {\n var split = name.split(\":\");\n _propertyAliases[split[1]] = all[split[0]];\n });\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\n\n_forEachName(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", function (name) {\n _config.units[name] = \"px\";\n});\n\ngsap.registerPlugin(CSSPlugin);\nexport { CSSPlugin as default, _getBBox, _createElement, _checkPropPrefix as checkPrefix };","import { gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ, TweenLite, TimelineLite, TimelineMax } from \"./gsap-core.js\";\nimport { CSSPlugin } from \"./CSSPlugin.js\";\nvar gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap,\n // to protect from tree shaking\nTweenMaxWithCSS = gsapWithCSS.core.Tween;\nexport { gsapWithCSS as gsap, gsapWithCSS as default, CSSPlugin, TweenMaxWithCSS as TweenMax, TweenLite, TimelineMax, TimelineLite, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };","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/*!\n * Observer 3.12.4\n * https://gsap.com\n *\n * @license Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar gsap,\n _coreInitted,\n _clamp,\n _win,\n _doc,\n _docEl,\n _body,\n _isTouch,\n _pointerType,\n ScrollTrigger,\n _root,\n _normalizer,\n _eventTypes,\n _context,\n _getGSAP = function _getGSAP() {\n return gsap || typeof window !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _startup = 1,\n _observers = [],\n _scrollers = [],\n _proxies = [],\n _getTime = Date.now,\n _bridge = function _bridge(name, value) {\n return value;\n},\n _integrate = function _integrate() {\n var core = ScrollTrigger.core,\n data = core.bridge || {},\n scrollers = core._scrollers,\n proxies = core._proxies;\n scrollers.push.apply(scrollers, _scrollers);\n proxies.push.apply(proxies, _proxies);\n _scrollers = scrollers;\n _proxies = proxies;\n\n _bridge = function _bridge(name, value) {\n return data[name](value);\n };\n},\n _getProxyProp = function _getProxyProp(element, property) {\n return ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property];\n},\n _isViewport = function _isViewport(el) {\n return !!~_root.indexOf(el);\n},\n _addListener = function _addListener(element, type, func, nonPassive, capture) {\n return element.addEventListener(type, func, {\n passive: !nonPassive,\n capture: !!capture\n });\n},\n _removeListener = function _removeListener(element, type, func, capture) {\n return element.removeEventListener(type, func, !!capture);\n},\n _scrollLeft = \"scrollLeft\",\n _scrollTop = \"scrollTop\",\n _onScroll = function _onScroll() {\n return _normalizer && _normalizer.isPressed || _scrollers.cache++;\n},\n _scrollCacheFunc = function _scrollCacheFunc(f, doNotCache) {\n var cachingFunc = function cachingFunc(value) {\n // since reading the scrollTop/scrollLeft/pageOffsetY/pageOffsetX can trigger a layout, this function allows us to cache the value so it only gets read fresh after a \"scroll\" event fires (or while we're refreshing because that can lengthen the page and alter the scroll position). when \"soft\" is true, that means don't actually set the scroll, but cache the new value instead (useful in ScrollSmoother)\n if (value || value === 0) {\n _startup && (_win.history.scrollRestoration = \"manual\"); // otherwise the new position will get overwritten by the browser onload.\n\n var isNormalizing = _normalizer && _normalizer.isPressed;\n value = cachingFunc.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0); //TODO: iOS Bug: if you allow it to go to 0, Safari can start to report super strange (wildly inaccurate) touch positions!\n\n f(value);\n cachingFunc.cacheID = _scrollers.cache;\n isNormalizing && _bridge(\"ss\", value); // set scroll (notify ScrollTrigger so it can dispatch a \"scrollStart\" event if necessary\n } else if (doNotCache || _scrollers.cache !== cachingFunc.cacheID || _bridge(\"ref\")) {\n cachingFunc.cacheID = _scrollers.cache;\n cachingFunc.v = f();\n }\n\n return cachingFunc.v + cachingFunc.offset;\n };\n\n cachingFunc.offset = 0;\n return f && cachingFunc;\n},\n _horizontal = {\n s: _scrollLeft,\n p: \"left\",\n p2: \"Left\",\n os: \"right\",\n os2: \"Right\",\n d: \"width\",\n d2: \"Width\",\n a: \"x\",\n sc: _scrollCacheFunc(function (value) {\n return arguments.length ? _win.scrollTo(value, _vertical.sc()) : _win.pageXOffset || _doc[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0;\n })\n},\n _vertical = {\n s: _scrollTop,\n p: \"top\",\n p2: \"Top\",\n os: \"bottom\",\n os2: \"Bottom\",\n d: \"height\",\n d2: \"Height\",\n a: \"y\",\n op: _horizontal,\n sc: _scrollCacheFunc(function (value) {\n return arguments.length ? _win.scrollTo(_horizontal.sc(), value) : _win.pageYOffset || _doc[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0;\n })\n},\n _getTarget = function _getTarget(t, self) {\n return (self && self._ctx && self._ctx.selector || gsap.utils.toArray)(t)[0] || (typeof t === \"string\" && gsap.config().nullTargetWarn !== false ? console.warn(\"Element not found:\", t) : null);\n},\n _getScrollFunc = function _getScrollFunc(element, _ref) {\n var s = _ref.s,\n sc = _ref.sc;\n // we store the scroller functions in an alternating sequenced Array like [element, verticalScrollFunc, horizontalScrollFunc, ...] so that we can minimize memory, maximize performance, and we also record the last position as a \".rec\" property in order to revert to that after refreshing to ensure things don't shift around.\n _isViewport(element) && (element = _doc.scrollingElement || _docEl);\n\n var i = _scrollers.indexOf(element),\n offset = sc === _vertical.sc ? 1 : 2;\n\n !~i && (i = _scrollers.push(element) - 1);\n _scrollers[i + offset] || _addListener(element, \"scroll\", _onScroll); // clear the cache when a scroll occurs\n\n var prev = _scrollers[i + offset],\n func = prev || (_scrollers[i + offset] = _scrollCacheFunc(_getProxyProp(element, s), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function (value) {\n return arguments.length ? element[s] = value : element[s];\n })));\n func.target = element;\n prev || (func.smooth = gsap.getProperty(element, \"scrollBehavior\") === \"smooth\"); // only set it the first time (don't reset every time a scrollFunc is requested because perhaps it happens during a refresh() when it's disabled in ScrollTrigger.\n\n return func;\n},\n _getVelocityProp = function _getVelocityProp(value, minTimeRefresh, useDelta) {\n var v1 = value,\n v2 = value,\n t1 = _getTime(),\n t2 = t1,\n min = minTimeRefresh || 50,\n dropToZeroTime = Math.max(500, min * 3),\n update = function update(value, force) {\n var t = _getTime();\n\n if (force || t - t1 > min) {\n v2 = v1;\n v1 = value;\n t2 = t1;\n t1 = t;\n } else if (useDelta) {\n v1 += value;\n } else {\n // not totally necessary, but makes it a bit more accurate by adjusting the v1 value according to the new slope. This way we're not just ignoring the incoming data. Removing for now because it doesn't seem to make much practical difference and it's probably not worth the kb.\n v1 = v2 + (value - v2) / (t - t2) * (t1 - t2);\n }\n },\n reset = function reset() {\n v2 = v1 = useDelta ? 0 : v1;\n t2 = t1 = 0;\n },\n getVelocity = function getVelocity(latestValue) {\n var tOld = t2,\n vOld = v2,\n t = _getTime();\n\n (latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue);\n return t1 === t2 || t - t2 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t : t1) - tOld) * 1000;\n };\n\n return {\n update: update,\n reset: reset,\n getVelocity: getVelocity\n };\n},\n _getEvent = function _getEvent(e, preventDefault) {\n preventDefault && !e._gsapAllow && e.preventDefault();\n return e.changedTouches ? e.changedTouches[0] : e;\n},\n _getAbsoluteMax = function _getAbsoluteMax(a) {\n var max = Math.max.apply(Math, a),\n min = Math.min.apply(Math, a);\n return Math.abs(max) >= Math.abs(min) ? max : min;\n},\n _setScrollTrigger = function _setScrollTrigger() {\n ScrollTrigger = gsap.core.globals().ScrollTrigger;\n ScrollTrigger && ScrollTrigger.core && _integrate();\n},\n _initCore = function _initCore(core) {\n gsap = core || _getGSAP();\n\n if (!_coreInitted && gsap && typeof document !== \"undefined\" && document.body) {\n _win = window;\n _doc = document;\n _docEl = _doc.documentElement;\n _body = _doc.body;\n _root = [_win, _doc, _docEl, _body];\n _clamp = gsap.utils.clamp;\n\n _context = gsap.core.context || function () {};\n\n _pointerType = \"onpointerenter\" in _body ? \"pointer\" : \"mouse\"; // isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer.\n\n _isTouch = Observer.isTouch = _win.matchMedia && _win.matchMedia(\"(hover: none), (pointer: coarse)\").matches ? 1 : \"ontouchstart\" in _win || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0;\n _eventTypes = Observer.eventTypes = (\"ontouchstart\" in _docEl ? \"touchstart,touchmove,touchcancel,touchend\" : !(\"onpointerdown\" in _docEl) ? \"mousedown,mousemove,mouseup,mouseup\" : \"pointerdown,pointermove,pointercancel,pointerup\").split(\",\");\n setTimeout(function () {\n return _startup = 0;\n }, 500);\n\n _setScrollTrigger();\n\n _coreInitted = 1;\n }\n\n return _coreInitted;\n};\n\n_horizontal.op = _vertical;\n_scrollers.cache = 0;\nexport var Observer = /*#__PURE__*/function () {\n function Observer(vars) {\n this.init(vars);\n }\n\n var _proto = Observer.prototype;\n\n _proto.init = function init(vars) {\n _coreInitted || _initCore(gsap) || console.warn(\"Please gsap.registerPlugin(Observer)\");\n ScrollTrigger || _setScrollTrigger();\n var tolerance = vars.tolerance,\n dragMinimum = vars.dragMinimum,\n type = vars.type,\n target = vars.target,\n lineHeight = vars.lineHeight,\n debounce = vars.debounce,\n preventDefault = vars.preventDefault,\n onStop = vars.onStop,\n onStopDelay = vars.onStopDelay,\n ignore = vars.ignore,\n wheelSpeed = vars.wheelSpeed,\n event = vars.event,\n onDragStart = vars.onDragStart,\n onDragEnd = vars.onDragEnd,\n onDrag = vars.onDrag,\n onPress = vars.onPress,\n onRelease = vars.onRelease,\n onRight = vars.onRight,\n onLeft = vars.onLeft,\n onUp = vars.onUp,\n onDown = vars.onDown,\n onChangeX = vars.onChangeX,\n onChangeY = vars.onChangeY,\n onChange = vars.onChange,\n onToggleX = vars.onToggleX,\n onToggleY = vars.onToggleY,\n onHover = vars.onHover,\n onHoverEnd = vars.onHoverEnd,\n onMove = vars.onMove,\n ignoreCheck = vars.ignoreCheck,\n isNormalizer = vars.isNormalizer,\n onGestureStart = vars.onGestureStart,\n onGestureEnd = vars.onGestureEnd,\n onWheel = vars.onWheel,\n onEnable = vars.onEnable,\n onDisable = vars.onDisable,\n onClick = vars.onClick,\n scrollSpeed = vars.scrollSpeed,\n capture = vars.capture,\n allowClicks = vars.allowClicks,\n lockAxis = vars.lockAxis,\n onLockAxis = vars.onLockAxis;\n this.target = target = _getTarget(target) || _docEl;\n this.vars = vars;\n ignore && (ignore = gsap.utils.toArray(ignore));\n tolerance = tolerance || 1e-9;\n dragMinimum = dragMinimum || 0;\n wheelSpeed = wheelSpeed || 1;\n scrollSpeed = scrollSpeed || 1;\n type = type || \"wheel,touch,pointer\";\n debounce = debounce !== false;\n lineHeight || (lineHeight = parseFloat(_win.getComputedStyle(_body).lineHeight) || 22); // note: browser may report \"normal\", so default to 22.\n\n var id,\n onStopDelayedCall,\n dragged,\n moved,\n wheeled,\n locked,\n axis,\n self = this,\n prevDeltaX = 0,\n prevDeltaY = 0,\n scrollFuncX = _getScrollFunc(target, _horizontal),\n scrollFuncY = _getScrollFunc(target, _vertical),\n scrollX = scrollFuncX(),\n scrollY = scrollFuncY(),\n limitToTouch = ~type.indexOf(\"touch\") && !~type.indexOf(\"pointer\") && _eventTypes[0] === \"pointerdown\",\n // for devices that accommodate mouse events and touch events, we need to distinguish.\n isViewport = _isViewport(target),\n ownerDoc = target.ownerDocument || _doc,\n deltaX = [0, 0, 0],\n // wheel, scroll, pointer/touch\n deltaY = [0, 0, 0],\n onClickTime = 0,\n clickCapture = function clickCapture() {\n return onClickTime = _getTime();\n },\n _ignoreCheck = function _ignoreCheck(e, isPointerOrTouch) {\n return (self.event = e) && ignore && ~ignore.indexOf(e.target) || isPointerOrTouch && limitToTouch && e.pointerType !== \"touch\" || ignoreCheck && ignoreCheck(e, isPointerOrTouch);\n },\n onStopFunc = function onStopFunc() {\n self._vx.reset();\n\n self._vy.reset();\n\n onStopDelayedCall.pause();\n onStop && onStop(self);\n },\n update = function update() {\n var dx = self.deltaX = _getAbsoluteMax(deltaX),\n dy = self.deltaY = _getAbsoluteMax(deltaY),\n changedX = Math.abs(dx) >= tolerance,\n changedY = Math.abs(dy) >= tolerance;\n\n onChange && (changedX || changedY) && onChange(self, dx, dy, deltaX, deltaY); // in ScrollTrigger.normalizeScroll(), we need to know if it was touch/pointer so we need access to the deltaX/deltaY Arrays before we clear them out.\n\n if (changedX) {\n onRight && self.deltaX > 0 && onRight(self);\n onLeft && self.deltaX < 0 && onLeft(self);\n onChangeX && onChangeX(self);\n onToggleX && self.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self);\n prevDeltaX = self.deltaX;\n deltaX[0] = deltaX[1] = deltaX[2] = 0;\n }\n\n if (changedY) {\n onDown && self.deltaY > 0 && onDown(self);\n onUp && self.deltaY < 0 && onUp(self);\n onChangeY && onChangeY(self);\n onToggleY && self.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self);\n prevDeltaY = self.deltaY;\n deltaY[0] = deltaY[1] = deltaY[2] = 0;\n }\n\n if (moved || dragged) {\n onMove && onMove(self);\n\n if (dragged) {\n onDrag(self);\n dragged = false;\n }\n\n moved = false;\n }\n\n locked && !(locked = false) && onLockAxis && onLockAxis(self);\n\n if (wheeled) {\n onWheel(self);\n wheeled = false;\n }\n\n id = 0;\n },\n onDelta = function onDelta(x, y, index) {\n deltaX[index] += x;\n deltaY[index] += y;\n\n self._vx.update(x);\n\n self._vy.update(y);\n\n debounce ? id || (id = requestAnimationFrame(update)) : update();\n },\n onTouchOrPointerDelta = function onTouchOrPointerDelta(x, y) {\n if (lockAxis && !axis) {\n self.axis = axis = Math.abs(x) > Math.abs(y) ? \"x\" : \"y\";\n locked = true;\n }\n\n if (axis !== \"y\") {\n deltaX[2] += x;\n\n self._vx.update(x, true); // update the velocity as frequently as possible instead of in the debounced function so that very quick touch-scrolls (flicks) feel natural. If it's the mouse/touch/pointer, force it so that we get snappy/accurate momentum scroll.\n\n }\n\n if (axis !== \"x\") {\n deltaY[2] += y;\n\n self._vy.update(y, true);\n }\n\n debounce ? id || (id = requestAnimationFrame(update)) : update();\n },\n _onDrag = function _onDrag(e) {\n if (_ignoreCheck(e, 1)) {\n return;\n }\n\n e = _getEvent(e, preventDefault);\n var x = e.clientX,\n y = e.clientY,\n dx = x - self.x,\n dy = y - self.y,\n isDragging = self.isDragging;\n self.x = x;\n self.y = y;\n\n if (isDragging || Math.abs(self.startX - x) >= dragMinimum || Math.abs(self.startY - y) >= dragMinimum) {\n onDrag && (dragged = true);\n isDragging || (self.isDragging = true);\n onTouchOrPointerDelta(dx, dy);\n isDragging || onDragStart && onDragStart(self);\n }\n },\n _onPress = self.onPress = function (e) {\n if (_ignoreCheck(e, 1) || e && e.button) {\n return;\n }\n\n self.axis = axis = null;\n onStopDelayedCall.pause();\n self.isPressed = true;\n e = _getEvent(e); // note: may need to preventDefault(?) Won't side-scroll on iOS Safari if we do, though.\n\n prevDeltaX = prevDeltaY = 0;\n self.startX = self.x = e.clientX;\n self.startY = self.y = e.clientY;\n\n self._vx.reset(); // otherwise the t2 may be stale if the user touches and flicks super fast and releases in less than 2 requestAnimationFrame ticks, causing velocity to be 0.\n\n\n self._vy.reset();\n\n _addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, preventDefault, true);\n\n self.deltaX = self.deltaY = 0;\n onPress && onPress(self);\n },\n _onRelease = self.onRelease = function (e) {\n if (_ignoreCheck(e, 1)) {\n return;\n }\n\n _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n\n var isTrackingDrag = !isNaN(self.y - self.startY),\n wasDragging = self.isDragging,\n isDragNotClick = wasDragging && (Math.abs(self.x - self.startX) > 3 || Math.abs(self.y - self.startY) > 3),\n // some touch devices need some wiggle room in terms of sensing clicks - the finger may move a few pixels.\n eventData = _getEvent(e);\n\n if (!isDragNotClick && isTrackingDrag) {\n self._vx.reset();\n\n self._vy.reset(); //if (preventDefault && allowClicks && self.isPressed) { // check isPressed because in a rare edge case, the inputObserver in ScrollTrigger may stopPropagation() on the press/drag, so the onRelease may get fired without the onPress/onDrag ever getting called, thus it could trigger a click to occur on a link after scroll-dragging it.\n\n\n if (preventDefault && allowClicks) {\n // check isPressed because in a rare edge case, the inputObserver in ScrollTrigger may stopPropagation() on the press/drag, so the onRelease may get fired without the onPress/onDrag ever getting called, thus it could trigger a click to occur on a link after scroll-dragging it.\n gsap.delayedCall(0.08, function () {\n // some browsers (like Firefox) won't trust script-generated clicks, so if the user tries to click on a video to play it, for example, it simply won't work. Since a regular \"click\" event will most likely be generated anyway (one that has its isTrusted flag set to true), we must slightly delay our script-generated click so that the \"real\"/trusted one is prioritized. Remember, when there are duplicate events in quick succession, we suppress all but the first one. Some browsers don't even trigger the \"real\" one at all, so our synthetic one is a safety valve that ensures that no matter what, a click event does get dispatched.\n if (_getTime() - onClickTime > 300 && !e.defaultPrevented) {\n if (e.target.click) {\n //some browsers (like mobile Safari) don't properly trigger the click event\n e.target.click();\n } else if (ownerDoc.createEvent) {\n var syntheticEvent = ownerDoc.createEvent(\"MouseEvents\");\n syntheticEvent.initMouseEvent(\"click\", true, true, _win, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null);\n e.target.dispatchEvent(syntheticEvent);\n }\n }\n });\n }\n }\n\n self.isDragging = self.isGesturing = self.isPressed = false;\n onStop && wasDragging && !isNormalizer && onStopDelayedCall.restart(true);\n onDragEnd && wasDragging && onDragEnd(self);\n onRelease && onRelease(self, isDragNotClick);\n },\n _onGestureStart = function _onGestureStart(e) {\n return e.touches && e.touches.length > 1 && (self.isGesturing = true) && onGestureStart(e, self.isDragging);\n },\n _onGestureEnd = function _onGestureEnd() {\n return (self.isGesturing = false) || onGestureEnd(self);\n },\n onScroll = function onScroll(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n\n var x = scrollFuncX(),\n y = scrollFuncY();\n onDelta((x - scrollX) * scrollSpeed, (y - scrollY) * scrollSpeed, 1);\n scrollX = x;\n scrollY = y;\n onStop && onStopDelayedCall.restart(true);\n },\n _onWheel = function _onWheel(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n\n e = _getEvent(e, preventDefault);\n onWheel && (wheeled = true);\n var multiplier = (e.deltaMode === 1 ? lineHeight : e.deltaMode === 2 ? _win.innerHeight : 1) * wheelSpeed;\n onDelta(e.deltaX * multiplier, e.deltaY * multiplier, 0);\n onStop && !isNormalizer && onStopDelayedCall.restart(true);\n },\n _onMove = function _onMove(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n\n var x = e.clientX,\n y = e.clientY,\n dx = x - self.x,\n dy = y - self.y;\n self.x = x;\n self.y = y;\n moved = true;\n onStop && onStopDelayedCall.restart(true);\n (dx || dy) && onTouchOrPointerDelta(dx, dy);\n },\n _onHover = function _onHover(e) {\n self.event = e;\n onHover(self);\n },\n _onHoverEnd = function _onHoverEnd(e) {\n self.event = e;\n onHoverEnd(self);\n },\n _onClick = function _onClick(e) {\n return _ignoreCheck(e) || _getEvent(e, preventDefault) && onClick(self);\n };\n\n onStopDelayedCall = self._dc = gsap.delayedCall(onStopDelay || 0.25, onStopFunc).pause();\n self.deltaX = self.deltaY = 0;\n self._vx = _getVelocityProp(0, 50, true);\n self._vy = _getVelocityProp(0, 50, true);\n self.scrollX = scrollFuncX;\n self.scrollY = scrollFuncY;\n self.isDragging = self.isGesturing = self.isPressed = false;\n\n _context(this);\n\n self.enable = function (e) {\n if (!self.isEnabled) {\n _addListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n\n type.indexOf(\"scroll\") >= 0 && _addListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, preventDefault, capture);\n type.indexOf(\"wheel\") >= 0 && _addListener(target, \"wheel\", _onWheel, preventDefault, capture);\n\n if (type.indexOf(\"touch\") >= 0 && _isTouch || type.indexOf(\"pointer\") >= 0) {\n _addListener(target, _eventTypes[0], _onPress, preventDefault, capture);\n\n _addListener(ownerDoc, _eventTypes[2], _onRelease);\n\n _addListener(ownerDoc, _eventTypes[3], _onRelease);\n\n allowClicks && _addListener(target, \"click\", clickCapture, false, true);\n onClick && _addListener(target, \"click\", _onClick);\n onGestureStart && _addListener(ownerDoc, \"gesturestart\", _onGestureStart);\n onGestureEnd && _addListener(ownerDoc, \"gestureend\", _onGestureEnd);\n onHover && _addListener(target, _pointerType + \"enter\", _onHover);\n onHoverEnd && _addListener(target, _pointerType + \"leave\", _onHoverEnd);\n onMove && _addListener(target, _pointerType + \"move\", _onMove);\n }\n\n self.isEnabled = true;\n e && e.type && _onPress(e);\n onEnable && onEnable(self);\n }\n\n return self;\n };\n\n self.disable = function () {\n if (self.isEnabled) {\n // only remove the _onScroll listener if there aren't any others that rely on the functionality.\n _observers.filter(function (o) {\n return o !== self && _isViewport(o.target);\n }).length || _removeListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n\n if (self.isPressed) {\n self._vx.reset();\n\n self._vy.reset();\n\n _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n }\n\n _removeListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, capture);\n\n _removeListener(target, \"wheel\", _onWheel, capture);\n\n _removeListener(target, _eventTypes[0], _onPress, capture);\n\n _removeListener(ownerDoc, _eventTypes[2], _onRelease);\n\n _removeListener(ownerDoc, _eventTypes[3], _onRelease);\n\n _removeListener(target, \"click\", clickCapture, true);\n\n _removeListener(target, \"click\", _onClick);\n\n _removeListener(ownerDoc, \"gesturestart\", _onGestureStart);\n\n _removeListener(ownerDoc, \"gestureend\", _onGestureEnd);\n\n _removeListener(target, _pointerType + \"enter\", _onHover);\n\n _removeListener(target, _pointerType + \"leave\", _onHoverEnd);\n\n _removeListener(target, _pointerType + \"move\", _onMove);\n\n self.isEnabled = self.isPressed = self.isDragging = false;\n onDisable && onDisable(self);\n }\n };\n\n self.kill = self.revert = function () {\n self.disable();\n\n var i = _observers.indexOf(self);\n\n i >= 0 && _observers.splice(i, 1);\n _normalizer === self && (_normalizer = 0);\n };\n\n _observers.push(self);\n\n isNormalizer && _isViewport(target) && (_normalizer = self);\n self.enable(event);\n };\n\n _createClass(Observer, [{\n key: \"velocityX\",\n get: function get() {\n return this._vx.getVelocity();\n }\n }, {\n key: \"velocityY\",\n get: function get() {\n return this._vy.getVelocity();\n }\n }]);\n\n return Observer;\n}();\nObserver.version = \"3.12.4\";\n\nObserver.create = function (vars) {\n return new Observer(vars);\n};\n\nObserver.register = _initCore;\n\nObserver.getAll = function () {\n return _observers.slice();\n};\n\nObserver.getById = function (id) {\n return _observers.filter(function (o) {\n return o.vars.id === id;\n })[0];\n};\n\n_getGSAP() && gsap.registerPlugin(Observer);\nexport { Observer as default, _isViewport, _scrollers, _getScrollFunc, _getProxyProp, _proxies, _getVelocityProp, _vertical, _horizontal, _getTarget };","/*!\n * ScrollTrigger 3.12.4\n * https://gsap.com\n *\n * @license Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { Observer, _getTarget, _vertical, _horizontal, _scrollers, _proxies, _getScrollFunc, _getProxyProp, _getVelocityProp } from \"./Observer.js\";\n\nvar gsap,\n _coreInitted,\n _win,\n _doc,\n _docEl,\n _body,\n _root,\n _resizeDelay,\n _toArray,\n _clamp,\n _time2,\n _syncInterval,\n _refreshing,\n _pointerIsDown,\n _transformProp,\n _i,\n _prevWidth,\n _prevHeight,\n _autoRefresh,\n _sort,\n _suppressOverwrites,\n _ignoreResize,\n _normalizer,\n _ignoreMobileResize,\n _baseScreenHeight,\n _baseScreenWidth,\n _fixIOSBug,\n _context,\n _scrollRestoration,\n _div100vh,\n _100vh,\n _isReverted,\n _clampingMax,\n _limitCallbacks,\n // if true, we'll only trigger callbacks if the active state toggles, so if you scroll immediately past both the start and end positions of a ScrollTrigger (thus inactive to inactive), neither its onEnter nor onLeave will be called. This is useful during startup.\n_startup = 1,\n _getTime = Date.now,\n _time1 = _getTime(),\n _lastScrollTime = 0,\n _enabled = 0,\n _parseClamp = function _parseClamp(value, type, self) {\n var clamp = _isString(value) && (value.substr(0, 6) === \"clamp(\" || value.indexOf(\"max\") > -1);\n self[\"_\" + type + \"Clamp\"] = clamp;\n return clamp ? value.substr(6, value.length - 7) : value;\n},\n _keepClamp = function _keepClamp(value, clamp) {\n return clamp && (!_isString(value) || value.substr(0, 6) !== \"clamp(\") ? \"clamp(\" + value + \")\" : value;\n},\n _rafBugFix = function _rafBugFix() {\n return _enabled && requestAnimationFrame(_rafBugFix);\n},\n // in some browsers (like Firefox), screen repaints weren't consistent unless we had SOMETHING queued up in requestAnimationFrame()! So this just creates a super simple loop to keep it alive and smooth out repaints.\n_pointerDownHandler = function _pointerDownHandler() {\n return _pointerIsDown = 1;\n},\n _pointerUpHandler = function _pointerUpHandler() {\n return _pointerIsDown = 0;\n},\n _passThrough = function _passThrough(v) {\n return v;\n},\n _round = function _round(value) {\n return Math.round(value * 100000) / 100000 || 0;\n},\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _getGSAP = function _getGSAP() {\n return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _isViewport = function _isViewport(e) {\n return !!~_root.indexOf(e);\n},\n _getViewportDimension = function _getViewportDimension(dimensionProperty) {\n return (dimensionProperty === \"Height\" ? _100vh : _win[\"inner\" + dimensionProperty]) || _docEl[\"client\" + dimensionProperty] || _body[\"client\" + dimensionProperty];\n},\n _getBoundsFunc = function _getBoundsFunc(element) {\n return _getProxyProp(element, \"getBoundingClientRect\") || (_isViewport(element) ? function () {\n _winOffsets.width = _win.innerWidth;\n _winOffsets.height = _100vh;\n return _winOffsets;\n } : function () {\n return _getBounds(element);\n });\n},\n _getSizeFunc = function _getSizeFunc(scroller, isViewport, _ref) {\n var d = _ref.d,\n d2 = _ref.d2,\n a = _ref.a;\n return (a = _getProxyProp(scroller, \"getBoundingClientRect\")) ? function () {\n return a()[d];\n } : function () {\n return (isViewport ? _getViewportDimension(d2) : scroller[\"client\" + d2]) || 0;\n };\n},\n _getOffsetsFunc = function _getOffsetsFunc(element, isViewport) {\n return !isViewport || ~_proxies.indexOf(element) ? _getBoundsFunc(element) : function () {\n return _winOffsets;\n };\n},\n _maxScroll = function _maxScroll(element, _ref2) {\n var s = _ref2.s,\n d2 = _ref2.d2,\n d = _ref2.d,\n a = _ref2.a;\n return Math.max(0, (s = \"scroll\" + d2) && (a = _getProxyProp(element, s)) ? a() - _getBoundsFunc(element)()[d] : _isViewport(element) ? (_docEl[s] || _body[s]) - _getViewportDimension(d2) : element[s] - element[\"offset\" + d2]);\n},\n _iterateAutoRefresh = function _iterateAutoRefresh(func, events) {\n for (var i = 0; i < _autoRefresh.length; i += 3) {\n (!events || ~events.indexOf(_autoRefresh[i + 1])) && func(_autoRefresh[i], _autoRefresh[i + 1], _autoRefresh[i + 2]);\n }\n},\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isObject = function _isObject(value) {\n return typeof value === \"object\";\n},\n _endAnimation = function _endAnimation(animation, reversed, pause) {\n return animation && animation.progress(reversed ? 0 : 1) && pause && animation.pause();\n},\n _callback = function _callback(self, func) {\n if (self.enabled) {\n var result = self._ctx ? self._ctx.add(function () {\n return func(self);\n }) : func(self);\n result && result.totalTime && (self.callbackAnimation = result);\n }\n},\n _abs = Math.abs,\n _left = \"left\",\n _top = \"top\",\n _right = \"right\",\n _bottom = \"bottom\",\n _width = \"width\",\n _height = \"height\",\n _Right = \"Right\",\n _Left = \"Left\",\n _Top = \"Top\",\n _Bottom = \"Bottom\",\n _padding = \"padding\",\n _margin = \"margin\",\n _Width = \"Width\",\n _Height = \"Height\",\n _px = \"px\",\n _getComputedStyle = function _getComputedStyle(element) {\n return _win.getComputedStyle(element);\n},\n _makePositionable = function _makePositionable(element) {\n // if the element already has position: absolute or fixed, leave that, otherwise make it position: relative\n var position = _getComputedStyle(element).position;\n\n element.style.position = position === \"absolute\" || position === \"fixed\" ? position : \"relative\";\n},\n _setDefaults = function _setDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n\n return obj;\n},\n _getBounds = function _getBounds(element, withoutTransforms) {\n var tween = withoutTransforms && _getComputedStyle(element)[_transformProp] !== \"matrix(1, 0, 0, 1, 0, 0)\" && gsap.to(element, {\n x: 0,\n y: 0,\n xPercent: 0,\n yPercent: 0,\n rotation: 0,\n rotationX: 0,\n rotationY: 0,\n scale: 1,\n skewX: 0,\n skewY: 0\n }).progress(1),\n bounds = element.getBoundingClientRect();\n tween && tween.progress(0).kill();\n return bounds;\n},\n _getSize = function _getSize(element, _ref3) {\n var d2 = _ref3.d2;\n return element[\"offset\" + d2] || element[\"client\" + d2] || 0;\n},\n _getLabelRatioArray = function _getLabelRatioArray(timeline) {\n var a = [],\n labels = timeline.labels,\n duration = timeline.duration(),\n p;\n\n for (p in labels) {\n a.push(labels[p] / duration);\n }\n\n return a;\n},\n _getClosestLabel = function _getClosestLabel(animation) {\n return function (value) {\n return gsap.utils.snap(_getLabelRatioArray(animation), value);\n };\n},\n _snapDirectional = function _snapDirectional(snapIncrementOrArray) {\n var snap = gsap.utils.snap(snapIncrementOrArray),\n a = Array.isArray(snapIncrementOrArray) && snapIncrementOrArray.slice(0).sort(function (a, b) {\n return a - b;\n });\n return a ? function (value, direction, threshold) {\n if (threshold === void 0) {\n threshold = 1e-3;\n }\n\n var i;\n\n if (!direction) {\n return snap(value);\n }\n\n if (direction > 0) {\n value -= threshold; // to avoid rounding errors. If we're too strict, it might snap forward, then immediately again, and again.\n\n for (i = 0; i < a.length; i++) {\n if (a[i] >= value) {\n return a[i];\n }\n }\n\n return a[i - 1];\n } else {\n i = a.length;\n value += threshold;\n\n while (i--) {\n if (a[i] <= value) {\n return a[i];\n }\n }\n }\n\n return a[0];\n } : function (value, direction, threshold) {\n if (threshold === void 0) {\n threshold = 1e-3;\n }\n\n var snapped = snap(value);\n return !direction || Math.abs(snapped - value) < threshold || snapped - value < 0 === direction < 0 ? snapped : snap(direction < 0 ? value - snapIncrementOrArray : value + snapIncrementOrArray);\n };\n},\n _getLabelAtDirection = function _getLabelAtDirection(timeline) {\n return function (value, st) {\n return _snapDirectional(_getLabelRatioArray(timeline))(value, st.direction);\n };\n},\n _multiListener = function _multiListener(func, element, types, callback) {\n return types.split(\",\").forEach(function (type) {\n return func(element, type, callback);\n });\n},\n _addListener = function _addListener(element, type, func, nonPassive, capture) {\n return element.addEventListener(type, func, {\n passive: !nonPassive,\n capture: !!capture\n });\n},\n _removeListener = function _removeListener(element, type, func, capture) {\n return element.removeEventListener(type, func, !!capture);\n},\n _wheelListener = function _wheelListener(func, el, scrollFunc) {\n scrollFunc = scrollFunc && scrollFunc.wheelHandler;\n\n if (scrollFunc) {\n func(el, \"wheel\", scrollFunc);\n func(el, \"touchmove\", scrollFunc);\n }\n},\n _markerDefaults = {\n startColor: \"green\",\n endColor: \"red\",\n indent: 0,\n fontSize: \"16px\",\n fontWeight: \"normal\"\n},\n _defaults = {\n toggleActions: \"play\",\n anticipatePin: 0\n},\n _keywords = {\n top: 0,\n left: 0,\n center: 0.5,\n bottom: 1,\n right: 1\n},\n _offsetToPx = function _offsetToPx(value, size) {\n if (_isString(value)) {\n var eqIndex = value.indexOf(\"=\"),\n relative = ~eqIndex ? +(value.charAt(eqIndex - 1) + 1) * parseFloat(value.substr(eqIndex + 1)) : 0;\n\n if (~eqIndex) {\n value.indexOf(\"%\") > eqIndex && (relative *= size / 100);\n value = value.substr(0, eqIndex - 1);\n }\n\n value = relative + (value in _keywords ? _keywords[value] * size : ~value.indexOf(\"%\") ? parseFloat(value) * size / 100 : parseFloat(value) || 0);\n }\n\n return value;\n},\n _createMarker = function _createMarker(type, name, container, direction, _ref4, offset, matchWidthEl, containerAnimation) {\n var startColor = _ref4.startColor,\n endColor = _ref4.endColor,\n fontSize = _ref4.fontSize,\n indent = _ref4.indent,\n fontWeight = _ref4.fontWeight;\n\n var e = _doc.createElement(\"div\"),\n useFixedPosition = _isViewport(container) || _getProxyProp(container, \"pinType\") === \"fixed\",\n isScroller = type.indexOf(\"scroller\") !== -1,\n parent = useFixedPosition ? _body : container,\n isStart = type.indexOf(\"start\") !== -1,\n color = isStart ? startColor : endColor,\n css = \"border-color:\" + color + \";font-size:\" + fontSize + \";color:\" + color + \";font-weight:\" + fontWeight + \";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;\";\n\n css += \"position:\" + ((isScroller || containerAnimation) && useFixedPosition ? \"fixed;\" : \"absolute;\");\n (isScroller || containerAnimation || !useFixedPosition) && (css += (direction === _vertical ? _right : _bottom) + \":\" + (offset + parseFloat(indent)) + \"px;\");\n matchWidthEl && (css += \"box-sizing:border-box;text-align:left;width:\" + matchWidthEl.offsetWidth + \"px;\");\n e._isStart = isStart;\n e.setAttribute(\"class\", \"gsap-marker-\" + type + (name ? \" marker-\" + name : \"\"));\n e.style.cssText = css;\n e.innerText = name || name === 0 ? type + \"-\" + name : type;\n parent.children[0] ? parent.insertBefore(e, parent.children[0]) : parent.appendChild(e);\n e._offset = e[\"offset\" + direction.op.d2];\n\n _positionMarker(e, 0, direction, isStart);\n\n return e;\n},\n _positionMarker = function _positionMarker(marker, start, direction, flipped) {\n var vars = {\n display: \"block\"\n },\n side = direction[flipped ? \"os2\" : \"p2\"],\n oppositeSide = direction[flipped ? \"p2\" : \"os2\"];\n marker._isFlipped = flipped;\n vars[direction.a + \"Percent\"] = flipped ? -100 : 0;\n vars[direction.a] = flipped ? \"1px\" : 0;\n vars[\"border\" + side + _Width] = 1;\n vars[\"border\" + oppositeSide + _Width] = 0;\n vars[direction.p] = start + \"px\";\n gsap.set(marker, vars);\n},\n _triggers = [],\n _ids = {},\n _rafID,\n _sync = function _sync() {\n return _getTime() - _lastScrollTime > 34 && (_rafID || (_rafID = requestAnimationFrame(_updateAll)));\n},\n _onScroll = function _onScroll() {\n // previously, we tried to optimize performance by batching/deferring to the next requestAnimationFrame(), but discovered that Safari has a few bugs that make this unworkable (especially on iOS). See https://codepen.io/GreenSock/pen/16c435b12ef09c38125204818e7b45fc?editors=0010 and https://codepen.io/GreenSock/pen/JjOxYpQ/3dd65ccec5a60f1d862c355d84d14562?editors=0010 and https://codepen.io/GreenSock/pen/ExbrPNa/087cef197dc35445a0951e8935c41503?editors=0010\n if (!_normalizer || !_normalizer.isPressed || _normalizer.startX > _body.clientWidth) {\n // if the user is dragging the scrollbar, allow it.\n _scrollers.cache++;\n\n if (_normalizer) {\n _rafID || (_rafID = requestAnimationFrame(_updateAll));\n } else {\n _updateAll(); // Safari in particular (on desktop) NEEDS the immediate update rather than waiting for a requestAnimationFrame() whereas iOS seems to benefit from waiting for the requestAnimationFrame() tick, at least when normalizing. See https://codepen.io/GreenSock/pen/qBYozqO?editors=0110\n\n }\n\n _lastScrollTime || _dispatch(\"scrollStart\");\n _lastScrollTime = _getTime();\n }\n},\n _setBaseDimensions = function _setBaseDimensions() {\n _baseScreenWidth = _win.innerWidth;\n _baseScreenHeight = _win.innerHeight;\n},\n _onResize = function _onResize() {\n _scrollers.cache++;\n !_refreshing && !_ignoreResize && !_doc.fullscreenElement && !_doc.webkitFullscreenElement && (!_ignoreMobileResize || _baseScreenWidth !== _win.innerWidth || Math.abs(_win.innerHeight - _baseScreenHeight) > _win.innerHeight * 0.25) && _resizeDelay.restart(true);\n},\n // ignore resizes triggered by refresh()\n_listeners = {},\n _emptyArray = [],\n _softRefresh = function _softRefresh() {\n return _removeListener(ScrollTrigger, \"scrollEnd\", _softRefresh) || _refreshAll(true);\n},\n _dispatch = function _dispatch(type) {\n return _listeners[type] && _listeners[type].map(function (f) {\n return f();\n }) || _emptyArray;\n},\n _savedStyles = [],\n // when ScrollTrigger.saveStyles() is called, the inline styles are recorded in this Array in a sequential format like [element, cssText, gsCache, media]. This keeps it very memory-efficient and fast to iterate through.\n_revertRecorded = function _revertRecorded(media) {\n for (var i = 0; i < _savedStyles.length; i += 5) {\n if (!media || _savedStyles[i + 4] && _savedStyles[i + 4].query === media) {\n _savedStyles[i].style.cssText = _savedStyles[i + 1];\n _savedStyles[i].getBBox && _savedStyles[i].setAttribute(\"transform\", _savedStyles[i + 2] || \"\");\n _savedStyles[i + 3].uncache = 1;\n }\n }\n},\n _revertAll = function _revertAll(kill, media) {\n var trigger;\n\n for (_i = 0; _i < _triggers.length; _i++) {\n trigger = _triggers[_i];\n\n if (trigger && (!media || trigger._ctx === media)) {\n if (kill) {\n trigger.kill(1);\n } else {\n trigger.revert(true, true);\n }\n }\n }\n\n _isReverted = true;\n media && _revertRecorded(media);\n media || _dispatch(\"revert\");\n},\n _clearScrollMemory = function _clearScrollMemory(scrollRestoration, force) {\n // zero-out all the recorded scroll positions. Don't use _triggers because if, for example, .matchMedia() is used to create some ScrollTriggers and then the user resizes and it removes ALL ScrollTriggers, and then go back to a size where there are ScrollTriggers, it would have kept the position(s) saved from the initial state.\n _scrollers.cache++;\n (force || !_refreshingAll) && _scrollers.forEach(function (obj) {\n return _isFunction(obj) && obj.cacheID++ && (obj.rec = 0);\n });\n _isString(scrollRestoration) && (_win.history.scrollRestoration = _scrollRestoration = scrollRestoration);\n},\n _refreshingAll,\n _refreshID = 0,\n _queueRefreshID,\n _queueRefreshAll = function _queueRefreshAll() {\n // we don't want to call _refreshAll() every time we create a new ScrollTrigger (for performance reasons) - it's better to batch them. Some frameworks dynamically load content and we can't rely on the window's \"load\" or \"DOMContentLoaded\" events to trigger it.\n if (_queueRefreshID !== _refreshID) {\n var id = _queueRefreshID = _refreshID;\n requestAnimationFrame(function () {\n return id === _refreshID && _refreshAll(true);\n });\n }\n},\n _refresh100vh = function _refresh100vh() {\n _body.appendChild(_div100vh);\n\n _100vh = !_normalizer && _div100vh.offsetHeight || _win.innerHeight;\n\n _body.removeChild(_div100vh);\n},\n _hideAllMarkers = function _hideAllMarkers(hide) {\n return _toArray(\".gsap-marker-start, .gsap-marker-end, .gsap-marker-scroller-start, .gsap-marker-scroller-end\").forEach(function (el) {\n return el.style.display = hide ? \"none\" : \"block\";\n });\n},\n _refreshAll = function _refreshAll(force, skipRevert) {\n if (_lastScrollTime && !force && !_isReverted) {\n _addListener(ScrollTrigger, \"scrollEnd\", _softRefresh);\n\n return;\n }\n\n _refresh100vh();\n\n _refreshingAll = ScrollTrigger.isRefreshing = true;\n\n _scrollers.forEach(function (obj) {\n return _isFunction(obj) && ++obj.cacheID && (obj.rec = obj());\n }); // force the clearing of the cache because some browsers take a little while to dispatch the \"scroll\" event and the user may have changed the scroll position and then called ScrollTrigger.refresh() right away\n\n\n var refreshInits = _dispatch(\"refreshInit\");\n\n _sort && ScrollTrigger.sort();\n skipRevert || _revertAll();\n\n _scrollers.forEach(function (obj) {\n if (_isFunction(obj)) {\n obj.smooth && (obj.target.style.scrollBehavior = \"auto\"); // smooth scrolling interferes\n\n obj(0);\n }\n });\n\n _triggers.slice(0).forEach(function (t) {\n return t.refresh();\n }); // don't loop with _i because during a refresh() someone could call ScrollTrigger.update() which would iterate through _i resulting in a skip.\n\n\n _isReverted = false;\n\n _triggers.forEach(function (t) {\n // nested pins (pinnedContainer) with pinSpacing may expand the container, so we must accommodate that here.\n if (t._subPinOffset && t.pin) {\n var prop = t.vars.horizontal ? \"offsetWidth\" : \"offsetHeight\",\n original = t.pin[prop];\n t.revert(true, 1);\n t.adjustPinSpacing(t.pin[prop] - original);\n t.refresh();\n }\n });\n\n _clampingMax = 1; // pinSpacing might be propping a page open, thus when we .setPositions() to clamp a ScrollTrigger's end we should leave the pinSpacing alone. That's what this flag is for.\n\n _hideAllMarkers(true);\n\n _triggers.forEach(function (t) {\n // the scroller's max scroll position may change after all the ScrollTriggers refreshed (like pinning could push it down), so we need to loop back and correct any with end: \"max\". Same for anything with a clamped end\n var max = _maxScroll(t.scroller, t._dir),\n endClamp = t.vars.end === \"max\" || t._endClamp && t.end > max,\n startClamp = t._startClamp && t.start >= max;\n\n (endClamp || startClamp) && t.setPositions(startClamp ? max - 1 : t.start, endClamp ? Math.max(startClamp ? max : t.start + 1, max) : t.end, true);\n });\n\n _hideAllMarkers(false);\n\n _clampingMax = 0;\n refreshInits.forEach(function (result) {\n return result && result.render && result.render(-1);\n }); // if the onRefreshInit() returns an animation (typically a gsap.set()), revert it. This makes it easy to put things in a certain spot before refreshing for measurement purposes, and then put things back.\n\n _scrollers.forEach(function (obj) {\n if (_isFunction(obj)) {\n obj.smooth && requestAnimationFrame(function () {\n return obj.target.style.scrollBehavior = \"smooth\";\n });\n obj.rec && obj(obj.rec);\n }\n });\n\n _clearScrollMemory(_scrollRestoration, 1);\n\n _resizeDelay.pause();\n\n _refreshID++;\n _refreshingAll = 2;\n\n _updateAll(2);\n\n _triggers.forEach(function (t) {\n return _isFunction(t.vars.onRefresh) && t.vars.onRefresh(t);\n });\n\n _refreshingAll = ScrollTrigger.isRefreshing = false;\n\n _dispatch(\"refresh\");\n},\n _lastScroll = 0,\n _direction = 1,\n _primary,\n _updateAll = function _updateAll(force) {\n if (force === 2 || !_refreshingAll && !_isReverted) {\n // _isReverted could be true if, for example, a matchMedia() is in the process of executing. We don't want to update during the time everything is reverted.\n ScrollTrigger.isUpdating = true;\n _primary && _primary.update(0); // ScrollSmoother uses refreshPriority -9999 to become the primary that gets updated before all others because it affects the scroll position.\n\n var l = _triggers.length,\n time = _getTime(),\n recordVelocity = time - _time1 >= 50,\n scroll = l && _triggers[0].scroll();\n\n _direction = _lastScroll > scroll ? -1 : 1;\n _refreshingAll || (_lastScroll = scroll);\n\n if (recordVelocity) {\n if (_lastScrollTime && !_pointerIsDown && time - _lastScrollTime > 200) {\n _lastScrollTime = 0;\n\n _dispatch(\"scrollEnd\");\n }\n\n _time2 = _time1;\n _time1 = time;\n }\n\n if (_direction < 0) {\n _i = l;\n\n while (_i-- > 0) {\n _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n }\n\n _direction = 1;\n } else {\n for (_i = 0; _i < l; _i++) {\n _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n }\n }\n\n ScrollTrigger.isUpdating = false;\n }\n\n _rafID = 0;\n},\n _propNamesToCopy = [_left, _top, _bottom, _right, _margin + _Bottom, _margin + _Right, _margin + _Top, _margin + _Left, \"display\", \"flexShrink\", \"float\", \"zIndex\", \"gridColumnStart\", \"gridColumnEnd\", \"gridRowStart\", \"gridRowEnd\", \"gridArea\", \"justifySelf\", \"alignSelf\", \"placeSelf\", \"order\"],\n _stateProps = _propNamesToCopy.concat([_width, _height, \"boxSizing\", \"max\" + _Width, \"max\" + _Height, \"position\", _margin, _padding, _padding + _Top, _padding + _Right, _padding + _Bottom, _padding + _Left]),\n _swapPinOut = function _swapPinOut(pin, spacer, state) {\n _setState(state);\n\n var cache = pin._gsap;\n\n if (cache.spacerIsNative) {\n _setState(cache.spacerState);\n } else if (pin._gsap.swappedIn) {\n var parent = spacer.parentNode;\n\n if (parent) {\n parent.insertBefore(pin, spacer);\n parent.removeChild(spacer);\n }\n }\n\n pin._gsap.swappedIn = false;\n},\n _swapPinIn = function _swapPinIn(pin, spacer, cs, spacerState) {\n if (!pin._gsap.swappedIn) {\n var i = _propNamesToCopy.length,\n spacerStyle = spacer.style,\n pinStyle = pin.style,\n p;\n\n while (i--) {\n p = _propNamesToCopy[i];\n spacerStyle[p] = cs[p];\n }\n\n spacerStyle.position = cs.position === \"absolute\" ? \"absolute\" : \"relative\";\n cs.display === \"inline\" && (spacerStyle.display = \"inline-block\");\n pinStyle[_bottom] = pinStyle[_right] = \"auto\";\n spacerStyle.flexBasis = cs.flexBasis || \"auto\";\n spacerStyle.overflow = \"visible\";\n spacerStyle.boxSizing = \"border-box\";\n spacerStyle[_width] = _getSize(pin, _horizontal) + _px;\n spacerStyle[_height] = _getSize(pin, _vertical) + _px;\n spacerStyle[_padding] = pinStyle[_margin] = pinStyle[_top] = pinStyle[_left] = \"0\";\n\n _setState(spacerState);\n\n pinStyle[_width] = pinStyle[\"max\" + _Width] = cs[_width];\n pinStyle[_height] = pinStyle[\"max\" + _Height] = cs[_height];\n pinStyle[_padding] = cs[_padding];\n\n if (pin.parentNode !== spacer) {\n pin.parentNode.insertBefore(spacer, pin);\n spacer.appendChild(pin);\n }\n\n pin._gsap.swappedIn = true;\n }\n},\n _capsExp = /([A-Z])/g,\n _setState = function _setState(state) {\n if (state) {\n var style = state.t.style,\n l = state.length,\n i = 0,\n p,\n value;\n (state.t._gsap || gsap.core.getCache(state.t)).uncache = 1; // otherwise transforms may be off\n\n for (; i < l; i += 2) {\n value = state[i + 1];\n p = state[i];\n\n if (value) {\n style[p] = value;\n } else if (style[p]) {\n style.removeProperty(p.replace(_capsExp, \"-$1\").toLowerCase());\n }\n }\n }\n},\n _getState = function _getState(element) {\n // returns an Array with alternating values like [property, value, property, value] and a \"t\" property pointing to the target (element). Makes it fast and cheap.\n var l = _stateProps.length,\n style = element.style,\n state = [],\n i = 0;\n\n for (; i < l; i++) {\n state.push(_stateProps[i], style[_stateProps[i]]);\n }\n\n state.t = element;\n return state;\n},\n _copyState = function _copyState(state, override, omitOffsets) {\n var result = [],\n l = state.length,\n i = omitOffsets ? 8 : 0,\n // skip top, left, right, bottom if omitOffsets is true\n p;\n\n for (; i < l; i += 2) {\n p = state[i];\n result.push(p, p in override ? override[p] : state[i + 1]);\n }\n\n result.t = state.t;\n return result;\n},\n _winOffsets = {\n left: 0,\n top: 0\n},\n // // potential future feature (?) Allow users to calculate where a trigger hits (scroll position) like getScrollPosition(\"#id\", \"top bottom\")\n// _getScrollPosition = (trigger, position, {scroller, containerAnimation, horizontal}) => {\n// \tscroller = _getTarget(scroller || _win);\n// \tlet direction = horizontal ? _horizontal : _vertical,\n// \t\tisViewport = _isViewport(scroller);\n// \t_getSizeFunc(scroller, isViewport, direction);\n// \treturn _parsePosition(position, _getTarget(trigger), _getSizeFunc(scroller, isViewport, direction)(), direction, _getScrollFunc(scroller, direction)(), 0, 0, 0, _getOffsetsFunc(scroller, isViewport)(), isViewport ? 0 : parseFloat(_getComputedStyle(scroller)[\"border\" + direction.p2 + _Width]) || 0, 0, containerAnimation ? containerAnimation.duration() : _maxScroll(scroller), containerAnimation);\n// },\n_parsePosition = function _parsePosition(value, trigger, scrollerSize, direction, scroll, marker, markerScroller, self, scrollerBounds, borderWidth, useFixedPosition, scrollerMax, containerAnimation, clampZeroProp) {\n _isFunction(value) && (value = value(self));\n\n if (_isString(value) && value.substr(0, 3) === \"max\") {\n value = scrollerMax + (value.charAt(4) === \"=\" ? _offsetToPx(\"0\" + value.substr(3), scrollerSize) : 0);\n }\n\n var time = containerAnimation ? containerAnimation.time() : 0,\n p1,\n p2,\n element;\n containerAnimation && containerAnimation.seek(0);\n isNaN(value) || (value = +value); // convert a string number like \"45\" to an actual number\n\n if (!_isNumber(value)) {\n _isFunction(trigger) && (trigger = trigger(self));\n var offsets = (value || \"0\").split(\" \"),\n bounds,\n localOffset,\n globalOffset,\n display;\n element = _getTarget(trigger, self) || _body;\n bounds = _getBounds(element) || {};\n\n if ((!bounds || !bounds.left && !bounds.top) && _getComputedStyle(element).display === \"none\") {\n // if display is \"none\", it won't report getBoundingClientRect() properly\n display = element.style.display;\n element.style.display = \"block\";\n bounds = _getBounds(element);\n display ? element.style.display = display : element.style.removeProperty(\"display\");\n }\n\n localOffset = _offsetToPx(offsets[0], bounds[direction.d]);\n globalOffset = _offsetToPx(offsets[1] || \"0\", scrollerSize);\n value = bounds[direction.p] - scrollerBounds[direction.p] - borderWidth + localOffset + scroll - globalOffset;\n markerScroller && _positionMarker(markerScroller, globalOffset, direction, scrollerSize - globalOffset < 20 || markerScroller._isStart && globalOffset > 20);\n scrollerSize -= scrollerSize - globalOffset; // adjust for the marker\n } else {\n containerAnimation && (value = gsap.utils.mapRange(containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, 0, scrollerMax, value));\n markerScroller && _positionMarker(markerScroller, scrollerSize, direction, true);\n }\n\n if (clampZeroProp) {\n self[clampZeroProp] = value || -0.001;\n value < 0 && (value = 0);\n }\n\n if (marker) {\n var position = value + scrollerSize,\n isStart = marker._isStart;\n p1 = \"scroll\" + direction.d2;\n\n _positionMarker(marker, position, direction, isStart && position > 20 || !isStart && (useFixedPosition ? Math.max(_body[p1], _docEl[p1]) : marker.parentNode[p1]) <= position + 1);\n\n if (useFixedPosition) {\n scrollerBounds = _getBounds(markerScroller);\n useFixedPosition && (marker.style[direction.op.p] = scrollerBounds[direction.op.p] - direction.op.m - marker._offset + _px);\n }\n }\n\n if (containerAnimation && element) {\n p1 = _getBounds(element);\n containerAnimation.seek(scrollerMax);\n p2 = _getBounds(element);\n containerAnimation._caScrollDist = p1[direction.p] - p2[direction.p];\n value = value / containerAnimation._caScrollDist * scrollerMax;\n }\n\n containerAnimation && containerAnimation.seek(time);\n return containerAnimation ? value : Math.round(value);\n},\n _prefixExp = /(webkit|moz|length|cssText|inset)/i,\n _reparent = function _reparent(element, parent, top, left) {\n if (element.parentNode !== parent) {\n var style = element.style,\n p,\n cs;\n\n if (parent === _body) {\n element._stOrig = style.cssText; // record original inline styles so we can revert them later\n\n cs = _getComputedStyle(element);\n\n for (p in cs) {\n // must copy all relevant styles to ensure that nothing changes visually when we reparent to the . Skip the vendor prefixed ones.\n if (!+p && !_prefixExp.test(p) && cs[p] && typeof style[p] === \"string\" && p !== \"0\") {\n style[p] = cs[p];\n }\n }\n\n style.top = top;\n style.left = left;\n } else {\n style.cssText = element._stOrig;\n }\n\n gsap.core.getCache(element).uncache = 1;\n parent.appendChild(element);\n }\n},\n _interruptionTracker = function _interruptionTracker(getValueFunc, initialValue, onInterrupt) {\n var last1 = initialValue,\n last2 = last1;\n return function (value) {\n var current = Math.round(getValueFunc()); // round because in some [very uncommon] Windows environments, scroll can get reported with decimals even though it was set without.\n\n if (current !== last1 && current !== last2 && Math.abs(current - last1) > 3 && Math.abs(current - last2) > 3) {\n // if the user scrolls, kill the tween. iOS Safari intermittently misreports the scroll position, it may be the most recently-set one or the one before that! When Safari is zoomed (CMD-+), it often misreports as 1 pixel off too! So if we set the scroll position to 125, for example, it'll actually report it as 124.\n value = current;\n onInterrupt && onInterrupt();\n }\n\n last2 = last1;\n last1 = value;\n return value;\n };\n},\n _shiftMarker = function _shiftMarker(marker, direction, value) {\n var vars = {};\n vars[direction.p] = \"+=\" + value;\n gsap.set(marker, vars);\n},\n // _mergeAnimations = animations => {\n// \tlet tl = gsap.timeline({smoothChildTiming: true}).startTime(Math.min(...animations.map(a => a.globalTime(0))));\n// \tanimations.forEach(a => {let time = a.totalTime(); tl.add(a); a.totalTime(time); });\n// \ttl.smoothChildTiming = false;\n// \treturn tl;\n// },\n// returns a function that can be used to tween the scroll position in the direction provided, and when doing so it'll add a .tween property to the FUNCTION itself, and remove it when the tween completes or gets killed. This gives us a way to have multiple ScrollTriggers use a central function for any given scroller and see if there's a scroll tween running (which would affect if/how things get updated)\n_getTweenCreator = function _getTweenCreator(scroller, direction) {\n var getScroll = _getScrollFunc(scroller, direction),\n prop = \"_scroll\" + direction.p2,\n // add a tweenable property to the scroller that's a getter/setter function, like _scrollTop or _scrollLeft. This way, if someone does gsap.killTweensOf(scroller) it'll kill the scroll tween.\n getTween = function getTween(scrollTo, vars, initialValue, change1, change2) {\n var tween = getTween.tween,\n onComplete = vars.onComplete,\n modifiers = {};\n initialValue = initialValue || getScroll();\n\n var checkForInterruption = _interruptionTracker(getScroll, initialValue, function () {\n tween.kill();\n getTween.tween = 0;\n });\n\n change2 = change1 && change2 || 0; // if change1 is 0, we set that to the difference and ignore change2. Otherwise, there would be a compound effect.\n\n change1 = change1 || scrollTo - initialValue;\n tween && tween.kill();\n vars[prop] = scrollTo;\n vars.modifiers = modifiers;\n\n modifiers[prop] = function () {\n return checkForInterruption(initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio);\n };\n\n vars.onUpdate = function () {\n _scrollers.cache++;\n getTween.tween && _updateAll(); // if it was interrupted/killed, like in a context.revert(), don't force an updateAll()\n };\n\n vars.onComplete = function () {\n getTween.tween = 0;\n onComplete && onComplete.call(tween);\n };\n\n tween = getTween.tween = gsap.to(scroller, vars);\n return tween;\n };\n\n scroller[prop] = getScroll;\n\n getScroll.wheelHandler = function () {\n return getTween.tween && getTween.tween.kill() && (getTween.tween = 0);\n };\n\n _addListener(scroller, \"wheel\", getScroll.wheelHandler); // Windows machines handle mousewheel scrolling in chunks (like \"3 lines per scroll\") meaning the typical strategy for cancelling the scroll isn't as sensitive. It's much more likely to match one of the previous 2 scroll event positions. So we kill any snapping as soon as there's a wheel event.\n\n\n ScrollTrigger.isTouch && _addListener(scroller, \"touchmove\", getScroll.wheelHandler);\n return getTween;\n};\n\nexport var ScrollTrigger = /*#__PURE__*/function () {\n function ScrollTrigger(vars, animation) {\n _coreInitted || ScrollTrigger.register(gsap) || console.warn(\"Please gsap.registerPlugin(ScrollTrigger)\");\n\n _context(this);\n\n this.init(vars, animation);\n }\n\n var _proto = ScrollTrigger.prototype;\n\n _proto.init = function init(vars, animation) {\n this.progress = this.start = 0;\n this.vars && this.kill(true, true); // in case it's being initted again\n\n if (!_enabled) {\n this.update = this.refresh = this.kill = _passThrough;\n return;\n }\n\n vars = _setDefaults(_isString(vars) || _isNumber(vars) || vars.nodeType ? {\n trigger: vars\n } : vars, _defaults);\n\n var _vars = vars,\n onUpdate = _vars.onUpdate,\n toggleClass = _vars.toggleClass,\n id = _vars.id,\n onToggle = _vars.onToggle,\n onRefresh = _vars.onRefresh,\n scrub = _vars.scrub,\n trigger = _vars.trigger,\n pin = _vars.pin,\n pinSpacing = _vars.pinSpacing,\n invalidateOnRefresh = _vars.invalidateOnRefresh,\n anticipatePin = _vars.anticipatePin,\n onScrubComplete = _vars.onScrubComplete,\n onSnapComplete = _vars.onSnapComplete,\n once = _vars.once,\n snap = _vars.snap,\n pinReparent = _vars.pinReparent,\n pinSpacer = _vars.pinSpacer,\n containerAnimation = _vars.containerAnimation,\n fastScrollEnd = _vars.fastScrollEnd,\n preventOverlaps = _vars.preventOverlaps,\n direction = vars.horizontal || vars.containerAnimation && vars.horizontal !== false ? _horizontal : _vertical,\n isToggle = !scrub && scrub !== 0,\n scroller = _getTarget(vars.scroller || _win),\n scrollerCache = gsap.core.getCache(scroller),\n isViewport = _isViewport(scroller),\n useFixedPosition = (\"pinType\" in vars ? vars.pinType : _getProxyProp(scroller, \"pinType\") || isViewport && \"fixed\") === \"fixed\",\n callbacks = [vars.onEnter, vars.onLeave, vars.onEnterBack, vars.onLeaveBack],\n toggleActions = isToggle && vars.toggleActions.split(\" \"),\n markers = \"markers\" in vars ? vars.markers : _defaults.markers,\n borderWidth = isViewport ? 0 : parseFloat(_getComputedStyle(scroller)[\"border\" + direction.p2 + _Width]) || 0,\n self = this,\n onRefreshInit = vars.onRefreshInit && function () {\n return vars.onRefreshInit(self);\n },\n getScrollerSize = _getSizeFunc(scroller, isViewport, direction),\n getScrollerOffsets = _getOffsetsFunc(scroller, isViewport),\n lastSnap = 0,\n lastRefresh = 0,\n prevProgress = 0,\n scrollFunc = _getScrollFunc(scroller, direction),\n tweenTo,\n pinCache,\n snapFunc,\n scroll1,\n scroll2,\n start,\n end,\n markerStart,\n markerEnd,\n markerStartTrigger,\n markerEndTrigger,\n markerVars,\n executingOnRefresh,\n change,\n pinOriginalState,\n pinActiveState,\n pinState,\n spacer,\n offset,\n pinGetter,\n pinSetter,\n pinStart,\n pinChange,\n spacingStart,\n spacerState,\n markerStartSetter,\n pinMoves,\n markerEndSetter,\n cs,\n snap1,\n snap2,\n scrubTween,\n scrubSmooth,\n snapDurClamp,\n snapDelayedCall,\n prevScroll,\n prevAnimProgress,\n caMarkerSetter,\n customRevertReturn; // for the sake of efficiency, _startClamp/_endClamp serve like a truthy value indicating that clamping was enabled on the start/end, and ALSO store the actual pre-clamped numeric value. We tap into that in ScrollSmoother for speed effects. So for example, if start=\"clamp(top bottom)\" results in a start of -100 naturally, it would get clamped to 0 but -100 would be stored in _startClamp.\n\n\n self._startClamp = self._endClamp = false;\n self._dir = direction;\n anticipatePin *= 45;\n self.scroller = scroller;\n self.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc;\n scroll1 = scrollFunc();\n self.vars = vars;\n animation = animation || vars.animation;\n\n if (\"refreshPriority\" in vars) {\n _sort = 1;\n vars.refreshPriority === -9999 && (_primary = self); // used by ScrollSmoother\n }\n\n scrollerCache.tweenScroll = scrollerCache.tweenScroll || {\n top: _getTweenCreator(scroller, _vertical),\n left: _getTweenCreator(scroller, _horizontal)\n };\n self.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p];\n\n self.scrubDuration = function (value) {\n scrubSmooth = _isNumber(value) && value;\n\n if (!scrubSmooth) {\n scrubTween && scrubTween.progress(1).kill();\n scrubTween = 0;\n } else {\n scrubTween ? scrubTween.duration(value) : scrubTween = gsap.to(animation, {\n ease: \"expo\",\n totalProgress: \"+=0\",\n duration: scrubSmooth,\n paused: true,\n onComplete: function onComplete() {\n return onScrubComplete && onScrubComplete(self);\n }\n });\n }\n };\n\n if (animation) {\n animation.vars.lazy = false;\n animation._initted && !self.isReverted || animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.duration() && animation.render(0, true, true); // special case: if this ScrollTrigger gets re-initted, a from() tween with a stagger could get initted initially and then reverted on the re-init which means it'll need to get rendered again here to properly display things. Otherwise, See https://gsap.com/forums/topic/36777-scrollsmoother-splittext-nextjs/ and https://codepen.io/GreenSock/pen/eYPyPpd?editors=0010\n\n self.animation = animation.pause();\n animation.scrollTrigger = self;\n self.scrubDuration(scrub);\n snap1 = 0;\n id || (id = animation.vars.id);\n }\n\n if (snap) {\n // TODO: potential idea: use legitimate CSS scroll snapping by pushing invisible elements into the DOM that serve as snap positions, and toggle the document.scrollingElement.style.scrollSnapType onToggle. See https://codepen.io/GreenSock/pen/JjLrgWM for a quick proof of concept.\n if (!_isObject(snap) || snap.push) {\n snap = {\n snapTo: snap\n };\n }\n\n \"scrollBehavior\" in _body.style && gsap.set(isViewport ? [_body, _docEl] : scroller, {\n scrollBehavior: \"auto\"\n }); // smooth scrolling doesn't work with snap.\n\n _scrollers.forEach(function (o) {\n return _isFunction(o) && o.target === (isViewport ? _doc.scrollingElement || _docEl : scroller) && (o.smooth = false);\n }); // note: set smooth to false on both the vertical and horizontal scroll getters/setters\n\n\n snapFunc = _isFunction(snap.snapTo) ? snap.snapTo : snap.snapTo === \"labels\" ? _getClosestLabel(animation) : snap.snapTo === \"labelsDirectional\" ? _getLabelAtDirection(animation) : snap.directional !== false ? function (value, st) {\n return _snapDirectional(snap.snapTo)(value, _getTime() - lastRefresh < 500 ? 0 : st.direction);\n } : gsap.utils.snap(snap.snapTo);\n snapDurClamp = snap.duration || {\n min: 0.1,\n max: 2\n };\n snapDurClamp = _isObject(snapDurClamp) ? _clamp(snapDurClamp.min, snapDurClamp.max) : _clamp(snapDurClamp, snapDurClamp);\n snapDelayedCall = gsap.delayedCall(snap.delay || scrubSmooth / 2 || 0.1, function () {\n var scroll = scrollFunc(),\n refreshedRecently = _getTime() - lastRefresh < 500,\n tween = tweenTo.tween;\n\n if ((refreshedRecently || Math.abs(self.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) {\n var progress = (scroll - start) / change,\n totalProgress = animation && !isToggle ? animation.totalProgress() : progress,\n velocity = refreshedRecently ? 0 : (totalProgress - snap2) / (_getTime() - _time2) * 1000 || 0,\n change1 = gsap.utils.clamp(-progress, 1 - progress, _abs(velocity / 2) * velocity / 0.185),\n naturalEnd = progress + (snap.inertia === false ? 0 : change1),\n endValue = _clamp(0, 1, snapFunc(naturalEnd, self)),\n endScroll = Math.round(start + endValue * change),\n _snap = snap,\n onStart = _snap.onStart,\n _onInterrupt = _snap.onInterrupt,\n _onComplete = _snap.onComplete;\n\n if (scroll <= end && scroll >= start && endScroll !== scroll) {\n if (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) {\n // there's an overlapping snap! So we must figure out which one is closer and let that tween live.\n return;\n }\n\n if (snap.inertia === false) {\n change1 = endValue - progress;\n }\n\n tweenTo(endScroll, {\n duration: snapDurClamp(_abs(Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05 || 0)),\n ease: snap.ease || \"power3\",\n data: _abs(endScroll - scroll),\n // record the distance so that if another snap tween occurs (conflict) we can prioritize the closest snap.\n onInterrupt: function onInterrupt() {\n return snapDelayedCall.restart(true) && _onInterrupt && _onInterrupt(self);\n },\n onComplete: function onComplete() {\n self.update();\n lastSnap = scrollFunc();\n scrubTween && animation && animation.progress(endValue); // the resolution of the scrollbar is limited, so we should correct the scrubbed animation's playhead at the end to match EXACTLY where it was supposed to snap\n\n snap1 = snap2 = animation && !isToggle ? animation.totalProgress() : self.progress;\n onSnapComplete && onSnapComplete(self);\n _onComplete && _onComplete(self);\n }\n }, scroll, change1 * change, endScroll - scroll - change1 * change);\n onStart && onStart(self, tweenTo.tween);\n }\n } else if (self.isActive && lastSnap !== scroll) {\n snapDelayedCall.restart(true);\n }\n }).pause();\n }\n\n id && (_ids[id] = self);\n trigger = self.trigger = _getTarget(trigger || pin !== true && pin); // if a trigger has some kind of scroll-related effect applied that could contaminate the \"y\" or \"x\" position (like a ScrollSmoother effect), we needed a way to temporarily revert it, so we use the stRevert property of the gsCache. It can return another function that we'll call at the end so it can return to its normal state.\n\n customRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert;\n customRevertReturn && (customRevertReturn = customRevertReturn(self));\n pin = pin === true ? trigger : _getTarget(pin);\n _isString(toggleClass) && (toggleClass = {\n targets: trigger,\n className: toggleClass\n });\n\n if (pin) {\n pinSpacing === false || pinSpacing === _margin || (pinSpacing = !pinSpacing && pin.parentNode && pin.parentNode.style && _getComputedStyle(pin.parentNode).display === \"flex\" ? false : _padding); // if the parent is display: flex, don't apply pinSpacing by default. We should check that pin.parentNode is an element (not shadow dom window)\n\n self.pin = pin;\n pinCache = gsap.core.getCache(pin);\n\n if (!pinCache.spacer) {\n // record the spacer and pinOriginalState on the cache in case someone tries pinning the same element with MULTIPLE ScrollTriggers - we don't want to have multiple spacers or record the \"original\" pin state after it has already been affected by another ScrollTrigger.\n if (pinSpacer) {\n pinSpacer = _getTarget(pinSpacer);\n pinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement); // for React & Angular\n\n pinCache.spacerIsNative = !!pinSpacer;\n pinSpacer && (pinCache.spacerState = _getState(pinSpacer));\n }\n\n pinCache.spacer = spacer = pinSpacer || _doc.createElement(\"div\");\n spacer.classList.add(\"pin-spacer\");\n id && spacer.classList.add(\"pin-spacer-\" + id);\n pinCache.pinState = pinOriginalState = _getState(pin);\n } else {\n pinOriginalState = pinCache.pinState;\n }\n\n vars.force3D !== false && gsap.set(pin, {\n force3D: true\n });\n self.spacer = spacer = pinCache.spacer;\n cs = _getComputedStyle(pin);\n spacingStart = cs[pinSpacing + direction.os2];\n pinGetter = gsap.getProperty(pin);\n pinSetter = gsap.quickSetter(pin, direction.a, _px); // pin.firstChild && !_maxScroll(pin, direction) && (pin.style.overflow = \"hidden\"); // protects from collapsing margins, but can have unintended consequences as demonstrated here: https://codepen.io/GreenSock/pen/1e42c7a73bfa409d2cf1e184e7a4248d so it was removed in favor of just telling people to set up their CSS to avoid the collapsing margins (overflow: hidden | auto is just one option. Another is border-top: 1px solid transparent).\n\n _swapPinIn(pin, spacer, cs);\n\n pinState = _getState(pin);\n }\n\n if (markers) {\n markerVars = _isObject(markers) ? _setDefaults(markers, _markerDefaults) : _markerDefaults;\n markerStartTrigger = _createMarker(\"scroller-start\", id, scroller, direction, markerVars, 0);\n markerEndTrigger = _createMarker(\"scroller-end\", id, scroller, direction, markerVars, 0, markerStartTrigger);\n offset = markerStartTrigger[\"offset\" + direction.op.d2];\n\n var content = _getTarget(_getProxyProp(scroller, \"content\") || scroller);\n\n markerStart = this.markerStart = _createMarker(\"start\", id, content, direction, markerVars, offset, 0, containerAnimation);\n markerEnd = this.markerEnd = _createMarker(\"end\", id, content, direction, markerVars, offset, 0, containerAnimation);\n containerAnimation && (caMarkerSetter = gsap.quickSetter([markerStart, markerEnd], direction.a, _px));\n\n if (!useFixedPosition && !(_proxies.length && _getProxyProp(scroller, \"fixedMarkers\") === true)) {\n _makePositionable(isViewport ? _body : scroller);\n\n gsap.set([markerStartTrigger, markerEndTrigger], {\n force3D: true\n });\n markerStartSetter = gsap.quickSetter(markerStartTrigger, direction.a, _px);\n markerEndSetter = gsap.quickSetter(markerEndTrigger, direction.a, _px);\n }\n }\n\n if (containerAnimation) {\n var oldOnUpdate = containerAnimation.vars.onUpdate,\n oldParams = containerAnimation.vars.onUpdateParams;\n containerAnimation.eventCallback(\"onUpdate\", function () {\n self.update(0, 0, 1);\n oldOnUpdate && oldOnUpdate.apply(containerAnimation, oldParams || []);\n });\n }\n\n self.previous = function () {\n return _triggers[_triggers.indexOf(self) - 1];\n };\n\n self.next = function () {\n return _triggers[_triggers.indexOf(self) + 1];\n };\n\n self.revert = function (revert, temp) {\n if (!temp) {\n return self.kill(true);\n } // for compatibility with gsap.context() and gsap.matchMedia() which call revert()\n\n\n var r = revert !== false || !self.enabled,\n prevRefreshing = _refreshing;\n\n if (r !== self.isReverted) {\n if (r) {\n prevScroll = Math.max(scrollFunc(), self.scroll.rec || 0); // record the scroll so we can revert later (repositioning/pinning things can affect scroll position). In the static refresh() method, we first record all the scroll positions as a reference.\n\n prevProgress = self.progress;\n prevAnimProgress = animation && animation.progress();\n }\n\n markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function (m) {\n return m.style.display = r ? \"none\" : \"block\";\n });\n\n if (r) {\n _refreshing = self;\n self.update(r); // make sure the pin is back in its original position so that all the measurements are correct. do this BEFORE swapping the pin out\n }\n\n if (pin && (!pinReparent || !self.isActive)) {\n if (r) {\n _swapPinOut(pin, spacer, pinOriginalState);\n } else {\n _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState);\n }\n }\n\n r || self.update(r); // when we're restoring, the update should run AFTER swapping the pin into its pin-spacer.\n\n _refreshing = prevRefreshing; // restore. We set it to true during the update() so that things fire properly in there.\n\n self.isReverted = r;\n }\n };\n\n self.refresh = function (soft, force, position, pinOffset) {\n // position is typically only defined if it's coming from setPositions() - it's a way to skip the normal parsing. pinOffset is also only from setPositions() and is mostly related to fancy stuff we need to do in ScrollSmoother with effects\n if ((_refreshing || !self.enabled) && !force) {\n return;\n }\n\n if (pin && soft && _lastScrollTime) {\n _addListener(ScrollTrigger, \"scrollEnd\", _softRefresh);\n\n return;\n }\n\n !_refreshingAll && onRefreshInit && onRefreshInit(self);\n _refreshing = self;\n\n if (tweenTo.tween && !position) {\n // we skip this if a position is passed in because typically that's from .setPositions() and it's best to allow in-progress snapping to continue.\n tweenTo.tween.kill();\n tweenTo.tween = 0;\n }\n\n scrubTween && scrubTween.pause();\n invalidateOnRefresh && animation && animation.revert({\n kill: false\n }).invalidate();\n self.isReverted || self.revert(true, true);\n self._subPinOffset = false; // we'll set this to true in the sub-pins if we find any\n\n var size = getScrollerSize(),\n scrollerBounds = getScrollerOffsets(),\n max = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction),\n isFirstRefresh = change <= 0.01,\n offset = 0,\n otherPinOffset = pinOffset || 0,\n parsedEnd = _isObject(position) ? position.end : vars.end,\n parsedEndTrigger = vars.endTrigger || trigger,\n parsedStart = _isObject(position) ? position.start : vars.start || (vars.start === 0 || !trigger ? 0 : pin ? \"0 0\" : \"0 100%\"),\n pinnedContainer = self.pinnedContainer = vars.pinnedContainer && _getTarget(vars.pinnedContainer, self),\n triggerIndex = trigger && Math.max(0, _triggers.indexOf(self)) || 0,\n i = triggerIndex,\n cs,\n bounds,\n scroll,\n isVertical,\n override,\n curTrigger,\n curPin,\n oppositeScroll,\n initted,\n revertedPins,\n forcedOverflow,\n markerStartOffset,\n markerEndOffset;\n\n if (markers && _isObject(position)) {\n // if we alter the start/end positions with .setPositions(), it generally feeds in absolute NUMBERS which don't convey information about where to line up the markers, so to keep it intuitive, we record how far the trigger positions shift after applying the new numbers and then offset by that much in the opposite direction. We do the same to the associated trigger markers too of course.\n markerStartOffset = gsap.getProperty(markerStartTrigger, direction.p);\n markerEndOffset = gsap.getProperty(markerEndTrigger, direction.p);\n }\n\n while (i--) {\n // user might try to pin the same element more than once, so we must find any prior triggers with the same pin, revert them, and determine how long they're pinning so that we can offset things appropriately. Make sure we revert from last to first so that things \"rewind\" properly.\n curTrigger = _triggers[i];\n curTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = self); // if it's a timeline-based trigger that hasn't been fully initialized yet because it's waiting for 1 tick, just force the refresh() here, otherwise if it contains a pin that's supposed to affect other ScrollTriggers further down the page, they won't be adjusted properly.\n\n curPin = curTrigger.pin;\n\n if (curPin && (curPin === trigger || curPin === pin || curPin === pinnedContainer) && !curTrigger.isReverted) {\n revertedPins || (revertedPins = []);\n revertedPins.unshift(curTrigger); // we'll revert from first to last to make sure things reach their end state properly\n\n curTrigger.revert(true, true);\n }\n\n if (curTrigger !== _triggers[i]) {\n // in case it got removed.\n triggerIndex--;\n i--;\n }\n }\n\n _isFunction(parsedStart) && (parsedStart = parsedStart(self));\n parsedStart = _parseClamp(parsedStart, \"start\", self);\n start = _parsePosition(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self._startClamp && \"_startClamp\") || (pin ? -0.001 : 0);\n _isFunction(parsedEnd) && (parsedEnd = parsedEnd(self));\n\n if (_isString(parsedEnd) && !parsedEnd.indexOf(\"+=\")) {\n if (~parsedEnd.indexOf(\" \")) {\n parsedEnd = (_isString(parsedStart) ? parsedStart.split(\" \")[0] : \"\") + parsedEnd;\n } else {\n offset = _offsetToPx(parsedEnd.substr(2), size);\n parsedEnd = _isString(parsedStart) ? parsedStart : (containerAnimation ? gsap.utils.mapRange(0, containerAnimation.duration(), containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, start) : start) + offset; // _parsePosition won't factor in the offset if the start is a number, so do it here.\n\n parsedEndTrigger = trigger;\n }\n }\n\n parsedEnd = _parseClamp(parsedEnd, \"end\", self);\n end = Math.max(start, _parsePosition(parsedEnd || (parsedEndTrigger ? \"100% 0\" : max), parsedEndTrigger, size, direction, scrollFunc() + offset, markerEnd, markerEndTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self._endClamp && \"_endClamp\")) || -0.001;\n offset = 0;\n i = triggerIndex;\n\n while (i--) {\n curTrigger = _triggers[i];\n curPin = curTrigger.pin;\n\n if (curPin && curTrigger.start - curTrigger._pinPush <= start && !containerAnimation && curTrigger.end > 0) {\n cs = curTrigger.end - (self._startClamp ? Math.max(0, curTrigger.start) : curTrigger.start);\n\n if ((curPin === trigger && curTrigger.start - curTrigger._pinPush < start || curPin === pinnedContainer) && isNaN(parsedStart)) {\n // numeric start values shouldn't be offset at all - treat them as absolute\n offset += cs * (1 - curTrigger.progress);\n }\n\n curPin === pin && (otherPinOffset += cs);\n }\n }\n\n start += offset;\n end += offset;\n self._startClamp && (self._startClamp += offset);\n\n if (self._endClamp && !_refreshingAll) {\n self._endClamp = end || -0.001;\n end = Math.min(end, _maxScroll(scroller, direction));\n }\n\n change = end - start || (start -= 0.01) && 0.001;\n\n if (isFirstRefresh) {\n // on the very first refresh(), the prevProgress couldn't have been accurate yet because the start/end were never calculated, so we set it here. Before 3.11.5, it could lead to an inaccurate scroll position restoration with snapping.\n prevProgress = gsap.utils.clamp(0, 1, gsap.utils.normalize(start, end, prevScroll));\n }\n\n self._pinPush = otherPinOffset;\n\n if (markerStart && offset) {\n // offset the markers if necessary\n cs = {};\n cs[direction.a] = \"+=\" + offset;\n pinnedContainer && (cs[direction.p] = \"-=\" + scrollFunc());\n gsap.set([markerStart, markerEnd], cs);\n }\n\n if (pin && !(_clampingMax && self.end >= _maxScroll(scroller, direction))) {\n cs = _getComputedStyle(pin);\n isVertical = direction === _vertical;\n scroll = scrollFunc(); // recalculate because the triggers can affect the scroll\n\n pinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset;\n\n if (!max && end > 1) {\n // makes sure the scroller has a scrollbar, otherwise if something has width: 100%, for example, it would be too big (exclude the scrollbar). See https://gsap.com/forums/topic/25182-scrolltrigger-width-of-page-increase-where-markers-are-set-to-false/\n forcedOverflow = (isViewport ? _doc.scrollingElement || _docEl : scroller).style;\n forcedOverflow = {\n style: forcedOverflow,\n value: forcedOverflow[\"overflow\" + direction.a.toUpperCase()]\n };\n\n if (isViewport && _getComputedStyle(_body)[\"overflow\" + direction.a.toUpperCase()] !== \"scroll\") {\n // avoid an extra scrollbar if BOTH and have overflow set to \"scroll\"\n forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = \"scroll\";\n }\n }\n\n _swapPinIn(pin, spacer, cs);\n\n pinState = _getState(pin); // transforms will interfere with the top/left/right/bottom placement, so remove them temporarily. getBoundingClientRect() factors in transforms.\n\n bounds = _getBounds(pin, true);\n oppositeScroll = useFixedPosition && _getScrollFunc(scroller, isVertical ? _horizontal : _vertical)();\n\n if (pinSpacing) {\n spacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px];\n spacerState.t = spacer;\n i = pinSpacing === _padding ? _getSize(pin, direction) + change + otherPinOffset : 0;\n\n if (i) {\n spacerState.push(direction.d, i + _px); // for box-sizing: border-box (must include padding).\n\n spacer.style.flexBasis !== \"auto\" && (spacer.style.flexBasis = i + _px);\n }\n\n _setState(spacerState);\n\n if (pinnedContainer) {\n // in ScrollTrigger.refresh(), we need to re-evaluate the pinContainer's size because this pinSpacing may stretch it out, but we can't just add the exact distance because depending on layout, it may not push things down or it may only do so partially.\n _triggers.forEach(function (t) {\n if (t.pin === pinnedContainer && t.vars.pinSpacing !== false) {\n t._subPinOffset = true;\n }\n });\n }\n\n useFixedPosition && scrollFunc(prevScroll);\n }\n\n if (useFixedPosition) {\n override = {\n top: bounds.top + (isVertical ? scroll - start : oppositeScroll) + _px,\n left: bounds.left + (isVertical ? oppositeScroll : scroll - start) + _px,\n boxSizing: \"border-box\",\n position: \"fixed\"\n };\n override[_width] = override[\"max\" + _Width] = Math.ceil(bounds.width) + _px;\n override[_height] = override[\"max\" + _Height] = Math.ceil(bounds.height) + _px;\n override[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = \"0\";\n override[_padding] = cs[_padding];\n override[_padding + _Top] = cs[_padding + _Top];\n override[_padding + _Right] = cs[_padding + _Right];\n override[_padding + _Bottom] = cs[_padding + _Bottom];\n override[_padding + _Left] = cs[_padding + _Left];\n pinActiveState = _copyState(pinOriginalState, override, pinReparent);\n _refreshingAll && scrollFunc(0);\n }\n\n if (animation) {\n // the animation might be affecting the transform, so we must jump to the end, check the value, and compensate accordingly. Otherwise, when it becomes unpinned, the pinSetter() will get set to a value that doesn't include whatever the animation did.\n initted = animation._initted; // if not, we must invalidate() after this step, otherwise it could lock in starting values prematurely.\n\n _suppressOverwrites(1);\n\n animation.render(animation.duration(), true, true);\n pinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset;\n pinMoves = Math.abs(change - pinChange) > 1;\n useFixedPosition && pinMoves && pinActiveState.splice(pinActiveState.length - 2, 2); // transform is the last property/value set in the state Array. Since the animation is controlling that, we should omit it.\n\n animation.render(0, true, true);\n initted || animation.invalidate(true);\n animation.parent || animation.totalTime(animation.totalTime()); // if, for example, a toggleAction called play() and then refresh() happens and when we render(1) above, it would cause the animation to complete and get removed from its parent, so this makes sure it gets put back in.\n\n _suppressOverwrites(0);\n } else {\n pinChange = change;\n }\n\n forcedOverflow && (forcedOverflow.value ? forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = forcedOverflow.value : forcedOverflow.style.removeProperty(\"overflow-\" + direction.a));\n } else if (trigger && scrollFunc() && !containerAnimation) {\n // it may be INSIDE a pinned element, so walk up the tree and look for any elements with _pinOffset to compensate because anything with pinSpacing that's already scrolled would throw off the measurements in getBoundingClientRect()\n bounds = trigger.parentNode;\n\n while (bounds && bounds !== _body) {\n if (bounds._pinOffset) {\n start -= bounds._pinOffset;\n end -= bounds._pinOffset;\n }\n\n bounds = bounds.parentNode;\n }\n }\n\n revertedPins && revertedPins.forEach(function (t) {\n return t.revert(false, true);\n });\n self.start = start;\n self.end = end;\n scroll1 = scroll2 = _refreshingAll ? prevScroll : scrollFunc(); // reset velocity\n\n if (!containerAnimation && !_refreshingAll) {\n scroll1 < prevScroll && scrollFunc(prevScroll);\n self.scroll.rec = 0;\n }\n\n self.revert(false, true);\n lastRefresh = _getTime();\n\n if (snapDelayedCall) {\n lastSnap = -1; // just so snapping gets re-enabled, clear out any recorded last value\n // self.isActive && scrollFunc(start + change * prevProgress); // previously this line was here to ensure that when snapping kicks in, it's from the previous progress but in some cases that's not desirable, like an all-page ScrollTrigger when new content gets added to the page, that'd totally change the progress.\n\n snapDelayedCall.restart(true);\n }\n\n _refreshing = 0;\n animation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress || 0, true).render(animation.time(), true, true); // must force a re-render because if saveStyles() was used on the target(s), the styles could have been wiped out during the refresh().\n\n if (isFirstRefresh || prevProgress !== self.progress || containerAnimation) {\n // ensures that the direction is set properly (when refreshing, progress is set back to 0 initially, then back again to wherever it needs to be) and that callbacks are triggered.\n animation && !isToggle && animation.totalProgress(containerAnimation && start < -0.001 && !prevProgress ? gsap.utils.normalize(start, end, 0) : prevProgress, true); // to avoid issues where animation callbacks like onStart aren't triggered.\n\n self.progress = isFirstRefresh || (scroll1 - start) / change === prevProgress ? 0 : prevProgress;\n }\n\n pin && pinSpacing && (spacer._pinOffset = Math.round(self.progress * pinChange));\n scrubTween && scrubTween.invalidate();\n\n if (!isNaN(markerStartOffset)) {\n // numbers were passed in for the position which are absolute, so instead of just putting the markers at the very bottom of the viewport, we figure out how far they shifted down (it's safe to assume they were originally positioned in closer relation to the trigger element with values like \"top\", \"center\", a percentage or whatever, so we offset that much in the opposite direction to basically revert them to the relative position thy were at previously.\n markerStartOffset -= gsap.getProperty(markerStartTrigger, direction.p);\n markerEndOffset -= gsap.getProperty(markerEndTrigger, direction.p);\n\n _shiftMarker(markerStartTrigger, direction, markerStartOffset);\n\n _shiftMarker(markerStart, direction, markerStartOffset - (pinOffset || 0));\n\n _shiftMarker(markerEndTrigger, direction, markerEndOffset);\n\n _shiftMarker(markerEnd, direction, markerEndOffset - (pinOffset || 0));\n }\n\n isFirstRefresh && !_refreshingAll && self.update(); // edge case - when you reload a page when it's already scrolled down, some browsers fire a \"scroll\" event before DOMContentLoaded, triggering an updateAll(). If we don't update the self.progress as part of refresh(), then when it happens next, it may record prevProgress as 0 when it really shouldn't, potentially causing a callback in an animation to fire again.\n\n if (onRefresh && !_refreshingAll && !executingOnRefresh) {\n // when refreshing all, we do extra work to correct pinnedContainer sizes and ensure things don't exceed the maxScroll, so we should do all the refreshes at the end after all that work so that the start/end values are corrected.\n executingOnRefresh = true;\n onRefresh(self);\n executingOnRefresh = false;\n }\n };\n\n self.getVelocity = function () {\n return (scrollFunc() - scroll2) / (_getTime() - _time2) * 1000 || 0;\n };\n\n self.endAnimation = function () {\n _endAnimation(self.callbackAnimation);\n\n if (animation) {\n scrubTween ? scrubTween.progress(1) : !animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self.direction < 0, 1);\n }\n };\n\n self.labelToScroll = function (label) {\n return animation && animation.labels && (start || self.refresh() || start) + animation.labels[label] / animation.duration() * change || 0;\n };\n\n self.getTrailing = function (name) {\n var i = _triggers.indexOf(self),\n a = self.direction > 0 ? _triggers.slice(0, i).reverse() : _triggers.slice(i + 1);\n\n return (_isString(name) ? a.filter(function (t) {\n return t.vars.preventOverlaps === name;\n }) : a).filter(function (t) {\n return self.direction > 0 ? t.end <= start : t.start >= end;\n });\n };\n\n self.update = function (reset, recordVelocity, forceFake) {\n if (containerAnimation && !forceFake && !reset) {\n return;\n }\n\n var scroll = _refreshingAll === true ? prevScroll : self.scroll(),\n p = reset ? 0 : (scroll - start) / change,\n clipped = p < 0 ? 0 : p > 1 ? 1 : p || 0,\n prevProgress = self.progress,\n isActive,\n wasActive,\n toggleState,\n action,\n stateChanged,\n toggled,\n isAtMax,\n isTakingAction;\n\n if (recordVelocity) {\n scroll2 = scroll1;\n scroll1 = containerAnimation ? scrollFunc() : scroll;\n\n if (snap) {\n snap2 = snap1;\n snap1 = animation && !isToggle ? animation.totalProgress() : clipped;\n }\n } // anticipate the pinning a few ticks ahead of time based on velocity to avoid a visual glitch due to the fact that most browsers do scrolling on a separate thread (not synced with requestAnimationFrame).\n\n\n anticipatePin && !clipped && pin && !_refreshing && !_startup && _lastScrollTime && start < scroll + (scroll - scroll2) / (_getTime() - _time2) * anticipatePin && (clipped = 0.0001);\n\n if (clipped !== prevProgress && self.enabled) {\n isActive = self.isActive = !!clipped && clipped < 1;\n wasActive = !!prevProgress && prevProgress < 1;\n toggled = isActive !== wasActive;\n stateChanged = toggled || !!clipped !== !!prevProgress; // could go from start all the way to end, thus it didn't toggle but it did change state in a sense (may need to fire a callback)\n\n self.direction = clipped > prevProgress ? 1 : -1;\n self.progress = clipped;\n\n if (stateChanged && !_refreshing) {\n toggleState = clipped && !prevProgress ? 0 : clipped === 1 ? 1 : prevProgress === 1 ? 2 : 3; // 0 = enter, 1 = leave, 2 = enterBack, 3 = leaveBack (we prioritize the FIRST encounter, thus if you scroll really fast past the onEnter and onLeave in one tick, it'd prioritize onEnter.\n\n if (isToggle) {\n action = !toggled && toggleActions[toggleState + 1] !== \"none\" && toggleActions[toggleState + 1] || toggleActions[toggleState]; // if it didn't toggle, that means it shot right past and since we prioritize the \"enter\" action, we should switch to the \"leave\" in this case (but only if one is defined)\n\n isTakingAction = animation && (action === \"complete\" || action === \"reset\" || action in animation);\n }\n }\n\n preventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction(preventOverlaps) ? preventOverlaps(self) : self.getTrailing(preventOverlaps).forEach(function (t) {\n return t.endAnimation();\n }));\n\n if (!isToggle) {\n if (scrubTween && !_refreshing && !_startup) {\n scrubTween._dp._time - scrubTween._start !== scrubTween._time && scrubTween.render(scrubTween._dp._time - scrubTween._start); // if there's a scrub on both the container animation and this one (or a ScrollSmoother), the update order would cause this one not to have rendered yet, so it wouldn't make any progress before we .restart() it heading toward the new progress so it'd appear stuck thus we force a render here.\n\n if (scrubTween.resetTo) {\n scrubTween.resetTo(\"totalProgress\", clipped, animation._tTime / animation._tDur);\n } else {\n // legacy support (courtesy), before 3.10.0\n scrubTween.vars.totalProgress = clipped;\n scrubTween.invalidate().restart();\n }\n } else if (animation) {\n animation.totalProgress(clipped, !!(_refreshing && (lastRefresh || reset)));\n }\n }\n\n if (pin) {\n reset && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart);\n\n if (!useFixedPosition) {\n pinSetter(_round(pinStart + pinChange * clipped));\n } else if (stateChanged) {\n isAtMax = !reset && clipped > prevProgress && end + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction); // if it's at the VERY end of the page, don't switch away from position: fixed because it's pointless and it could cause a brief flash when the user scrolls back up (when it gets pinned again)\n\n if (pinReparent) {\n if (!reset && (isActive || isAtMax)) {\n var bounds = _getBounds(pin, true),\n _offset = scroll - start;\n\n _reparent(pin, _body, bounds.top + (direction === _vertical ? _offset : 0) + _px, bounds.left + (direction === _vertical ? 0 : _offset) + _px);\n } else {\n _reparent(pin, spacer);\n }\n }\n\n _setState(isActive || isAtMax ? pinActiveState : pinState);\n\n pinMoves && clipped < 1 && isActive || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0));\n }\n }\n\n snap && !tweenTo.tween && !_refreshing && !_startup && snapDelayedCall.restart(true);\n toggleClass && (toggled || once && clipped && (clipped < 1 || !_limitCallbacks)) && _toArray(toggleClass.targets).forEach(function (el) {\n return el.classList[isActive || once ? \"add\" : \"remove\"](toggleClass.className);\n }); // classes could affect positioning, so do it even if reset or refreshing is true.\n\n onUpdate && !isToggle && !reset && onUpdate(self);\n\n if (stateChanged && !_refreshing) {\n if (isToggle) {\n if (isTakingAction) {\n if (action === \"complete\") {\n animation.pause().totalProgress(1);\n } else if (action === \"reset\") {\n animation.restart(true).pause();\n } else if (action === \"restart\") {\n animation.restart(true);\n } else {\n animation[action]();\n }\n }\n\n onUpdate && onUpdate(self);\n }\n\n if (toggled || !_limitCallbacks) {\n // on startup, the page could be scrolled and we don't want to fire callbacks that didn't toggle. For example onEnter shouldn't fire if the ScrollTrigger isn't actually entered.\n onToggle && toggled && _callback(self, onToggle);\n callbacks[toggleState] && _callback(self, callbacks[toggleState]);\n once && (clipped === 1 ? self.kill(false, 1) : callbacks[toggleState] = 0); // a callback shouldn't be called again if once is true.\n\n if (!toggled) {\n // it's possible to go completely past, like from before the start to after the end (or vice-versa) in which case BOTH callbacks should be fired in that order\n toggleState = clipped === 1 ? 1 : 3;\n callbacks[toggleState] && _callback(self, callbacks[toggleState]);\n }\n }\n\n if (fastScrollEnd && !isActive && Math.abs(self.getVelocity()) > (_isNumber(fastScrollEnd) ? fastScrollEnd : 2500)) {\n _endAnimation(self.callbackAnimation);\n\n scrubTween ? scrubTween.progress(1) : _endAnimation(animation, action === \"reverse\" ? 1 : !clipped, 1);\n }\n } else if (isToggle && onUpdate && !_refreshing) {\n onUpdate(self);\n }\n } // update absolutely-positioned markers (only if the scroller isn't the viewport)\n\n\n if (markerEndSetter) {\n var n = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll;\n markerStartSetter(n + (markerStartTrigger._isFlipped ? 1 : 0));\n markerEndSetter(n);\n }\n\n caMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0));\n };\n\n self.enable = function (reset, refresh) {\n if (!self.enabled) {\n self.enabled = true;\n\n _addListener(scroller, \"resize\", _onResize);\n\n isViewport || _addListener(scroller, \"scroll\", _onScroll);\n onRefreshInit && _addListener(ScrollTrigger, \"refreshInit\", onRefreshInit);\n\n if (reset !== false) {\n self.progress = prevProgress = 0;\n scroll1 = scroll2 = lastSnap = scrollFunc();\n }\n\n refresh !== false && self.refresh();\n }\n };\n\n self.getTween = function (snap) {\n return snap && tweenTo ? tweenTo.tween : scrubTween;\n };\n\n self.setPositions = function (newStart, newEnd, keepClamp, pinOffset) {\n // doesn't persist after refresh()! Intended to be a way to override values that were set during refresh(), like you could set it in onRefresh()\n if (containerAnimation) {\n // convert ratios into scroll positions. Remember, start/end values on ScrollTriggers that have a containerAnimation refer to the time (in seconds), NOT scroll positions.\n var st = containerAnimation.scrollTrigger,\n duration = containerAnimation.duration(),\n _change = st.end - st.start;\n\n newStart = st.start + _change * newStart / duration;\n newEnd = st.start + _change * newEnd / duration;\n }\n\n self.refresh(false, false, {\n start: _keepClamp(newStart, keepClamp && !!self._startClamp),\n end: _keepClamp(newEnd, keepClamp && !!self._endClamp)\n }, pinOffset);\n self.update();\n };\n\n self.adjustPinSpacing = function (amount) {\n if (spacerState && amount) {\n var i = spacerState.indexOf(direction.d) + 1;\n spacerState[i] = parseFloat(spacerState[i]) + amount + _px;\n spacerState[1] = parseFloat(spacerState[1]) + amount + _px;\n\n _setState(spacerState);\n }\n };\n\n self.disable = function (reset, allowAnimation) {\n if (self.enabled) {\n reset !== false && self.revert(true, true);\n self.enabled = self.isActive = false;\n allowAnimation || scrubTween && scrubTween.pause();\n prevScroll = 0;\n pinCache && (pinCache.uncache = 1);\n onRefreshInit && _removeListener(ScrollTrigger, \"refreshInit\", onRefreshInit);\n\n if (snapDelayedCall) {\n snapDelayedCall.pause();\n tweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0);\n }\n\n if (!isViewport) {\n var i = _triggers.length;\n\n while (i--) {\n if (_triggers[i].scroller === scroller && _triggers[i] !== self) {\n return; //don't remove the listeners if there are still other triggers referencing it.\n }\n }\n\n _removeListener(scroller, \"resize\", _onResize);\n\n isViewport || _removeListener(scroller, \"scroll\", _onScroll);\n }\n }\n };\n\n self.kill = function (revert, allowAnimation) {\n self.disable(revert, allowAnimation);\n scrubTween && !allowAnimation && scrubTween.kill();\n id && delete _ids[id];\n\n var i = _triggers.indexOf(self);\n\n i >= 0 && _triggers.splice(i, 1);\n i === _i && _direction > 0 && _i--; // if we're in the middle of a refresh() or update(), splicing would cause skips in the index, so adjust...\n // if no other ScrollTrigger instances of the same scroller are found, wipe out any recorded scroll position. Otherwise, in a single page application, for example, it could maintain scroll position when it really shouldn't.\n\n i = 0;\n\n _triggers.forEach(function (t) {\n return t.scroller === self.scroller && (i = 1);\n });\n\n i || _refreshingAll || (self.scroll.rec = 0);\n\n if (animation) {\n animation.scrollTrigger = null;\n revert && animation.revert({\n kill: false\n });\n allowAnimation || animation.kill();\n }\n\n markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function (m) {\n return m.parentNode && m.parentNode.removeChild(m);\n });\n _primary === self && (_primary = 0);\n\n if (pin) {\n pinCache && (pinCache.uncache = 1);\n i = 0;\n\n _triggers.forEach(function (t) {\n return t.pin === pin && i++;\n });\n\n i || (pinCache.spacer = 0); // if there aren't any more ScrollTriggers with the same pin, remove the spacer, otherwise it could be contaminated with old/stale values if the user re-creates a ScrollTrigger for the same element.\n }\n\n vars.onKill && vars.onKill(self);\n };\n\n _triggers.push(self);\n\n self.enable(false, false);\n customRevertReturn && customRevertReturn(self);\n\n if (animation && animation.add && !change) {\n // if the animation is a timeline, it may not have been populated yet, so it wouldn't render at the proper place on the first refresh(), thus we should schedule one for the next tick. If \"change\" is defined, we know it must be re-enabling, thus we can refresh() right away.\n var updateFunc = self.update; // some browsers may fire a scroll event BEFORE a tick elapses and/or the DOMContentLoaded fires. So there's a chance update() will be called BEFORE a refresh() has happened on a Timeline-attached ScrollTrigger which means the start/end won't be calculated yet. We don't want to add conditional logic inside the update() method (like check to see if end is defined and if not, force a refresh()) because that's a function that gets hit a LOT (performance). So we swap out the real update() method for this one that'll re-attach it the first time it gets called and of course forces a refresh().\n\n self.update = function () {\n self.update = updateFunc;\n start || end || self.refresh();\n };\n\n gsap.delayedCall(0.01, self.update);\n change = 0.01;\n start = end = 0;\n } else {\n self.refresh();\n }\n\n pin && _queueRefreshAll(); // pinning could affect the positions of other things, so make sure we queue a full refresh()\n };\n\n ScrollTrigger.register = function register(core) {\n if (!_coreInitted) {\n gsap = core || _getGSAP();\n _windowExists() && window.document && ScrollTrigger.enable();\n _coreInitted = _enabled;\n }\n\n return _coreInitted;\n };\n\n ScrollTrigger.defaults = function defaults(config) {\n if (config) {\n for (var p in config) {\n _defaults[p] = config[p];\n }\n }\n\n return _defaults;\n };\n\n ScrollTrigger.disable = function disable(reset, kill) {\n _enabled = 0;\n\n _triggers.forEach(function (trigger) {\n return trigger[kill ? \"kill\" : \"disable\"](reset);\n });\n\n _removeListener(_win, \"wheel\", _onScroll);\n\n _removeListener(_doc, \"scroll\", _onScroll);\n\n clearInterval(_syncInterval);\n\n _removeListener(_doc, \"touchcancel\", _passThrough);\n\n _removeListener(_body, \"touchstart\", _passThrough);\n\n _multiListener(_removeListener, _doc, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n\n _multiListener(_removeListener, _doc, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n\n _resizeDelay.kill();\n\n _iterateAutoRefresh(_removeListener);\n\n for (var i = 0; i < _scrollers.length; i += 3) {\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 1]);\n\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 2]);\n }\n };\n\n ScrollTrigger.enable = function enable() {\n _win = window;\n _doc = document;\n _docEl = _doc.documentElement;\n _body = _doc.body;\n\n if (gsap) {\n _toArray = gsap.utils.toArray;\n _clamp = gsap.utils.clamp;\n _context = gsap.core.context || _passThrough;\n _suppressOverwrites = gsap.core.suppressOverwrites || _passThrough;\n _scrollRestoration = _win.history.scrollRestoration || \"auto\";\n _lastScroll = _win.pageYOffset;\n gsap.core.globals(\"ScrollTrigger\", ScrollTrigger); // must register the global manually because in Internet Explorer, functions (classes) don't have a \"name\" property.\n\n if (_body) {\n _enabled = 1;\n _div100vh = document.createElement(\"div\"); // to solve mobile browser address bar show/hide resizing, we shouldn't rely on window.innerHeight. Instead, use a
with its height set to 100vh and measure that since that's what the scrolling is based on anyway and it's not affected by address bar showing/hiding.\n\n _div100vh.style.height = \"100vh\";\n _div100vh.style.position = \"absolute\";\n\n _refresh100vh();\n\n _rafBugFix();\n\n Observer.register(gsap); // isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer.\n\n ScrollTrigger.isTouch = Observer.isTouch;\n _fixIOSBug = Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent); // since 2017, iOS has had a bug that causes event.clientX/Y to be inaccurate when a scroll occurs, thus we must alternate ignoring every other touchmove event to work around it. See https://bugs.webkit.org/show_bug.cgi?id=181954 and https://codepen.io/GreenSock/pen/ExbrPNa/087cef197dc35445a0951e8935c41503\n\n _addListener(_win, \"wheel\", _onScroll); // mostly for 3rd party smooth scrolling libraries.\n\n\n _root = [_win, _doc, _docEl, _body];\n\n if (gsap.matchMedia) {\n ScrollTrigger.matchMedia = function (vars) {\n var mm = gsap.matchMedia(),\n p;\n\n for (p in vars) {\n mm.add(p, vars[p]);\n }\n\n return mm;\n };\n\n gsap.addEventListener(\"matchMediaInit\", function () {\n return _revertAll();\n });\n gsap.addEventListener(\"matchMediaRevert\", function () {\n return _revertRecorded();\n });\n gsap.addEventListener(\"matchMedia\", function () {\n _refreshAll(0, 1);\n\n _dispatch(\"matchMedia\");\n });\n gsap.matchMedia(\"(orientation: portrait)\", function () {\n // when orientation changes, we should take new base measurements for the ignoreMobileResize feature.\n _setBaseDimensions();\n\n return _setBaseDimensions;\n });\n } else {\n console.warn(\"Requires GSAP 3.11.0 or later\");\n }\n\n _setBaseDimensions();\n\n _addListener(_doc, \"scroll\", _onScroll); // some browsers (like Chrome), the window stops dispatching scroll events on the window if you scroll really fast, but it's consistent on the document!\n\n\n var bodyStyle = _body.style,\n border = bodyStyle.borderTopStyle,\n AnimationProto = gsap.core.Animation.prototype,\n bounds,\n i;\n AnimationProto.revert || Object.defineProperty(AnimationProto, \"revert\", {\n value: function value() {\n return this.time(-0.01, true);\n }\n }); // only for backwards compatibility (Animation.revert() was added after 3.10.4)\n\n bodyStyle.borderTopStyle = \"solid\"; // works around an issue where a margin of a child element could throw off the bounds of the _body, making it seem like there's a margin when there actually isn't. The border ensures that the bounds are accurate.\n\n bounds = _getBounds(_body);\n _vertical.m = Math.round(bounds.top + _vertical.sc()) || 0; // accommodate the offset of the caused by margins and/or padding\n\n _horizontal.m = Math.round(bounds.left + _horizontal.sc()) || 0;\n border ? bodyStyle.borderTopStyle = border : bodyStyle.removeProperty(\"border-top-style\"); // TODO: (?) maybe move to leveraging the velocity mechanism in Observer and skip intervals.\n\n _syncInterval = setInterval(_sync, 250);\n gsap.delayedCall(0.5, function () {\n return _startup = 0;\n });\n\n _addListener(_doc, \"touchcancel\", _passThrough); // some older Android devices intermittently stop dispatching \"touchmove\" events if we don't listen for \"touchcancel\" on the document.\n\n\n _addListener(_body, \"touchstart\", _passThrough); //works around Safari bug: https://gsap.com/forums/topic/21450-draggable-in-iframe-on-mobile-is-buggy/\n\n\n _multiListener(_addListener, _doc, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n\n _multiListener(_addListener, _doc, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n\n _transformProp = gsap.utils.checkPrefix(\"transform\");\n\n _stateProps.push(_transformProp);\n\n _coreInitted = _getTime();\n _resizeDelay = gsap.delayedCall(0.2, _refreshAll).pause();\n _autoRefresh = [_doc, \"visibilitychange\", function () {\n var w = _win.innerWidth,\n h = _win.innerHeight;\n\n if (_doc.hidden) {\n _prevWidth = w;\n _prevHeight = h;\n } else if (_prevWidth !== w || _prevHeight !== h) {\n _onResize();\n }\n }, _doc, \"DOMContentLoaded\", _refreshAll, _win, \"load\", _refreshAll, _win, \"resize\", _onResize];\n\n _iterateAutoRefresh(_addListener);\n\n _triggers.forEach(function (trigger) {\n return trigger.enable(0, 1);\n });\n\n for (i = 0; i < _scrollers.length; i += 3) {\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 1]);\n\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 2]);\n }\n }\n }\n };\n\n ScrollTrigger.config = function config(vars) {\n \"limitCallbacks\" in vars && (_limitCallbacks = !!vars.limitCallbacks);\n var ms = vars.syncInterval;\n ms && clearInterval(_syncInterval) || (_syncInterval = ms) && setInterval(_sync, ms);\n \"ignoreMobileResize\" in vars && (_ignoreMobileResize = ScrollTrigger.isTouch === 1 && vars.ignoreMobileResize);\n\n if (\"autoRefreshEvents\" in vars) {\n _iterateAutoRefresh(_removeListener) || _iterateAutoRefresh(_addListener, vars.autoRefreshEvents || \"none\");\n _ignoreResize = (vars.autoRefreshEvents + \"\").indexOf(\"resize\") === -1;\n }\n };\n\n ScrollTrigger.scrollerProxy = function scrollerProxy(target, vars) {\n var t = _getTarget(target),\n i = _scrollers.indexOf(t),\n isViewport = _isViewport(t);\n\n if (~i) {\n _scrollers.splice(i, isViewport ? 6 : 2);\n }\n\n if (vars) {\n isViewport ? _proxies.unshift(_win, vars, _body, vars, _docEl, vars) : _proxies.unshift(t, vars);\n }\n };\n\n ScrollTrigger.clearMatchMedia = function clearMatchMedia(query) {\n _triggers.forEach(function (t) {\n return t._ctx && t._ctx.query === query && t._ctx.kill(true, true);\n });\n };\n\n ScrollTrigger.isInViewport = function isInViewport(element, ratio, horizontal) {\n var bounds = (_isString(element) ? _getTarget(element) : element).getBoundingClientRect(),\n offset = bounds[horizontal ? _width : _height] * ratio || 0;\n return horizontal ? bounds.right - offset > 0 && bounds.left + offset < _win.innerWidth : bounds.bottom - offset > 0 && bounds.top + offset < _win.innerHeight;\n };\n\n ScrollTrigger.positionInViewport = function positionInViewport(element, referencePoint, horizontal) {\n _isString(element) && (element = _getTarget(element));\n var bounds = element.getBoundingClientRect(),\n size = bounds[horizontal ? _width : _height],\n offset = referencePoint == null ? size / 2 : referencePoint in _keywords ? _keywords[referencePoint] * size : ~referencePoint.indexOf(\"%\") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0;\n return horizontal ? (bounds.left + offset) / _win.innerWidth : (bounds.top + offset) / _win.innerHeight;\n };\n\n ScrollTrigger.killAll = function killAll(allowListeners) {\n _triggers.slice(0).forEach(function (t) {\n return t.vars.id !== \"ScrollSmoother\" && t.kill();\n });\n\n if (allowListeners !== true) {\n var listeners = _listeners.killAll || [];\n _listeners = {};\n listeners.forEach(function (f) {\n return f();\n });\n }\n };\n\n return ScrollTrigger;\n}();\nScrollTrigger.version = \"3.12.4\";\n\nScrollTrigger.saveStyles = function (targets) {\n return targets ? _toArray(targets).forEach(function (target) {\n // saved styles are recorded in a consecutive alternating Array, like [element, cssText, transform attribute, cache, matchMedia, ...]\n if (target && target.style) {\n var i = _savedStyles.indexOf(target);\n\n i >= 0 && _savedStyles.splice(i, 5);\n\n _savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute(\"transform\"), gsap.core.getCache(target), _context());\n }\n }) : _savedStyles;\n};\n\nScrollTrigger.revert = function (soft, media) {\n return _revertAll(!soft, media);\n};\n\nScrollTrigger.create = function (vars, animation) {\n return new ScrollTrigger(vars, animation);\n};\n\nScrollTrigger.refresh = function (safe) {\n return safe ? _onResize() : (_coreInitted || ScrollTrigger.register()) && _refreshAll(true);\n};\n\nScrollTrigger.update = function (force) {\n return ++_scrollers.cache && _updateAll(force === true ? 2 : 0);\n};\n\nScrollTrigger.clearScrollMemory = _clearScrollMemory;\n\nScrollTrigger.maxScroll = function (element, horizontal) {\n return _maxScroll(element, horizontal ? _horizontal : _vertical);\n};\n\nScrollTrigger.getScrollFunc = function (element, horizontal) {\n return _getScrollFunc(_getTarget(element), horizontal ? _horizontal : _vertical);\n};\n\nScrollTrigger.getById = function (id) {\n return _ids[id];\n};\n\nScrollTrigger.getAll = function () {\n return _triggers.filter(function (t) {\n return t.vars.id !== \"ScrollSmoother\";\n });\n}; // it's common for people to ScrollTrigger.getAll(t => t.kill()) on page routes, for example, and we don't want it to ruin smooth scrolling by killing the main ScrollSmoother one.\n\n\nScrollTrigger.isScrolling = function () {\n return !!_lastScrollTime;\n};\n\nScrollTrigger.snapDirectional = _snapDirectional;\n\nScrollTrigger.addEventListener = function (type, callback) {\n var a = _listeners[type] || (_listeners[type] = []);\n ~a.indexOf(callback) || a.push(callback);\n};\n\nScrollTrigger.removeEventListener = function (type, callback) {\n var a = _listeners[type],\n i = a && a.indexOf(callback);\n i >= 0 && a.splice(i, 1);\n};\n\nScrollTrigger.batch = function (targets, vars) {\n var result = [],\n varsCopy = {},\n interval = vars.interval || 0.016,\n batchMax = vars.batchMax || 1e9,\n proxyCallback = function proxyCallback(type, callback) {\n var elements = [],\n triggers = [],\n delay = gsap.delayedCall(interval, function () {\n callback(elements, triggers);\n elements = [];\n triggers = [];\n }).pause();\n return function (self) {\n elements.length || delay.restart(true);\n elements.push(self.trigger);\n triggers.push(self);\n batchMax <= elements.length && delay.progress(1);\n };\n },\n p;\n\n for (p in vars) {\n varsCopy[p] = p.substr(0, 2) === \"on\" && _isFunction(vars[p]) && p !== \"onRefreshInit\" ? proxyCallback(p, vars[p]) : vars[p];\n }\n\n if (_isFunction(batchMax)) {\n batchMax = batchMax();\n\n _addListener(ScrollTrigger, \"refresh\", function () {\n return batchMax = vars.batchMax();\n });\n }\n\n _toArray(targets).forEach(function (target) {\n var config = {};\n\n for (p in varsCopy) {\n config[p] = varsCopy[p];\n }\n\n config.trigger = target;\n result.push(ScrollTrigger.create(config));\n });\n\n return result;\n}; // to reduce file size. clamps the scroll and also returns a duration multiplier so that if the scroll gets chopped shorter, the duration gets curtailed as well (otherwise if you're very close to the top of the page, for example, and swipe up really fast, it'll suddenly slow down and take a long time to reach the top).\n\n\nvar _clampScrollAndGetDurationMultiplier = function _clampScrollAndGetDurationMultiplier(scrollFunc, current, end, max) {\n current > max ? scrollFunc(max) : current < 0 && scrollFunc(0);\n return end > max ? (max - current) / (end - current) : end < 0 ? current / (current - end) : 1;\n},\n _allowNativePanning = function _allowNativePanning(target, direction) {\n if (direction === true) {\n target.style.removeProperty(\"touch-action\");\n } else {\n target.style.touchAction = direction === true ? \"auto\" : direction ? \"pan-\" + direction + (Observer.isTouch ? \" pinch-zoom\" : \"\") : \"none\"; // note: Firefox doesn't support it pinch-zoom properly, at least in addition to a pan-x or pan-y.\n }\n\n target === _docEl && _allowNativePanning(_body, direction);\n},\n _overflow = {\n auto: 1,\n scroll: 1\n},\n _nestedScroll = function _nestedScroll(_ref5) {\n var event = _ref5.event,\n target = _ref5.target,\n axis = _ref5.axis;\n\n var node = (event.changedTouches ? event.changedTouches[0] : event).target,\n cache = node._gsap || gsap.core.getCache(node),\n time = _getTime(),\n cs;\n\n if (!cache._isScrollT || time - cache._isScrollT > 2000) {\n // cache for 2 seconds to improve performance.\n while (node && node !== _body && (node.scrollHeight <= node.clientHeight && node.scrollWidth <= node.clientWidth || !(_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]))) {\n node = node.parentNode;\n }\n\n cache._isScroll = node && node !== target && !_isViewport(node) && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]);\n cache._isScrollT = time;\n }\n\n if (cache._isScroll || axis === \"x\") {\n event.stopPropagation();\n event._gsapAllow = true;\n }\n},\n // capture events on scrollable elements INSIDE the and allow those by calling stopPropagation() when we find a scrollable ancestor\n_inputObserver = function _inputObserver(target, type, inputs, nested) {\n return Observer.create({\n target: target,\n capture: true,\n debounce: false,\n lockAxis: true,\n type: type,\n onWheel: nested = nested && _nestedScroll,\n onPress: nested,\n onDrag: nested,\n onScroll: nested,\n onEnable: function onEnable() {\n return inputs && _addListener(_doc, Observer.eventTypes[0], _captureInputs, false, true);\n },\n onDisable: function onDisable() {\n return _removeListener(_doc, Observer.eventTypes[0], _captureInputs, true);\n }\n });\n},\n _inputExp = /(input|label|select|textarea)/i,\n _inputIsFocused,\n _captureInputs = function _captureInputs(e) {\n var isInput = _inputExp.test(e.target.tagName);\n\n if (isInput || _inputIsFocused) {\n e._gsapAllow = true;\n _inputIsFocused = isInput;\n }\n},\n _getScrollNormalizer = function _getScrollNormalizer(vars) {\n _isObject(vars) || (vars = {});\n vars.preventDefault = vars.isNormalizer = vars.allowClicks = true;\n vars.type || (vars.type = \"wheel,touch\");\n vars.debounce = !!vars.debounce;\n vars.id = vars.id || \"normalizer\";\n\n var _vars2 = vars,\n normalizeScrollX = _vars2.normalizeScrollX,\n momentum = _vars2.momentum,\n allowNestedScroll = _vars2.allowNestedScroll,\n onRelease = _vars2.onRelease,\n self,\n maxY,\n target = _getTarget(vars.target) || _docEl,\n smoother = gsap.core.globals().ScrollSmoother,\n smootherInstance = smoother && smoother.get(),\n content = _fixIOSBug && (vars.content && _getTarget(vars.content) || smootherInstance && vars.content !== false && !smootherInstance.smooth() && smootherInstance.content()),\n scrollFuncY = _getScrollFunc(target, _vertical),\n scrollFuncX = _getScrollFunc(target, _horizontal),\n scale = 1,\n initialScale = (Observer.isTouch && _win.visualViewport ? _win.visualViewport.scale * _win.visualViewport.width : _win.outerWidth) / _win.innerWidth,\n wheelRefresh = 0,\n resolveMomentumDuration = _isFunction(momentum) ? function () {\n return momentum(self);\n } : function () {\n return momentum || 2.8;\n },\n lastRefreshID,\n skipTouchMove,\n inputObserver = _inputObserver(target, vars.type, true, allowNestedScroll),\n resumeTouchMove = function resumeTouchMove() {\n return skipTouchMove = false;\n },\n scrollClampX = _passThrough,\n scrollClampY = _passThrough,\n updateClamps = function updateClamps() {\n maxY = _maxScroll(target, _vertical);\n scrollClampY = _clamp(_fixIOSBug ? 1 : 0, maxY);\n normalizeScrollX && (scrollClampX = _clamp(0, _maxScroll(target, _horizontal)));\n lastRefreshID = _refreshID;\n },\n removeContentOffset = function removeContentOffset() {\n content._gsap.y = _round(parseFloat(content._gsap.y) + scrollFuncY.offset) + \"px\";\n content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + parseFloat(content._gsap.y) + \", 0, 1)\";\n scrollFuncY.offset = scrollFuncY.cacheID = 0;\n },\n ignoreDrag = function ignoreDrag() {\n if (skipTouchMove) {\n requestAnimationFrame(resumeTouchMove);\n\n var offset = _round(self.deltaY / 2),\n scroll = scrollClampY(scrollFuncY.v - offset);\n\n if (content && scroll !== scrollFuncY.v + scrollFuncY.offset) {\n scrollFuncY.offset = scroll - scrollFuncY.v;\n\n var y = _round((parseFloat(content && content._gsap.y) || 0) - scrollFuncY.offset);\n\n content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + y + \", 0, 1)\";\n content._gsap.y = y + \"px\";\n scrollFuncY.cacheID = _scrollers.cache;\n\n _updateAll();\n }\n\n return true;\n }\n\n scrollFuncY.offset && removeContentOffset();\n skipTouchMove = true;\n },\n tween,\n startScrollX,\n startScrollY,\n onStopDelayedCall,\n onResize = function onResize() {\n // if the window resizes, like on an iPhone which Apple FORCES the address bar to show/hide even if we event.preventDefault(), it may be scrolling too far now that the address bar is showing, so we must dynamically adjust the momentum tween.\n updateClamps();\n\n if (tween.isActive() && tween.vars.scrollY > maxY) {\n scrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo(\"scrollY\", maxY);\n }\n };\n\n content && gsap.set(content, {\n y: \"+=0\"\n }); // to ensure there's a cache (element._gsap)\n\n vars.ignoreCheck = function (e) {\n return _fixIOSBug && e.type === \"touchmove\" && ignoreDrag(e) || scale > 1.05 && e.type !== \"touchstart\" || self.isGesturing || e.touches && e.touches.length > 1;\n };\n\n vars.onPress = function () {\n skipTouchMove = false;\n var prevScale = scale;\n scale = _round((_win.visualViewport && _win.visualViewport.scale || 1) / initialScale);\n tween.pause();\n prevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : \"x\");\n startScrollX = scrollFuncX();\n startScrollY = scrollFuncY();\n updateClamps();\n lastRefreshID = _refreshID;\n };\n\n vars.onRelease = vars.onGestureStart = function (self, wasDragging) {\n scrollFuncY.offset && removeContentOffset();\n\n if (!wasDragging) {\n onStopDelayedCall.restart(true);\n } else {\n _scrollers.cache++; // make sure we're pulling the non-cached value\n // alternate algorithm: durX = Math.min(6, Math.abs(self.velocityX / 800)),\tdur = Math.max(durX, Math.min(6, Math.abs(self.velocityY / 800))); dur = dur * (0.4 + (1 - _power4In(dur / 6)) * 0.6)) * (momentumSpeed || 1)\n\n var dur = resolveMomentumDuration(),\n currentScroll,\n endScroll;\n\n if (normalizeScrollX) {\n currentScroll = scrollFuncX();\n endScroll = currentScroll + dur * 0.05 * -self.velocityX / 0.227; // the constant .227 is from power4(0.05). velocity is inverted because scrolling goes in the opposite direction.\n\n dur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _horizontal));\n tween.vars.scrollX = scrollClampX(endScroll);\n }\n\n currentScroll = scrollFuncY();\n endScroll = currentScroll + dur * 0.05 * -self.velocityY / 0.227; // the constant .227 is from power4(0.05)\n\n dur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _vertical));\n tween.vars.scrollY = scrollClampY(endScroll);\n tween.invalidate().duration(dur).play(0.01);\n\n if (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY - 1) {\n // iOS bug: it'll show the address bar but NOT fire the window \"resize\" event until the animation is done but we must protect against overshoot so we leverage an onUpdate to do so.\n gsap.to({}, {\n onUpdate: onResize,\n duration: dur\n });\n }\n }\n\n onRelease && onRelease(self);\n };\n\n vars.onWheel = function () {\n tween._ts && tween.pause();\n\n if (_getTime() - wheelRefresh > 1000) {\n // after 1 second, refresh the clamps otherwise that'll only happen when ScrollTrigger.refresh() is called or for touch-scrolling.\n lastRefreshID = 0;\n wheelRefresh = _getTime();\n }\n };\n\n vars.onChange = function (self, dx, dy, xArray, yArray) {\n _refreshID !== lastRefreshID && updateClamps();\n dx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self.startX - self.x) : scrollFuncX() + dx - xArray[1])); // for more precision, we track pointer/touch movement from the start, otherwise it'll drift.\n\n if (dy) {\n scrollFuncY.offset && removeContentOffset();\n var isTouch = yArray[2] === dy,\n y = isTouch ? startScrollY + self.startY - self.y : scrollFuncY() + dy - yArray[1],\n yClamped = scrollClampY(y);\n isTouch && y !== yClamped && (startScrollY += yClamped - y);\n scrollFuncY(yClamped);\n }\n\n (dy || dx) && _updateAll();\n };\n\n vars.onEnable = function () {\n _allowNativePanning(target, normalizeScrollX ? false : \"x\");\n\n ScrollTrigger.addEventListener(\"refresh\", onResize);\n\n _addListener(_win, \"resize\", onResize);\n\n if (scrollFuncY.smooth) {\n scrollFuncY.target.style.scrollBehavior = \"auto\";\n scrollFuncY.smooth = scrollFuncX.smooth = false;\n }\n\n inputObserver.enable();\n };\n\n vars.onDisable = function () {\n _allowNativePanning(target, true);\n\n _removeListener(_win, \"resize\", onResize);\n\n ScrollTrigger.removeEventListener(\"refresh\", onResize);\n inputObserver.kill();\n };\n\n vars.lockAxis = vars.lockAxis !== false;\n self = new Observer(vars);\n self.iOS = _fixIOSBug; // used in the Observer getCachedScroll() function to work around an iOS bug that wreaks havoc with TouchEvent.clientY if we allow scroll to go all the way back to 0.\n\n _fixIOSBug && !scrollFuncY() && scrollFuncY(1); // iOS bug causes event.clientY values to freak out (wildly inaccurate) if the scroll position is exactly 0.\n\n _fixIOSBug && gsap.ticker.add(_passThrough); // prevent the ticker from sleeping\n\n onStopDelayedCall = self._dc;\n tween = gsap.to(self, {\n ease: \"power4\",\n paused: true,\n scrollX: normalizeScrollX ? \"+=0.1\" : \"+=0\",\n scrollY: \"+=0.1\",\n modifiers: {\n scrollY: _interruptionTracker(scrollFuncY, scrollFuncY(), function () {\n return tween.pause();\n })\n },\n onUpdate: _updateAll,\n onComplete: onStopDelayedCall.vars.onComplete\n }); // we need the modifier to sense if the scroll position is altered outside of the momentum tween (like with a scrollTo tween) so we can pause() it to prevent conflicts.\n\n return self;\n};\n\nScrollTrigger.sort = function (func) {\n return _triggers.sort(func || function (a, b) {\n return (a.vars.refreshPriority || 0) * -1e6 + a.start - (b.start + (b.vars.refreshPriority || 0) * -1e6);\n });\n};\n\nScrollTrigger.observe = function (vars) {\n return new Observer(vars);\n};\n\nScrollTrigger.normalizeScroll = function (vars) {\n if (typeof vars === \"undefined\") {\n return _normalizer;\n }\n\n if (vars === true && _normalizer) {\n return _normalizer.enable();\n }\n\n if (vars === false) {\n _normalizer && _normalizer.kill();\n _normalizer = vars;\n return;\n }\n\n var normalizer = vars instanceof Observer ? vars : _getScrollNormalizer(vars);\n _normalizer && _normalizer.target === normalizer.target && _normalizer.kill();\n _isViewport(normalizer.target) && (_normalizer = normalizer);\n return normalizer;\n};\n\nScrollTrigger.core = {\n // smaller file size way to leverage in ScrollSmoother and Observer\n _getVelocityProp: _getVelocityProp,\n _inputObserver: _inputObserver,\n _scrollers: _scrollers,\n _proxies: _proxies,\n bridge: {\n // when normalizeScroll sets the scroll position (ss = setScroll)\n ss: function ss() {\n _lastScrollTime || _dispatch(\"scrollStart\");\n _lastScrollTime = _getTime();\n },\n // a way to get the _refreshing value in Observer\n ref: function ref() {\n return _refreshing;\n }\n }\n};\n_getGSAP() && gsap.registerPlugin(ScrollTrigger);\nexport { ScrollTrigger as default };","/*!\n * paths 3.12.4\n * https://gsap.com\n *\n * Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _svgPathExp = /[achlmqstvz]|(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[0-9]/ig,\n _numbersExp = /(?:(-)?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[0-9]/ig,\n _scientific = /[\\+\\-]?\\d*\\.?\\d+e[\\+\\-]?\\d+/ig,\n _selectorExp = /(^[#\\.][a-z]|[a-y][a-z])/i,\n _DEG2RAD = Math.PI / 180,\n _RAD2DEG = 180 / Math.PI,\n _sin = Math.sin,\n _cos = Math.cos,\n _abs = Math.abs,\n _sqrt = Math.sqrt,\n _atan2 = Math.atan2,\n _largeNum = 1e8,\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _temp = {},\n _temp2 = {},\n _roundingNum = 1e5,\n _wrapProgress = function _wrapProgress(progress) {\n return Math.round((progress + _largeNum) % 1 * _roundingNum) / _roundingNum || (progress < 0 ? 0 : 1);\n},\n //if progress lands on 1, the % will make it 0 which is why we || 1, but not if it's negative because it makes more sense for motion to end at 0 in that case.\n_round = function _round(value) {\n return Math.round(value * _roundingNum) / _roundingNum || 0;\n},\n _roundPrecise = function _roundPrecise(value) {\n return Math.round(value * 1e10) / 1e10 || 0;\n},\n _splitSegment = function _splitSegment(rawPath, segIndex, i, t) {\n var segment = rawPath[segIndex],\n shift = t === 1 ? 6 : subdivideSegment(segment, i, t);\n\n if (shift && shift + i + 2 < segment.length) {\n rawPath.splice(segIndex, 0, segment.slice(0, i + shift + 2));\n segment.splice(0, i + shift);\n return 1;\n }\n},\n _getSampleIndex = function _getSampleIndex(samples, length, progress) {\n // slightly slower way than doing this (when there's no lookup): segment.lookup[progress < 1 ? ~~(length / segment.minLength) : segment.lookup.length - 1] || 0;\n var l = samples.length,\n i = ~~(progress * l);\n\n if (samples[i] > length) {\n while (--i && samples[i] > length) {}\n\n i < 0 && (i = 0);\n } else {\n while (samples[++i] < length && i < l) {}\n }\n\n return i < l ? i : l - 1;\n},\n _reverseRawPath = function _reverseRawPath(rawPath, skipOuter) {\n var i = rawPath.length;\n skipOuter || rawPath.reverse();\n\n while (i--) {\n rawPath[i].reversed || reverseSegment(rawPath[i]);\n }\n},\n _copyMetaData = function _copyMetaData(source, copy) {\n copy.totalLength = source.totalLength;\n\n if (source.samples) {\n //segment\n copy.samples = source.samples.slice(0);\n copy.lookup = source.lookup.slice(0);\n copy.minLength = source.minLength;\n copy.resolution = source.resolution;\n } else if (source.totalPoints) {\n //rawPath\n copy.totalPoints = source.totalPoints;\n }\n\n return copy;\n},\n //pushes a new segment into a rawPath, but if its starting values match the ending values of the last segment, it'll merge it into that same segment (to reduce the number of segments)\n_appendOrMerge = function _appendOrMerge(rawPath, segment) {\n var index = rawPath.length,\n prevSeg = rawPath[index - 1] || [],\n l = prevSeg.length;\n\n if (index && segment[0] === prevSeg[l - 2] && segment[1] === prevSeg[l - 1]) {\n segment = prevSeg.concat(segment.slice(2));\n index--;\n }\n\n rawPath[index] = segment;\n},\n _bestDistance;\n/* TERMINOLOGY\n - RawPath - an array of arrays, one for each Segment. A single RawPath could have multiple \"M\" commands, defining Segments (paths aren't always connected).\n - Segment - an array containing a sequence of Cubic Bezier coordinates in alternating x, y, x, y format. Starting anchor, then control point 1, control point 2, and ending anchor, then the next control point 1, control point 2, anchor, etc. Uses less memory than an array with a bunch of {x, y} points.\n - Bezier - a single cubic Bezier with a starting anchor, two control points, and an ending anchor.\n - the variable \"t\" is typically the position along an individual Bezier path (time) and it's NOT linear, meaning it could accelerate/decelerate based on the control points whereas the \"p\" or \"progress\" value is linearly mapped to the whole path, so it shouldn't really accelerate/decelerate based on control points. So a progress of 0.2 would be almost exactly 20% along the path. \"t\" is ONLY in an individual Bezier piece.\n */\n//accepts basic selector text, a path instance, a RawPath instance, or a Segment and returns a RawPath (makes it easy to homogenize things). If an element or selector text is passed in, it'll also cache the value so that if it's queried again, it'll just take the path data from there instead of parsing it all over again (as long as the path data itself hasn't changed - it'll check).\n\n\nexport function getRawPath(value) {\n value = _isString(value) && _selectorExp.test(value) ? document.querySelector(value) || value : value;\n var e = value.getAttribute ? value : 0,\n rawPath;\n\n if (e && (value = value.getAttribute(\"d\"))) {\n //implements caching\n if (!e._gsPath) {\n e._gsPath = {};\n }\n\n rawPath = e._gsPath[value];\n return rawPath && !rawPath._dirty ? rawPath : e._gsPath[value] = stringToRawPath(value);\n }\n\n return !value ? console.warn(\"Expecting a element or an SVG path data string\") : _isString(value) ? stringToRawPath(value) : _isNumber(value[0]) ? [value] : value;\n} //copies a RawPath WITHOUT the length meta data (for speed)\n\nexport function copyRawPath(rawPath) {\n var a = [],\n i = 0;\n\n for (; i < rawPath.length; i++) {\n a[i] = _copyMetaData(rawPath[i], rawPath[i].slice(0));\n }\n\n return _copyMetaData(rawPath, a);\n}\nexport function reverseSegment(segment) {\n var i = 0,\n y;\n segment.reverse(); //this will invert the order y, x, y, x so we must flip it back.\n\n for (; i < segment.length; i += 2) {\n y = segment[i];\n segment[i] = segment[i + 1];\n segment[i + 1] = y;\n }\n\n segment.reversed = !segment.reversed;\n}\n\nvar _createPath = function _createPath(e, ignore) {\n var path = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\"),\n attr = [].slice.call(e.attributes),\n i = attr.length,\n name;\n ignore = \",\" + ignore + \",\";\n\n while (--i > -1) {\n name = attr[i].nodeName.toLowerCase(); //in Microsoft Edge, if you don't set the attribute with a lowercase name, it doesn't render correctly! Super weird.\n\n if (ignore.indexOf(\",\" + name + \",\") < 0) {\n path.setAttributeNS(null, name, attr[i].nodeValue);\n }\n }\n\n return path;\n},\n _typeAttrs = {\n rect: \"rx,ry,x,y,width,height\",\n circle: \"r,cx,cy\",\n ellipse: \"rx,ry,cx,cy\",\n line: \"x1,x2,y1,y2\"\n},\n _attrToObj = function _attrToObj(e, attrs) {\n var props = attrs ? attrs.split(\",\") : [],\n obj = {},\n i = props.length;\n\n while (--i > -1) {\n obj[props[i]] = +e.getAttribute(props[i]) || 0;\n }\n\n return obj;\n}; //converts an SVG shape like , , , , , etc. to a , swapping it in and copying the attributes to match.\n\n\nexport function convertToPath(element, swap) {\n var type = element.tagName.toLowerCase(),\n circ = 0.552284749831,\n data,\n x,\n y,\n r,\n ry,\n path,\n rcirc,\n rycirc,\n points,\n w,\n h,\n x2,\n x3,\n x4,\n x5,\n x6,\n y2,\n y3,\n y4,\n y5,\n y6,\n attr;\n\n if (type === \"path\" || !element.getBBox) {\n return element;\n }\n\n path = _createPath(element, \"x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points\");\n attr = _attrToObj(element, _typeAttrs[type]);\n\n if (type === \"rect\") {\n r = attr.rx;\n ry = attr.ry || r;\n x = attr.x;\n y = attr.y;\n w = attr.width - r * 2;\n h = attr.height - ry * 2;\n\n if (r || ry) {\n //if there are rounded corners, render cubic beziers\n x2 = x + r * (1 - circ);\n x3 = x + r;\n x4 = x3 + w;\n x5 = x4 + r * circ;\n x6 = x4 + r;\n y2 = y + ry * (1 - circ);\n y3 = y + ry;\n y4 = y3 + h;\n y5 = y4 + ry * circ;\n y6 = y4 + ry;\n data = \"M\" + x6 + \",\" + y3 + \" V\" + y4 + \" C\" + [x6, y5, x5, y6, x4, y6, x4 - (x4 - x3) / 3, y6, x3 + (x4 - x3) / 3, y6, x3, y6, x2, y6, x, y5, x, y4, x, y4 - (y4 - y3) / 3, x, y3 + (y4 - y3) / 3, x, y3, x, y2, x2, y, x3, y, x3 + (x4 - x3) / 3, y, x4 - (x4 - x3) / 3, y, x4, y, x5, y, x6, y2, x6, y3].join(\",\") + \"z\";\n } else {\n data = \"M\" + (x + w) + \",\" + y + \" v\" + h + \" h\" + -w + \" v\" + -h + \" h\" + w + \"z\";\n }\n } else if (type === \"circle\" || type === \"ellipse\") {\n if (type === \"circle\") {\n r = ry = attr.r;\n rycirc = r * circ;\n } else {\n r = attr.rx;\n ry = attr.ry;\n rycirc = ry * circ;\n }\n\n x = attr.cx;\n y = attr.cy;\n rcirc = r * circ;\n data = \"M\" + (x + r) + \",\" + y + \" C\" + [x + r, y + rycirc, x + rcirc, y + ry, x, y + ry, x - rcirc, y + ry, x - r, y + rycirc, x - r, y, x - r, y - rycirc, x - rcirc, y - ry, x, y - ry, x + rcirc, y - ry, x + r, y - rycirc, x + r, y].join(\",\") + \"z\";\n } else if (type === \"line\") {\n data = \"M\" + attr.x1 + \",\" + attr.y1 + \" L\" + attr.x2 + \",\" + attr.y2; //previously, we just converted to \"Mx,y Lx,y\" but Safari has bugs that cause that not to render properly when using a stroke-dasharray that's not fully visible! Using a cubic bezier fixes that issue.\n } else if (type === \"polyline\" || type === \"polygon\") {\n points = (element.getAttribute(\"points\") + \"\").match(_numbersExp) || [];\n x = points.shift();\n y = points.shift();\n data = \"M\" + x + \",\" + y + \" L\" + points.join(\",\");\n\n if (type === \"polygon\") {\n data += \",\" + x + \",\" + y + \"z\";\n }\n }\n\n path.setAttribute(\"d\", rawPathToString(path._gsRawPath = stringToRawPath(data)));\n\n if (swap && element.parentNode) {\n element.parentNode.insertBefore(path, element);\n element.parentNode.removeChild(element);\n }\n\n return path;\n} //returns the rotation (in degrees) at a particular progress on a rawPath (the slope of the tangent)\n\nexport function getRotationAtProgress(rawPath, progress) {\n var d = getProgressData(rawPath, progress >= 1 ? 1 - 1e-9 : progress ? progress : 1e-9);\n return getRotationAtBezierT(d.segment, d.i, d.t);\n}\n\nfunction getRotationAtBezierT(segment, i, t) {\n var a = segment[i],\n b = segment[i + 2],\n c = segment[i + 4],\n x;\n a += (b - a) * t;\n b += (c - b) * t;\n a += (b - a) * t;\n x = b + (c + (segment[i + 6] - c) * t - b) * t - a;\n a = segment[i + 1];\n b = segment[i + 3];\n c = segment[i + 5];\n a += (b - a) * t;\n b += (c - b) * t;\n a += (b - a) * t;\n return _round(_atan2(b + (c + (segment[i + 7] - c) * t - b) * t - a, x) * _RAD2DEG);\n}\n\nexport function sliceRawPath(rawPath, start, end) {\n end = _isUndefined(end) ? 1 : _roundPrecise(end) || 0; // we must round to avoid issues like 4.15 / 8 = 0.8300000000000001 instead of 0.83 or 2.8 / 5 = 0.5599999999999999 instead of 0.56 and if someone is doing a loop like start: 2.8 / 0.5, end: 2.8 / 0.5 + 1.\n\n start = _roundPrecise(start) || 0;\n var loops = Math.max(0, ~~(_abs(end - start) - 1e-8)),\n path = copyRawPath(rawPath);\n\n if (start > end) {\n start = 1 - start;\n end = 1 - end;\n\n _reverseRawPath(path);\n\n path.totalLength = 0;\n }\n\n if (start < 0 || end < 0) {\n var offset = Math.abs(~~Math.min(start, end)) + 1;\n start += offset;\n end += offset;\n }\n\n path.totalLength || cacheRawPathMeasurements(path);\n var wrap = end > 1,\n s = getProgressData(path, start, _temp, true),\n e = getProgressData(path, end, _temp2),\n eSeg = e.segment,\n sSeg = s.segment,\n eSegIndex = e.segIndex,\n sSegIndex = s.segIndex,\n ei = e.i,\n si = s.i,\n sameSegment = sSegIndex === eSegIndex,\n sameBezier = ei === si && sameSegment,\n wrapsBehind,\n sShift,\n eShift,\n i,\n copy,\n totalSegments,\n l,\n j;\n\n if (wrap || loops) {\n wrapsBehind = eSegIndex < sSegIndex || sameSegment && ei < si || sameBezier && e.t < s.t;\n\n if (_splitSegment(path, sSegIndex, si, s.t)) {\n sSegIndex++;\n\n if (!wrapsBehind) {\n eSegIndex++;\n\n if (sameBezier) {\n e.t = (e.t - s.t) / (1 - s.t);\n ei = 0;\n } else if (sameSegment) {\n ei -= si;\n }\n }\n }\n\n if (Math.abs(1 - (end - start)) < 1e-5) {\n eSegIndex = sSegIndex - 1;\n } else if (!e.t && eSegIndex) {\n eSegIndex--;\n } else if (_splitSegment(path, eSegIndex, ei, e.t) && wrapsBehind) {\n sSegIndex++;\n }\n\n if (s.t === 1) {\n sSegIndex = (sSegIndex + 1) % path.length;\n }\n\n copy = [];\n totalSegments = path.length;\n l = 1 + totalSegments * loops;\n j = sSegIndex;\n l += (totalSegments - sSegIndex + eSegIndex) % totalSegments;\n\n for (i = 0; i < l; i++) {\n _appendOrMerge(copy, path[j++ % totalSegments]);\n }\n\n path = copy;\n } else {\n eShift = e.t === 1 ? 6 : subdivideSegment(eSeg, ei, e.t);\n\n if (start !== end) {\n sShift = subdivideSegment(sSeg, si, sameBezier ? s.t / e.t : s.t);\n sameSegment && (eShift += sShift);\n eSeg.splice(ei + eShift + 2);\n (sShift || si) && sSeg.splice(0, si + sShift);\n i = path.length;\n\n while (i--) {\n //chop off any extra segments\n (i < sSegIndex || i > eSegIndex) && path.splice(i, 1);\n }\n } else {\n eSeg.angle = getRotationAtBezierT(eSeg, ei + eShift, 0); //record the value before we chop because it'll be impossible to determine the angle after its length is 0!\n\n ei += eShift;\n s = eSeg[ei];\n e = eSeg[ei + 1];\n eSeg.length = eSeg.totalLength = 0;\n eSeg.totalPoints = path.totalPoints = 8;\n eSeg.push(s, e, s, e, s, e, s, e);\n }\n }\n\n path.totalLength = 0;\n return path;\n} //measures a Segment according to its resolution (so if segment.resolution is 6, for example, it'll take 6 samples equally across each Bezier) and create/populate a \"samples\" Array that has the length up to each of those sample points (always increasing from the start) as well as a \"lookup\" array that's broken up according to the smallest distance between 2 samples. This gives us a very fast way of looking up a progress position rather than looping through all the points/Beziers. You can optionally have it only measure a subset, starting at startIndex and going for a specific number of beziers (remember, there are 3 x/y pairs each, for a total of 6 elements for each Bezier). It will also populate a \"totalLength\" property, but that's not generally super accurate because by default it'll only take 6 samples per Bezier. But for performance reasons, it's perfectly adequate for measuring progress values along the path. If you need a more accurate totalLength, either increase the resolution or use the more advanced bezierToPoints() method which keeps adding points until they don't deviate by more than a certain precision value.\n\nfunction measureSegment(segment, startIndex, bezierQty) {\n startIndex = startIndex || 0;\n\n if (!segment.samples) {\n segment.samples = [];\n segment.lookup = [];\n }\n\n var resolution = ~~segment.resolution || 12,\n inc = 1 / resolution,\n endIndex = bezierQty ? startIndex + bezierQty * 6 + 1 : segment.length,\n x1 = segment[startIndex],\n y1 = segment[startIndex + 1],\n samplesIndex = startIndex ? startIndex / 6 * resolution : 0,\n samples = segment.samples,\n lookup = segment.lookup,\n min = (startIndex ? segment.minLength : _largeNum) || _largeNum,\n prevLength = samples[samplesIndex + bezierQty * resolution - 1],\n length = startIndex ? samples[samplesIndex - 1] : 0,\n i,\n j,\n x4,\n x3,\n x2,\n xd,\n xd1,\n y4,\n y3,\n y2,\n yd,\n yd1,\n inv,\n t,\n lengthIndex,\n l,\n segLength;\n samples.length = lookup.length = 0;\n\n for (j = startIndex + 2; j < endIndex; j += 6) {\n x4 = segment[j + 4] - x1;\n x3 = segment[j + 2] - x1;\n x2 = segment[j] - x1;\n y4 = segment[j + 5] - y1;\n y3 = segment[j + 3] - y1;\n y2 = segment[j + 1] - y1;\n xd = xd1 = yd = yd1 = 0;\n\n if (_abs(x4) < .01 && _abs(y4) < .01 && _abs(x2) + _abs(y2) < .01) {\n //dump points that are sufficiently close (basically right on top of each other, making a bezier super tiny or 0 length)\n if (segment.length > 8) {\n segment.splice(j, 6);\n j -= 6;\n endIndex -= 6;\n }\n } else {\n for (i = 1; i <= resolution; i++) {\n t = inc * i;\n inv = 1 - t;\n xd = xd1 - (xd1 = (t * t * x4 + 3 * inv * (t * x3 + inv * x2)) * t);\n yd = yd1 - (yd1 = (t * t * y4 + 3 * inv * (t * y3 + inv * y2)) * t);\n l = _sqrt(yd * yd + xd * xd);\n\n if (l < min) {\n min = l;\n }\n\n length += l;\n samples[samplesIndex++] = length;\n }\n }\n\n x1 += x4;\n y1 += y4;\n }\n\n if (prevLength) {\n prevLength -= length;\n\n for (; samplesIndex < samples.length; samplesIndex++) {\n samples[samplesIndex] += prevLength;\n }\n }\n\n if (samples.length && min) {\n segment.totalLength = segLength = samples[samples.length - 1] || 0;\n segment.minLength = min;\n\n if (segLength / min < 9999) {\n // if the lookup would require too many values (memory problem), we skip this and instead we use a loop to lookup values directly in the samples Array\n l = lengthIndex = 0;\n\n for (i = 0; i < segLength; i += min) {\n lookup[l++] = samples[lengthIndex] < i ? ++lengthIndex : lengthIndex;\n }\n }\n } else {\n segment.totalLength = samples[0] = 0;\n }\n\n return startIndex ? length - samples[startIndex / 2 - 1] : length;\n}\n\nexport function cacheRawPathMeasurements(rawPath, resolution) {\n var pathLength, points, i;\n\n for (i = pathLength = points = 0; i < rawPath.length; i++) {\n rawPath[i].resolution = ~~resolution || 12; //steps per Bezier curve (anchor, 2 control points, to anchor)\n\n points += rawPath[i].length;\n pathLength += measureSegment(rawPath[i]);\n }\n\n rawPath.totalPoints = points;\n rawPath.totalLength = pathLength;\n return rawPath;\n} //divide segment[i] at position t (value between 0 and 1, progress along that particular cubic bezier segment that starts at segment[i]). Returns how many elements were spliced into the segment array (either 0 or 6)\n\nexport function subdivideSegment(segment, i, t) {\n if (t <= 0 || t >= 1) {\n return 0;\n }\n\n var ax = segment[i],\n ay = segment[i + 1],\n cp1x = segment[i + 2],\n cp1y = segment[i + 3],\n cp2x = segment[i + 4],\n cp2y = segment[i + 5],\n bx = segment[i + 6],\n by = segment[i + 7],\n x1a = ax + (cp1x - ax) * t,\n x2 = cp1x + (cp2x - cp1x) * t,\n y1a = ay + (cp1y - ay) * t,\n y2 = cp1y + (cp2y - cp1y) * t,\n x1 = x1a + (x2 - x1a) * t,\n y1 = y1a + (y2 - y1a) * t,\n x2a = cp2x + (bx - cp2x) * t,\n y2a = cp2y + (by - cp2y) * t;\n x2 += (x2a - x2) * t;\n y2 += (y2a - y2) * t;\n segment.splice(i + 2, 4, _round(x1a), //first control point\n _round(y1a), _round(x1), //second control point\n _round(y1), _round(x1 + (x2 - x1) * t), //new fabricated anchor on line\n _round(y1 + (y2 - y1) * t), _round(x2), //third control point\n _round(y2), _round(x2a), //fourth control point\n _round(y2a));\n segment.samples && segment.samples.splice(i / 6 * segment.resolution | 0, 0, 0, 0, 0, 0, 0, 0);\n return 6;\n} // returns an object {path, segment, segIndex, i, t}\n\nfunction getProgressData(rawPath, progress, decoratee, pushToNextIfAtEnd) {\n decoratee = decoratee || {};\n rawPath.totalLength || cacheRawPathMeasurements(rawPath);\n\n if (progress < 0 || progress > 1) {\n progress = _wrapProgress(progress);\n }\n\n var segIndex = 0,\n segment = rawPath[0],\n samples,\n resolution,\n length,\n min,\n max,\n i,\n t;\n\n if (!progress) {\n t = i = segIndex = 0;\n segment = rawPath[0];\n } else if (progress === 1) {\n t = 1;\n segIndex = rawPath.length - 1;\n segment = rawPath[segIndex];\n i = segment.length - 8;\n } else {\n if (rawPath.length > 1) {\n //speed optimization: most of the time, there's only one segment so skip the recursion.\n length = rawPath.totalLength * progress;\n max = i = 0;\n\n while ((max += rawPath[i++].totalLength) < length) {\n segIndex = i;\n }\n\n segment = rawPath[segIndex];\n min = max - segment.totalLength;\n progress = (length - min) / (max - min) || 0;\n }\n\n samples = segment.samples;\n resolution = segment.resolution; //how many samples per cubic bezier chunk\n\n length = segment.totalLength * progress;\n i = segment.lookup.length ? segment.lookup[~~(length / segment.minLength)] || 0 : _getSampleIndex(samples, length, progress);\n min = i ? samples[i - 1] : 0;\n max = samples[i];\n\n if (max < length) {\n min = max;\n max = samples[++i];\n }\n\n t = 1 / resolution * ((length - min) / (max - min) + i % resolution);\n i = ~~(i / resolution) * 6;\n\n if (pushToNextIfAtEnd && t === 1) {\n if (i + 6 < segment.length) {\n i += 6;\n t = 0;\n } else if (segIndex + 1 < rawPath.length) {\n i = t = 0;\n segment = rawPath[++segIndex];\n }\n }\n }\n\n decoratee.t = t;\n decoratee.i = i;\n decoratee.path = rawPath;\n decoratee.segment = segment;\n decoratee.segIndex = segIndex;\n return decoratee;\n}\n\nexport function getPositionOnPath(rawPath, progress, includeAngle, point) {\n var segment = rawPath[0],\n result = point || {},\n samples,\n resolution,\n length,\n min,\n max,\n i,\n t,\n a,\n inv;\n\n if (progress < 0 || progress > 1) {\n progress = _wrapProgress(progress);\n }\n\n segment.lookup || cacheRawPathMeasurements(rawPath);\n\n if (rawPath.length > 1) {\n //speed optimization: most of the time, there's only one segment so skip the recursion.\n length = rawPath.totalLength * progress;\n max = i = 0;\n\n while ((max += rawPath[i++].totalLength) < length) {\n segment = rawPath[i];\n }\n\n min = max - segment.totalLength;\n progress = (length - min) / (max - min) || 0;\n }\n\n samples = segment.samples;\n resolution = segment.resolution;\n length = segment.totalLength * progress;\n i = segment.lookup.length ? segment.lookup[progress < 1 ? ~~(length / segment.minLength) : segment.lookup.length - 1] || 0 : _getSampleIndex(samples, length, progress);\n min = i ? samples[i - 1] : 0;\n max = samples[i];\n\n if (max < length) {\n min = max;\n max = samples[++i];\n }\n\n t = 1 / resolution * ((length - min) / (max - min) + i % resolution) || 0;\n inv = 1 - t;\n i = ~~(i / resolution) * 6;\n a = segment[i];\n result.x = _round((t * t * (segment[i + 6] - a) + 3 * inv * (t * (segment[i + 4] - a) + inv * (segment[i + 2] - a))) * t + a);\n result.y = _round((t * t * (segment[i + 7] - (a = segment[i + 1])) + 3 * inv * (t * (segment[i + 5] - a) + inv * (segment[i + 3] - a))) * t + a);\n\n if (includeAngle) {\n result.angle = segment.totalLength ? getRotationAtBezierT(segment, i, t >= 1 ? 1 - 1e-9 : t ? t : 1e-9) : segment.angle || 0;\n }\n\n return result;\n} //applies a matrix transform to RawPath (or a segment in a RawPath) and returns whatever was passed in (it transforms the values in the array(s), not a copy).\n\nexport function transformRawPath(rawPath, a, b, c, d, tx, ty) {\n var j = rawPath.length,\n segment,\n l,\n i,\n x,\n y;\n\n while (--j > -1) {\n segment = rawPath[j];\n l = segment.length;\n\n for (i = 0; i < l; i += 2) {\n x = segment[i];\n y = segment[i + 1];\n segment[i] = x * a + y * c + tx;\n segment[i + 1] = x * b + y * d + ty;\n }\n }\n\n rawPath._dirty = 1;\n return rawPath;\n} // translates SVG arc data into a segment (cubic beziers). Angle is in degrees.\n\nfunction arcToSegment(lastX, lastY, rx, ry, angle, largeArcFlag, sweepFlag, x, y) {\n if (lastX === x && lastY === y) {\n return;\n }\n\n rx = _abs(rx);\n ry = _abs(ry);\n\n var angleRad = angle % 360 * _DEG2RAD,\n cosAngle = _cos(angleRad),\n sinAngle = _sin(angleRad),\n PI = Math.PI,\n TWOPI = PI * 2,\n dx2 = (lastX - x) / 2,\n dy2 = (lastY - y) / 2,\n x1 = cosAngle * dx2 + sinAngle * dy2,\n y1 = -sinAngle * dx2 + cosAngle * dy2,\n x1_sq = x1 * x1,\n y1_sq = y1 * y1,\n radiiCheck = x1_sq / (rx * rx) + y1_sq / (ry * ry);\n\n if (radiiCheck > 1) {\n rx = _sqrt(radiiCheck) * rx;\n ry = _sqrt(radiiCheck) * ry;\n }\n\n var rx_sq = rx * rx,\n ry_sq = ry * ry,\n sq = (rx_sq * ry_sq - rx_sq * y1_sq - ry_sq * x1_sq) / (rx_sq * y1_sq + ry_sq * x1_sq);\n\n if (sq < 0) {\n sq = 0;\n }\n\n var coef = (largeArcFlag === sweepFlag ? -1 : 1) * _sqrt(sq),\n cx1 = coef * (rx * y1 / ry),\n cy1 = coef * -(ry * x1 / rx),\n sx2 = (lastX + x) / 2,\n sy2 = (lastY + y) / 2,\n cx = sx2 + (cosAngle * cx1 - sinAngle * cy1),\n cy = sy2 + (sinAngle * cx1 + cosAngle * cy1),\n ux = (x1 - cx1) / rx,\n uy = (y1 - cy1) / ry,\n vx = (-x1 - cx1) / rx,\n vy = (-y1 - cy1) / ry,\n temp = ux * ux + uy * uy,\n angleStart = (uy < 0 ? -1 : 1) * Math.acos(ux / _sqrt(temp)),\n angleExtent = (ux * vy - uy * vx < 0 ? -1 : 1) * Math.acos((ux * vx + uy * vy) / _sqrt(temp * (vx * vx + vy * vy)));\n\n isNaN(angleExtent) && (angleExtent = PI); //rare edge case. Math.cos(-1) is NaN.\n\n if (!sweepFlag && angleExtent > 0) {\n angleExtent -= TWOPI;\n } else if (sweepFlag && angleExtent < 0) {\n angleExtent += TWOPI;\n }\n\n angleStart %= TWOPI;\n angleExtent %= TWOPI;\n\n var segments = Math.ceil(_abs(angleExtent) / (TWOPI / 4)),\n rawPath = [],\n angleIncrement = angleExtent / segments,\n controlLength = 4 / 3 * _sin(angleIncrement / 2) / (1 + _cos(angleIncrement / 2)),\n ma = cosAngle * rx,\n mb = sinAngle * rx,\n mc = sinAngle * -ry,\n md = cosAngle * ry,\n i;\n\n for (i = 0; i < segments; i++) {\n angle = angleStart + i * angleIncrement;\n x1 = _cos(angle);\n y1 = _sin(angle);\n ux = _cos(angle += angleIncrement);\n uy = _sin(angle);\n rawPath.push(x1 - controlLength * y1, y1 + controlLength * x1, ux + controlLength * uy, uy - controlLength * ux, ux, uy);\n } //now transform according to the actual size of the ellipse/arc (the beziers were noramlized, between 0 and 1 on a circle).\n\n\n for (i = 0; i < rawPath.length; i += 2) {\n x1 = rawPath[i];\n y1 = rawPath[i + 1];\n rawPath[i] = x1 * ma + y1 * mc + cx;\n rawPath[i + 1] = x1 * mb + y1 * md + cy;\n }\n\n rawPath[i - 2] = x; //always set the end to exactly where it's supposed to be\n\n rawPath[i - 1] = y;\n return rawPath;\n} //Spits back a RawPath with absolute coordinates. Each segment starts with a \"moveTo\" command (x coordinate, then y) and then 2 control points (x, y, x, y), then anchor. The goal is to minimize memory and maximize speed.\n\n\nexport function stringToRawPath(d) {\n var a = (d + \"\").replace(_scientific, function (m) {\n var n = +m;\n return n < 0.0001 && n > -0.0001 ? 0 : n;\n }).match(_svgPathExp) || [],\n //some authoring programs spit out very small numbers in scientific notation like \"1e-5\", so make sure we round that down to 0 first.\n path = [],\n relativeX = 0,\n relativeY = 0,\n twoThirds = 2 / 3,\n elements = a.length,\n points = 0,\n errorMessage = \"ERROR: malformed path: \" + d,\n i,\n j,\n x,\n y,\n command,\n isRelative,\n segment,\n startX,\n startY,\n difX,\n difY,\n beziers,\n prevCommand,\n flag1,\n flag2,\n line = function line(sx, sy, ex, ey) {\n difX = (ex - sx) / 3;\n difY = (ey - sy) / 3;\n segment.push(sx + difX, sy + difY, ex - difX, ey - difY, ex, ey);\n };\n\n if (!d || !isNaN(a[0]) || isNaN(a[1])) {\n console.log(errorMessage);\n return path;\n }\n\n for (i = 0; i < elements; i++) {\n prevCommand = command;\n\n if (isNaN(a[i])) {\n command = a[i].toUpperCase();\n isRelative = command !== a[i]; //lower case means relative\n } else {\n //commands like \"C\" can be strung together without any new command characters between.\n i--;\n }\n\n x = +a[i + 1];\n y = +a[i + 2];\n\n if (isRelative) {\n x += relativeX;\n y += relativeY;\n }\n\n if (!i) {\n startX = x;\n startY = y;\n } // \"M\" (move)\n\n\n if (command === \"M\") {\n if (segment) {\n if (segment.length < 8) {\n //if the path data was funky and just had a M with no actual drawing anywhere, skip it.\n path.length -= 1;\n } else {\n points += segment.length;\n }\n }\n\n relativeX = startX = x;\n relativeY = startY = y;\n segment = [x, y];\n path.push(segment);\n i += 2;\n command = \"L\"; //an \"M\" with more than 2 values gets interpreted as \"lineTo\" commands (\"L\").\n // \"C\" (cubic bezier)\n } else if (command === \"C\") {\n if (!segment) {\n segment = [0, 0];\n }\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n } //note: \"*1\" is just a fast/short way to cast the value as a Number. WAAAY faster in Chrome, slightly slower in Firefox.\n\n\n segment.push(x, y, relativeX + a[i + 3] * 1, relativeY + a[i + 4] * 1, relativeX += a[i + 5] * 1, relativeY += a[i + 6] * 1);\n i += 6; // \"S\" (continuation of cubic bezier)\n } else if (command === \"S\") {\n difX = relativeX;\n difY = relativeY;\n\n if (prevCommand === \"C\" || prevCommand === \"S\") {\n difX += relativeX - segment[segment.length - 4];\n difY += relativeY - segment[segment.length - 3];\n }\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n }\n\n segment.push(difX, difY, x, y, relativeX += a[i + 3] * 1, relativeY += a[i + 4] * 1);\n i += 4; // \"Q\" (quadratic bezier)\n } else if (command === \"Q\") {\n difX = relativeX + (x - relativeX) * twoThirds;\n difY = relativeY + (y - relativeY) * twoThirds;\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n }\n\n relativeX += a[i + 3] * 1;\n relativeY += a[i + 4] * 1;\n segment.push(difX, difY, relativeX + (x - relativeX) * twoThirds, relativeY + (y - relativeY) * twoThirds, relativeX, relativeY);\n i += 4; // \"T\" (continuation of quadratic bezier)\n } else if (command === \"T\") {\n difX = relativeX - segment[segment.length - 4];\n difY = relativeY - segment[segment.length - 3];\n segment.push(relativeX + difX, relativeY + difY, x + (relativeX + difX * 1.5 - x) * twoThirds, y + (relativeY + difY * 1.5 - y) * twoThirds, relativeX = x, relativeY = y);\n i += 2; // \"H\" (horizontal line)\n } else if (command === \"H\") {\n line(relativeX, relativeY, relativeX = x, relativeY);\n i += 1; // \"V\" (vertical line)\n } else if (command === \"V\") {\n //adjust values because the first (and only one) isn't x in this case, it's y.\n line(relativeX, relativeY, relativeX, relativeY = x + (isRelative ? relativeY - relativeX : 0));\n i += 1; // \"L\" (line) or \"Z\" (close)\n } else if (command === \"L\" || command === \"Z\") {\n if (command === \"Z\") {\n x = startX;\n y = startY;\n segment.closed = true;\n }\n\n if (command === \"L\" || _abs(relativeX - x) > 0.5 || _abs(relativeY - y) > 0.5) {\n line(relativeX, relativeY, x, y);\n\n if (command === \"L\") {\n i += 2;\n }\n }\n\n relativeX = x;\n relativeY = y; // \"A\" (arc)\n } else if (command === \"A\") {\n flag1 = a[i + 4];\n flag2 = a[i + 5];\n difX = a[i + 6];\n difY = a[i + 7];\n j = 7;\n\n if (flag1.length > 1) {\n // for cases when the flags are merged, like \"a8 8 0 018 8\" (the 0 and 1 flags are WITH the x value of 8, but it could also be \"a8 8 0 01-8 8\" so it may include x or not)\n if (flag1.length < 3) {\n difY = difX;\n difX = flag2;\n j--;\n } else {\n difY = flag2;\n difX = flag1.substr(2);\n j -= 2;\n }\n\n flag2 = flag1.charAt(1);\n flag1 = flag1.charAt(0);\n }\n\n beziers = arcToSegment(relativeX, relativeY, +a[i + 1], +a[i + 2], +a[i + 3], +flag1, +flag2, (isRelative ? relativeX : 0) + difX * 1, (isRelative ? relativeY : 0) + difY * 1);\n i += j;\n\n if (beziers) {\n for (j = 0; j < beziers.length; j++) {\n segment.push(beziers[j]);\n }\n }\n\n relativeX = segment[segment.length - 2];\n relativeY = segment[segment.length - 1];\n } else {\n console.log(errorMessage);\n }\n }\n\n i = segment.length;\n\n if (i < 6) {\n //in case there's odd SVG like a M0,0 command at the very end.\n path.pop();\n i = 0;\n } else if (segment[0] === segment[i - 2] && segment[1] === segment[i - 1]) {\n segment.closed = true;\n }\n\n path.totalPoints = points + i;\n return path;\n} //populates the points array in alternating x/y values (like [x, y, x, y...] instead of individual point objects [{x, y}, {x, y}...] to conserve memory and stay in line with how we're handling segment arrays\n\nexport function bezierToPoints(x1, y1, x2, y2, x3, y3, x4, y4, threshold, points, index) {\n var x12 = (x1 + x2) / 2,\n y12 = (y1 + y2) / 2,\n x23 = (x2 + x3) / 2,\n y23 = (y2 + y3) / 2,\n x34 = (x3 + x4) / 2,\n y34 = (y3 + y4) / 2,\n x123 = (x12 + x23) / 2,\n y123 = (y12 + y23) / 2,\n x234 = (x23 + x34) / 2,\n y234 = (y23 + y34) / 2,\n x1234 = (x123 + x234) / 2,\n y1234 = (y123 + y234) / 2,\n dx = x4 - x1,\n dy = y4 - y1,\n d2 = _abs((x2 - x4) * dy - (y2 - y4) * dx),\n d3 = _abs((x3 - x4) * dy - (y3 - y4) * dx),\n length;\n\n if (!points) {\n points = [x1, y1, x4, y4];\n index = 2;\n }\n\n points.splice(index || points.length - 2, 0, x1234, y1234);\n\n if ((d2 + d3) * (d2 + d3) > threshold * (dx * dx + dy * dy)) {\n length = points.length;\n bezierToPoints(x1, y1, x12, y12, x123, y123, x1234, y1234, threshold, points, index);\n bezierToPoints(x1234, y1234, x234, y234, x34, y34, x4, y4, threshold, points, index + 2 + (points.length - length));\n }\n\n return points;\n}\n/*\nfunction getAngleBetweenPoints(x0, y0, x1, y1, x2, y2) { //angle between 3 points in radians\n\tvar dx1 = x1 - x0,\n\t\tdy1 = y1 - y0,\n\t\tdx2 = x2 - x1,\n\t\tdy2 = y2 - y1,\n\t\tdx3 = x2 - x0,\n\t\tdy3 = y2 - y0,\n\t\ta = dx1 * dx1 + dy1 * dy1,\n\t\tb = dx2 * dx2 + dy2 * dy2,\n\t\tc = dx3 * dx3 + dy3 * dy3;\n\treturn Math.acos( (a + b - c) / _sqrt(4 * a * b) );\n},\n*/\n//pointsToSegment() doesn't handle flat coordinates (where y is always 0) the way we need (the resulting control points are always right on top of the anchors), so this function basically makes the control points go directly up and down, varying in length based on the curviness (more curvy, further control points)\n\nexport function flatPointsToSegment(points, curviness) {\n if (curviness === void 0) {\n curviness = 1;\n }\n\n var x = points[0],\n y = 0,\n segment = [x, y],\n i = 2;\n\n for (; i < points.length; i += 2) {\n segment.push(x, y, points[i], y = (points[i] - x) * curviness / 2, x = points[i], -y);\n }\n\n return segment;\n} //points is an array of x/y points, like [x, y, x, y, x, y]\n\nexport function pointsToSegment(points, curviness) {\n //points = simplifyPoints(points, tolerance);\n _abs(points[0] - points[2]) < 1e-4 && _abs(points[1] - points[3]) < 1e-4 && (points = points.slice(2)); // if the first two points are super close, dump the first one.\n\n var l = points.length - 2,\n x = +points[0],\n y = +points[1],\n nextX = +points[2],\n nextY = +points[3],\n segment = [x, y, x, y],\n dx2 = nextX - x,\n dy2 = nextY - y,\n closed = Math.abs(points[l] - x) < 0.001 && Math.abs(points[l + 1] - y) < 0.001,\n prevX,\n prevY,\n i,\n dx1,\n dy1,\n r1,\n r2,\n r3,\n tl,\n mx1,\n mx2,\n mxm,\n my1,\n my2,\n mym;\n\n if (closed) {\n // if the start and end points are basically on top of each other, close the segment by adding the 2nd point to the end, and the 2nd-to-last point to the beginning (we'll remove them at the end, but this allows the curvature to look perfect)\n points.push(nextX, nextY);\n nextX = x;\n nextY = y;\n x = points[l - 2];\n y = points[l - 1];\n points.unshift(x, y);\n l += 4;\n }\n\n curviness = curviness || curviness === 0 ? +curviness : 1;\n\n for (i = 2; i < l; i += 2) {\n prevX = x;\n prevY = y;\n x = nextX;\n y = nextY;\n nextX = +points[i + 2];\n nextY = +points[i + 3];\n\n if (x === nextX && y === nextY) {\n continue;\n }\n\n dx1 = dx2;\n dy1 = dy2;\n dx2 = nextX - x;\n dy2 = nextY - y;\n r1 = _sqrt(dx1 * dx1 + dy1 * dy1); // r1, r2, and r3 correlate x and y (and z in the future). Basically 2D or 3D hypotenuse\n\n r2 = _sqrt(dx2 * dx2 + dy2 * dy2);\n r3 = _sqrt(Math.pow(dx2 / r2 + dx1 / r1, 2) + Math.pow(dy2 / r2 + dy1 / r1, 2));\n tl = (r1 + r2) * curviness * 0.25 / r3;\n mx1 = x - (x - prevX) * (r1 ? tl / r1 : 0);\n mx2 = x + (nextX - x) * (r2 ? tl / r2 : 0);\n mxm = x - (mx1 + ((mx2 - mx1) * (r1 * 3 / (r1 + r2) + 0.5) / 4 || 0));\n my1 = y - (y - prevY) * (r1 ? tl / r1 : 0);\n my2 = y + (nextY - y) * (r2 ? tl / r2 : 0);\n mym = y - (my1 + ((my2 - my1) * (r1 * 3 / (r1 + r2) + 0.5) / 4 || 0));\n\n if (x !== prevX || y !== prevY) {\n segment.push(_round(mx1 + mxm), // first control point\n _round(my1 + mym), _round(x), // anchor\n _round(y), _round(mx2 + mxm), // second control point\n _round(my2 + mym));\n }\n }\n\n x !== nextX || y !== nextY || segment.length < 4 ? segment.push(_round(nextX), _round(nextY), _round(nextX), _round(nextY)) : segment.length -= 2;\n\n if (segment.length === 2) {\n // only one point!\n segment.push(x, y, x, y, x, y);\n } else if (closed) {\n segment.splice(0, 6);\n segment.length = segment.length - 6;\n }\n\n return segment;\n} //returns the squared distance between an x/y coordinate and a segment between x1/y1 and x2/y2\n\nfunction pointToSegDist(x, y, x1, y1, x2, y2) {\n var dx = x2 - x1,\n dy = y2 - y1,\n t;\n\n if (dx || dy) {\n t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x1 = x2;\n y1 = y2;\n } else if (t > 0) {\n x1 += dx * t;\n y1 += dy * t;\n }\n }\n\n return Math.pow(x - x1, 2) + Math.pow(y - y1, 2);\n}\n\nfunction simplifyStep(points, first, last, tolerance, simplified) {\n var maxSqDist = tolerance,\n firstX = points[first],\n firstY = points[first + 1],\n lastX = points[last],\n lastY = points[last + 1],\n index,\n i,\n d;\n\n for (i = first + 2; i < last; i += 2) {\n d = pointToSegDist(points[i], points[i + 1], firstX, firstY, lastX, lastY);\n\n if (d > maxSqDist) {\n index = i;\n maxSqDist = d;\n }\n }\n\n if (maxSqDist > tolerance) {\n index - first > 2 && simplifyStep(points, first, index, tolerance, simplified);\n simplified.push(points[index], points[index + 1]);\n last - index > 2 && simplifyStep(points, index, last, tolerance, simplified);\n }\n} //points is an array of x/y values like [x, y, x, y, x, y]\n\n\nexport function simplifyPoints(points, tolerance) {\n var prevX = parseFloat(points[0]),\n prevY = parseFloat(points[1]),\n temp = [prevX, prevY],\n l = points.length - 2,\n i,\n x,\n y,\n dx,\n dy,\n result,\n last;\n tolerance = Math.pow(tolerance || 1, 2);\n\n for (i = 2; i < l; i += 2) {\n x = parseFloat(points[i]);\n y = parseFloat(points[i + 1]);\n dx = prevX - x;\n dy = prevY - y;\n\n if (dx * dx + dy * dy > tolerance) {\n temp.push(x, y);\n prevX = x;\n prevY = y;\n }\n }\n\n temp.push(parseFloat(points[l]), parseFloat(points[l + 1]));\n last = temp.length - 2;\n result = [temp[0], temp[1]];\n simplifyStep(temp, 0, last, tolerance, result);\n result.push(temp[last], temp[last + 1]);\n return result;\n}\n\nfunction getClosestProgressOnBezier(iterations, px, py, start, end, slices, x0, y0, x1, y1, x2, y2, x3, y3) {\n var inc = (end - start) / slices,\n best = 0,\n t = start,\n x,\n y,\n d,\n dx,\n dy,\n inv;\n _bestDistance = _largeNum;\n\n while (t <= end) {\n inv = 1 - t;\n x = inv * inv * inv * x0 + 3 * inv * inv * t * x1 + 3 * inv * t * t * x2 + t * t * t * x3;\n y = inv * inv * inv * y0 + 3 * inv * inv * t * y1 + 3 * inv * t * t * y2 + t * t * t * y3;\n dx = x - px;\n dy = y - py;\n d = dx * dx + dy * dy;\n\n if (d < _bestDistance) {\n _bestDistance = d;\n best = t;\n }\n\n t += inc;\n }\n\n return iterations > 1 ? getClosestProgressOnBezier(iterations - 1, px, py, Math.max(best - inc, 0), Math.min(best + inc, 1), slices, x0, y0, x1, y1, x2, y2, x3, y3) : best;\n}\n\nexport function getClosestData(rawPath, x, y, slices) {\n //returns an object with the closest j, i, and t (j is the segment index, i is the index of the point in that segment, and t is the time/progress along that bezier)\n var closest = {\n j: 0,\n i: 0,\n t: 0\n },\n bestDistance = _largeNum,\n i,\n j,\n t,\n segment;\n\n for (j = 0; j < rawPath.length; j++) {\n segment = rawPath[j];\n\n for (i = 0; i < segment.length; i += 6) {\n t = getClosestProgressOnBezier(1, x, y, 0, 1, slices || 20, segment[i], segment[i + 1], segment[i + 2], segment[i + 3], segment[i + 4], segment[i + 5], segment[i + 6], segment[i + 7]);\n\n if (bestDistance > _bestDistance) {\n bestDistance = _bestDistance;\n closest.j = j;\n closest.i = i;\n closest.t = t;\n }\n }\n }\n\n return closest;\n} //subdivide a Segment closest to a specific x,y coordinate\n\nexport function subdivideSegmentNear(x, y, segment, slices, iterations) {\n var l = segment.length,\n bestDistance = _largeNum,\n bestT = 0,\n bestSegmentIndex = 0,\n t,\n i;\n slices = slices || 20;\n iterations = iterations || 3;\n\n for (i = 0; i < l; i += 6) {\n t = getClosestProgressOnBezier(1, x, y, 0, 1, slices, segment[i], segment[i + 1], segment[i + 2], segment[i + 3], segment[i + 4], segment[i + 5], segment[i + 6], segment[i + 7]);\n\n if (bestDistance > _bestDistance) {\n bestDistance = _bestDistance;\n bestT = t;\n bestSegmentIndex = i;\n }\n }\n\n t = getClosestProgressOnBezier(iterations, x, y, bestT - 0.05, bestT + 0.05, slices, segment[bestSegmentIndex], segment[bestSegmentIndex + 1], segment[bestSegmentIndex + 2], segment[bestSegmentIndex + 3], segment[bestSegmentIndex + 4], segment[bestSegmentIndex + 5], segment[bestSegmentIndex + 6], segment[bestSegmentIndex + 7]);\n subdivideSegment(segment, bestSegmentIndex, t);\n return bestSegmentIndex + 6;\n}\n/*\nTakes any of the following and converts it to an all Cubic Bezier SVG data string:\n- A data string like \"M0,0 L2,4 v20,15 H100\"\n- A RawPath, like [[x, y, x, y, x, y, x, y][[x, y, x, y, x, y, x, y]]\n- A Segment, like [x, y, x, y, x, y, x, y]\n\nNote: all numbers are rounded down to the closest 0.001 to minimize memory, maximize speed, and avoid odd numbers like 1e-13\n*/\n\nexport function rawPathToString(rawPath) {\n if (_isNumber(rawPath[0])) {\n //in case a segment is passed in instead\n rawPath = [rawPath];\n }\n\n var result = \"\",\n l = rawPath.length,\n sl,\n s,\n i,\n segment;\n\n for (s = 0; s < l; s++) {\n segment = rawPath[s];\n result += \"M\" + _round(segment[0]) + \",\" + _round(segment[1]) + \" C\";\n sl = segment.length;\n\n for (i = 2; i < sl; i++) {\n result += _round(segment[i++]) + \",\" + _round(segment[i++]) + \" \" + _round(segment[i++]) + \",\" + _round(segment[i++]) + \" \" + _round(segment[i++]) + \",\" + _round(segment[i]) + \" \";\n }\n\n if (segment.closed) {\n result += \"z\";\n }\n }\n\n return result;\n}\n/*\n// takes a segment with coordinates [x, y, x, y, ...] and converts the control points into angles and lengths [x, y, angle, length, angle, length, x, y, angle, length, ...] so that it animates more cleanly and avoids odd breaks/kinks. For example, if you animate from 1 o'clock to 6 o'clock, it'd just go directly/linearly rather than around. So the length would be very short in the middle of the tween.\nexport function cpCoordsToAngles(segment, copy) {\n\tvar result = copy ? segment.slice(0) : segment,\n\t\tx, y, i;\n\tfor (i = 0; i < segment.length; i+=6) {\n\t\tx = segment[i+2] - segment[i];\n\t\ty = segment[i+3] - segment[i+1];\n\t\tresult[i+2] = Math.atan2(y, x);\n\t\tresult[i+3] = Math.sqrt(x * x + y * y);\n\t\tx = segment[i+6] - segment[i+4];\n\t\ty = segment[i+7] - segment[i+5];\n\t\tresult[i+4] = Math.atan2(y, x);\n\t\tresult[i+5] = Math.sqrt(x * x + y * y);\n\t}\n\treturn result;\n}\n\n// takes a segment that was converted with cpCoordsToAngles() to have angles and lengths instead of coordinates for the control points, and converts it BACK into coordinates.\nexport function cpAnglesToCoords(segment, copy) {\n\tvar result = copy ? segment.slice(0) : segment,\n\t\tlength = segment.length,\n\t\trnd = 1000,\n\t\tangle, l, i, j;\n\tfor (i = 0; i < length; i+=6) {\n\t\tangle = segment[i+2];\n\t\tl = segment[i+3]; //length\n\t\tresult[i+2] = (((segment[i] + Math.cos(angle) * l) * rnd) | 0) / rnd;\n\t\tresult[i+3] = (((segment[i+1] + Math.sin(angle) * l) * rnd) | 0) / rnd;\n\t\tangle = segment[i+4];\n\t\tl = segment[i+5]; //length\n\t\tresult[i+4] = (((segment[i+6] - Math.cos(angle) * l) * rnd) | 0) / rnd;\n\t\tresult[i+5] = (((segment[i+7] - Math.sin(angle) * l) * rnd) | 0) / rnd;\n\t}\n\treturn result;\n}\n\n//adds an \"isSmooth\" array to each segment and populates it with a boolean value indicating whether or not it's smooth (the control points have basically the same slope). For any smooth control points, it converts the coordinates into angle (x, in radians) and length (y) and puts them into the same index value in a smoothData array.\nexport function populateSmoothData(rawPath) {\n\tlet j = rawPath.length,\n\t\tsmooth, segment, x, y, x2, y2, i, l, a, a2, isSmooth, smoothData;\n\twhile (--j > -1) {\n\t\tsegment = rawPath[j];\n\t\tisSmooth = segment.isSmooth = segment.isSmooth || [0, 0, 0, 0];\n\t\tsmoothData = segment.smoothData = segment.smoothData || [0, 0, 0, 0];\n\t\tisSmooth.length = 4;\n\t\tl = segment.length - 2;\n\t\tfor (i = 6; i < l; i += 6) {\n\t\t\tx = segment[i] - segment[i - 2];\n\t\t\ty = segment[i + 1] - segment[i - 1];\n\t\t\tx2 = segment[i + 2] - segment[i];\n\t\t\ty2 = segment[i + 3] - segment[i + 1];\n\t\t\ta = _atan2(y, x);\n\t\t\ta2 = _atan2(y2, x2);\n\t\t\tsmooth = (Math.abs(a - a2) < 0.09);\n\t\t\tif (smooth) {\n\t\t\t\tsmoothData[i - 2] = a;\n\t\t\t\tsmoothData[i + 2] = a2;\n\t\t\t\tsmoothData[i - 1] = _sqrt(x * x + y * y);\n\t\t\t\tsmoothData[i + 3] = _sqrt(x2 * x2 + y2 * y2);\n\t\t\t}\n\t\t\tisSmooth.push(smooth, smooth, 0, 0, smooth, smooth);\n\t\t}\n\t\t//if the first and last points are identical, check to see if there's a smooth transition. We must handle this a bit differently due to their positions in the array.\n\t\tif (segment[l] === segment[0] && segment[l+1] === segment[1]) {\n\t\t\tx = segment[0] - segment[l-2];\n\t\t\ty = segment[1] - segment[l-1];\n\t\t\tx2 = segment[2] - segment[0];\n\t\t\ty2 = segment[3] - segment[1];\n\t\t\ta = _atan2(y, x);\n\t\t\ta2 = _atan2(y2, x2);\n\t\t\tif (Math.abs(a - a2) < 0.09) {\n\t\t\t\tsmoothData[l-2] = a;\n\t\t\t\tsmoothData[2] = a2;\n\t\t\t\tsmoothData[l-1] = _sqrt(x * x + y * y);\n\t\t\t\tsmoothData[3] = _sqrt(x2 * x2 + y2 * y2);\n\t\t\t\tisSmooth[l-2] = isSmooth[l-1] = true; //don't change indexes 2 and 3 because we'll trigger everything from the END, and this will optimize file size a bit.\n\t\t\t}\n\t\t}\n\t}\n\treturn rawPath;\n}\nexport function pointToScreen(svgElement, point) {\n\tif (arguments.length < 2) { //by default, take the first set of coordinates in the path as the point\n\t\tlet rawPath = getRawPath(svgElement);\n\t\tpoint = svgElement.ownerSVGElement.createSVGPoint();\n\t\tpoint.x = rawPath[0][0];\n\t\tpoint.y = rawPath[0][1];\n\t}\n\treturn point.matrixTransform(svgElement.getScreenCTM());\n}\n\n*/","/*!\n * matrix 3.12.4\n * https://gsap.com\n *\n * Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _doc,\n _win,\n _docElement,\n _body,\n _divContainer,\n _svgContainer,\n _identityMatrix,\n _gEl,\n _transformProp = \"transform\",\n _transformOriginProp = _transformProp + \"Origin\",\n _hasOffsetBug,\n _setDoc = function _setDoc(element) {\n var doc = element.ownerDocument || element;\n\n if (!(_transformProp in element.style) && \"msTransform\" in element.style) {\n //to improve compatibility with old Microsoft browsers\n _transformProp = \"msTransform\";\n _transformOriginProp = _transformProp + \"Origin\";\n }\n\n while (doc.parentNode && (doc = doc.parentNode)) {}\n\n _win = window;\n _identityMatrix = new Matrix2D();\n\n if (doc) {\n _doc = doc;\n _docElement = doc.documentElement;\n _body = doc.body;\n _gEl = _doc.createElementNS(\"http://www.w3.org/2000/svg\", \"g\"); // prevent any existing CSS from transforming it\n\n _gEl.style.transform = \"none\"; // now test for the offset reporting bug. Use feature detection instead of browser sniffing to make things more bulletproof and future-proof. Hopefully Safari will fix their bug soon.\n\n var d1 = doc.createElement(\"div\"),\n d2 = doc.createElement(\"div\"),\n root = doc && (doc.body || doc.firstElementChild);\n\n if (root && root.appendChild) {\n root.appendChild(d1);\n d1.appendChild(d2);\n d1.setAttribute(\"style\", \"position:static;transform:translate3d(0,0,1px)\");\n _hasOffsetBug = d2.offsetParent !== d1;\n root.removeChild(d1);\n }\n }\n\n return doc;\n},\n _forceNonZeroScale = function _forceNonZeroScale(e) {\n // walks up the element's ancestors and finds any that had their scale set to 0 via GSAP, and changes them to 0.0001 to ensure that measurements work. Firefox has a bug that causes it to incorrectly report getBoundingClientRect() when scale is 0.\n var a, cache;\n\n while (e && e !== _body) {\n cache = e._gsap;\n cache && cache.uncache && cache.get(e, \"x\"); // force re-parsing of transforms if necessary\n\n if (cache && !cache.scaleX && !cache.scaleY && cache.renderTransform) {\n cache.scaleX = cache.scaleY = 1e-4;\n cache.renderTransform(1, cache);\n a ? a.push(cache) : a = [cache];\n }\n\n e = e.parentNode;\n }\n\n return a;\n},\n // possible future addition: pass an element to _forceDisplay() and it'll walk up all its ancestors and make sure anything with display: none is set to display: block, and if there's no parentNode, it'll add it to the body. It returns an Array that you can then feed to _revertDisplay() to have it revert all the changes it made.\n// _forceDisplay = e => {\n// \tlet a = [],\n// \t\tparent;\n// \twhile (e && e !== _body) {\n// \t\tparent = e.parentNode;\n// \t\t(_win.getComputedStyle(e).display === \"none\" || !parent) && a.push(e, e.style.display, parent) && (e.style.display = \"block\");\n// \t\tparent || _body.appendChild(e);\n// \t\te = parent;\n// \t}\n// \treturn a;\n// },\n// _revertDisplay = a => {\n// \tfor (let i = 0; i < a.length; i+=3) {\n// \t\ta[i+1] ? (a[i].style.display = a[i+1]) : a[i].style.removeProperty(\"display\");\n// \t\ta[i+2] || a[i].parentNode.removeChild(a[i]);\n// \t}\n// },\n_svgTemps = [],\n //we create 3 elements for SVG, and 3 for other DOM elements and cache them for performance reasons. They get nested in _divContainer and _svgContainer so that just one element is added to the DOM on each successive attempt. Again, performance is key.\n_divTemps = [],\n _getDocScrollTop = function _getDocScrollTop() {\n return _win.pageYOffset || _doc.scrollTop || _docElement.scrollTop || _body.scrollTop || 0;\n},\n _getDocScrollLeft = function _getDocScrollLeft() {\n return _win.pageXOffset || _doc.scrollLeft || _docElement.scrollLeft || _body.scrollLeft || 0;\n},\n _svgOwner = function _svgOwner(element) {\n return element.ownerSVGElement || ((element.tagName + \"\").toLowerCase() === \"svg\" ? element : null);\n},\n _isFixed = function _isFixed(element) {\n if (_win.getComputedStyle(element).position === \"fixed\") {\n return true;\n }\n\n element = element.parentNode;\n\n if (element && element.nodeType === 1) {\n // avoid document fragments which will throw an error.\n return _isFixed(element);\n }\n},\n _createSibling = function _createSibling(element, i) {\n if (element.parentNode && (_doc || _setDoc(element))) {\n var svg = _svgOwner(element),\n ns = svg ? svg.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\" : \"http://www.w3.org/1999/xhtml\",\n type = svg ? i ? \"rect\" : \"g\" : \"div\",\n x = i !== 2 ? 0 : 100,\n y = i === 3 ? 100 : 0,\n css = \"position:absolute;display:block;pointer-events:none;margin:0;padding:0;\",\n e = _doc.createElementNS ? _doc.createElementNS(ns.replace(/^https/, \"http\"), type) : _doc.createElement(type);\n\n if (i) {\n if (!svg) {\n if (!_divContainer) {\n _divContainer = _createSibling(element);\n _divContainer.style.cssText = css;\n }\n\n e.style.cssText = css + \"width:0.1px;height:0.1px;top:\" + y + \"px;left:\" + x + \"px\";\n\n _divContainer.appendChild(e);\n } else {\n _svgContainer || (_svgContainer = _createSibling(element));\n e.setAttribute(\"width\", 0.01);\n e.setAttribute(\"height\", 0.01);\n e.setAttribute(\"transform\", \"translate(\" + x + \",\" + y + \")\");\n\n _svgContainer.appendChild(e);\n }\n }\n\n return e;\n }\n\n throw \"Need document and parent.\";\n},\n _consolidate = function _consolidate(m) {\n // replaces SVGTransformList.consolidate() because a bug in Firefox causes it to break pointer events. See https://gsap.com/forums/topic/23248-touch-is-not-working-on-draggable-in-firefox-windows-v324/?tab=comments#comment-109800\n var c = new Matrix2D(),\n i = 0;\n\n for (; i < m.numberOfItems; i++) {\n c.multiply(m.getItem(i).matrix);\n }\n\n return c;\n},\n _getCTM = function _getCTM(svg) {\n var m = svg.getCTM(),\n transform;\n\n if (!m) {\n // Firefox returns null for getCTM() on root elements, so this is a workaround using a that we temporarily append.\n transform = svg.style[_transformProp];\n svg.style[_transformProp] = \"none\"; // a bug in Firefox causes css transforms to contaminate the getCTM()\n\n svg.appendChild(_gEl);\n m = _gEl.getCTM();\n svg.removeChild(_gEl);\n transform ? svg.style[_transformProp] = transform : svg.style.removeProperty(_transformProp.replace(/([A-Z])/g, \"-$1\").toLowerCase());\n }\n\n return m || _identityMatrix.clone(); // Firefox will still return null if the has a width/height of 0 in the browser.\n},\n _placeSiblings = function _placeSiblings(element, adjustGOffset) {\n var svg = _svgOwner(element),\n isRootSVG = element === svg,\n siblings = svg ? _svgTemps : _divTemps,\n parent = element.parentNode,\n container,\n m,\n b,\n x,\n y,\n cs;\n\n if (element === _win) {\n return element;\n }\n\n siblings.length || siblings.push(_createSibling(element, 1), _createSibling(element, 2), _createSibling(element, 3));\n container = svg ? _svgContainer : _divContainer;\n\n if (svg) {\n if (isRootSVG) {\n b = _getCTM(element);\n x = -b.e / b.a;\n y = -b.f / b.d;\n m = _identityMatrix;\n } else if (element.getBBox) {\n b = element.getBBox();\n m = element.transform ? element.transform.baseVal : {}; // IE11 doesn't follow the spec.\n\n m = !m.numberOfItems ? _identityMatrix : m.numberOfItems > 1 ? _consolidate(m) : m.getItem(0).matrix; // don't call m.consolidate().matrix because a bug in Firefox makes pointer events not work when consolidate() is called on the same tick as getBoundingClientRect()! See https://gsap.com/forums/topic/23248-touch-is-not-working-on-draggable-in-firefox-windows-v324/?tab=comments#comment-109800\n\n x = m.a * b.x + m.c * b.y;\n y = m.b * b.x + m.d * b.y;\n } else {\n // may be a which has no getBBox() so just use defaults instead of throwing errors.\n m = new Matrix2D();\n x = y = 0;\n }\n\n if (adjustGOffset && element.tagName.toLowerCase() === \"g\") {\n x = y = 0;\n }\n\n (isRootSVG ? svg : parent).appendChild(container);\n container.setAttribute(\"transform\", \"matrix(\" + m.a + \",\" + m.b + \",\" + m.c + \",\" + m.d + \",\" + (m.e + x) + \",\" + (m.f + y) + \")\");\n } else {\n x = y = 0;\n\n if (_hasOffsetBug) {\n // some browsers (like Safari) have a bug that causes them to misreport offset values. When an ancestor element has a transform applied, it's supposed to treat it as if it's position: relative (new context). Safari botches this, so we need to find the closest ancestor (between the element and its offsetParent) that has a transform applied and if one is found, grab its offsetTop/Left and subtract them to compensate.\n m = element.offsetParent;\n b = element;\n\n while (b && (b = b.parentNode) && b !== m && b.parentNode) {\n if ((_win.getComputedStyle(b)[_transformProp] + \"\").length > 4) {\n x = b.offsetLeft;\n y = b.offsetTop;\n b = 0;\n }\n }\n }\n\n cs = _win.getComputedStyle(element);\n\n if (cs.position !== \"absolute\" && cs.position !== \"fixed\") {\n m = element.offsetParent;\n\n while (parent && parent !== m) {\n // if there's an ancestor element between the element and its offsetParent that's scrolled, we must factor that in.\n x += parent.scrollLeft || 0;\n y += parent.scrollTop || 0;\n parent = parent.parentNode;\n }\n }\n\n b = container.style;\n b.top = element.offsetTop - y + \"px\";\n b.left = element.offsetLeft - x + \"px\";\n b[_transformProp] = cs[_transformProp];\n b[_transformOriginProp] = cs[_transformOriginProp]; // b.border = m.border;\n // b.borderLeftStyle = m.borderLeftStyle;\n // b.borderTopStyle = m.borderTopStyle;\n // b.borderLeftWidth = m.borderLeftWidth;\n // b.borderTopWidth = m.borderTopWidth;\n\n b.position = cs.position === \"fixed\" ? \"fixed\" : \"absolute\";\n element.parentNode.appendChild(container);\n }\n\n return container;\n},\n _setMatrix = function _setMatrix(m, a, b, c, d, e, f) {\n m.a = a;\n m.b = b;\n m.c = c;\n m.d = d;\n m.e = e;\n m.f = f;\n return m;\n};\n\nexport var Matrix2D = /*#__PURE__*/function () {\n function Matrix2D(a, b, c, d, e, f) {\n if (a === void 0) {\n a = 1;\n }\n\n if (b === void 0) {\n b = 0;\n }\n\n if (c === void 0) {\n c = 0;\n }\n\n if (d === void 0) {\n d = 1;\n }\n\n if (e === void 0) {\n e = 0;\n }\n\n if (f === void 0) {\n f = 0;\n }\n\n _setMatrix(this, a, b, c, d, e, f);\n }\n\n var _proto = Matrix2D.prototype;\n\n _proto.inverse = function inverse() {\n var a = this.a,\n b = this.b,\n c = this.c,\n d = this.d,\n e = this.e,\n f = this.f,\n determinant = a * d - b * c || 1e-10;\n return _setMatrix(this, d / determinant, -b / determinant, -c / determinant, a / determinant, (c * f - d * e) / determinant, -(a * f - b * e) / determinant);\n };\n\n _proto.multiply = function multiply(matrix) {\n var a = this.a,\n b = this.b,\n c = this.c,\n d = this.d,\n e = this.e,\n f = this.f,\n a2 = matrix.a,\n b2 = matrix.c,\n c2 = matrix.b,\n d2 = matrix.d,\n e2 = matrix.e,\n f2 = matrix.f;\n return _setMatrix(this, a2 * a + c2 * c, a2 * b + c2 * d, b2 * a + d2 * c, b2 * b + d2 * d, e + e2 * a + f2 * c, f + e2 * b + f2 * d);\n };\n\n _proto.clone = function clone() {\n return new Matrix2D(this.a, this.b, this.c, this.d, this.e, this.f);\n };\n\n _proto.equals = function equals(matrix) {\n var a = this.a,\n b = this.b,\n c = this.c,\n d = this.d,\n e = this.e,\n f = this.f;\n return a === matrix.a && b === matrix.b && c === matrix.c && d === matrix.d && e === matrix.e && f === matrix.f;\n };\n\n _proto.apply = function apply(point, decoratee) {\n if (decoratee === void 0) {\n decoratee = {};\n }\n\n var x = point.x,\n y = point.y,\n a = this.a,\n b = this.b,\n c = this.c,\n d = this.d,\n e = this.e,\n f = this.f;\n decoratee.x = x * a + y * c + e || 0;\n decoratee.y = x * b + y * d + f || 0;\n return decoratee;\n };\n\n return Matrix2D;\n}(); // Feed in an element and it'll return a 2D matrix (optionally inverted) so that you can translate between coordinate spaces.\n// Inverting lets you translate a global point into a local coordinate space. No inverting lets you go the other way.\n// We needed this to work around various browser bugs, like Firefox doesn't accurately report getScreenCTM() when there\n// are transforms applied to ancestor elements.\n// The matrix math to convert any x/y coordinate is as follows, which is wrapped in a convenient apply() method of Matrix2D above:\n// tx = m.a * x + m.c * y + m.e\n// ty = m.b * x + m.d * y + m.f\n\nexport function getGlobalMatrix(element, inverse, adjustGOffset, includeScrollInFixed) {\n // adjustGOffset is typically used only when grabbing an element's PARENT's global matrix, and it ignores the x/y offset of any SVG elements because they behave in a special way.\n if (!element || !element.parentNode || (_doc || _setDoc(element)).documentElement === element) {\n return new Matrix2D();\n }\n\n var zeroScales = _forceNonZeroScale(element),\n svg = _svgOwner(element),\n temps = svg ? _svgTemps : _divTemps,\n container = _placeSiblings(element, adjustGOffset),\n b1 = temps[0].getBoundingClientRect(),\n b2 = temps[1].getBoundingClientRect(),\n b3 = temps[2].getBoundingClientRect(),\n parent = container.parentNode,\n isFixed = !includeScrollInFixed && _isFixed(element),\n m = new Matrix2D((b2.left - b1.left) / 100, (b2.top - b1.top) / 100, (b3.left - b1.left) / 100, (b3.top - b1.top) / 100, b1.left + (isFixed ? 0 : _getDocScrollLeft()), b1.top + (isFixed ? 0 : _getDocScrollTop()));\n\n parent.removeChild(container);\n\n if (zeroScales) {\n b1 = zeroScales.length;\n\n while (b1--) {\n b2 = zeroScales[b1];\n b2.scaleX = b2.scaleY = 0;\n b2.renderTransform(1, b2);\n }\n }\n\n return inverse ? m.inverse() : m;\n}\nexport { _getDocScrollTop, _getDocScrollLeft, _setDoc, _isFixed, _getCTM }; // export function getMatrix(element) {\n// \t_doc || _setDoc(element);\n// \tlet m = (_win.getComputedStyle(element)[_transformProp] + \"\").substr(7).match(/[-.]*\\d+[.e\\-+]*\\d*[e\\-\\+]*\\d*/g),\n// \t\tis2D = m && m.length === 6;\n// \treturn !m || m.length < 6 ? new Matrix2D() : new Matrix2D(+m[0], +m[1], +m[is2D ? 2 : 4], +m[is2D ? 3 : 5], +m[is2D ? 4 : 12], +m[is2D ? 5 : 13]);\n// }","/*!\n * MotionPathPlugin 3.12.4\n * https://gsap.com\n *\n * @license Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { getRawPath, cacheRawPathMeasurements, getPositionOnPath, pointsToSegment, flatPointsToSegment, sliceRawPath, stringToRawPath, rawPathToString, transformRawPath, convertToPath as _convertToPath } from \"./utils/paths.js\";\nimport { getGlobalMatrix } from \"./utils/matrix.js\";\n\nvar _xProps = \"x,translateX,left,marginLeft,xPercent\".split(\",\"),\n _yProps = \"y,translateY,top,marginTop,yPercent\".split(\",\"),\n _DEG2RAD = Math.PI / 180,\n gsap,\n PropTween,\n _getUnit,\n _toArray,\n _getStyleSaver,\n _reverting,\n _getGSAP = function _getGSAP() {\n return gsap || typeof window !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _populateSegmentFromArray = function _populateSegmentFromArray(segment, values, property, mode) {\n //mode: 0 = x but don't fill y yet, 1 = y, 2 = x and fill y with 0.\n var l = values.length,\n si = mode === 2 ? 0 : mode,\n i = 0,\n v;\n\n for (; i < l; i++) {\n segment[si] = v = parseFloat(values[i][property]);\n mode === 2 && (segment[si + 1] = 0);\n si += 2;\n }\n\n return segment;\n},\n _getPropNum = function _getPropNum(target, prop, unit) {\n return parseFloat(target._gsap.get(target, prop, unit || \"px\")) || 0;\n},\n _relativize = function _relativize(segment) {\n var x = segment[0],\n y = segment[1],\n i;\n\n for (i = 2; i < segment.length; i += 2) {\n x = segment[i] += x;\n y = segment[i + 1] += y;\n }\n},\n // feed in an array of quadratic bezier points like [{x: 0, y: 0}, ...] and it'll convert it to cubic bezier\n// _quadToCubic = points => {\n// \tlet cubic = [],\n// \t\tl = points.length - 1,\n// \t\ti = 1,\n// \t\ta, b, c;\n// \tfor (; i < l; i+=2) {\n// \t\ta = points[i-1];\n// \t\tb = points[i];\n// \t\tc = points[i+1];\n// \t\tcubic.push(a, {x: (2 * b.x + a.x) / 3, y: (2 * b.y + a.y) / 3}, {x: (2 * b.x + c.x) / 3, y: (2 * b.y + c.y) / 3});\n// \t}\n// \tcubic.push(points[l]);\n// \treturn cubic;\n// },\n_segmentToRawPath = function _segmentToRawPath(plugin, segment, target, x, y, slicer, vars, unitX, unitY) {\n if (vars.type === \"cubic\") {\n segment = [segment];\n } else {\n vars.fromCurrent !== false && segment.unshift(_getPropNum(target, x, unitX), y ? _getPropNum(target, y, unitY) : 0);\n vars.relative && _relativize(segment);\n var pointFunc = y ? pointsToSegment : flatPointsToSegment;\n segment = [pointFunc(segment, vars.curviness)];\n }\n\n segment = slicer(_align(segment, target, vars));\n\n _addDimensionalPropTween(plugin, target, x, segment, \"x\", unitX);\n\n y && _addDimensionalPropTween(plugin, target, y, segment, \"y\", unitY);\n return cacheRawPathMeasurements(segment, vars.resolution || (vars.curviness === 0 ? 20 : 12)); //when curviness is 0, it creates control points right on top of the anchors which makes it more sensitive to resolution, thus we change the default accordingly.\n},\n _emptyFunc = function _emptyFunc(v) {\n return v;\n},\n _numExp = /[-+\\.]*\\d+\\.?(?:e-|e\\+)?\\d*/g,\n _originToPoint = function _originToPoint(element, origin, parentMatrix) {\n // origin is an array of normalized values (0-1) in relation to the width/height, so [0.5, 0.5] would be the center. It can also be \"auto\" in which case it will be the top left unless it's a , when it will start at the beginning of the path itself.\n var m = getGlobalMatrix(element),\n x = 0,\n y = 0,\n svg;\n\n if ((element.tagName + \"\").toLowerCase() === \"svg\") {\n svg = element.viewBox.baseVal;\n svg.width || (svg = {\n width: +element.getAttribute(\"width\"),\n height: +element.getAttribute(\"height\")\n });\n } else {\n svg = origin && element.getBBox && element.getBBox();\n }\n\n if (origin && origin !== \"auto\") {\n x = origin.push ? origin[0] * (svg ? svg.width : element.offsetWidth || 0) : origin.x;\n y = origin.push ? origin[1] * (svg ? svg.height : element.offsetHeight || 0) : origin.y;\n }\n\n return parentMatrix.apply(x || y ? m.apply({\n x: x,\n y: y\n }) : {\n x: m.e,\n y: m.f\n });\n},\n _getAlignMatrix = function _getAlignMatrix(fromElement, toElement, fromOrigin, toOrigin) {\n var parentMatrix = getGlobalMatrix(fromElement.parentNode, true, true),\n m = parentMatrix.clone().multiply(getGlobalMatrix(toElement)),\n fromPoint = _originToPoint(fromElement, fromOrigin, parentMatrix),\n _originToPoint2 = _originToPoint(toElement, toOrigin, parentMatrix),\n x = _originToPoint2.x,\n y = _originToPoint2.y,\n p;\n\n m.e = m.f = 0;\n\n if (toOrigin === \"auto\" && toElement.getTotalLength && toElement.tagName.toLowerCase() === \"path\") {\n p = toElement.getAttribute(\"d\").match(_numExp) || [];\n p = m.apply({\n x: +p[0],\n y: +p[1]\n });\n x += p.x;\n y += p.y;\n } //if (p || (toElement.getBBox && fromElement.getBBox && toElement.ownerSVGElement === fromElement.ownerSVGElement)) {\n\n\n if (p) {\n p = m.apply(toElement.getBBox());\n x -= p.x;\n y -= p.y;\n }\n\n m.e = x - fromPoint.x;\n m.f = y - fromPoint.y;\n return m;\n},\n _align = function _align(rawPath, target, _ref) {\n var align = _ref.align,\n matrix = _ref.matrix,\n offsetX = _ref.offsetX,\n offsetY = _ref.offsetY,\n alignOrigin = _ref.alignOrigin;\n\n var x = rawPath[0][0],\n y = rawPath[0][1],\n curX = _getPropNum(target, \"x\"),\n curY = _getPropNum(target, \"y\"),\n alignTarget,\n m,\n p;\n\n if (!rawPath || !rawPath.length) {\n return getRawPath(\"M0,0L0,0\");\n }\n\n if (align) {\n if (align === \"self\" || (alignTarget = _toArray(align)[0] || target) === target) {\n transformRawPath(rawPath, 1, 0, 0, 1, curX - x, curY - y);\n } else {\n if (alignOrigin && alignOrigin[2] !== false) {\n gsap.set(target, {\n transformOrigin: alignOrigin[0] * 100 + \"% \" + alignOrigin[1] * 100 + \"%\"\n });\n } else {\n alignOrigin = [_getPropNum(target, \"xPercent\") / -100, _getPropNum(target, \"yPercent\") / -100];\n }\n\n m = _getAlignMatrix(target, alignTarget, alignOrigin, \"auto\");\n p = m.apply({\n x: x,\n y: y\n });\n transformRawPath(rawPath, m.a, m.b, m.c, m.d, curX + m.e - (p.x - m.e), curY + m.f - (p.y - m.f));\n }\n }\n\n if (matrix) {\n transformRawPath(rawPath, matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);\n } else if (offsetX || offsetY) {\n transformRawPath(rawPath, 1, 0, 0, 1, offsetX || 0, offsetY || 0);\n }\n\n return rawPath;\n},\n _addDimensionalPropTween = function _addDimensionalPropTween(plugin, target, property, rawPath, pathProperty, forceUnit) {\n var cache = target._gsap,\n harness = cache.harness,\n alias = harness && harness.aliases && harness.aliases[property],\n prop = alias && alias.indexOf(\",\") < 0 ? alias : property,\n pt = plugin._pt = new PropTween(plugin._pt, target, prop, 0, 0, _emptyFunc, 0, cache.set(target, prop, plugin));\n pt.u = _getUnit(cache.get(target, prop, forceUnit)) || 0;\n pt.path = rawPath;\n pt.pp = pathProperty;\n\n plugin._props.push(prop);\n},\n _sliceModifier = function _sliceModifier(start, end) {\n return function (rawPath) {\n return start || end !== 1 ? sliceRawPath(rawPath, start, end) : rawPath;\n };\n};\n\nexport var MotionPathPlugin = {\n version: \"3.12.4\",\n name: \"motionPath\",\n register: function register(core, Plugin, propTween) {\n gsap = core;\n _getUnit = gsap.utils.getUnit;\n _toArray = gsap.utils.toArray;\n _getStyleSaver = gsap.core.getStyleSaver;\n\n _reverting = gsap.core.reverting || function () {};\n\n PropTween = propTween;\n },\n init: function init(target, vars, tween) {\n if (!gsap) {\n console.warn(\"Please gsap.registerPlugin(MotionPathPlugin)\");\n return false;\n }\n\n if (!(typeof vars === \"object\" && !vars.style) || !vars.path) {\n vars = {\n path: vars\n };\n }\n\n var rawPaths = [],\n _vars = vars,\n path = _vars.path,\n autoRotate = _vars.autoRotate,\n unitX = _vars.unitX,\n unitY = _vars.unitY,\n x = _vars.x,\n y = _vars.y,\n firstObj = path[0],\n slicer = _sliceModifier(vars.start, \"end\" in vars ? vars.end : 1),\n rawPath,\n p;\n\n this.rawPaths = rawPaths;\n this.target = target;\n this.tween = tween;\n this.styles = _getStyleSaver && _getStyleSaver(target, \"transform\");\n\n if (this.rotate = autoRotate || autoRotate === 0) {\n //get the rotational data FIRST so that the setTransform() method is called in the correct order in the render() loop - rotation gets set last.\n this.rOffset = parseFloat(autoRotate) || 0;\n this.radians = !!vars.useRadians;\n this.rProp = vars.rotation || \"rotation\"; // rotation property\n\n this.rSet = target._gsap.set(target, this.rProp, this); // rotation setter\n\n this.ru = _getUnit(target._gsap.get(target, this.rProp)) || 0; // rotation units\n }\n\n if (Array.isArray(path) && !(\"closed\" in path) && typeof firstObj !== \"number\") {\n for (p in firstObj) {\n if (!x && ~_xProps.indexOf(p)) {\n x = p;\n } else if (!y && ~_yProps.indexOf(p)) {\n y = p;\n }\n }\n\n if (x && y) {\n //correlated values\n rawPaths.push(_segmentToRawPath(this, _populateSegmentFromArray(_populateSegmentFromArray([], path, x, 0), path, y, 1), target, x, y, slicer, vars, unitX || _getUnit(path[0][x]), unitY || _getUnit(path[0][y])));\n } else {\n x = y = 0;\n }\n\n for (p in firstObj) {\n p !== x && p !== y && rawPaths.push(_segmentToRawPath(this, _populateSegmentFromArray([], path, p, 2), target, p, 0, slicer, vars, _getUnit(path[0][p])));\n }\n } else {\n rawPath = slicer(_align(getRawPath(vars.path), target, vars));\n cacheRawPathMeasurements(rawPath, vars.resolution);\n rawPaths.push(rawPath);\n\n _addDimensionalPropTween(this, target, vars.x || \"x\", rawPath, \"x\", vars.unitX || \"px\");\n\n _addDimensionalPropTween(this, target, vars.y || \"y\", rawPath, \"y\", vars.unitY || \"px\");\n }\n },\n render: function render(ratio, data) {\n var rawPaths = data.rawPaths,\n i = rawPaths.length,\n pt = data._pt;\n\n if (data.tween._time || !_reverting()) {\n if (ratio > 1) {\n ratio = 1;\n } else if (ratio < 0) {\n ratio = 0;\n }\n\n while (i--) {\n getPositionOnPath(rawPaths[i], ratio, !i && data.rotate, rawPaths[i]);\n }\n\n while (pt) {\n pt.set(pt.t, pt.p, pt.path[pt.pp] + pt.u, pt.d, ratio);\n pt = pt._next;\n }\n\n data.rotate && data.rSet(data.target, data.rProp, rawPaths[0].angle * (data.radians ? _DEG2RAD : 1) + data.rOffset + data.ru, data, ratio);\n } else {\n data.styles.revert();\n }\n },\n getLength: function getLength(path) {\n return cacheRawPathMeasurements(getRawPath(path)).totalLength;\n },\n sliceRawPath: sliceRawPath,\n getRawPath: getRawPath,\n pointsToSegment: pointsToSegment,\n stringToRawPath: stringToRawPath,\n rawPathToString: rawPathToString,\n transformRawPath: transformRawPath,\n getGlobalMatrix: getGlobalMatrix,\n getPositionOnPath: getPositionOnPath,\n cacheRawPathMeasurements: cacheRawPathMeasurements,\n convertToPath: function convertToPath(targets, swap) {\n return _toArray(targets).map(function (target) {\n return _convertToPath(target, swap !== false);\n });\n },\n convertCoordinates: function convertCoordinates(fromElement, toElement, point) {\n var m = getGlobalMatrix(toElement, true, true).multiply(getGlobalMatrix(fromElement));\n return point ? m.apply(point) : m;\n },\n getAlignMatrix: _getAlignMatrix,\n getRelativePosition: function getRelativePosition(fromElement, toElement, fromOrigin, toOrigin) {\n var m = _getAlignMatrix(fromElement, toElement, fromOrigin, toOrigin);\n\n return {\n x: m.e,\n y: m.f\n };\n },\n arrayToRawPath: function arrayToRawPath(value, vars) {\n vars = vars || {};\n\n var segment = _populateSegmentFromArray(_populateSegmentFromArray([], value, vars.x || \"x\", 0), value, vars.y || \"y\", 1);\n\n vars.relative && _relativize(segment);\n return [vars.type === \"cubic\" ? segment : pointsToSegment(segment, vars.curviness)];\n }\n};\n_getGSAP() && gsap.registerPlugin(MotionPathPlugin);\nexport { MotionPathPlugin as default };","/*!\n * ScrollToPlugin 3.12.4\n * https://gsap.com\n *\n * @license Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar gsap,\n _coreInitted,\n _window,\n _docEl,\n _body,\n _toArray,\n _config,\n ScrollTrigger,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _getGSAP = function _getGSAP() {\n return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _max = function _max(element, axis) {\n var dim = axis === \"x\" ? \"Width\" : \"Height\",\n scroll = \"scroll\" + dim,\n client = \"client\" + dim;\n return element === _window || element === _docEl || element === _body ? Math.max(_docEl[scroll], _body[scroll]) - (_window[\"inner\" + dim] || _docEl[client] || _body[client]) : element[scroll] - element[\"offset\" + dim];\n},\n _buildGetter = function _buildGetter(e, axis) {\n //pass in an element and an axis (\"x\" or \"y\") and it'll return a getter function for the scroll position of that element (like scrollTop or scrollLeft, although if the element is the window, it'll use the pageXOffset/pageYOffset or the documentElement's scrollTop/scrollLeft or document.body's. Basically this streamlines things and makes a very fast getter across browsers.\n var p = \"scroll\" + (axis === \"x\" ? \"Left\" : \"Top\");\n\n if (e === _window) {\n if (e.pageXOffset != null) {\n p = \"page\" + axis.toUpperCase() + \"Offset\";\n } else {\n e = _docEl[p] != null ? _docEl : _body;\n }\n }\n\n return function () {\n return e[p];\n };\n},\n _clean = function _clean(value, index, target, targets) {\n _isFunction(value) && (value = value(index, target, targets));\n\n if (typeof value !== \"object\") {\n return _isString(value) && value !== \"max\" && value.charAt(1) !== \"=\" ? {\n x: value,\n y: value\n } : {\n y: value\n }; //if we don't receive an object as the parameter, assume the user intends \"y\".\n } else if (value.nodeType) {\n return {\n y: value,\n x: value\n };\n } else {\n var result = {},\n p;\n\n for (p in value) {\n result[p] = p !== \"onAutoKill\" && _isFunction(value[p]) ? value[p](index, target, targets) : value[p];\n }\n\n return result;\n }\n},\n _getOffset = function _getOffset(element, container) {\n element = _toArray(element)[0];\n\n if (!element || !element.getBoundingClientRect) {\n return console.warn(\"scrollTo target doesn't exist. Using 0\") || {\n x: 0,\n y: 0\n };\n }\n\n var rect = element.getBoundingClientRect(),\n isRoot = !container || container === _window || container === _body,\n cRect = isRoot ? {\n top: _docEl.clientTop - (_window.pageYOffset || _docEl.scrollTop || _body.scrollTop || 0),\n left: _docEl.clientLeft - (_window.pageXOffset || _docEl.scrollLeft || _body.scrollLeft || 0)\n } : container.getBoundingClientRect(),\n offsets = {\n x: rect.left - cRect.left,\n y: rect.top - cRect.top\n };\n\n if (!isRoot && container) {\n //only add the current scroll position if it's not the window/body.\n offsets.x += _buildGetter(container, \"x\")();\n offsets.y += _buildGetter(container, \"y\")();\n }\n\n return offsets;\n},\n _parseVal = function _parseVal(value, target, axis, currentVal, offset) {\n return !isNaN(value) && typeof value !== \"object\" ? parseFloat(value) - offset : _isString(value) && value.charAt(1) === \"=\" ? parseFloat(value.substr(2)) * (value.charAt(0) === \"-\" ? -1 : 1) + currentVal - offset : value === \"max\" ? _max(target, axis) - offset : Math.min(_max(target, axis), _getOffset(value, target)[axis] - offset);\n},\n _initCore = function _initCore() {\n gsap = _getGSAP();\n\n if (_windowExists() && gsap && typeof document !== \"undefined\" && document.body) {\n _window = window;\n _body = document.body;\n _docEl = document.documentElement;\n _toArray = gsap.utils.toArray;\n gsap.config({\n autoKillThreshold: 7\n });\n _config = gsap.config();\n _coreInitted = 1;\n }\n};\n\nexport var ScrollToPlugin = {\n version: \"3.12.4\",\n name: \"scrollTo\",\n rawVars: 1,\n register: function register(core) {\n gsap = core;\n\n _initCore();\n },\n init: function init(target, value, tween, index, targets) {\n _coreInitted || _initCore();\n var data = this,\n snapType = gsap.getProperty(target, \"scrollSnapType\");\n data.isWin = target === _window;\n data.target = target;\n data.tween = tween;\n value = _clean(value, index, target, targets);\n data.vars = value;\n data.autoKill = !!value.autoKill;\n data.getX = _buildGetter(target, \"x\");\n data.getY = _buildGetter(target, \"y\");\n data.x = data.xPrev = data.getX();\n data.y = data.yPrev = data.getY();\n ScrollTrigger || (ScrollTrigger = gsap.core.globals().ScrollTrigger);\n gsap.getProperty(target, \"scrollBehavior\") === \"smooth\" && gsap.set(target, {\n scrollBehavior: \"auto\"\n });\n\n if (snapType && snapType !== \"none\") {\n // disable scroll snapping to avoid strange behavior\n data.snap = 1;\n data.snapInline = target.style.scrollSnapType;\n target.style.scrollSnapType = \"none\";\n }\n\n if (value.x != null) {\n data.add(data, \"x\", data.x, _parseVal(value.x, target, \"x\", data.x, value.offsetX || 0), index, targets);\n\n data._props.push(\"scrollTo_x\");\n } else {\n data.skipX = 1;\n }\n\n if (value.y != null) {\n data.add(data, \"y\", data.y, _parseVal(value.y, target, \"y\", data.y, value.offsetY || 0), index, targets);\n\n data._props.push(\"scrollTo_y\");\n } else {\n data.skipY = 1;\n }\n },\n render: function render(ratio, data) {\n var pt = data._pt,\n target = data.target,\n tween = data.tween,\n autoKill = data.autoKill,\n xPrev = data.xPrev,\n yPrev = data.yPrev,\n isWin = data.isWin,\n snap = data.snap,\n snapInline = data.snapInline,\n x,\n y,\n yDif,\n xDif,\n threshold;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n x = isWin || !data.skipX ? data.getX() : xPrev;\n y = isWin || !data.skipY ? data.getY() : yPrev;\n yDif = y - yPrev;\n xDif = x - xPrev;\n threshold = _config.autoKillThreshold;\n\n if (data.x < 0) {\n //can't scroll to a position less than 0! Might happen if someone uses a Back.easeOut or Elastic.easeOut when scrolling back to the top of the page (for example)\n data.x = 0;\n }\n\n if (data.y < 0) {\n data.y = 0;\n }\n\n if (autoKill) {\n //note: iOS has a bug that throws off the scroll by several pixels, so we need to check if it's within 7 pixels of the previous one that we set instead of just looking for an exact match.\n if (!data.skipX && (xDif > threshold || xDif < -threshold) && x < _max(target, \"x\")) {\n data.skipX = 1; //if the user scrolls separately, we should stop tweening!\n }\n\n if (!data.skipY && (yDif > threshold || yDif < -threshold) && y < _max(target, \"y\")) {\n data.skipY = 1; //if the user scrolls separately, we should stop tweening!\n }\n\n if (data.skipX && data.skipY) {\n tween.kill();\n data.vars.onAutoKill && data.vars.onAutoKill.apply(tween, data.vars.onAutoKillParams || []);\n }\n }\n\n if (isWin) {\n _window.scrollTo(!data.skipX ? data.x : x, !data.skipY ? data.y : y);\n } else {\n data.skipY || (target.scrollTop = data.y);\n data.skipX || (target.scrollLeft = data.x);\n }\n\n if (snap && (ratio === 1 || ratio === 0)) {\n y = target.scrollTop;\n x = target.scrollLeft;\n snapInline ? target.style.scrollSnapType = snapInline : target.style.removeProperty(\"scroll-snap-type\");\n target.scrollTop = y + 1; // bug in Safari causes the element to totally reset its scroll position when scroll-snap-type changes, so we need to set it to a slightly different value and then back again to work around this bug.\n\n target.scrollLeft = x + 1;\n target.scrollTop = y;\n target.scrollLeft = x;\n }\n\n data.xPrev = data.x;\n data.yPrev = data.y;\n ScrollTrigger && ScrollTrigger.update();\n },\n kill: function kill(property) {\n var both = property === \"scrollTo\",\n i = this._props.indexOf(property);\n\n if (both || property === \"scrollTo_x\") {\n this.skipX = 1;\n }\n\n if (both || property === \"scrollTo_y\") {\n this.skipY = 1;\n }\n\n i > -1 && this._props.splice(i, 1);\n return !this._props.length;\n }\n};\nScrollToPlugin.max = _max;\nScrollToPlugin.getOffset = _getOffset;\nScrollToPlugin.buildGetter = _buildGetter;\n_getGSAP() && gsap.registerPlugin(ScrollToPlugin);\nexport { ScrollToPlugin as default };","/*!\n * shared v9.9.0\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst inBrowser = typeof window !== 'undefined';\nlet mark;\nlet measure;\nif ((process.env.NODE_ENV !== 'production')) {\n const perf = inBrowser && window.performance;\n if (perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n // @ts-ignore browser compat\n perf.clearMeasures) {\n mark = (tag) => {\n perf.mark(tag);\n };\n measure = (name, startTag, endTag) => {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n };\n }\n}\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name);\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n .replace(/\\u0027/g, '\\\\u0027');\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\nconst assign = Object.assign;\nlet _globalThis;\nconst getGlobalThis = () => {\n // prettier-ignore\n return (_globalThis ||\n (_globalThis =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n};\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/* eslint-enable */\n/**\n * Useful Utilities By Evan you\n * Modified by kazuya kawaguchi\n * MIT License\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\n */\nconst isArray = Array.isArray;\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isBoolean = (val) => typeof val === 'boolean';\nconst isSymbol = (val) => typeof val === 'symbol';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = (val) => val !== null && typeof val === 'object';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst isPlainObject = (val) => {\n if (!isObject(val))\n return false;\n const proto = Object.getPrototypeOf(val);\n return proto === null || proto.constructor === Object;\n};\n// for converting list and named values to displayed strings.\nconst toDisplayString = (val) => {\n return val == null\n ? ''\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n};\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n}\nconst RANGE = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n const lines = source.split(/\\r?\\n/);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + 1;\n if (count >= start) {\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\n const lineLength = lines[j].length;\n if (j === i) {\n // push underline\n const pad = start - (count - lineLength) + 1;\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + 1;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\nfunction incrementer(code) {\n let current = code;\n return () => ++current;\n}\n\nfunction warn(msg, err) {\n if (typeof console !== 'undefined') {\n console.warn(`[intlify] ` + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\nconst hasWarned = {};\nfunction warnOnce(msg) {\n if (!hasWarned[msg]) {\n hasWarned[msg] = true;\n warn(msg);\n }\n}\n\n/**\n * Event emitter, forked from the below:\n * - original repository url: https://github.com/developit/mitt\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\n * - author: Jason Miller (https://github.com/developit)\n * - license: MIT\n */\n/**\n * Create a event emitter\n *\n * @returns An event emitter\n */\nfunction createEmitter() {\n const events = new Map();\n const emitter = {\n events,\n on(event, handler) {\n const handlers = events.get(event);\n const added = handlers && handlers.push(handler);\n if (!added) {\n events.set(event, [handler]);\n }\n },\n off(event, handler) {\n const handlers = events.get(event);\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n },\n emit(event, payload) {\n (events.get(event) || [])\n .slice()\n .map(handler => handler(payload));\n (events.get('*') || [])\n .slice()\n .map(handler => handler(event, payload));\n }\n };\n return emitter;\n}\n\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction deepCopy(src, des) {\n // src and des should both be objects, and none of them can be a array\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\n throw new Error('Invalid value');\n }\n const stack = [{ src, des }];\n while (stack.length) {\n const { src, des } = stack.pop();\n Object.keys(src).forEach(key => {\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\n // replace with src[key] when:\n // src[key] or des[key] is not an object, or\n // src[key] or des[key] is an array\n des[key] = src[key];\n }\n else {\n // src[key] and des[key] are both objects, merge them\n stack.push({ src: src[key], des: des[key] });\n }\n });\n }\n}\n\nexport { assign, createEmitter, deepCopy, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, incrementer, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, join, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn, warnOnce };\n","/*!\n * message-compiler v9.9.0\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst LOCATION_STUB = {\n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 }\n};\nfunction createPosition(line, column, offset) {\n return { line, column, offset };\n}\nfunction createLocation(start, end, source) {\n const loc = { start, end };\n if (source != null) {\n loc.source = source;\n }\n return loc;\n}\n\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst assign = Object.assign;\nconst isString = (val) => typeof val === 'string';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = (val) => val !== null && typeof val === 'object';\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n}\n\nconst CompileErrorCodes = {\n // tokenizer error codes\n EXPECTED_TOKEN: 1,\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\n UNKNOWN_ESCAPE_SEQUENCE: 4,\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\n UNBALANCED_CLOSING_BRACE: 6,\n UNTERMINATED_CLOSING_BRACE: 7,\n EMPTY_PLACEHOLDER: 8,\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\n INVALID_LINKED_FORMAT: 10,\n // parser error codes\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\n // generator error codes\n UNHANDLED_CODEGEN_NODE_TYPE: 15,\n // minifier error codes\n UNHANDLED_MINIFIER_NODE_TYPE: 16,\n // Special value for higher-order compilers to pick up the last code\n // to avoid collision of error codes. This should always be kept as the last\n // item.\n __EXTEND_POINT__: 17\n};\n/** @internal */\nconst errorMessages = {\n // tokenizer error messages\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\n // parser error messages\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`,\n // generator error messages\n [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`,\n // minimizer error messages\n [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'`\n};\nfunction createCompileError(code, loc, options = {}) {\n const { domain, messages, args } = options;\n const msg = format((messages || errorMessages)[code] || '', ...(args || []))\n ;\n const error = new SyntaxError(String(msg));\n error.code = code;\n if (loc) {\n error.location = loc;\n }\n error.domain = domain;\n return error;\n}\n/** @internal */\nfunction defaultOnError(error) {\n throw error;\n}\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nconst detectHtmlTag = (source) => RE_HTML_TAG.test(source);\n\nconst CHAR_SP = ' ';\nconst CHAR_CR = '\\r';\nconst CHAR_LF = '\\n';\nconst CHAR_LS = String.fromCharCode(0x2028);\nconst CHAR_PS = String.fromCharCode(0x2029);\nfunction createScanner(str) {\n const _buf = str;\n let _index = 0;\n let _line = 1;\n let _column = 1;\n let _peekOffset = 0;\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\n const isLF = (index) => _buf[index] === CHAR_LF;\n const isPS = (index) => _buf[index] === CHAR_PS;\n const isLS = (index) => _buf[index] === CHAR_LS;\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\n const index = () => _index;\n const line = () => _line;\n const column = () => _column;\n const peekOffset = () => _peekOffset;\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\n const currentChar = () => charAt(_index);\n const currentPeek = () => charAt(_index + _peekOffset);\n function next() {\n _peekOffset = 0;\n if (isLineEnd(_index)) {\n _line++;\n _column = 0;\n }\n if (isCRLF(_index)) {\n _index++;\n }\n _index++;\n _column++;\n return _buf[_index];\n }\n function peek() {\n if (isCRLF(_index + _peekOffset)) {\n _peekOffset++;\n }\n _peekOffset++;\n return _buf[_index + _peekOffset];\n }\n function reset() {\n _index = 0;\n _line = 1;\n _column = 1;\n _peekOffset = 0;\n }\n function resetPeek(offset = 0) {\n _peekOffset = offset;\n }\n function skipToPeek() {\n const target = _index + _peekOffset;\n // eslint-disable-next-line no-unmodified-loop-condition\n while (target !== _index) {\n next();\n }\n _peekOffset = 0;\n }\n return {\n index,\n line,\n column,\n peekOffset,\n charAt,\n currentChar,\n currentPeek,\n next,\n peek,\n reset,\n resetPeek,\n skipToPeek\n };\n}\n\nconst EOF = undefined;\nconst DOT = '.';\nconst LITERAL_DELIMITER = \"'\";\nconst ERROR_DOMAIN$3 = 'tokenizer';\nfunction createTokenizer(source, options = {}) {\n const location = options.location !== false;\n const _scnr = createScanner(source);\n const currentOffset = () => _scnr.index();\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\n const _initLoc = currentPosition();\n const _initOffset = currentOffset();\n const _context = {\n currentType: 14 /* TokenTypes.EOF */,\n offset: _initOffset,\n startLoc: _initLoc,\n endLoc: _initLoc,\n lastType: 14 /* TokenTypes.EOF */,\n lastOffset: _initOffset,\n lastStartLoc: _initLoc,\n lastEndLoc: _initLoc,\n braceNest: 0,\n inLinked: false,\n text: ''\n };\n const context = () => _context;\n const { onError } = options;\n function emitError(code, pos, offset, ...args) {\n const ctx = context();\n pos.column += offset;\n pos.offset += offset;\n if (onError) {\n const loc = location ? createLocation(ctx.startLoc, pos) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$3,\n args\n });\n onError(err);\n }\n }\n function getToken(context, type, value) {\n context.endLoc = currentPosition();\n context.currentType = type;\n const token = { type };\n if (location) {\n token.loc = createLocation(context.startLoc, context.endLoc);\n }\n if (value != null) {\n token.value = value;\n }\n return token;\n }\n const getEndToken = (context) => getToken(context, 14 /* TokenTypes.EOF */);\n function eat(scnr, ch) {\n if (scnr.currentChar() === ch) {\n scnr.next();\n return ch;\n }\n else {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n return '';\n }\n }\n function peekSpaces(scnr) {\n let buf = '';\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\n buf += scnr.currentPeek();\n scnr.peek();\n }\n return buf;\n }\n function skipSpaces(scnr) {\n const buf = peekSpaces(scnr);\n scnr.skipToPeek();\n return buf;\n }\n function isIdentifierStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 95 // _\n );\n }\n function isNumberStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function isNamedIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isListIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\n const ret = isNumberStart(ch);\n scnr.resetPeek();\n return ret;\n }\n function isLiteralStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDotStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 8 /* TokenTypes.LinkedAlias */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \".\" /* TokenChars.LinkedDot */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedModifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 9 /* TokenTypes.LinkedDot */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDelimiterStart(scnr, context) {\n const { currentType } = context;\n if (!(currentType === 8 /* TokenTypes.LinkedAlias */ ||\n currentType === 12 /* TokenTypes.LinkedModifier */)) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \":\" /* TokenChars.LinkedDelimiter */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedReferStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 10 /* TokenTypes.LinkedDelimiter */) {\n return false;\n }\n const fn = () => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return isIdentifierStart(scnr.peek());\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"%\" /* TokenChars.Modulo */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \":\" /* TokenChars.LinkedDelimiter */ ||\n ch === \".\" /* TokenChars.LinkedDot */ ||\n ch === CHAR_SP ||\n !ch) {\n return false;\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn();\n }\n else {\n // other characters\n return isIdentifierStart(ch);\n }\n };\n const ret = fn();\n scnr.resetPeek();\n return ret;\n }\n function isPluralStart(scnr) {\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"|\" /* TokenChars.Pipe */;\n scnr.resetPeek();\n return ret;\n }\n function detectModuloStart(scnr) {\n const spaces = peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"%\" /* TokenChars.Modulo */ &&\n scnr.peek() === \"{\" /* TokenChars.BraceLeft */;\n scnr.resetPeek();\n return {\n isModulo: ret,\n hasSpace: spaces.length > 0\n };\n }\n function isTextStart(scnr, reset = true) {\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return prev === \"%\" /* TokenChars.Modulo */ ? false : hasSpace;\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ || !ch) {\n return prev === \"%\" /* TokenChars.Modulo */ ? true : hasSpace;\n }\n else if (ch === \"%\" /* TokenChars.Modulo */) {\n scnr.peek();\n return fn(hasSpace, \"%\" /* TokenChars.Modulo */, true);\n }\n else if (ch === \"|\" /* TokenChars.Pipe */) {\n return prev === \"%\" /* TokenChars.Modulo */ || detectModulo\n ? true\n : !(prev === CHAR_SP || prev === CHAR_LF);\n }\n else if (ch === CHAR_SP) {\n scnr.peek();\n return fn(true, CHAR_SP, detectModulo);\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn(true, CHAR_LF, detectModulo);\n }\n else {\n return true;\n }\n };\n const ret = fn();\n reset && scnr.resetPeek();\n return ret;\n }\n function takeChar(scnr, fn) {\n const ch = scnr.currentChar();\n if (ch === EOF) {\n return EOF;\n }\n if (fn(ch)) {\n scnr.next();\n return ch;\n }\n return null;\n }\n function takeIdentifierChar(scnr) {\n const closure = (ch) => {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 // $\n );\n };\n return takeChar(scnr, closure);\n }\n function takeDigit(scnr) {\n const closure = (ch) => {\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n };\n return takeChar(scnr, closure);\n }\n function takeHexDigit(scnr) {\n const closure = (ch) => {\n const cc = ch.charCodeAt(0);\n return ((cc >= 48 && cc <= 57) || // 0-9\n (cc >= 65 && cc <= 70) || // A-F\n (cc >= 97 && cc <= 102)); // a-f\n };\n return takeChar(scnr, closure);\n }\n function getDigits(scnr) {\n let ch = '';\n let num = '';\n while ((ch = takeDigit(scnr))) {\n num += ch;\n }\n return num;\n }\n function readModulo(scnr) {\n skipSpaces(scnr);\n const ch = scnr.currentChar();\n if (ch !== \"%\" /* TokenChars.Modulo */) {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n }\n scnr.next();\n return \"%\" /* TokenChars.Modulo */;\n }\n function readText(scnr) {\n let buf = '';\n while (true) {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"}\" /* TokenChars.BraceRight */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n !ch) {\n break;\n }\n else if (ch === \"%\" /* TokenChars.Modulo */) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else {\n break;\n }\n }\n else if (ch === CHAR_SP || ch === CHAR_LF) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else if (isPluralStart(scnr)) {\n break;\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n return buf;\n }\n function readNamedIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let name = '';\n while ((ch = takeIdentifierChar(scnr))) {\n name += ch;\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return name;\n }\n function readListIdentifier(scnr) {\n skipSpaces(scnr);\n let value = '';\n if (scnr.currentChar() === '-') {\n scnr.next();\n value += `-${getDigits(scnr)}`;\n }\n else {\n value += getDigits(scnr);\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return value;\n }\n function readLiteral(scnr) {\n skipSpaces(scnr);\n eat(scnr, `\\'`);\n let ch = '';\n let literal = '';\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\n while ((ch = takeChar(scnr, fn))) {\n if (ch === '\\\\') {\n literal += readEscapeSequence(scnr);\n }\n else {\n literal += ch;\n }\n }\n const current = scnr.currentChar();\n if (current === CHAR_LF || current === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\n // TODO: Is it correct really?\n if (current === CHAR_LF) {\n scnr.next();\n eat(scnr, `\\'`);\n }\n return literal;\n }\n eat(scnr, `\\'`);\n return literal;\n }\n function readEscapeSequence(scnr) {\n const ch = scnr.currentChar();\n switch (ch) {\n case '\\\\':\n case `\\'`:\n scnr.next();\n return `\\\\${ch}`;\n case 'u':\n return readUnicodeEscapeSequence(scnr, ch, 4);\n case 'U':\n return readUnicodeEscapeSequence(scnr, ch, 6);\n default:\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\n return '';\n }\n }\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\n eat(scnr, unicode);\n let sequence = '';\n for (let i = 0; i < digits; i++) {\n const ch = takeHexDigit(scnr);\n if (!ch) {\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\n break;\n }\n sequence += ch;\n }\n return `\\\\${unicode}${sequence}`;\n }\n function readInvalidIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let identifiers = '';\n const closure = (ch) => ch !== \"{\" /* TokenChars.BraceLeft */ &&\n ch !== \"}\" /* TokenChars.BraceRight */ &&\n ch !== CHAR_SP &&\n ch !== CHAR_LF;\n while ((ch = takeChar(scnr, closure))) {\n identifiers += ch;\n }\n return identifiers;\n }\n function readLinkedModifier(scnr) {\n let ch = '';\n let name = '';\n while ((ch = takeIdentifierChar(scnr))) {\n name += ch;\n }\n return name;\n }\n function readLinkedRefer(scnr) {\n const fn = (detect = false, buf) => {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"%\" /* TokenChars.Modulo */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \"(\" /* TokenChars.ParenLeft */ ||\n ch === \")\" /* TokenChars.ParenRight */ ||\n !ch) {\n return buf;\n }\n else if (ch === CHAR_SP) {\n return buf;\n }\n else if (ch === CHAR_LF || ch === DOT) {\n buf += ch;\n scnr.next();\n return fn(detect, buf);\n }\n else {\n buf += ch;\n scnr.next();\n return fn(true, buf);\n }\n };\n return fn(false, '');\n }\n function readPlural(scnr) {\n skipSpaces(scnr);\n const plural = eat(scnr, \"|\" /* TokenChars.Pipe */);\n skipSpaces(scnr);\n return plural;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInPlaceholder(scnr, context) {\n let token = null;\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n if (context.braceNest >= 1) {\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 2 /* TokenTypes.BraceLeft */, \"{\" /* TokenChars.BraceLeft */);\n skipSpaces(scnr);\n context.braceNest++;\n return token;\n case \"}\" /* TokenChars.BraceRight */:\n if (context.braceNest > 0 &&\n context.currentType === 2 /* TokenTypes.BraceLeft */) {\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n context.braceNest--;\n context.braceNest > 0 && skipSpaces(scnr);\n if (context.inLinked && context.braceNest === 0) {\n context.inLinked = false;\n }\n return token;\n case \"@\" /* TokenChars.LinkedAlias */:\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = readTokenInLinked(scnr, context) || getEndToken(context);\n context.braceNest = 0;\n return token;\n default:\n let validNamedIdentifier = true;\n let validListIdentifier = true;\n let validLiteral = true;\n if (isPluralStart(scnr)) {\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (context.braceNest > 0 &&\n (context.currentType === 5 /* TokenTypes.Named */ ||\n context.currentType === 6 /* TokenTypes.List */ ||\n context.currentType === 7 /* TokenTypes.Literal */)) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n context.braceNest = 0;\n return readToken(scnr, context);\n }\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\n token = getToken(context, 5 /* TokenTypes.Named */, readNamedIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\n token = getToken(context, 6 /* TokenTypes.List */, readListIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validLiteral = isLiteralStart(scnr, context))) {\n token = getToken(context, 7 /* TokenTypes.Literal */, readLiteral(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\n token = getToken(context, 13 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\n skipSpaces(scnr);\n return token;\n }\n break;\n }\n return token;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInLinked(scnr, context) {\n const { currentType } = context;\n let token = null;\n const ch = scnr.currentChar();\n if ((currentType === 8 /* TokenTypes.LinkedAlias */ ||\n currentType === 9 /* TokenTypes.LinkedDot */ ||\n currentType === 12 /* TokenTypes.LinkedModifier */ ||\n currentType === 10 /* TokenTypes.LinkedDelimiter */) &&\n (ch === CHAR_LF || ch === CHAR_SP)) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n switch (ch) {\n case \"@\" /* TokenChars.LinkedAlias */:\n scnr.next();\n token = getToken(context, 8 /* TokenTypes.LinkedAlias */, \"@\" /* TokenChars.LinkedAlias */);\n context.inLinked = true;\n return token;\n case \".\" /* TokenChars.LinkedDot */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 9 /* TokenTypes.LinkedDot */, \".\" /* TokenChars.LinkedDot */);\n case \":\" /* TokenChars.LinkedDelimiter */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 10 /* TokenTypes.LinkedDelimiter */, \":\" /* TokenChars.LinkedDelimiter */);\n default:\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isLinkedDotStart(scnr, context) ||\n isLinkedDelimiterStart(scnr, context)) {\n skipSpaces(scnr);\n return readTokenInLinked(scnr, context);\n }\n if (isLinkedModifierStart(scnr, context)) {\n skipSpaces(scnr);\n return getToken(context, 12 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));\n }\n if (isLinkedReferStart(scnr, context)) {\n skipSpaces(scnr);\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n // scan the placeholder\n return readTokenInPlaceholder(scnr, context) || token;\n }\n else {\n return getToken(context, 11 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));\n }\n }\n if (currentType === 8 /* TokenTypes.LinkedAlias */) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n context.braceNest = 0;\n context.inLinked = false;\n return readToken(scnr, context);\n }\n }\n // TODO: We need refactoring of token parsing ...\n function readToken(scnr, context) {\n let token = { type: 14 /* TokenTypes.EOF */ };\n if (context.braceNest > 0) {\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n }\n if (context.inLinked) {\n return readTokenInLinked(scnr, context) || getEndToken(context);\n }\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n case \"}\" /* TokenChars.BraceRight */:\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\n scnr.next();\n return getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n case \"@\" /* TokenChars.LinkedAlias */:\n return readTokenInLinked(scnr, context) || getEndToken(context);\n default:\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n const { isModulo, hasSpace } = detectModuloStart(scnr);\n if (isModulo) {\n return hasSpace\n ? getToken(context, 0 /* TokenTypes.Text */, readText(scnr))\n : getToken(context, 4 /* TokenTypes.Modulo */, readModulo(scnr));\n }\n if (isTextStart(scnr)) {\n return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));\n }\n break;\n }\n return token;\n }\n function nextToken() {\n const { currentType, offset, startLoc, endLoc } = _context;\n _context.lastType = currentType;\n _context.lastOffset = offset;\n _context.lastStartLoc = startLoc;\n _context.lastEndLoc = endLoc;\n _context.offset = currentOffset();\n _context.startLoc = currentPosition();\n if (_scnr.currentChar() === EOF) {\n return getToken(_context, 14 /* TokenTypes.EOF */);\n }\n return readToken(_scnr, _context);\n }\n return {\n nextToken,\n currentOffset,\n currentPosition,\n context\n };\n}\n\nconst ERROR_DOMAIN$2 = 'parser';\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\n switch (match) {\n case `\\\\\\\\`:\n return `\\\\`;\n case `\\\\\\'`:\n return `\\'`;\n default: {\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\n return String.fromCodePoint(codePoint);\n }\n // invalid ...\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\n return '�';\n }\n }\n}\nfunction createParser(options = {}) {\n const location = options.location !== false;\n const { onError } = options;\n function emitError(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onError) {\n const loc = location ? createLocation(start, end) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$2,\n args\n });\n onError(err);\n }\n }\n function startNode(type, offset, loc) {\n const node = { type };\n if (location) {\n node.start = offset;\n node.end = offset;\n node.loc = { start: loc, end: loc };\n }\n return node;\n }\n function endNode(node, offset, pos, type) {\n if (type) {\n node.type = type;\n }\n if (location) {\n node.end = offset;\n if (node.loc) {\n node.loc.end = pos;\n }\n }\n }\n function parseText(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseList(tokenizer, index) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(5 /* NodeTypes.List */, offset, loc);\n node.index = parseInt(index, 10);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseNamed(tokenizer, key) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(4 /* NodeTypes.Named */, offset, loc);\n node.key = key;\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLiteral(tokenizer, value) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(9 /* NodeTypes.Literal */, offset, loc);\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinkedModifier(tokenizer) {\n const token = tokenizer.nextToken();\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\n const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);\n if (token.type !== 12 /* TokenTypes.LinkedModifier */) {\n // empty modifier\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\n node.value = '';\n endNode(node, offset, loc);\n return {\n nextConsumeToken: token,\n node\n };\n }\n // check token\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.value = token.value || '';\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node\n };\n }\n function parseLinkedKey(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinked(tokenizer) {\n const context = tokenizer.context();\n const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);\n let token = tokenizer.nextToken();\n if (token.type === 9 /* TokenTypes.LinkedDot */) {\n const parsed = parseLinkedModifier(tokenizer);\n linkedNode.modifier = parsed.node;\n token = parsed.nextConsumeToken || tokenizer.nextToken();\n }\n // asset check token\n if (token.type !== 10 /* TokenTypes.LinkedDelimiter */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n token = tokenizer.nextToken();\n // skip brace left\n if (token.type === 2 /* TokenTypes.BraceLeft */) {\n token = tokenizer.nextToken();\n }\n switch (token.type) {\n case 11 /* TokenTypes.LinkedKey */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\n break;\n case 5 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseNamed(tokenizer, token.value || '');\n break;\n case 6 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseList(tokenizer, token.value || '');\n break;\n case 7 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\n break;\n default:\n // empty key\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\n const nextContext = tokenizer.context();\n const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);\n emptyLinkedKeyNode.value = '';\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\n linkedNode.key = emptyLinkedKeyNode;\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\n return {\n nextConsumeToken: token,\n node: linkedNode\n };\n }\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node: linkedNode\n };\n }\n function parseMessage(tokenizer) {\n const context = tokenizer.context();\n const startOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? tokenizer.currentOffset()\n : context.offset;\n const startLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.endLoc\n : context.startLoc;\n const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);\n node.items = [];\n let nextToken = null;\n do {\n const token = nextToken || tokenizer.nextToken();\n nextToken = null;\n switch (token.type) {\n case 0 /* TokenTypes.Text */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseText(tokenizer, token.value || ''));\n break;\n case 6 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseList(tokenizer, token.value || ''));\n break;\n case 5 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseNamed(tokenizer, token.value || ''));\n break;\n case 7 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseLiteral(tokenizer, token.value || ''));\n break;\n case 8 /* TokenTypes.LinkedAlias */:\n const parsed = parseLinked(tokenizer);\n node.items.push(parsed.node);\n nextToken = parsed.nextConsumeToken || null;\n break;\n }\n } while (context.currentType !== 14 /* TokenTypes.EOF */ &&\n context.currentType !== 1 /* TokenTypes.Pipe */);\n // adjust message node loc\n const endOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastOffset\n : tokenizer.currentOffset();\n const endLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastEndLoc\n : tokenizer.currentPosition();\n endNode(node, endOffset, endLoc);\n return node;\n }\n function parsePlural(tokenizer, offset, loc, msgNode) {\n const context = tokenizer.context();\n let hasEmptyMessage = msgNode.items.length === 0;\n const node = startNode(1 /* NodeTypes.Plural */, offset, loc);\n node.cases = [];\n node.cases.push(msgNode);\n do {\n const msg = parseMessage(tokenizer);\n if (!hasEmptyMessage) {\n hasEmptyMessage = msg.items.length === 0;\n }\n node.cases.push(msg);\n } while (context.currentType !== 14 /* TokenTypes.EOF */);\n if (hasEmptyMessage) {\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseResource(tokenizer) {\n const context = tokenizer.context();\n const { offset, startLoc } = context;\n const msgNode = parseMessage(tokenizer);\n if (context.currentType === 14 /* TokenTypes.EOF */) {\n return msgNode;\n }\n else {\n return parsePlural(tokenizer, offset, startLoc, msgNode);\n }\n }\n function parse(source) {\n const tokenizer = createTokenizer(source, assign({}, options));\n const context = tokenizer.context();\n const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);\n if (location && node.loc) {\n node.loc.source = source;\n }\n node.body = parseResource(tokenizer);\n if (options.onCacheKey) {\n node.cacheKey = options.onCacheKey(source);\n }\n // assert whether achieved to EOF\n if (context.currentType !== 14 /* TokenTypes.EOF */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n return { parse };\n}\nfunction getTokenCaption(token) {\n if (token.type === 14 /* TokenTypes.EOF */) {\n return 'EOF';\n }\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\n) {\n const _context = {\n ast,\n helpers: new Set()\n };\n const context = () => _context;\n const helper = (name) => {\n _context.helpers.add(name);\n return name;\n };\n return { context, helper };\n}\nfunction traverseNodes(nodes, transformer) {\n for (let i = 0; i < nodes.length; i++) {\n traverseNode(nodes[i], transformer);\n }\n}\nfunction traverseNode(node, transformer) {\n // TODO: if we need pre-hook of transform, should be implemented to here\n switch (node.type) {\n case 1 /* NodeTypes.Plural */:\n traverseNodes(node.cases, transformer);\n transformer.helper(\"plural\" /* HelperNameMap.PLURAL */);\n break;\n case 2 /* NodeTypes.Message */:\n traverseNodes(node.items, transformer);\n break;\n case 6 /* NodeTypes.Linked */:\n const linked = node;\n traverseNode(linked.key, transformer);\n transformer.helper(\"linked\" /* HelperNameMap.LINKED */);\n transformer.helper(\"type\" /* HelperNameMap.TYPE */);\n break;\n case 5 /* NodeTypes.List */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"list\" /* HelperNameMap.LIST */);\n break;\n case 4 /* NodeTypes.Named */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"named\" /* HelperNameMap.NAMED */);\n break;\n }\n // TODO: if we need post-hook of transform, should be implemented to here\n}\n// transform AST\nfunction transform(ast, options = {} // eslint-disable-line\n) {\n const transformer = createTransformer(ast);\n transformer.helper(\"normalize\" /* HelperNameMap.NORMALIZE */);\n // traverse\n ast.body && traverseNode(ast.body, transformer);\n // set meta information\n const context = transformer.context();\n ast.helpers = Array.from(context.helpers);\n}\n\nfunction optimize(ast) {\n const body = ast.body;\n if (body.type === 2 /* NodeTypes.Message */) {\n optimizeMessageNode(body);\n }\n else {\n body.cases.forEach(c => optimizeMessageNode(c));\n }\n return ast;\n}\nfunction optimizeMessageNode(message) {\n if (message.items.length === 1) {\n const item = message.items[0];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n message.static = item.value;\n delete item.value; // optimization for size\n }\n }\n else {\n const values = [];\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (!(item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */)) {\n break;\n }\n if (item.value == null) {\n break;\n }\n values.push(item.value);\n }\n if (values.length === message.items.length) {\n message.static = join(values);\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n delete item.value; // optimization for size\n }\n }\n }\n }\n}\n\nconst ERROR_DOMAIN$1 = 'minifier';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction minify(node) {\n node.t = node.type;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */:\n const resource = node;\n minify(resource.body);\n resource.b = resource.body;\n delete resource.body;\n break;\n case 1 /* NodeTypes.Plural */:\n const plural = node;\n const cases = plural.cases;\n for (let i = 0; i < cases.length; i++) {\n minify(cases[i]);\n }\n plural.c = cases;\n delete plural.cases;\n break;\n case 2 /* NodeTypes.Message */:\n const message = node;\n const items = message.items;\n for (let i = 0; i < items.length; i++) {\n minify(items[i]);\n }\n message.i = items;\n delete message.items;\n if (message.static) {\n message.s = message.static;\n delete message.static;\n }\n break;\n case 3 /* NodeTypes.Text */:\n case 9 /* NodeTypes.Literal */:\n case 8 /* NodeTypes.LinkedModifier */:\n case 7 /* NodeTypes.LinkedKey */:\n const valueNode = node;\n if (valueNode.value) {\n valueNode.v = valueNode.value;\n delete valueNode.value;\n }\n break;\n case 6 /* NodeTypes.Linked */:\n const linked = node;\n minify(linked.key);\n linked.k = linked.key;\n delete linked.key;\n if (linked.modifier) {\n minify(linked.modifier);\n linked.m = linked.modifier;\n delete linked.modifier;\n }\n break;\n case 5 /* NodeTypes.List */:\n const list = node;\n list.i = list.index;\n delete list.index;\n break;\n case 4 /* NodeTypes.Named */:\n const named = node;\n named.k = named.key;\n delete named.key;\n break;\n default:\n {\n throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, {\n domain: ERROR_DOMAIN$1,\n args: [node.type]\n });\n }\n }\n delete node.type;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst ERROR_DOMAIN = 'parser';\nfunction createCodeGenerator(ast, options) {\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\n const location = options.location !== false;\n const _context = {\n filename,\n code: '',\n column: 1,\n line: 1,\n offset: 0,\n map: undefined,\n breakLineCode,\n needIndent: _needIndent,\n indentLevel: 0\n };\n if (location && ast.loc) {\n _context.source = ast.loc.source;\n }\n const context = () => _context;\n function push(code, node) {\n _context.code += code;\n }\n function _newline(n, withBreakLine = true) {\n const _breakLineCode = withBreakLine ? breakLineCode : '';\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\n }\n function indent(withNewLine = true) {\n const level = ++_context.indentLevel;\n withNewLine && _newline(level);\n }\n function deindent(withNewLine = true) {\n const level = --_context.indentLevel;\n withNewLine && _newline(level);\n }\n function newline() {\n _newline(_context.indentLevel);\n }\n const helper = (key) => `_${key}`;\n const needIndent = () => _context.needIndent;\n return {\n context,\n push,\n indent,\n deindent,\n newline,\n helper,\n needIndent\n };\n}\nfunction generateLinkedNode(generator, node) {\n const { helper } = generator;\n generator.push(`${helper(\"linked\" /* HelperNameMap.LINKED */)}(`);\n generateNode(generator, node.key);\n if (node.modifier) {\n generator.push(`, `);\n generateNode(generator, node.modifier);\n generator.push(`, _type`);\n }\n else {\n generator.push(`, undefined, _type`);\n }\n generator.push(`)`);\n}\nfunction generateMessageNode(generator, node) {\n const { helper, needIndent } = generator;\n generator.push(`${helper(\"normalize\" /* HelperNameMap.NORMALIZE */)}([`);\n generator.indent(needIndent());\n const length = node.items.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.items[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push('])');\n}\nfunction generatePluralNode(generator, node) {\n const { helper, needIndent } = generator;\n if (node.cases.length > 1) {\n generator.push(`${helper(\"plural\" /* HelperNameMap.PLURAL */)}([`);\n generator.indent(needIndent());\n const length = node.cases.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.cases[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push(`])`);\n }\n}\nfunction generateResource(generator, node) {\n if (node.body) {\n generateNode(generator, node.body);\n }\n else {\n generator.push('null');\n }\n}\nfunction generateNode(generator, node) {\n const { helper } = generator;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */:\n generateResource(generator, node);\n break;\n case 1 /* NodeTypes.Plural */:\n generatePluralNode(generator, node);\n break;\n case 2 /* NodeTypes.Message */:\n generateMessageNode(generator, node);\n break;\n case 6 /* NodeTypes.Linked */:\n generateLinkedNode(generator, node);\n break;\n case 8 /* NodeTypes.LinkedModifier */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 7 /* NodeTypes.LinkedKey */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 5 /* NodeTypes.List */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"list\" /* HelperNameMap.LIST */)}(${node.index}))`, node);\n break;\n case 4 /* NodeTypes.Named */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"named\" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);\n break;\n case 9 /* NodeTypes.Literal */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 3 /* NodeTypes.Text */:\n generator.push(JSON.stringify(node.value), node);\n break;\n default:\n {\n throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, {\n domain: ERROR_DOMAIN,\n args: [node.type]\n });\n }\n }\n}\n// generate code from AST\nconst generate = (ast, options = {} // eslint-disable-line\n) => {\n const mode = isString(options.mode) ? options.mode : 'normal';\n const filename = isString(options.filename)\n ? options.filename\n : 'message.intl';\n const sourceMap = !!options.sourceMap;\n // prettier-ignore\n const breakLineCode = options.breakLineCode != null\n ? options.breakLineCode\n : mode === 'arrow'\n ? ';'\n : '\\n';\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\n const helpers = ast.helpers || [];\n const generator = createCodeGenerator(ast, {\n mode,\n filename,\n sourceMap,\n breakLineCode,\n needIndent\n });\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\n generator.indent(needIndent);\n if (helpers.length > 0) {\n generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`);\n generator.newline();\n }\n generator.push(`return `);\n generateNode(generator, ast);\n generator.deindent(needIndent);\n generator.push(`}`);\n delete ast.helpers;\n const { code, map } = generator.context();\n return {\n ast,\n code,\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\n };\n};\n\nfunction baseCompile(source, options = {}) {\n const assignedOptions = assign({}, options);\n const jit = !!assignedOptions.jit;\n const enalbeMinify = !!assignedOptions.minify;\n const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize;\n // parse source codes\n const parser = createParser(assignedOptions);\n const ast = parser.parse(source);\n if (!jit) {\n // transform ASTs\n transform(ast, assignedOptions);\n // generate javascript codes\n return generate(ast, assignedOptions);\n }\n else {\n // optimize ASTs\n enambeOptimize && optimize(ast);\n // minimize ASTs\n enalbeMinify && minify(ast);\n // In JIT mode, no ast transform, no code generation.\n return { ast, code: '' };\n }\n}\n\nexport { CompileErrorCodes, ERROR_DOMAIN$2 as ERROR_DOMAIN, LOCATION_STUB, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, detectHtmlTag, errorMessages };\n","/*!\n * core-base v9.9.0\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, isObject, isFunction, isString, isNumber, isPlainObject, assign, join, toDisplayString, isArray, format as format$1, incrementer, isPromise, isBoolean, warn, isRegExp, warnOnce, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate } from '@intlify/shared';\nimport { CompileErrorCodes, createCompileError, detectHtmlTag, defaultOnError, baseCompile as baseCompile$1 } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\n\n/**\n * This is only called in esm-bundler builds.\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n if (typeof __INTLIFY_JIT_COMPILATION__ !== 'boolean') {\n getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false;\n }\n if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') {\n getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;\n }\n}\n\nconst pathStateMachine = [];\npathStateMachine[0 /* States.BEFORE_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [0 /* States.BEFORE_PATH */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[1 /* States.IN_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[2 /* States.BEFORE_IDENT */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [2 /* States.BEFORE_IDENT */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */]\n};\npathStateMachine[3 /* States.IN_IDENT */] = {\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */, 1 /* Actions.PUSH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */, 1 /* Actions.PUSH */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 1 /* Actions.PUSH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */, 1 /* Actions.PUSH */]\n};\npathStateMachine[4 /* States.IN_SUB_PATH */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [\n 4 /* States.IN_SUB_PATH */,\n 2 /* Actions.INC_SUB_PATH_DEPTH */\n ],\n [\"]\" /* PathCharTypes.RIGHT_BRACKET */]: [1 /* States.IN_PATH */, 3 /* Actions.PUSH_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */]\n};\npathStateMachine[5 /* States.IN_SINGLE_QUOTE */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */]\n};\npathStateMachine[6 /* States.IN_DOUBLE_QUOTE */] = {\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */]\n};\n/**\n * Check if an expression is a literal value.\n */\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral(exp) {\n return literalValueRE.test(exp);\n}\n/**\n * Strip quotes from a string\n */\nfunction stripQuotes(str) {\n const a = str.charCodeAt(0);\n const b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\n}\n/**\n * Determine the type of a character in a keypath.\n */\nfunction getPathCharType(ch) {\n if (ch === undefined || ch === null) {\n return \"o\" /* PathCharTypes.END_OF_FAIL */;\n }\n const code = ch.charCodeAt(0);\n switch (code) {\n case 0x5b: // [\n case 0x5d: // ]\n case 0x2e: // .\n case 0x22: // \"\n case 0x27: // '\n return ch;\n case 0x5f: // _\n case 0x24: // $\n case 0x2d: // -\n return \"i\" /* PathCharTypes.IDENT */;\n case 0x09: // Tab (HT)\n case 0x0a: // Newline (LF)\n case 0x0d: // Return (CR)\n case 0xa0: // No-break space (NBSP)\n case 0xfeff: // Byte Order Mark (BOM)\n case 0x2028: // Line Separator (LS)\n case 0x2029: // Paragraph Separator (PS)\n return \"w\" /* PathCharTypes.WORKSPACE */;\n }\n return \"i\" /* PathCharTypes.IDENT */;\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 */\nfunction formatSubPath(path) {\n const trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\n return false;\n }\n return isLiteral(trimmed)\n ? stripQuotes(trimmed)\n : \"*\" /* PathCharTypes.ASTARISK */ + trimmed;\n}\n/**\n * Parse a string path into an array of segments\n */\nfunction parse(path) {\n const keys = [];\n let index = -1;\n let mode = 0 /* States.BEFORE_PATH */;\n let subPathDepth = 0;\n let c;\n let key; // eslint-disable-line\n let newChar;\n let type;\n let transition;\n let action;\n let typeMap;\n const actions = [];\n actions[0 /* Actions.APPEND */] = () => {\n if (key === undefined) {\n key = newChar;\n }\n else {\n key += newChar;\n }\n };\n actions[1 /* Actions.PUSH */] = () => {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n actions[2 /* Actions.INC_SUB_PATH_DEPTH */] = () => {\n actions[0 /* Actions.APPEND */]();\n subPathDepth++;\n };\n actions[3 /* Actions.PUSH_SUB_PATH */] = () => {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = 4 /* States.IN_SUB_PATH */;\n actions[0 /* Actions.APPEND */]();\n }\n else {\n subPathDepth = 0;\n if (key === undefined) {\n return false;\n }\n key = formatSubPath(key);\n if (key === false) {\n return false;\n }\n else {\n actions[1 /* Actions.PUSH */]();\n }\n }\n };\n function maybeUnescapeQuote() {\n const nextChar = path[index + 1];\n if ((mode === 5 /* States.IN_SINGLE_QUOTE */ &&\n nextChar === \"'\" /* PathCharTypes.SINGLE_QUOTE */) ||\n (mode === 6 /* States.IN_DOUBLE_QUOTE */ &&\n nextChar === \"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */)) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[0 /* Actions.APPEND */]();\n return true;\n }\n }\n while (mode !== null) {\n index++;\n c = path[index];\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue;\n }\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap[\"l\" /* PathCharTypes.ELSE */] || 8 /* States.ERROR */;\n // check parse error\n if (transition === 8 /* States.ERROR */) {\n return;\n }\n mode = transition[0];\n if (transition[1] !== undefined) {\n action = actions[transition[1]];\n if (action) {\n newChar = c;\n if (action() === false) {\n return;\n }\n }\n }\n // check parse finish\n if (mode === 7 /* States.AFTER_PATH */) {\n return keys;\n }\n }\n}\n// path token cache\nconst cache = new Map();\n/**\n * key-value message resolver\n *\n * @remarks\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveWithKeyValue(obj, path) {\n return isObject(obj) ? obj[path] : null;\n}\n/**\n * message resolver\n *\n * @remarks\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveValue(obj, path) {\n // check object\n if (!isObject(obj)) {\n return null;\n }\n // parse path\n let hit = cache.get(path);\n if (!hit) {\n hit = parse(path);\n if (hit) {\n cache.set(path, hit);\n }\n }\n // check hit\n if (!hit) {\n return null;\n }\n // resolve path value\n const len = hit.length;\n let last = obj;\n let i = 0;\n while (i < len) {\n const val = last[hit[i]];\n if (val === undefined) {\n return null;\n }\n if (isFunction(last)) {\n return null;\n }\n last = val;\n i++;\n }\n return last;\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : join(values);\nconst DEFAULT_INTERPOLATE = toDisplayString;\nfunction pluralDefault(choice, choicesLength) {\n choice = Math.abs(choice);\n if (choicesLength === 2) {\n // prettier-ignore\n return choice\n ? choice > 1\n ? 1\n : 0\n : 1;\n }\n return choice ? Math.min(choice, 2) : 0;\n}\nfunction getPluralIndex(options) {\n // prettier-ignore\n const index = isNumber(options.pluralIndex)\n ? options.pluralIndex\n : -1;\n // prettier-ignore\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\n ? isNumber(options.named.count)\n ? options.named.count\n : isNumber(options.named.n)\n ? options.named.n\n : index\n : index;\n}\nfunction normalizeNamed(pluralIndex, props) {\n if (!props.count) {\n props.count = pluralIndex;\n }\n if (!props.n) {\n props.n = pluralIndex;\n }\n}\nfunction createMessageContext(options = {}) {\n const locale = options.locale;\n const pluralIndex = getPluralIndex(options);\n const pluralRule = isObject(options.pluralRules) &&\n isString(locale) &&\n isFunction(options.pluralRules[locale])\n ? options.pluralRules[locale]\n : pluralDefault;\n const orgPluralRule = isObject(options.pluralRules) &&\n isString(locale) &&\n isFunction(options.pluralRules[locale])\n ? pluralDefault\n : undefined;\n const plural = (messages) => {\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\n };\n const _list = options.list || [];\n const list = (index) => _list[index];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _named = options.named || {};\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\n const named = (key) => _named[key];\n function message(key) {\n // prettier-ignore\n const msg = isFunction(options.messages)\n ? options.messages(key)\n : isObject(options.messages)\n ? options.messages[key]\n : false;\n return !msg\n ? options.parent\n ? options.parent.message(key) // resolve from parent messages\n : DEFAULT_MESSAGE\n : msg;\n }\n const _modifier = (name) => options.modifiers\n ? options.modifiers[name]\n : DEFAULT_MODIFIER;\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\n ? options.processor.normalize\n : DEFAULT_NORMALIZE;\n const interpolate = isPlainObject(options.processor) &&\n isFunction(options.processor.interpolate)\n ? options.processor.interpolate\n : DEFAULT_INTERPOLATE;\n const type = isPlainObject(options.processor) && isString(options.processor.type)\n ? options.processor.type\n : DEFAULT_MESSAGE_DATA_TYPE;\n const linked = (key, ...args) => {\n const [arg1, arg2] = args;\n let type = 'text';\n let modifier = '';\n if (args.length === 1) {\n if (isObject(arg1)) {\n modifier = arg1.modifier || modifier;\n type = arg1.type || type;\n }\n else if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n }\n else if (args.length === 2) {\n if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n if (isString(arg2)) {\n type = arg2 || type;\n }\n }\n const ret = message(key)(ctx);\n const msg = \n // The message in vnode resolved with linked are returned as an array by processor.nomalize\n type === 'vnode' && isArray(ret) && modifier\n ? ret[0]\n : ret;\n return modifier ? _modifier(modifier)(msg, type) : msg;\n };\n const ctx = {\n [\"list\" /* HelperNameMap.LIST */]: list,\n [\"named\" /* HelperNameMap.NAMED */]: named,\n [\"plural\" /* HelperNameMap.PLURAL */]: plural,\n [\"linked\" /* HelperNameMap.LINKED */]: linked,\n [\"message\" /* HelperNameMap.MESSAGE */]: message,\n [\"type\" /* HelperNameMap.TYPE */]: type,\n [\"interpolate\" /* HelperNameMap.INTERPOLATE */]: interpolate,\n [\"normalize\" /* HelperNameMap.NORMALIZE */]: normalize,\n [\"values\" /* HelperNameMap.VALUES */]: assign({}, _list, _named)\n };\n return ctx;\n}\n\nlet devtools = null;\nfunction setDevToolsHook(hook) {\n devtools = hook;\n}\nfunction getDevToolsHook() {\n return devtools;\n}\nfunction initI18nDevTools(i18n, version, meta) {\n // TODO: queue if devtools is undefined\n devtools &&\n devtools.emit(\"i18n:init\" /* IntlifyDevToolsHooks.I18nInit */, {\n timestamp: Date.now(),\n i18n,\n version,\n meta\n });\n}\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(\"function:translate\" /* IntlifyDevToolsHooks.FunctionTranslate */);\nfunction createDevToolsHook(hook) {\n return (payloads) => devtools && devtools.emit(hook, payloads);\n}\n\nconst CoreWarnCodes = {\n NOT_FOUND_KEY: 1,\n FALLBACK_TO_TRANSLATE: 2,\n CANNOT_FORMAT_NUMBER: 3,\n FALLBACK_TO_NUMBER_FORMAT: 4,\n CANNOT_FORMAT_DATE: 5,\n FALLBACK_TO_DATE_FORMAT: 6,\n EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: 7,\n __EXTEND_POINT__: 8\n};\n/** @internal */\nconst warnMessages = {\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.`\n};\nfunction getWarnMessage(code, ...args) {\n return format$1(warnMessages[code], ...args);\n}\n\nconst code = CompileErrorCodes.__EXTEND_POINT__;\nconst inc = incrementer(code);\nconst CoreErrorCodes = {\n INVALID_ARGUMENT: code,\n INVALID_DATE_ARGUMENT: inc(),\n INVALID_ISO_DATE_ARGUMENT: inc(),\n NOT_SUPPORT_NON_STRING_MESSAGE: inc(),\n NOT_SUPPORT_LOCALE_PROMISE_VALUE: inc(),\n NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: inc(),\n NOT_SUPPORT_LOCALE_TYPE: inc(),\n __EXTEND_POINT__: inc() // 25\n};\nfunction createCoreError(code) {\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\n}\n/** @internal */\nconst errorMessages = {\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\n 'Make sure your Date represents a valid date.',\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string',\n [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: 'Not support non-string message',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE]: 'cannot support promise value',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION]: 'cannot support async function',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE]: 'cannot support locale type'\n};\n\n/** @internal */\nfunction getLocale(context, options) {\n return options.locale != null\n ? resolveLocale(options.locale)\n : resolveLocale(context.locale);\n}\nlet _resolveLocale;\n/** @internal */\nfunction resolveLocale(locale) {\n if (isString(locale)) {\n return locale;\n }\n else {\n if (isFunction(locale)) {\n if (locale.resolvedOnce && _resolveLocale != null) {\n return _resolveLocale;\n }\n else if (locale.constructor.name === 'Function') {\n const resolve = locale();\n if (isPromise(resolve)) {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE);\n }\n return (_resolveLocale = resolve);\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION);\n }\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE);\n }\n }\n}\n/**\n * Fallback with simple implemenation\n *\n * @remarks\n * A fallback locale function implemented with a simple fallback algorithm.\n *\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\n) {\n // prettier-ignore\n return [...new Set([\n start,\n ...(isArray(fallback)\n ? fallback\n : isObject(fallback)\n ? Object.keys(fallback)\n : isString(fallback)\n ? [fallback]\n : [start])\n ])];\n}\n/**\n * Fallback with locale chain\n *\n * @remarks\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\n const context = ctx;\n if (!context.__localeChainCache) {\n context.__localeChainCache = new Map();\n }\n let chain = context.__localeChainCache.get(startLocale);\n if (!chain) {\n chain = [];\n // first block defined by start\n let block = [start];\n // while any intervening block found\n while (isArray(block)) {\n block = appendBlockToChain(chain, block, fallback);\n }\n // prettier-ignore\n // last block defined by default\n const defaults = isArray(fallback) || !isPlainObject(fallback)\n ? fallback\n : fallback['default']\n ? fallback['default']\n : null;\n // convert defaults to array\n block = isString(defaults) ? [defaults] : defaults;\n if (isArray(block)) {\n appendBlockToChain(chain, block, false);\n }\n context.__localeChainCache.set(startLocale, chain);\n }\n return chain;\n}\nfunction appendBlockToChain(chain, block, blocks) {\n let follow = true;\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\n const locale = block[i];\n if (isString(locale)) {\n follow = appendLocaleToChain(chain, block[i], blocks);\n }\n }\n return follow;\n}\nfunction appendLocaleToChain(chain, locale, blocks) {\n let follow;\n const tokens = locale.split('-');\n do {\n const target = tokens.join('-');\n follow = appendItemToChain(chain, target, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && follow === true);\n return follow;\n}\nfunction appendItemToChain(chain, target, blocks) {\n let follow = false;\n if (!chain.includes(target)) {\n follow = true;\n if (target) {\n follow = target[target.length - 1] !== '!';\n const locale = target.replace(/!/g, '');\n chain.push(locale);\n if ((isArray(blocks) || isPlainObject(blocks)) &&\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n follow = blocks[locale];\n }\n }\n }\n return follow;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Intlify core-base version\n * @internal\n */\nconst VERSION = '9.9.0';\nconst NOT_REOSLVED = -1;\nconst DEFAULT_LOCALE = 'en-US';\nconst MISSING_RESOLVE_VALUE = '';\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\nfunction getDefaultLinkedModifiers() {\n return {\n upper: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toUpperCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toUpperCase()\n : val;\n },\n lower: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toLowerCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toLowerCase()\n : val;\n },\n capitalize: (val, type) => {\n // prettier-ignore\n return (type === 'text' && isString(val)\n ? capitalize(val)\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? capitalize(val.children)\n : val);\n }\n };\n}\nlet _compiler;\nfunction registerMessageCompiler(compiler) {\n _compiler = compiler;\n}\nlet _resolver;\n/**\n * Register the message resolver\n *\n * @param resolver - A {@link MessageResolver} function\n *\n * @VueI18nGeneral\n */\nfunction registerMessageResolver(resolver) {\n _resolver = resolver;\n}\nlet _fallbacker;\n/**\n * Register the locale fallbacker\n *\n * @param fallbacker - A {@link LocaleFallbacker} function\n *\n * @VueI18nGeneral\n */\nfunction registerLocaleFallbacker(fallbacker) {\n _fallbacker = fallbacker;\n}\n// Additional Meta for Intlify DevTools\nlet _additionalMeta = null;\n/* #__NO_SIDE_EFFECTS__ */\nconst setAdditionalMeta = (meta) => {\n _additionalMeta = meta;\n};\n/* #__NO_SIDE_EFFECTS__ */\nconst getAdditionalMeta = () => _additionalMeta;\nlet _fallbackContext = null;\nconst setFallbackContext = (context) => {\n _fallbackContext = context;\n};\nconst getFallbackContext = () => _fallbackContext;\n// ID for CoreContext\nlet _cid = 0;\nfunction createCoreContext(options = {}) {\n // setup options\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\n const version = isString(options.version) ? options.version : VERSION;\n const locale = isString(options.locale) || isFunction(options.locale)\n ? options.locale\n : DEFAULT_LOCALE;\n const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale;\n const fallbackLocale = isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n isString(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale;\n const messages = isPlainObject(options.messages)\n ? options.messages\n : { [_locale]: {} };\n const datetimeFormats = isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale]: {} }\n ;\n const numberFormats = isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale]: {} }\n ;\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\n const pluralRules = options.pluralRules || {};\n const missing = isFunction(options.missing) ? options.missing : null;\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n const fallbackFormat = !!options.fallbackFormat;\n const unresolving = !!options.unresolving;\n const postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n const processor = isPlainObject(options.processor) ? options.processor : null;\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n const escapeParameter = !!options.escapeParameter;\n const messageCompiler = isFunction(options.messageCompiler)\n ? options.messageCompiler\n : _compiler;\n if ((process.env.NODE_ENV !== 'production') &&\n !false &&\n !false &&\n isFunction(options.messageCompiler)) {\n warnOnce(getWarnMessage(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER));\n }\n const messageResolver = isFunction(options.messageResolver)\n ? options.messageResolver\n : _resolver || resolveWithKeyValue;\n const localeFallbacker = isFunction(options.localeFallbacker)\n ? options.localeFallbacker\n : _fallbacker || fallbackWithSimple;\n const fallbackContext = isObject(options.fallbackContext)\n ? options.fallbackContext\n : undefined;\n // setup internal options\n const internalOptions = options;\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\n ? internalOptions.__datetimeFormatters\n : new Map()\n ;\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\n ? internalOptions.__numberFormatters\n : new Map()\n ;\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\n _cid++;\n const context = {\n version,\n cid: _cid,\n locale,\n fallbackLocale,\n messages,\n modifiers,\n pluralRules,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackFormat,\n unresolving,\n postTranslation,\n processor,\n warnHtmlMessage,\n escapeParameter,\n messageCompiler,\n messageResolver,\n localeFallbacker,\n fallbackContext,\n onWarn,\n __meta\n };\n {\n context.datetimeFormats = datetimeFormats;\n context.numberFormats = numberFormats;\n context.__datetimeFormatters = __datetimeFormatters;\n context.__numberFormatters = __numberFormatters;\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n context.__v_emitter =\n internalOptions.__v_emitter != null\n ? internalOptions.__v_emitter\n : undefined;\n }\n // NOTE: experimental !!\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n initI18nDevTools(context, version, __meta);\n }\n return context;\n}\n/** @internal */\nfunction isTranslateFallbackWarn(fallback, key) {\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\n}\n/** @internal */\nfunction isTranslateMissingWarn(missing, key) {\n return missing instanceof RegExp ? missing.test(key) : missing;\n}\n/** @internal */\nfunction handleMissing(context, key, locale, missingWarn, type) {\n const { missing, onWarn } = context;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"missing\" /* VueDevToolsTimelineEvents.MISSING */, {\n locale,\n key,\n type,\n groupId: `${type}:${key}`\n });\n }\n }\n if (missing !== null) {\n const ret = missing(context, locale, key, type);\n return isString(ret) ? ret : key;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\n }\n return key;\n }\n}\n/** @internal */\nfunction updateFallbackLocale(ctx, locale, fallback) {\n const context = ctx;\n context.__localeChainCache = new Map();\n ctx.localeFallbacker(ctx, fallback, locale);\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nfunction format(ast) {\n const msg = (ctx) => formatParts(ctx, ast);\n return msg;\n}\nfunction formatParts(ctx, ast) {\n const body = ast.b || ast.body;\n if ((body.t || body.type) === 1 /* NodeTypes.Plural */) {\n const plural = body;\n const cases = plural.c || plural.cases;\n return ctx.plural(cases.reduce((messages, c) => [\n ...messages,\n formatMessageParts(ctx, c)\n ], []));\n }\n else {\n return formatMessageParts(ctx, body);\n }\n}\nfunction formatMessageParts(ctx, node) {\n const _static = node.s || node.static;\n if (_static) {\n return ctx.type === 'text'\n ? _static\n : ctx.normalize([_static]);\n }\n else {\n const messages = (node.i || node.items).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []);\n return ctx.normalize(messages);\n }\n}\nfunction formatMessagePart(ctx, node) {\n const type = node.t || node.type;\n switch (type) {\n case 3 /* NodeTypes.Text */:\n const text = node;\n return (text.v || text.value);\n case 9 /* NodeTypes.Literal */:\n const literal = node;\n return (literal.v || literal.value);\n case 4 /* NodeTypes.Named */:\n const named = node;\n return ctx.interpolate(ctx.named(named.k || named.key));\n case 5 /* NodeTypes.List */:\n const list = node;\n return ctx.interpolate(ctx.list(list.i != null ? list.i : list.index));\n case 6 /* NodeTypes.Linked */:\n const linked = node;\n const modifier = linked.m || linked.modifier;\n return ctx.linked(formatMessagePart(ctx, linked.k || linked.key), modifier ? formatMessagePart(ctx, modifier) : undefined, ctx.type);\n case 7 /* NodeTypes.LinkedKey */:\n const linkedKey = node;\n return (linkedKey.v || linkedKey.value);\n case 8 /* NodeTypes.LinkedModifier */:\n const linkedModifier = node;\n return (linkedModifier.v || linkedModifier.value);\n default:\n throw new Error(`unhandled node type on format message part: ${type}`);\n }\n}\n\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\nfunction checkHtmlMessage(source, warnHtmlMessage) {\n if (warnHtmlMessage && detectHtmlTag(source)) {\n warn(format$1(WARN_MESSAGE, { source }));\n }\n}\nconst defaultOnCacheKey = (message) => message;\nlet compileCache = Object.create(null);\nfunction clearCompileCache() {\n compileCache = Object.create(null);\n}\nconst isMessageAST = (val) => isObject(val) &&\n (val.t === 0 || val.type === 0) &&\n ('b' in val || 'body' in val);\nfunction baseCompile(message, options = {}) {\n // error detecting on compile\n let detectError = false;\n const onError = options.onError || defaultOnError;\n options.onError = (err) => {\n detectError = true;\n onError(err);\n };\n // compile with mesasge-compiler\n return { ...baseCompile$1(message, options), detectError };\n}\n/* #__NO_SIDE_EFFECTS__ */\nconst compileToFunction = (message, context) => {\n if (!isString(message)) {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE);\n }\n {\n // check HTML message\n const warnHtmlMessage = isBoolean(context.warnHtmlMessage)\n ? context.warnHtmlMessage\n : true;\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(message, warnHtmlMessage);\n // check caches\n const onCacheKey = context.onCacheKey || defaultOnCacheKey;\n const cacheKey = onCacheKey(message);\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compile\n const { code, detectError } = baseCompile(message, context);\n // evaluate function\n const msg = new Function(`return ${code}`)();\n // if occurred compile error, don't cache\n return !detectError\n ? (compileCache[cacheKey] = msg)\n : msg;\n }\n};\nfunction compile(message, context) {\n if (((__INTLIFY_JIT_COMPILATION__ && !__INTLIFY_DROP_MESSAGE_COMPILER__)) &&\n isString(message)) {\n // check HTML message\n const warnHtmlMessage = isBoolean(context.warnHtmlMessage)\n ? context.warnHtmlMessage\n : true;\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(message, warnHtmlMessage);\n // check caches\n const onCacheKey = context.onCacheKey || defaultOnCacheKey;\n const cacheKey = onCacheKey(message);\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compile with JIT mode\n const { ast, detectError } = baseCompile(message, {\n ...context,\n location: (process.env.NODE_ENV !== 'production'),\n jit: true\n });\n // compose message function from AST\n const msg = format(ast);\n // if occurred compile error, don't cache\n return !detectError\n ? (compileCache[cacheKey] = msg)\n : msg;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && !isMessageAST(message)) {\n warn(`the message that is resolve with key '${context.key}' is not supported for jit compilation`);\n return (() => message);\n }\n // AST case (passed from bundler)\n const cacheKey = message.cacheKey;\n if (cacheKey) {\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compose message function from message (AST)\n return (compileCache[cacheKey] =\n format(message));\n }\n else {\n return format(message);\n }\n }\n}\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\nconst isMessageFunction = (val) => isFunction(val);\n// implementation of `translate` function\nfunction translate(context, ...args) {\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\n const [key, options] = parseTranslateArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const escapeParameter = isBoolean(options.escapeParameter)\n ? options.escapeParameter\n : context.escapeParameter;\n const resolvedMessage = !!options.resolvedMessage;\n // prettier-ignore\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\n ? !isBoolean(options.default)\n ? options.default\n : (!messageCompiler ? () => key : key)\n : fallbackFormat // default by `fallbackFormat` option\n ? (!messageCompiler ? () => key : key)\n : '';\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\n const locale = getLocale(context, options);\n // escape params\n escapeParameter && escapeParams(options);\n // resolve message format\n // eslint-disable-next-line prefer-const\n let [formatScope, targetLocale, message] = !resolvedMessage\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\n : [\n key,\n locale,\n messages[locale] || {}\n ];\n // NOTE:\n // Fix to work around `ssrTransfrom` bug in Vite.\n // https://github.com/vitejs/vite/issues/4306\n // To get around this, use temporary variables.\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\n let format = formatScope;\n // if you use default message, set it as message format!\n let cacheBaseKey = key;\n if (!resolvedMessage &&\n !(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format))) {\n if (enableDefaultMsg) {\n format = defaultMsgOrKey;\n cacheBaseKey = format;\n }\n }\n // checking message format and target locale\n if (!resolvedMessage &&\n (!(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format)) ||\n !isString(targetLocale))) {\n return unresolving ? NOT_REOSLVED : key;\n }\n // TODO: refactor\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\n warn(`The message format compilation is not supported in this build. ` +\n `Because message compiler isn't included. ` +\n `You need to pre-compilation all message format. ` +\n `So translate function return '${key}'.`);\n return key;\n }\n // setup compile error detecting\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n // compile message format\n const msg = !isMessageFunction(format)\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError)\n : format;\n // if occurred compile error, return the message format\n if (occurred) {\n return format;\n }\n // evaluate message with context\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\n const msgContext = createMessageContext(ctxOptions);\n const messaged = evaluateMessage(context, msg, msgContext);\n // if use post translation option, proceed it with handler\n const ret = postTranslation\n ? postTranslation(messaged, key)\n : messaged;\n // NOTE: experimental !!\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n // prettier-ignore\n const payloads = {\n timestamp: Date.now(),\n key: isString(key)\n ? key\n : isMessageFunction(format)\n ? format.key\n : '',\n locale: targetLocale || (isMessageFunction(format)\n ? format.locale\n : ''),\n format: isString(format)\n ? format\n : isMessageFunction(format)\n ? format.source\n : '',\n message: ret\n };\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\n translateDevTools(payloads);\n }\n return ret;\n}\nfunction escapeParams(options) {\n if (isArray(options.list)) {\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\n }\n else if (isObject(options.named)) {\n Object.keys(options.named).forEach(key => {\n if (isString(options.named[key])) {\n options.named[key] = escapeHtml(options.named[key]);\n }\n });\n }\n}\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\n let message = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'translate';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n message =\n messages[targetLocale] || {};\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-resolve-start';\n endTag = 'intlify-message-resolve-end';\n mark && mark(startTag);\n }\n if ((format = resolveValue(message, key)) === null) {\n // if null, resolve with object key path\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start && format) {\n emitter.emit(\"message-resolve\" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */, {\n type: \"message-resolve\" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */,\n key,\n message: format,\n time: end - start,\n groupId: `${type}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message resolve', startTag, endTag);\n }\n }\n if (isString(format) || isMessageAST(format) || isMessageFunction(format)) {\n break;\n }\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n key, targetLocale, missingWarn, type);\n if (missingRet !== key) {\n format = missingRet;\n }\n from = to;\n }\n return [format, targetLocale, message];\n}\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) {\n const { messageCompiler, warnHtmlMessage } = context;\n if (isMessageFunction(format)) {\n const msg = format;\n msg.locale = msg.locale || targetLocale;\n msg.key = msg.key || key;\n return msg;\n }\n if (messageCompiler == null) {\n const msg = (() => format);\n msg.locale = targetLocale;\n msg.key = key;\n return msg;\n }\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-compilation-start';\n endTag = 'intlify-message-compilation-end';\n mark && mark(startTag);\n }\n const msg = messageCompiler(format, getCompileContext(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, onError));\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit(\"message-compilation\" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */, {\n type: \"message-compilation\" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */,\n message: format,\n time: end - start,\n groupId: `${'translate'}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message compilation', startTag, endTag);\n }\n }\n msg.locale = targetLocale;\n msg.key = key;\n msg.source = format;\n return msg;\n}\nfunction evaluateMessage(context, msg, msgCtx) {\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-evaluation-start';\n endTag = 'intlify-message-evaluation-end';\n mark && mark(startTag);\n }\n const messaged = msg(msgCtx);\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit(\"message-evaluation\" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */, {\n type: \"message-evaluation\" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */,\n value: messaged,\n time: end - start,\n groupId: `${'translate'}:${msg.key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message evaluation', startTag, endTag);\n }\n }\n return messaged;\n}\n/** @internal */\nfunction parseTranslateArgs(...args) {\n const [arg1, arg2, arg3] = args;\n const options = {};\n if (!isString(arg1) &&\n !isNumber(arg1) &&\n !isMessageFunction(arg1) &&\n !isMessageAST(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n // prettier-ignore\n const key = isNumber(arg1)\n ? String(arg1)\n : isMessageFunction(arg1)\n ? arg1\n : arg1;\n if (isNumber(arg2)) {\n options.plural = arg2;\n }\n else if (isString(arg2)) {\n options.default = arg2;\n }\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\n options.named = arg2;\n }\n else if (isArray(arg2)) {\n options.list = arg2;\n }\n if (isNumber(arg3)) {\n options.plural = arg3;\n }\n else if (isString(arg3)) {\n options.default = arg3;\n }\n else if (isPlainObject(arg3)) {\n assign(options, arg3);\n }\n return [key, options];\n}\nfunction getCompileContext(context, locale, key, source, warnHtmlMessage, onError) {\n return {\n locale,\n key,\n warnHtmlMessage,\n onError: (err) => {\n onError && onError(err);\n if ((process.env.NODE_ENV !== 'production')) {\n const _source = getSourceForCodeFrame(source);\n const message = `Message compilation error: ${err.message}`;\n const codeFrame = err.location &&\n _source &&\n generateCodeFrame(_source, err.location.start.offset, err.location.end.offset);\n const emitter = context.__v_emitter;\n if (emitter && _source) {\n emitter.emit(\"compile-error\" /* VueDevToolsTimelineEvents.COMPILE_ERROR */, {\n message: _source,\n error: err.message,\n start: err.location && err.location.start.offset,\n end: err.location && err.location.end.offset,\n groupId: `${'translate'}:${key}`\n });\n }\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\n }\n else {\n throw err;\n }\n },\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\n };\n}\nfunction getSourceForCodeFrame(source) {\n if (isString(source)) {\n return source;\n }\n else {\n if (source.loc && source.loc.source) {\n return source.loc.source;\n }\n }\n}\nfunction getMessageContextOptions(context, locale, message, options) {\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\n const resolveMessage = (key) => {\n let val = resolveValue(message, key);\n // fallback to root context\n if (val == null && fallbackContext) {\n const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\n val = resolveValue(message, key);\n }\n if (isString(val) || isMessageAST(val)) {\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n const msg = compileMessageFormat(context, key, locale, val, key, onError);\n return !occurred\n ? msg\n : NOOP_MESSAGE_FUNCTION;\n }\n else if (isMessageFunction(val)) {\n return val;\n }\n else {\n // TODO: should be implemented warning message\n return NOOP_MESSAGE_FUNCTION;\n }\n };\n const ctxOptions = {\n locale,\n modifiers,\n pluralRules,\n messages: resolveMessage\n };\n if (context.processor) {\n ctxOptions.processor = context.processor;\n }\n if (options.list) {\n ctxOptions.list = options.list;\n }\n if (options.named) {\n ctxOptions.named = options.named;\n }\n if (isNumber(options.plural)) {\n ctxOptions.pluralIndex = options.plural;\n }\n return ctxOptions;\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\nconst Availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n};\n\n// implementation of `datetime` function\nfunction datetime(context, ...args) {\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __datetimeFormatters } = context;\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.DateTimeFormat(locale, overrides).format(value);\n }\n // resolve format\n let datetimeFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'datetime format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n datetimeFormat =\n datetimeFormats[targetLocale] || {};\n format = datetimeFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __datetimeFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\n __datetimeFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'formatMatcher',\n 'hour12',\n 'timeZone',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n 'dayPeriod',\n 'numberingSystem',\n 'hourCycle',\n 'fractionalSecondDigits'\n];\n/** @internal */\nfunction parseDateTimeArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = {};\n let overrides = {};\n let value;\n if (isString(arg1)) {\n // Only allow ISO strings - other date formats are often supported,\n // but may cause different results in different browsers.\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\n if (!matches) {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n // Some browsers can not parse the iso datetime separated by space,\n // this is a compromise solution by replace the 'T'/' ' with 'T'\n const dateTime = matches[3]\n ? matches[3].trim().startsWith('T')\n ? `${matches[1].trim()}${matches[3].trim()}`\n : `${matches[1].trim()}T${matches[3].trim()}`\n : matches[1].trim();\n value = new Date(dateTime);\n try {\n // This will fail if the date is not valid\n value.toISOString();\n }\n catch (e) {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n }\n else if (isDate(arg1)) {\n if (isNaN(arg1.getTime())) {\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\n }\n value = arg1;\n }\n else if (isNumber(arg1)) {\n value = arg1;\n }\n else {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearDateTimeFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__datetimeFormatters.has(id)) {\n continue;\n }\n context.__datetimeFormatters.delete(id);\n }\n}\n\n// implementation of `number` function\nfunction number(context, ...args) {\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __numberFormatters } = context;\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseNumberArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.NumberFormat(locale, overrides).format(value);\n }\n // resolve format\n let numberFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'number format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n numberFormat =\n numberFormats[targetLocale] || {};\n format = numberFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __numberFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\n __numberFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'compactDisplay',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'roundingMode',\n 'roundingPriority',\n 'roundingIncrement',\n 'trailingZeroDisplay'\n];\n/** @internal */\nfunction parseNumberArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = {};\n let overrides = {};\n if (!isNumber(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n const value = arg1;\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearNumberFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__numberFormatters.has(id)) {\n continue;\n }\n context.__numberFormatters.delete(id);\n }\n}\n\n{\n initFeatureFlags();\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compile, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getLocale, getWarnMessage, handleMissing, initI18nDevTools, isMessageAST, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveLocale, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * vue-i18n v9.9.0\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, incrementer, format, makeSymbol, isPlainObject, isArray, deepCopy, isString, hasOwn, isObject, warn, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { CoreWarnCodes, CoreErrorCodes, createCompileError, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, isMessageAST, isMessageFunction, fallbackWithLocaleChain, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageCompiler, compile, compileToFunction, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { createVNode, Text, computed, watch, getCurrentInstance, ref, shallowRef, Fragment, defineComponent, h, effectScope, inject, onMounted, onUnmounted, onBeforeMount, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * Vue I18n Version\n *\n * @remarks\n * Semver format. Same format as the package.json `version` field.\n *\n * @VueI18nGeneral\n */\nconst VERSION = '9.9.0';\n/**\n * This is only called in esm-bundler builds.\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\n }\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\n }\n if (typeof __INTLIFY_JIT_COMPILATION__ !== 'boolean') {\n getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false;\n }\n if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') {\n getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;\n }\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n}\n\nconst code$1 = CoreWarnCodes.__EXTEND_POINT__;\nconst inc$1 = incrementer(code$1);\nconst I18nWarnCodes = {\n FALLBACK_TO_ROOT: code$1,\n NOT_SUPPORTED_PRESERVE: inc$1(),\n NOT_SUPPORTED_FORMATTER: inc$1(),\n NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(),\n NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(),\n COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(),\n NOT_FOUND_PARENT_SCOPE: inc$1(),\n IGNORE_OBJ_FLATTEN: inc$1(),\n NOTICE_DROP_ALLOW_COMPOSITION: inc$1() // 17\n};\nconst warnMessages = {\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\n [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\n [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\n [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`,\n [I18nWarnCodes.IGNORE_OBJ_FLATTEN]: `Ignore object flatten: '{key}' key has an string value`,\n [I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION]: `'allowComposition' option will be dropped in the next major version. For more information, please see 👉 https://tinyurl.com/2p97mcze`\n};\nfunction getWarnMessage(code, ...args) {\n return format(warnMessages[code], ...args);\n}\n\nconst code = CoreErrorCodes.__EXTEND_POINT__;\nconst inc = incrementer(code);\nconst I18nErrorCodes = {\n // composer module errors\n UNEXPECTED_RETURN_TYPE: code,\n // legacy module errors\n INVALID_ARGUMENT: inc(),\n // i18n module errors\n MUST_BE_CALL_SETUP_TOP: inc(),\n NOT_INSTALLED: inc(),\n NOT_AVAILABLE_IN_LEGACY_MODE: inc(),\n // directive module errors\n REQUIRED_VALUE: inc(),\n INVALID_VALUE: inc(),\n // vue-devtools errors\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(),\n NOT_INSTALLED_WITH_PROVIDE: inc(),\n // unexpected error\n UNEXPECTED_ERROR: inc(),\n // not compatible legacy vue-i18n constructor\n NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(),\n // bridge support vue 2.x only\n BRIDGE_SUPPORT_VUE_2_ONLY: inc(),\n // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\n MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(),\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(),\n // for enhancement\n __EXTEND_POINT__: inc() // 40\n};\nfunction createI18nError(code, ...args) {\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\n}\nconst errorMessages = {\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\n [I18nErrorCodes.NOT_INSTALLED]: 'Need to install with `app.use` function',\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\n [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\n [I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\n [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\n [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode',\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\n};\n\nconst TranslateVNodeSymbol = \n/* #__PURE__*/ makeSymbol('__translateVNode');\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\nmakeSymbol('__intlifyMeta');\nconst InejctWithOptionSymbol = \n/* #__PURE__*/ makeSymbol('__injectWithOption');\nconst DisposeSymbol = /* #__PURE__*/ makeSymbol('__dispose');\nconst __VUE_I18N_BRIDGE__ = '__VUE_I18N_BRIDGE__';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Transform flat json in obj to normal json in obj\n */\nfunction handleFlatJson(obj) {\n // check obj\n if (!isObject(obj)) {\n return obj;\n }\n for (const key in obj) {\n // check key\n if (!hasOwn(obj, key)) {\n continue;\n }\n // handle for normal json\n if (!key.includes('.')) {\n // recursive process value if value is also a object\n if (isObject(obj[key])) {\n handleFlatJson(obj[key]);\n }\n }\n // handle for flat json, transform to normal json\n else {\n // go to the last object\n const subKeys = key.split('.');\n const lastIndex = subKeys.length - 1;\n let currentObj = obj;\n let hasStringValue = false;\n for (let i = 0; i < lastIndex; i++) {\n if (!(subKeys[i] in currentObj)) {\n currentObj[subKeys[i]] = {};\n }\n if (!isObject(currentObj[subKeys[i]])) {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.IGNORE_OBJ_FLATTEN, {\n key: subKeys[i]\n }));\n hasStringValue = true;\n break;\n }\n currentObj = currentObj[subKeys[i]];\n }\n // update last object value, delete old property\n if (!hasStringValue) {\n currentObj[subKeys[lastIndex]] = obj[key];\n delete obj[key];\n }\n // recursive process value if value is also a object\n if (isObject(currentObj[subKeys[lastIndex]])) {\n handleFlatJson(currentObj[subKeys[lastIndex]]);\n }\n }\n }\n return obj;\n}\nfunction getLocaleMessages(locale, options) {\n const { messages, __i18n, messageResolver, flatJson } = options;\n // prettier-ignore\n const ret = (isPlainObject(messages)\n ? messages\n : isArray(__i18n)\n ? {}\n : { [locale]: {} });\n // merge locale messages of i18n custom block\n if (isArray(__i18n)) {\n __i18n.forEach(custom => {\n if ('locale' in custom && 'resource' in custom) {\n const { locale, resource } = custom;\n if (locale) {\n ret[locale] = ret[locale] || {};\n deepCopy(resource, ret[locale]);\n }\n else {\n deepCopy(resource, ret);\n }\n }\n else {\n isString(custom) && deepCopy(JSON.parse(custom), ret);\n }\n });\n }\n // handle messages for flat json\n if (messageResolver == null && flatJson) {\n for (const key in ret) {\n if (hasOwn(ret, key)) {\n handleFlatJson(ret[key]);\n }\n }\n }\n return ret;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getComponentOptions(instance) {\n return instance.type ;\n}\nfunction adjustI18nResources(gl, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\n) {\n let messages = isObject(options.messages) ? options.messages : {};\n if ('__i18nGlobal' in componentOptions) {\n messages = getLocaleMessages(gl.locale.value, {\n messages,\n __i18n: componentOptions.__i18nGlobal\n });\n }\n // merge locale messages\n const locales = Object.keys(messages);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeLocaleMessage(locale, messages[locale]);\n });\n }\n {\n // merge datetime formats\n if (isObject(options.datetimeFormats)) {\n const locales = Object.keys(options.datetimeFormats);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\n });\n }\n }\n // merge number formats\n if (isObject(options.numberFormats)) {\n const locales = Object.keys(options.numberFormats);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeNumberFormat(locale, options.numberFormats[locale]);\n });\n }\n }\n }\n}\nfunction createTextNode(key) {\n return createVNode(Text, null, key, 0)\n ;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// extend VNode interface\nconst DEVTOOLS_META = '__INTLIFY_META__';\nconst NOOP_RETURN_ARRAY = () => [];\nconst NOOP_RETURN_FALSE = () => false;\nlet composerID = 0;\nfunction defineCoreMissingHandler(missing) {\n return ((ctx, locale, key, type) => {\n return missing(locale, key, getCurrentInstance() || undefined, type);\n });\n}\n// for Intlify DevTools\n/* #__NO_SIDE_EFFECTS__ */\nconst getMetaInfo = () => {\n const instance = getCurrentInstance();\n let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\n ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\n : null;\n};\n/**\n * Create composer interface factory\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction createComposer(options = {}, VueI18nLegacy) {\n const { __root, __injectWithOption } = options;\n const _isGlobal = __root === undefined;\n const flatJson = options.flatJson;\n const _ref = inBrowser ? ref : shallowRef;\n let _inheritLocale = isBoolean(options.inheritLocale)\n ? options.inheritLocale\n : true;\n const _locale = _ref(\n // prettier-ignore\n __root && _inheritLocale\n ? __root.locale.value\n : isString(options.locale)\n ? options.locale\n : DEFAULT_LOCALE);\n const _fallbackLocale = _ref(\n // prettier-ignore\n __root && _inheritLocale\n ? __root.fallbackLocale.value\n : isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale.value);\n const _messages = _ref(getLocaleMessages(_locale.value, options));\n // prettier-ignore\n const _datetimeFormats = _ref(isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale.value]: {} })\n ;\n // prettier-ignore\n const _numberFormats = _ref(isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale.value]: {} })\n ;\n // warning suppress options\n // prettier-ignore\n let _missingWarn = __root\n ? __root.missingWarn\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n // prettier-ignore\n let _fallbackWarn = __root\n ? __root.fallbackWarn\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n // prettier-ignore\n let _fallbackRoot = __root\n ? __root.fallbackRoot\n : isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n // configure fall back to root\n let _fallbackFormat = !!options.fallbackFormat;\n // runtime missing\n let _missing = isFunction(options.missing) ? options.missing : null;\n let _runtimeMissing = isFunction(options.missing)\n ? defineCoreMissingHandler(options.missing)\n : null;\n // postTranslation handler\n let _postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n // prettier-ignore\n let _warnHtmlMessage = __root\n ? __root.warnHtmlMessage\n : isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n let _escapeParameter = !!options.escapeParameter;\n // custom linked modifiers\n // prettier-ignore\n const _modifiers = __root\n ? __root.modifiers\n : isPlainObject(options.modifiers)\n ? options.modifiers\n : {};\n // pluralRules\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\n // runtime context\n // eslint-disable-next-line prefer-const\n let _context;\n const getCoreContext = () => {\n _isGlobal && setFallbackContext(null);\n const ctxOptions = {\n version: VERSION,\n locale: _locale.value,\n fallbackLocale: _fallbackLocale.value,\n messages: _messages.value,\n modifiers: _modifiers,\n pluralRules: _pluralRules,\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\n missingWarn: _missingWarn,\n fallbackWarn: _fallbackWarn,\n fallbackFormat: _fallbackFormat,\n unresolving: true,\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\n warnHtmlMessage: _warnHtmlMessage,\n escapeParameter: _escapeParameter,\n messageResolver: options.messageResolver,\n messageCompiler: options.messageCompiler,\n __meta: { framework: 'vue' }\n };\n {\n ctxOptions.datetimeFormats = _datetimeFormats.value;\n ctxOptions.numberFormats = _numberFormats.value;\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\n ? _context.__datetimeFormatters\n : undefined;\n ctxOptions.__numberFormatters = isPlainObject(_context)\n ? _context.__numberFormatters\n : undefined;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n ctxOptions.__v_emitter = isPlainObject(_context)\n ? _context.__v_emitter\n : undefined;\n }\n const ctx = createCoreContext(ctxOptions);\n _isGlobal && setFallbackContext(ctx);\n return ctx;\n };\n _context = getCoreContext();\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n // track reactivity\n function trackReactivityValues() {\n return [\n _locale.value,\n _fallbackLocale.value,\n _messages.value,\n _datetimeFormats.value,\n _numberFormats.value\n ]\n ;\n }\n // locale\n const locale = computed({\n get: () => _locale.value,\n set: val => {\n _locale.value = val;\n _context.locale = _locale.value;\n }\n });\n // fallbackLocale\n const fallbackLocale = computed({\n get: () => _fallbackLocale.value,\n set: val => {\n _fallbackLocale.value = val;\n _context.fallbackLocale = _fallbackLocale.value;\n updateFallbackLocale(_context, _locale.value, val);\n }\n });\n // messages\n const messages = computed(() => _messages.value);\n // datetimeFormats\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\n // numberFormats\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\n // getPostTranslationHandler\n function getPostTranslationHandler() {\n return isFunction(_postTranslation) ? _postTranslation : null;\n }\n // setPostTranslationHandler\n function setPostTranslationHandler(handler) {\n _postTranslation = handler;\n _context.postTranslation = handler;\n }\n // getMissingHandler\n function getMissingHandler() {\n return _missing;\n }\n // setMissingHandler\n function setMissingHandler(handler) {\n if (handler !== null) {\n _runtimeMissing = defineCoreMissingHandler(handler);\n }\n _missing = handler;\n _context.missing = _runtimeMissing;\n }\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n return type !== 'translate' || !arg.resolvedMessage;\n }\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\n trackReactivityValues(); // track reactive dependency\n // NOTE: experimental !!\n let ret;\n try {\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n setAdditionalMeta(getMetaInfo());\n }\n if (!_isGlobal) {\n _context.fallbackContext = __root\n ? getFallbackContext()\n : undefined;\n }\n ret = fn(_context);\n }\n finally {\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n setAdditionalMeta(null);\n }\n if (!_isGlobal) {\n _context.fallbackContext = undefined;\n }\n }\n if ((warnType !== 'translate exists' && // for not `te` (e.g `t`)\n isNumber(ret) &&\n ret === NOT_REOSLVED) ||\n (warnType === 'translate exists' && !ret) // for `te`\n ) {\n const [key, arg2] = argumentParser();\n if ((process.env.NODE_ENV !== 'production') &&\n __root &&\n isString(key) &&\n isResolvedTranslateMessage(warnType, arg2)) {\n if (_fallbackRoot &&\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\n isTranslateMissingWarn(_missingWarn, key))) {\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\n key,\n type: warnType\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n const { __v_emitter: emitter } = _context;\n if (emitter && _fallbackRoot) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type: warnType,\n key,\n to: 'global',\n groupId: `${warnType}:${key}`\n });\n }\n }\n }\n return __root && _fallbackRoot\n ? fallbackSuccess(__root)\n : fallbackFail(key);\n }\n else if (successCondition(ret)) {\n return ret;\n }\n else {\n /* istanbul ignore next */\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\n }\n };\n // t\n function t(...args) {\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\n }\n // rt\n function rt(...args) {\n const [arg1, arg2, arg3] = args;\n if (arg3 && !isObject(arg3)) {\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n }\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\n }\n // d\n function d(...args) {\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\n }\n // n\n function n(...args) {\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\n }\n // for custom processor\n function normalize(values) {\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\n ? createTextNode(String(val))\n : val);\n }\n const interpolate = (val) => val;\n const processor = {\n normalize,\n interpolate,\n type: 'vnode'\n };\n // translateVNode, using for `i18n-t` component\n function translateVNode(...args) {\n return wrapWithDeps(context => {\n let ret;\n const _context = context;\n try {\n _context.processor = processor;\n ret = Reflect.apply(translate, null, [_context, ...args]);\n }\n finally {\n _context.processor = null;\n }\n return ret;\n }, () => parseTranslateArgs(...args), 'translate', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n root => root[TranslateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\n }\n // numberParts, using for `i18n-n` component\n function numberParts(...args) {\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n root => root[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n }\n // datetimeParts, using for `i18n-d` component\n function datetimeParts(...args) {\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n root => root[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n }\n function setPluralRules(rules) {\n _pluralRules = rules;\n _context.pluralRules = _pluralRules;\n }\n // te\n function te(key, locale) {\n return wrapWithDeps(() => {\n if (!key) {\n return false;\n }\n const targetLocale = isString(locale) ? locale : _locale.value;\n const message = getLocaleMessage(targetLocale);\n const resolved = _context.messageResolver(message, key);\n return (isMessageAST(resolved) ||\n isMessageFunction(resolved) ||\n isString(resolved));\n }, () => [key], 'translate exists', root => {\n return Reflect.apply(root.te, root, [key, locale]);\n }, NOOP_RETURN_FALSE, val => isBoolean(val));\n }\n function resolveMessages(key) {\n let messages = null;\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\n for (let i = 0; i < locales.length; i++) {\n const targetLocaleMessages = _messages.value[locales[i]] || {};\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\n if (messageValue != null) {\n messages = messageValue;\n break;\n }\n }\n return messages;\n }\n // tm\n function tm(key) {\n const messages = resolveMessages(key);\n // prettier-ignore\n return messages != null\n ? messages\n : __root\n ? __root.tm(key) || {}\n : {};\n }\n // getLocaleMessage\n function getLocaleMessage(locale) {\n return (_messages.value[locale] || {});\n }\n // setLocaleMessage\n function setLocaleMessage(locale, message) {\n if (flatJson) {\n const _message = { [locale]: message };\n for (const key in _message) {\n if (hasOwn(_message, key)) {\n handleFlatJson(_message[key]);\n }\n }\n message = _message[locale];\n }\n _messages.value[locale] = message;\n _context.messages = _messages.value;\n }\n // mergeLocaleMessage\n function mergeLocaleMessage(locale, message) {\n _messages.value[locale] = _messages.value[locale] || {};\n const _message = { [locale]: message };\n for (const key in _message) {\n if (hasOwn(_message, key)) {\n handleFlatJson(_message[key]);\n }\n }\n message = _message[locale];\n deepCopy(message, _messages.value[locale]);\n _context.messages = _messages.value;\n }\n // getDateTimeFormat\n function getDateTimeFormat(locale) {\n return _datetimeFormats.value[locale] || {};\n }\n // setDateTimeFormat\n function setDateTimeFormat(locale, format) {\n _datetimeFormats.value[locale] = format;\n _context.datetimeFormats = _datetimeFormats.value;\n clearDateTimeFormat(_context, locale, format);\n }\n // mergeDateTimeFormat\n function mergeDateTimeFormat(locale, format) {\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\n _context.datetimeFormats = _datetimeFormats.value;\n clearDateTimeFormat(_context, locale, format);\n }\n // getNumberFormat\n function getNumberFormat(locale) {\n return _numberFormats.value[locale] || {};\n }\n // setNumberFormat\n function setNumberFormat(locale, format) {\n _numberFormats.value[locale] = format;\n _context.numberFormats = _numberFormats.value;\n clearNumberFormat(_context, locale, format);\n }\n // mergeNumberFormat\n function mergeNumberFormat(locale, format) {\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\n _context.numberFormats = _numberFormats.value;\n clearNumberFormat(_context, locale, format);\n }\n // for debug\n composerID++;\n // watch root locale & fallbackLocale\n if (__root && inBrowser) {\n watch(__root.locale, (val) => {\n if (_inheritLocale) {\n _locale.value = val;\n _context.locale = val;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n });\n watch(__root.fallbackLocale, (val) => {\n if (_inheritLocale) {\n _fallbackLocale.value = val;\n _context.fallbackLocale = val;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n });\n }\n // define basic composition API!\n const composer = {\n id: composerID,\n locale,\n fallbackLocale,\n get inheritLocale() {\n return _inheritLocale;\n },\n set inheritLocale(val) {\n _inheritLocale = val;\n if (val && __root) {\n _locale.value = __root.locale.value;\n _fallbackLocale.value = __root.fallbackLocale.value;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n },\n get availableLocales() {\n return Object.keys(_messages.value).sort();\n },\n messages,\n get modifiers() {\n return _modifiers;\n },\n get pluralRules() {\n return _pluralRules || {};\n },\n get isGlobal() {\n return _isGlobal;\n },\n get missingWarn() {\n return _missingWarn;\n },\n set missingWarn(val) {\n _missingWarn = val;\n _context.missingWarn = _missingWarn;\n },\n get fallbackWarn() {\n return _fallbackWarn;\n },\n set fallbackWarn(val) {\n _fallbackWarn = val;\n _context.fallbackWarn = _fallbackWarn;\n },\n get fallbackRoot() {\n return _fallbackRoot;\n },\n set fallbackRoot(val) {\n _fallbackRoot = val;\n },\n get fallbackFormat() {\n return _fallbackFormat;\n },\n set fallbackFormat(val) {\n _fallbackFormat = val;\n _context.fallbackFormat = _fallbackFormat;\n },\n get warnHtmlMessage() {\n return _warnHtmlMessage;\n },\n set warnHtmlMessage(val) {\n _warnHtmlMessage = val;\n _context.warnHtmlMessage = val;\n },\n get escapeParameter() {\n return _escapeParameter;\n },\n set escapeParameter(val) {\n _escapeParameter = val;\n _context.escapeParameter = val;\n },\n t,\n getLocaleMessage,\n setLocaleMessage,\n mergeLocaleMessage,\n getPostTranslationHandler,\n setPostTranslationHandler,\n getMissingHandler,\n setMissingHandler,\n [SetPluralRulesSymbol]: setPluralRules\n };\n {\n composer.datetimeFormats = datetimeFormats;\n composer.numberFormats = numberFormats;\n composer.rt = rt;\n composer.te = te;\n composer.tm = tm;\n composer.d = d;\n composer.n = n;\n composer.getDateTimeFormat = getDateTimeFormat;\n composer.setDateTimeFormat = setDateTimeFormat;\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\n composer.getNumberFormat = getNumberFormat;\n composer.setNumberFormat = setNumberFormat;\n composer.mergeNumberFormat = mergeNumberFormat;\n composer[InejctWithOptionSymbol] = __injectWithOption;\n composer[TranslateVNodeSymbol] = translateVNode;\n composer[DatetimePartsSymbol] = datetimeParts;\n composer[NumberPartsSymbol] = numberParts;\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n composer[EnableEmitter] = (emitter) => {\n _context.__v_emitter = emitter;\n };\n composer[DisableEmitter] = () => {\n _context.__v_emitter = undefined;\n };\n }\n return composer;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Convert to I18n Composer Options from VueI18n Options\n *\n * @internal\n */\nfunction convertComposerOptions(options) {\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\n const fallbackLocale = isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : locale;\n const missing = isFunction(options.missing) ? options.missing : undefined;\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\n isRegExp(options.silentTranslationWarn)\n ? !options.silentTranslationWarn\n : true;\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\n isRegExp(options.silentFallbackWarn)\n ? !options.silentFallbackWarn\n : true;\n const fallbackRoot = isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n const fallbackFormat = !!options.formatFallbackMessages;\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\n const pluralizationRules = options.pluralizationRules;\n const postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : undefined;\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\n ? options.warnHtmlInMessage !== 'off'\n : true;\n const escapeParameter = !!options.escapeParameterHtml;\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\n }\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n }\n let messages = options.messages;\n if (isPlainObject(options.sharedMessages)) {\n const sharedMessages = options.sharedMessages;\n const locales = Object.keys(sharedMessages);\n messages = locales.reduce((messages, locale) => {\n const message = messages[locale] || (messages[locale] = {});\n assign(message, sharedMessages[locale]);\n return messages;\n }, (messages || {}));\n }\n const { __i18n, __root, __injectWithOption } = options;\n const datetimeFormats = options.datetimeFormats;\n const numberFormats = options.numberFormats;\n const flatJson = options.flatJson;\n return {\n locale,\n fallbackLocale,\n messages,\n flatJson,\n datetimeFormats,\n numberFormats,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackRoot,\n fallbackFormat,\n modifiers,\n pluralRules: pluralizationRules,\n postTranslation,\n warnHtmlMessage,\n escapeParameter,\n messageResolver: options.messageResolver,\n inheritLocale,\n __i18n,\n __root,\n __injectWithOption\n };\n}\n/**\n * create VueI18n interface factory\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction createVueI18n(options = {}, VueI18nLegacy) {\n {\n const composer = createComposer(convertComposerOptions(options));\n const { __extender } = options;\n // defines VueI18n\n const vueI18n = {\n // id\n id: composer.id,\n // locale\n get locale() {\n return composer.locale.value;\n },\n set locale(val) {\n composer.locale.value = val;\n },\n // fallbackLocale\n get fallbackLocale() {\n return composer.fallbackLocale.value;\n },\n set fallbackLocale(val) {\n composer.fallbackLocale.value = val;\n },\n // messages\n get messages() {\n return composer.messages.value;\n },\n // datetimeFormats\n get datetimeFormats() {\n return composer.datetimeFormats.value;\n },\n // numberFormats\n get numberFormats() {\n return composer.numberFormats.value;\n },\n // availableLocales\n get availableLocales() {\n return composer.availableLocales;\n },\n // formatter\n get formatter() {\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\n // dummy\n return {\n interpolate() {\n return [];\n }\n };\n },\n set formatter(val) {\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\n },\n // missing\n get missing() {\n return composer.getMissingHandler();\n },\n set missing(handler) {\n composer.setMissingHandler(handler);\n },\n // silentTranslationWarn\n get silentTranslationWarn() {\n return isBoolean(composer.missingWarn)\n ? !composer.missingWarn\n : composer.missingWarn;\n },\n set silentTranslationWarn(val) {\n composer.missingWarn = isBoolean(val) ? !val : val;\n },\n // silentFallbackWarn\n get silentFallbackWarn() {\n return isBoolean(composer.fallbackWarn)\n ? !composer.fallbackWarn\n : composer.fallbackWarn;\n },\n set silentFallbackWarn(val) {\n composer.fallbackWarn = isBoolean(val) ? !val : val;\n },\n // modifiers\n get modifiers() {\n return composer.modifiers;\n },\n // formatFallbackMessages\n get formatFallbackMessages() {\n return composer.fallbackFormat;\n },\n set formatFallbackMessages(val) {\n composer.fallbackFormat = val;\n },\n // postTranslation\n get postTranslation() {\n return composer.getPostTranslationHandler();\n },\n set postTranslation(handler) {\n composer.setPostTranslationHandler(handler);\n },\n // sync\n get sync() {\n return composer.inheritLocale;\n },\n set sync(val) {\n composer.inheritLocale = val;\n },\n // warnInHtmlMessage\n get warnHtmlInMessage() {\n return composer.warnHtmlMessage ? 'warn' : 'off';\n },\n set warnHtmlInMessage(val) {\n composer.warnHtmlMessage = val !== 'off';\n },\n // escapeParameterHtml\n get escapeParameterHtml() {\n return composer.escapeParameter;\n },\n set escapeParameterHtml(val) {\n composer.escapeParameter = val;\n },\n // preserveDirectiveContent\n get preserveDirectiveContent() {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n return true;\n },\n set preserveDirectiveContent(val) {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n },\n // pluralizationRules\n get pluralizationRules() {\n return composer.pluralRules || {};\n },\n // for internal\n __composer: composer,\n // t\n t(...args) {\n const [arg1, arg2, arg3] = args;\n const options = {};\n let list = null;\n let named = null;\n if (!isString(arg1)) {\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n }\n const key = arg1;\n if (isString(arg2)) {\n options.locale = arg2;\n }\n else if (isArray(arg2)) {\n list = arg2;\n }\n else if (isPlainObject(arg2)) {\n named = arg2;\n }\n if (isArray(arg3)) {\n list = arg3;\n }\n else if (isPlainObject(arg3)) {\n named = arg3;\n }\n // return composer.t(key, (list || named || {}) as any, options)\n return Reflect.apply(composer.t, composer, [\n key,\n (list || named || {}),\n options\n ]);\n },\n rt(...args) {\n return Reflect.apply(composer.rt, composer, [...args]);\n },\n // tc\n tc(...args) {\n const [arg1, arg2, arg3] = args;\n const options = { plural: 1 };\n let list = null;\n let named = null;\n if (!isString(arg1)) {\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n }\n const key = arg1;\n if (isString(arg2)) {\n options.locale = arg2;\n }\n else if (isNumber(arg2)) {\n options.plural = arg2;\n }\n else if (isArray(arg2)) {\n list = arg2;\n }\n else if (isPlainObject(arg2)) {\n named = arg2;\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isArray(arg3)) {\n list = arg3;\n }\n else if (isPlainObject(arg3)) {\n named = arg3;\n }\n // return composer.t(key, (list || named || {}) as any, options)\n return Reflect.apply(composer.t, composer, [\n key,\n (list || named || {}),\n options\n ]);\n },\n // te\n te(key, locale) {\n return composer.te(key, locale);\n },\n // tm\n tm(key) {\n return composer.tm(key);\n },\n // getLocaleMessage\n getLocaleMessage(locale) {\n return composer.getLocaleMessage(locale);\n },\n // setLocaleMessage\n setLocaleMessage(locale, message) {\n composer.setLocaleMessage(locale, message);\n },\n // mergeLocaleMessage\n mergeLocaleMessage(locale, message) {\n composer.mergeLocaleMessage(locale, message);\n },\n // d\n d(...args) {\n return Reflect.apply(composer.d, composer, [...args]);\n },\n // getDateTimeFormat\n getDateTimeFormat(locale) {\n return composer.getDateTimeFormat(locale);\n },\n // setDateTimeFormat\n setDateTimeFormat(locale, format) {\n composer.setDateTimeFormat(locale, format);\n },\n // mergeDateTimeFormat\n mergeDateTimeFormat(locale, format) {\n composer.mergeDateTimeFormat(locale, format);\n },\n // n\n n(...args) {\n return Reflect.apply(composer.n, composer, [...args]);\n },\n // getNumberFormat\n getNumberFormat(locale) {\n return composer.getNumberFormat(locale);\n },\n // setNumberFormat\n setNumberFormat(locale, format) {\n composer.setNumberFormat(locale, format);\n },\n // mergeNumberFormat\n mergeNumberFormat(locale, format) {\n composer.mergeNumberFormat(locale, format);\n },\n // getChoiceIndex\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getChoiceIndex(choice, choicesLength) {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\n return -1;\n }\n };\n vueI18n.__extender = __extender;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n vueI18n.__enableEmitter = (emitter) => {\n const __composer = composer;\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\n };\n vueI18n.__disableEmitter = () => {\n const __composer = composer;\n __composer[DisableEmitter] && __composer[DisableEmitter]();\n };\n }\n return vueI18n;\n }\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst baseFormatProps = {\n tag: {\n type: [String, Object]\n },\n locale: {\n type: String\n },\n scope: {\n type: String,\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n validator: (val /* ComponentI18nScope */) => val === 'parent' || val === 'global',\n default: 'parent' /* ComponentI18nScope */\n },\n i18n: {\n type: Object\n }\n};\n\nfunction getInterpolateArg(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n{ slots }, // SetupContext,\nkeys) {\n if (keys.length === 1 && keys[0] === 'default') {\n // default slot with list\n const ret = slots.default ? slots.default() : [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ret.reduce((slot, current) => {\n return [\n ...slot,\n // prettier-ignore\n ...(current.type === Fragment ? current.children : [current]\n )\n ];\n }, []);\n }\n else {\n // named slots\n return keys.reduce((arg, key) => {\n const slot = slots[key];\n if (slot) {\n arg[key] = slot();\n }\n return arg;\n }, {});\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getFragmentableTag(tag) {\n return Fragment ;\n}\n\nconst TranslationImpl = /*#__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-t',\n props: assign({\n keypath: {\n type: String,\n required: true\n },\n plural: {\n type: [Number, String],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n validator: (val) => isNumber(val) || !isNaN(val)\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const { slots, attrs } = context;\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return () => {\n const keys = Object.keys(slots).filter(key => key !== '_');\n const options = {};\n if (props.locale) {\n options.locale = props.locale;\n }\n if (props.plural !== undefined) {\n options.plural = isString(props.plural) ? +props.plural : props.plural;\n }\n const arg = getInterpolateArg(context, keys);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const children = i18n[TranslateVNodeSymbol](props.keypath, arg, options);\n const assignedAttrs = assign({}, attrs);\n const tag = isString(props.tag) || isObject(props.tag)\n ? props.tag\n : getFragmentableTag();\n return h(tag, assignedAttrs, children);\n };\n }\n});\n/**\n * export the public type for h/tsx inference\n * also to avoid inline import() in generated d.ts files\n */\n/**\n * Translation Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [TranslationProps](component#translationprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\n *\n * @example\n * ```html\n * \n * ```\n * ```js\n * import { createApp } from 'vue'\n * import { createI18n } from 'vue-i18n'\n *\n * const messages = {\n * en: {\n * tos: 'Term of Service',\n * term: 'I accept xxx {0}.'\n * },\n * ja: {\n * tos: '利用規約',\n * term: '私は xxx の{0}に同意します。'\n * }\n * }\n *\n * const i18n = createI18n({\n * locale: 'en',\n * messages\n * })\n *\n * const app = createApp({\n * data: {\n * url: '/term'\n * }\n * }).use(i18n).mount('#app')\n * ```\n *\n * @VueI18nComponent\n */\nconst Translation = TranslationImpl;\nconst I18nT = Translation;\n\nfunction isVNode(target) {\n return isArray(target) && !isString(target[0]);\n}\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\n const { slots, attrs } = context;\n return () => {\n const options = { part: true };\n let overrides = {};\n if (props.locale) {\n options.locale = props.locale;\n }\n if (isString(props.format)) {\n options.key = props.format;\n }\n else if (isObject(props.format)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isString(props.format.key)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.key = props.format.key;\n }\n // Filter out number format options only\n overrides = Object.keys(props.format).reduce((options, prop) => {\n return slotKeys.includes(prop)\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\n : options;\n }, {});\n }\n const parts = partFormatter(...[props.value, options, overrides]);\n let children = [options.key];\n if (isArray(parts)) {\n children = parts.map((part, index) => {\n const slot = slots[part.type];\n const node = slot\n ? slot({ [part.type]: part.value, index, parts })\n : [part.value];\n if (isVNode(node)) {\n node[0].key = `${part.type}-${index}`;\n }\n return node;\n });\n }\n else if (isString(parts)) {\n children = [parts];\n }\n const assignedAttrs = assign({}, attrs);\n const tag = isString(props.tag) || isObject(props.tag)\n ? props.tag\n : getFragmentableTag();\n return h(tag, assignedAttrs, children);\n };\n}\n\nconst NumberFormatImpl = /*#__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-n',\n props: assign({\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const i18n = props.i18n ||\n useI18n({\n useScope: 'parent',\n __useComponent: true\n });\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n[NumberPartsSymbol](...args));\n }\n});\n/**\n * export the public type for h/tsx inference\n * also to avoid inline import() in generated d.ts files\n */\n/**\n * Number Format Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [FormattableProps](component#formattableprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\n *\n * @VueI18nDanger\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\n *\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\n *\n * @VueI18nComponent\n */\nconst NumberFormat = NumberFormatImpl;\nconst I18nN = NumberFormat;\n\nconst DatetimeFormatImpl = /* #__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-d',\n props: assign({\n value: {\n type: [Number, Date],\n required: true\n },\n format: {\n type: [String, Object]\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const i18n = props.i18n ||\n useI18n({\n useScope: 'parent',\n __useComponent: true\n });\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n[DatetimePartsSymbol](...args));\n }\n});\n/**\n * Datetime Format Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [FormattableProps](component#formattableprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\n *\n * @VueI18nDanger\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\n *\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\n *\n * @VueI18nComponent\n */\nconst DatetimeFormat = DatetimeFormatImpl;\nconst I18nD = DatetimeFormat;\n\nfunction getComposer$2(i18n, instance) {\n const i18nInternal = i18n;\n if (i18n.mode === 'composition') {\n return (i18nInternal.__getInstance(instance) || i18n.global);\n }\n else {\n const vueI18n = i18nInternal.__getInstance(instance);\n return vueI18n != null\n ? vueI18n.__composer\n : i18n.global.__composer;\n }\n}\nfunction vTDirective(i18n) {\n const _process = (binding) => {\n const { instance, modifiers, value } = binding;\n /* istanbul ignore if */\n if (!instance || !instance.$) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const composer = getComposer$2(i18n, instance.$);\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\n }\n const parsedValue = parseValue(value);\n return [\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\n composer\n ];\n };\n const register = (el, binding) => {\n const [textContent, composer] = _process(binding);\n if (inBrowser && i18n.global === composer) {\n // global scope only\n el.__i18nWatcher = watch(composer.locale, () => {\n binding.instance && binding.instance.$forceUpdate();\n });\n }\n el.__composer = composer;\n el.textContent = textContent;\n };\n const unregister = (el) => {\n if (inBrowser && el.__i18nWatcher) {\n el.__i18nWatcher();\n el.__i18nWatcher = undefined;\n delete el.__i18nWatcher;\n }\n if (el.__composer) {\n el.__composer = undefined;\n delete el.__composer;\n }\n };\n const update = (el, { value }) => {\n if (el.__composer) {\n const composer = el.__composer;\n const parsedValue = parseValue(value);\n el.textContent = Reflect.apply(composer.t, composer, [\n ...makeParams(parsedValue)\n ]);\n }\n };\n const getSSRProps = (binding) => {\n const [textContent] = _process(binding);\n return { textContent };\n };\n return {\n created: register,\n unmounted: unregister,\n beforeUpdate: update,\n getSSRProps\n };\n}\nfunction parseValue(value) {\n if (isString(value)) {\n return { path: value };\n }\n else if (isPlainObject(value)) {\n if (!('path' in value)) {\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\n }\n return value;\n }\n else {\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\n }\n}\nfunction makeParams(value) {\n const { path, locale, args, choice, plural } = value;\n const options = {};\n const named = args || {};\n if (isString(locale)) {\n options.locale = locale;\n }\n if (isNumber(choice)) {\n options.plural = choice;\n }\n if (isNumber(plural)) {\n options.plural = plural;\n }\n return [path, named, options];\n}\n\nfunction apply(app, i18n, ...options) {\n const pluginOptions = isPlainObject(options[0])\n ? options[0]\n : {};\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\n const globalInstall = isBoolean(pluginOptions.globalInstall)\n ? pluginOptions.globalInstall\n : true;\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\n warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\n name: Translation.name\n }));\n }\n if (globalInstall) {\n [!useI18nComponentName ? Translation.name : 'i18n', 'I18nT'].forEach(name => app.component(name, Translation));\n [NumberFormat.name, 'I18nN'].forEach(name => app.component(name, NumberFormat));\n [DatetimeFormat.name, 'I18nD'].forEach(name => app.component(name, DatetimeFormat));\n }\n // install directive\n {\n app.directive('t', vTDirective(i18n));\n }\n}\n\nconst VueDevToolsLabels = {\n [\"vue-devtools-plugin-vue-i18n\" /* VueDevToolsIDs.PLUGIN */]: 'Vue I18n devtools',\n [\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]: 'I18n Resources',\n [\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]: 'Vue I18n'\n};\nconst VueDevToolsPlaceholders = {\n [\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]: 'Search for scopes ...'\n};\nconst VueDevToolsTimelineColors = {\n [\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]: 0xffcd19\n};\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\nlet devtoolsApi;\nasync function enableDevTools(app, i18n) {\n return new Promise((resolve, reject) => {\n try {\n setupDevtoolsPlugin({\n id: \"vue-devtools-plugin-vue-i18n\" /* VueDevToolsIDs.PLUGIN */,\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* VueDevToolsIDs.PLUGIN */],\n packageName: 'vue-i18n',\n homepage: 'https://vue-i18n.intlify.dev',\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\n }, api => {\n devtoolsApi = api;\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\n updateComponentTreeTags(componentInstance, treeNode, i18n);\n });\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\n if (componentInstance.vnode.el &&\n componentInstance.vnode.el.__VUE_I18N__ &&\n instanceData) {\n if (i18n.mode === 'legacy') {\n // ignore global scope on legacy mode\n if (componentInstance.vnode.el.__VUE_I18N__ !==\n i18n.global.__composer) {\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\n }\n }\n else {\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\n }\n }\n });\n api.addInspector({\n id: \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */,\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */],\n icon: 'language',\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]\n });\n api.on.getInspectorTree(payload => {\n if (payload.app === app &&\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) {\n registerScope(payload, i18n);\n }\n });\n const roots = new Map();\n api.on.getInspectorState(async (payload) => {\n if (payload.app === app &&\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) {\n api.unhighlightElement();\n inspectScope(payload, i18n);\n if (payload.nodeId === 'global') {\n if (!roots.has(payload.app)) {\n const [root] = await api.getComponentInstances(payload.app);\n roots.set(payload.app, root);\n }\n api.highlightElement(roots.get(payload.app));\n }\n else {\n const instance = getComponentInstance(payload.nodeId, i18n);\n instance && api.highlightElement(instance);\n }\n }\n });\n api.on.editInspectorState(payload => {\n if (payload.app === app &&\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) {\n editScope(payload, i18n);\n }\n });\n api.addTimelineLayer({\n id: \"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */,\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */],\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]\n });\n resolve(true);\n });\n }\n catch (e) {\n console.error(e);\n reject(false);\n }\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getI18nScopeLable(instance) {\n return (instance.type.name ||\n instance.type.displayName ||\n instance.type.__file ||\n 'Anonymous');\n}\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\ntreeNode, i18n) {\n // prettier-ignore\n const global = i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {\n // add custom tags local scope only\n if (instance.vnode.el.__VUE_I18N__ !== global) {\n const tag = {\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\n textColor: 0x000000,\n backgroundColor: 0xffcd19\n };\n treeNode.tags.push(tag);\n }\n }\n}\nfunction inspectComposer(instanceData, composer) {\n const type = VUE_I18N_COMPONENT_TYPES;\n instanceData.state.push({\n type,\n key: 'locale',\n editable: true,\n value: composer.locale.value\n });\n instanceData.state.push({\n type,\n key: 'availableLocales',\n editable: false,\n value: composer.availableLocales\n });\n instanceData.state.push({\n type,\n key: 'fallbackLocale',\n editable: true,\n value: composer.fallbackLocale.value\n });\n instanceData.state.push({\n type,\n key: 'inheritLocale',\n editable: true,\n value: composer.inheritLocale\n });\n instanceData.state.push({\n type,\n key: 'messages',\n editable: false,\n value: getLocaleMessageValue(composer.messages.value)\n });\n {\n instanceData.state.push({\n type,\n key: 'datetimeFormats',\n editable: false,\n value: composer.datetimeFormats.value\n });\n instanceData.state.push({\n type,\n key: 'numberFormats',\n editable: false,\n value: composer.numberFormats.value\n });\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getLocaleMessageValue(messages) {\n const value = {};\n Object.keys(messages).forEach((key) => {\n const v = messages[key];\n if (isFunction(v) && 'source' in v) {\n value[key] = getMessageFunctionDetails(v);\n }\n else if (isMessageAST(v) && v.loc && v.loc.source) {\n value[key] = v.loc.source;\n }\n else if (isObject(v)) {\n value[key] = getLocaleMessageValue(v);\n }\n else {\n value[key] = v;\n }\n });\n return value;\n}\nconst ESC = {\n '<': '<',\n '>': '>',\n '\"': '"',\n '&': '&'\n};\nfunction escape(s) {\n return s.replace(/[<>\"&]/g, escapeChar);\n}\nfunction escapeChar(a) {\n return ESC[a] || a;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getMessageFunctionDetails(func) {\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\n return {\n _custom: {\n type: 'function',\n display: `ƒ ${argString}`\n }\n };\n}\nfunction registerScope(payload, i18n) {\n payload.rootNodes.push({\n id: 'global',\n label: 'Global Scope'\n });\n // prettier-ignore\n const global = i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n for (const [keyInstance, instance] of i18n.__instances) {\n // prettier-ignore\n const composer = i18n.mode === 'composition'\n ? instance\n : instance.__composer;\n if (global === composer) {\n continue;\n }\n payload.rootNodes.push({\n id: composer.id.toString(),\n label: `${getI18nScopeLable(keyInstance)} Scope`\n });\n }\n}\nfunction getComponentInstance(nodeId, i18n) {\n let instance = null;\n if (nodeId !== 'global') {\n for (const [component, composer] of i18n.__instances.entries()) {\n if (composer.id.toString() === nodeId) {\n instance = component;\n break;\n }\n }\n }\n return instance;\n}\nfunction getComposer$1(nodeId, i18n) {\n if (nodeId === 'global') {\n return i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n }\n else {\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\n if (instance) {\n return i18n.mode === 'composition'\n ? instance\n : instance.__composer;\n }\n else {\n return null;\n }\n }\n}\nfunction inspectScope(payload, i18n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n const composer = getComposer$1(payload.nodeId, i18n);\n if (composer) {\n // TODO:\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload.state = makeScopeInspectState(composer);\n }\n return null;\n}\nfunction makeScopeInspectState(composer) {\n const state = {};\n const localeType = 'Locale related info';\n const localeStates = [\n {\n type: localeType,\n key: 'locale',\n editable: true,\n value: composer.locale.value\n },\n {\n type: localeType,\n key: 'fallbackLocale',\n editable: true,\n value: composer.fallbackLocale.value\n },\n {\n type: localeType,\n key: 'availableLocales',\n editable: false,\n value: composer.availableLocales\n },\n {\n type: localeType,\n key: 'inheritLocale',\n editable: true,\n value: composer.inheritLocale\n }\n ];\n state[localeType] = localeStates;\n const localeMessagesType = 'Locale messages info';\n const localeMessagesStates = [\n {\n type: localeMessagesType,\n key: 'messages',\n editable: false,\n value: getLocaleMessageValue(composer.messages.value)\n }\n ];\n state[localeMessagesType] = localeMessagesStates;\n {\n const datetimeFormatsType = 'Datetime formats info';\n const datetimeFormatsStates = [\n {\n type: datetimeFormatsType,\n key: 'datetimeFormats',\n editable: false,\n value: composer.datetimeFormats.value\n }\n ];\n state[datetimeFormatsType] = datetimeFormatsStates;\n const numberFormatsType = 'Datetime formats info';\n const numberFormatsStates = [\n {\n type: numberFormatsType,\n key: 'numberFormats',\n editable: false,\n value: composer.numberFormats.value\n }\n ];\n state[numberFormatsType] = numberFormatsStates;\n }\n return state;\n}\nfunction addTimelineEvent(event, payload) {\n if (devtoolsApi) {\n let groupId;\n if (payload && 'groupId' in payload) {\n groupId = payload.groupId;\n delete payload.groupId;\n }\n devtoolsApi.addTimelineEvent({\n layerId: \"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */,\n event: {\n title: event,\n groupId,\n time: Date.now(),\n meta: {},\n data: payload || {},\n logType: event === \"compile-error\" /* VueDevToolsTimelineEvents.COMPILE_ERROR */\n ? 'error'\n : event === \"fallback\" /* VueDevToolsTimelineEvents.FALBACK */ ||\n event === \"missing\" /* VueDevToolsTimelineEvents.MISSING */\n ? 'warning'\n : 'default'\n }\n });\n }\n}\nfunction editScope(payload, i18n) {\n const composer = getComposer$1(payload.nodeId, i18n);\n if (composer) {\n const [field] = payload.path;\n if (field === 'locale' && isString(payload.state.value)) {\n composer.locale.value = payload.state.value;\n }\n else if (field === 'fallbackLocale' &&\n (isString(payload.state.value) ||\n isArray(payload.state.value) ||\n isObject(payload.state.value))) {\n composer.fallbackLocale.value = payload.state.value;\n }\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\n composer.inheritLocale = payload.state.value;\n }\n }\n}\n\n/**\n * Supports compatibility for legacy vue-i18n APIs\n * This mixin is used when we use vue-i18n@v9.x or later\n */\nfunction defineMixin(vuei18n, composer, i18n) {\n return {\n beforeCreate() {\n const instance = getCurrentInstance();\n /* istanbul ignore if */\n if (!instance) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const options = this.$options;\n if (options.i18n) {\n const optionsI18n = options.i18n;\n if (options.__i18n) {\n optionsI18n.__i18n = options.__i18n;\n }\n optionsI18n.__root = composer;\n if (this === this.$root) {\n // merge option and gttach global\n this.$i18n = mergeToGlobal(vuei18n, optionsI18n);\n }\n else {\n optionsI18n.__injectWithOption = true;\n optionsI18n.__extender = i18n.__vueI18nExtend;\n // atttach local VueI18n instance\n this.$i18n = createVueI18n(optionsI18n);\n // extend VueI18n instance\n const _vueI18n = this.$i18n;\n if (_vueI18n.__extender) {\n _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n }\n }\n }\n else if (options.__i18n) {\n if (this === this.$root) {\n // merge option and gttach global\n this.$i18n = mergeToGlobal(vuei18n, options);\n }\n else {\n // atttach local VueI18n instance\n this.$i18n = createVueI18n({\n __i18n: options.__i18n,\n __injectWithOption: true,\n __extender: i18n.__vueI18nExtend,\n __root: composer\n });\n // extend VueI18n instance\n const _vueI18n = this.$i18n;\n if (_vueI18n.__extender) {\n _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n }\n }\n }\n else {\n // attach global VueI18n instance\n this.$i18n = vuei18n;\n }\n if (options.__i18nGlobal) {\n adjustI18nResources(composer, options, options);\n }\n // defines vue-i18n legacy APIs\n this.$t = (...args) => this.$i18n.t(...args);\n this.$rt = (...args) => this.$i18n.rt(...args);\n this.$tc = (...args) => this.$i18n.tc(...args);\n this.$te = (key, locale) => this.$i18n.te(key, locale);\n this.$d = (...args) => this.$i18n.d(...args);\n this.$n = (...args) => this.$i18n.n(...args);\n this.$tm = (key) => this.$i18n.tm(key);\n i18n.__setInstance(instance, this.$i18n);\n },\n mounted() {\n /* istanbul ignore if */\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n this.$el &&\n this.$i18n) {\n const _vueI18n = this.$i18n;\n this.$el.__VUE_I18N__ = _vueI18n.__composer;\n const emitter = (this.__v_emitter =\n createEmitter());\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n emitter.on('*', addTimelineEvent);\n }\n },\n unmounted() {\n const instance = getCurrentInstance();\n /* istanbul ignore if */\n if (!instance) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const _vueI18n = this.$i18n;\n /* istanbul ignore if */\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n this.$el &&\n this.$el.__VUE_I18N__) {\n if (this.__v_emitter) {\n this.__v_emitter.off('*', addTimelineEvent);\n delete this.__v_emitter;\n }\n if (this.$i18n) {\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\n delete this.$el.__VUE_I18N__;\n }\n }\n delete this.$t;\n delete this.$rt;\n delete this.$tc;\n delete this.$te;\n delete this.$d;\n delete this.$n;\n delete this.$tm;\n if (_vueI18n.__disposer) {\n _vueI18n.__disposer();\n delete _vueI18n.__disposer;\n delete _vueI18n.__extender;\n }\n i18n.__deleteInstance(instance);\n delete this.$i18n;\n }\n };\n}\nfunction mergeToGlobal(g, options) {\n g.locale = options.locale || g.locale;\n g.fallbackLocale = options.fallbackLocale || g.fallbackLocale;\n g.missing = options.missing || g.missing;\n g.silentTranslationWarn =\n options.silentTranslationWarn || g.silentFallbackWarn;\n g.silentFallbackWarn = options.silentFallbackWarn || g.silentFallbackWarn;\n g.formatFallbackMessages =\n options.formatFallbackMessages || g.formatFallbackMessages;\n g.postTranslation = options.postTranslation || g.postTranslation;\n g.warnHtmlInMessage = options.warnHtmlInMessage || g.warnHtmlInMessage;\n g.escapeParameterHtml = options.escapeParameterHtml || g.escapeParameterHtml;\n g.sync = options.sync || g.sync;\n g.__composer[SetPluralRulesSymbol](options.pluralizationRules || g.pluralizationRules);\n const messages = getLocaleMessages(g.locale, {\n messages: options.messages,\n __i18n: options.__i18n\n });\n Object.keys(messages).forEach(locale => g.mergeLocaleMessage(locale, messages[locale]));\n if (options.datetimeFormats) {\n Object.keys(options.datetimeFormats).forEach(locale => g.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\n }\n if (options.numberFormats) {\n Object.keys(options.numberFormats).forEach(locale => g.mergeNumberFormat(locale, options.numberFormats[locale]));\n }\n return g;\n}\n\n/**\n * Injection key for {@link useI18n}\n *\n * @remarks\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\n *\n * @VueI18nGeneral\n */\nconst I18nInjectionKey = \n/* #__PURE__*/ makeSymbol('global-vue-i18n');\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction createI18n(options = {}, VueI18nLegacy) {\n // prettier-ignore\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\n ? options.legacy\n : __VUE_I18N_LEGACY_API__;\n // prettier-ignore\n const __globalInjection = isBoolean(options.globalInjection)\n ? options.globalInjection\n : true;\n // prettier-ignore\n const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode\n ? !!options.allowComposition\n : true;\n const __instances = new Map();\n const [globalScope, __global] = createGlobal(options, __legacyMode);\n const symbol = /* #__PURE__*/ makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\n if ((process.env.NODE_ENV !== 'production')) {\n if (__legacyMode && __allowComposition && !false) {\n warn(getWarnMessage(I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION));\n }\n }\n function __getInstance(component) {\n return __instances.get(component) || null;\n }\n function __setInstance(component, instance) {\n __instances.set(component, instance);\n }\n function __deleteInstance(component) {\n __instances.delete(component);\n }\n {\n const i18n = {\n // mode\n get mode() {\n return __VUE_I18N_LEGACY_API__ && __legacyMode\n ? 'legacy'\n : 'composition';\n },\n // allowComposition\n get allowComposition() {\n return __allowComposition;\n },\n // install plugin\n async install(app, ...options) {\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false) {\n app.__VUE_I18N__ = i18n;\n }\n // setup global provider\n app.__VUE_I18N_SYMBOL__ = symbol;\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\n // set composer & vuei18n extend hook options from plugin options\n if (isPlainObject(options[0])) {\n const opts = options[0];\n i18n.__composerExtend =\n opts.__composerExtend;\n i18n.__vueI18nExtend =\n opts.__vueI18nExtend;\n }\n // global method and properties injection for Composition API\n let globalReleaseHandler = null;\n if (!__legacyMode && __globalInjection) {\n globalReleaseHandler = injectGlobalFields(app, i18n.global);\n }\n // install built-in components and directive\n if (__VUE_I18N_FULL_INSTALL__) {\n apply(app, i18n, ...options);\n }\n // setup mixin for Legacy API\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\n app.mixin(defineMixin(__global, __global.__composer, i18n));\n }\n // release global scope\n const unmountApp = app.unmount;\n app.unmount = () => {\n globalReleaseHandler && globalReleaseHandler();\n i18n.dispose();\n unmountApp();\n };\n // setup vue-devtools plugin\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n const ret = await enableDevTools(app, i18n);\n if (!ret) {\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\n }\n const emitter = createEmitter();\n if (__legacyMode) {\n const _vueI18n = __global;\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = __global;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n }\n emitter.on('*', addTimelineEvent);\n }\n },\n // global accessor\n get global() {\n return __global;\n },\n dispose() {\n globalScope.stop();\n },\n // @internal\n __instances,\n // @internal\n __getInstance,\n // @internal\n __setInstance,\n // @internal\n __deleteInstance\n };\n return i18n;\n }\n}\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction useI18n(options = {}) {\n const instance = getCurrentInstance();\n if (instance == null) {\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\n }\n if (!instance.isCE &&\n instance.appContext.app != null &&\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\n throw createI18nError(I18nErrorCodes.NOT_INSTALLED);\n }\n const i18n = getI18nInstance(instance);\n const gl = getGlobalComposer(i18n);\n const componentOptions = getComponentOptions(instance);\n const scope = getScope(options, componentOptions);\n if (__VUE_I18N_LEGACY_API__) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (i18n.mode === 'legacy' && !options.__useComponent) {\n if (!i18n.allowComposition) {\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\n }\n return useI18nForLegacy(instance, scope, gl, options);\n }\n }\n if (scope === 'global') {\n adjustI18nResources(gl, options, componentOptions);\n return gl;\n }\n if (scope === 'parent') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let composer = getComposer(i18n, instance, options.__useComponent);\n if (composer == null) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\n }\n composer = gl;\n }\n return composer;\n }\n const i18nInternal = i18n;\n let composer = i18nInternal.__getInstance(instance);\n if (composer == null) {\n const composerOptions = assign({}, options);\n if ('__i18n' in componentOptions) {\n composerOptions.__i18n = componentOptions.__i18n;\n }\n if (gl) {\n composerOptions.__root = gl;\n }\n composer = createComposer(composerOptions);\n if (i18nInternal.__composerExtend) {\n composer[DisposeSymbol] =\n i18nInternal.__composerExtend(composer);\n }\n setupLifeCycle(i18nInternal, instance, composer);\n i18nInternal.__setInstance(instance, composer);\n }\n return composer;\n}\n/**\n * Cast to VueI18n legacy compatible type\n *\n * @remarks\n * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\n *\n * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment.\n *\n * @param i18n - An instance of {@link I18n}\n * @returns A i18n instance which is casted to {@link VueI18n} type\n *\n * @VueI18nTip\n * :new: provided by **vue-i18n-bridge only**\n *\n * @VueI18nGeneral\n */\n/* #__NO_SIDE_EFFECTS__ */\nconst castToVueI18n = (i18n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => {\n if (!(__VUE_I18N_BRIDGE__ in i18n)) {\n throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\n }\n return i18n;\n};\nfunction createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\n) {\n const scope = effectScope();\n {\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\n ? scope.run(() => createVueI18n(options))\n : scope.run(() => createComposer(options));\n if (obj == null) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n return [scope, obj];\n }\n}\nfunction getI18nInstance(instance) {\n {\n const i18n = inject(!instance.isCE\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\n : I18nInjectionKey);\n /* istanbul ignore if */\n if (!i18n) {\n throw createI18nError(!instance.isCE\n ? I18nErrorCodes.UNEXPECTED_ERROR\n : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE);\n }\n return i18n;\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getScope(options, componentOptions) {\n // prettier-ignore\n return isEmptyObject(options)\n ? ('__i18n' in componentOptions)\n ? 'local'\n : 'global'\n : !options.useScope\n ? 'local'\n : options.useScope;\n}\nfunction getGlobalComposer(i18n) {\n // prettier-ignore\n return i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer\n ;\n}\nfunction getComposer(i18n, target, useComponent = false) {\n let composer = null;\n const root = target.root;\n let current = getParentComponentInstance(target, useComponent);\n while (current != null) {\n const i18nInternal = i18n;\n if (i18n.mode === 'composition') {\n composer = i18nInternal.__getInstance(current);\n }\n else {\n if (__VUE_I18N_LEGACY_API__) {\n const vueI18n = i18nInternal.__getInstance(current);\n if (vueI18n != null) {\n composer = vueI18n\n .__composer;\n if (useComponent &&\n composer &&\n !composer[InejctWithOptionSymbol] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n composer = null;\n }\n }\n }\n }\n if (composer != null) {\n break;\n }\n if (root === current) {\n break;\n }\n current = current.parent;\n }\n return composer;\n}\nfunction getParentComponentInstance(target, useComponent = false) {\n if (target == null) {\n return null;\n }\n {\n // if `useComponent: true` will be specified, we get lexical scope owner instance for use-case slots\n return !useComponent\n ? target.parent\n : target.vnode.ctx || target.parent; // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n}\nfunction setupLifeCycle(i18n, target, composer) {\n let emitter = null;\n {\n onMounted(() => {\n // inject composer instance to DOM for intlify-devtools\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n target.vnode.el) {\n target.vnode.el.__VUE_I18N__ = composer;\n emitter = createEmitter();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n emitter.on('*', addTimelineEvent);\n }\n }, target);\n onUnmounted(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n // remove composer instance from DOM for intlify-devtools\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n target.vnode.el &&\n target.vnode.el.__VUE_I18N__) {\n emitter && emitter.off('*', addTimelineEvent);\n _composer[DisableEmitter] && _composer[DisableEmitter]();\n delete target.vnode.el.__VUE_I18N__;\n }\n i18n.__deleteInstance(target);\n // dispose extended resources\n const dispose = _composer[DisposeSymbol];\n if (dispose) {\n dispose();\n delete _composer[DisposeSymbol];\n }\n }, target);\n }\n}\nfunction useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\n) {\n const isLocalScope = scope === 'local';\n const _composer = shallowRef(null);\n if (isLocalScope &&\n instance.proxy &&\n !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\n throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\n }\n const _inheritLocale = isBoolean(options.inheritLocale)\n ? options.inheritLocale\n : !isString(options.locale);\n const _locale = ref(\n // prettier-ignore\n !isLocalScope || _inheritLocale\n ? root.locale.value\n : isString(options.locale)\n ? options.locale\n : DEFAULT_LOCALE);\n const _fallbackLocale = ref(\n // prettier-ignore\n !isLocalScope || _inheritLocale\n ? root.fallbackLocale.value\n : isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale.value);\n const _messages = ref(getLocaleMessages(_locale.value, options));\n // prettier-ignore\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale.value]: {} });\n // prettier-ignore\n const _numberFormats = ref(isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale.value]: {} });\n // prettier-ignore\n const _missingWarn = isLocalScope\n ? root.missingWarn\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n // prettier-ignore\n const _fallbackWarn = isLocalScope\n ? root.fallbackWarn\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n // prettier-ignore\n const _fallbackRoot = isLocalScope\n ? root.fallbackRoot\n : isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n // configure fall back to root\n const _fallbackFormat = !!options.fallbackFormat;\n // runtime missing\n const _missing = isFunction(options.missing) ? options.missing : null;\n // postTranslation handler\n const _postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n // prettier-ignore\n const _warnHtmlMessage = isLocalScope\n ? root.warnHtmlMessage\n : isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n const _escapeParameter = !!options.escapeParameter;\n // prettier-ignore\n const _modifiers = isLocalScope\n ? root.modifiers\n : isPlainObject(options.modifiers)\n ? options.modifiers\n : {};\n // pluralRules\n const _pluralRules = options.pluralRules || (isLocalScope && root.pluralRules);\n // track reactivity\n function trackReactivityValues() {\n return [\n _locale.value,\n _fallbackLocale.value,\n _messages.value,\n _datetimeFormats.value,\n _numberFormats.value\n ];\n }\n // locale\n const locale = computed({\n get: () => {\n return _composer.value ? _composer.value.locale.value : _locale.value;\n },\n set: val => {\n if (_composer.value) {\n _composer.value.locale.value = val;\n }\n _locale.value = val;\n }\n });\n // fallbackLocale\n const fallbackLocale = computed({\n get: () => {\n return _composer.value\n ? _composer.value.fallbackLocale.value\n : _fallbackLocale.value;\n },\n set: val => {\n if (_composer.value) {\n _composer.value.fallbackLocale.value = val;\n }\n _fallbackLocale.value = val;\n }\n });\n // messages\n const messages = computed(() => {\n if (_composer.value) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return _composer.value.messages.value;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return _messages.value;\n }\n });\n const datetimeFormats = computed(() => _datetimeFormats.value);\n const numberFormats = computed(() => _numberFormats.value);\n function getPostTranslationHandler() {\n return _composer.value\n ? _composer.value.getPostTranslationHandler()\n : _postTranslation;\n }\n function setPostTranslationHandler(handler) {\n if (_composer.value) {\n _composer.value.setPostTranslationHandler(handler);\n }\n }\n function getMissingHandler() {\n return _composer.value ? _composer.value.getMissingHandler() : _missing;\n }\n function setMissingHandler(handler) {\n if (_composer.value) {\n _composer.value.setMissingHandler(handler);\n }\n }\n function warpWithDeps(fn) {\n trackReactivityValues();\n return fn();\n }\n function t(...args) {\n return _composer.value\n ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\n : warpWithDeps(() => '');\n }\n function rt(...args) {\n return _composer.value\n ? Reflect.apply(_composer.value.rt, null, [...args])\n : '';\n }\n function d(...args) {\n return _composer.value\n ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\n : warpWithDeps(() => '');\n }\n function n(...args) {\n return _composer.value\n ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\n : warpWithDeps(() => '');\n }\n function tm(key) {\n return _composer.value ? _composer.value.tm(key) : {};\n }\n function te(key, locale) {\n return _composer.value ? _composer.value.te(key, locale) : false;\n }\n function getLocaleMessage(locale) {\n return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\n }\n function setLocaleMessage(locale, message) {\n if (_composer.value) {\n _composer.value.setLocaleMessage(locale, message);\n _messages.value[locale] = message;\n }\n }\n function mergeLocaleMessage(locale, message) {\n if (_composer.value) {\n _composer.value.mergeLocaleMessage(locale, message);\n }\n }\n function getDateTimeFormat(locale) {\n return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\n }\n function setDateTimeFormat(locale, format) {\n if (_composer.value) {\n _composer.value.setDateTimeFormat(locale, format);\n _datetimeFormats.value[locale] = format;\n }\n }\n function mergeDateTimeFormat(locale, format) {\n if (_composer.value) {\n _composer.value.mergeDateTimeFormat(locale, format);\n }\n }\n function getNumberFormat(locale) {\n return _composer.value ? _composer.value.getNumberFormat(locale) : {};\n }\n function setNumberFormat(locale, format) {\n if (_composer.value) {\n _composer.value.setNumberFormat(locale, format);\n _numberFormats.value[locale] = format;\n }\n }\n function mergeNumberFormat(locale, format) {\n if (_composer.value) {\n _composer.value.mergeNumberFormat(locale, format);\n }\n }\n const wrapper = {\n get id() {\n return _composer.value ? _composer.value.id : -1;\n },\n locale,\n fallbackLocale,\n messages,\n datetimeFormats,\n numberFormats,\n get inheritLocale() {\n return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\n },\n set inheritLocale(val) {\n if (_composer.value) {\n _composer.value.inheritLocale = val;\n }\n },\n get availableLocales() {\n return _composer.value\n ? _composer.value.availableLocales\n : Object.keys(_messages.value);\n },\n get modifiers() {\n return (_composer.value ? _composer.value.modifiers : _modifiers);\n },\n get pluralRules() {\n return (_composer.value ? _composer.value.pluralRules : _pluralRules);\n },\n get isGlobal() {\n return _composer.value ? _composer.value.isGlobal : false;\n },\n get missingWarn() {\n return _composer.value ? _composer.value.missingWarn : _missingWarn;\n },\n set missingWarn(val) {\n if (_composer.value) {\n _composer.value.missingWarn = val;\n }\n },\n get fallbackWarn() {\n return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\n },\n set fallbackWarn(val) {\n if (_composer.value) {\n _composer.value.missingWarn = val;\n }\n },\n get fallbackRoot() {\n return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\n },\n set fallbackRoot(val) {\n if (_composer.value) {\n _composer.value.fallbackRoot = val;\n }\n },\n get fallbackFormat() {\n return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\n },\n set fallbackFormat(val) {\n if (_composer.value) {\n _composer.value.fallbackFormat = val;\n }\n },\n get warnHtmlMessage() {\n return _composer.value\n ? _composer.value.warnHtmlMessage\n : _warnHtmlMessage;\n },\n set warnHtmlMessage(val) {\n if (_composer.value) {\n _composer.value.warnHtmlMessage = val;\n }\n },\n get escapeParameter() {\n return _composer.value\n ? _composer.value.escapeParameter\n : _escapeParameter;\n },\n set escapeParameter(val) {\n if (_composer.value) {\n _composer.value.escapeParameter = val;\n }\n },\n t,\n getPostTranslationHandler,\n setPostTranslationHandler,\n getMissingHandler,\n setMissingHandler,\n rt,\n d,\n n,\n tm,\n te,\n getLocaleMessage,\n setLocaleMessage,\n mergeLocaleMessage,\n getDateTimeFormat,\n setDateTimeFormat,\n mergeDateTimeFormat,\n getNumberFormat,\n setNumberFormat,\n mergeNumberFormat\n };\n function sync(composer) {\n composer.locale.value = _locale.value;\n composer.fallbackLocale.value = _fallbackLocale.value;\n Object.keys(_messages.value).forEach(locale => {\n composer.mergeLocaleMessage(locale, _messages.value[locale]);\n });\n Object.keys(_datetimeFormats.value).forEach(locale => {\n composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\n });\n Object.keys(_numberFormats.value).forEach(locale => {\n composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\n });\n composer.escapeParameter = _escapeParameter;\n composer.fallbackFormat = _fallbackFormat;\n composer.fallbackRoot = _fallbackRoot;\n composer.fallbackWarn = _fallbackWarn;\n composer.missingWarn = _missingWarn;\n composer.warnHtmlMessage = _warnHtmlMessage;\n }\n onBeforeMount(() => {\n if (instance.proxy == null || instance.proxy.$i18n == null) {\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const composer = (_composer.value = instance.proxy.$i18n\n .__composer);\n if (scope === 'global') {\n _locale.value = composer.locale.value;\n _fallbackLocale.value = composer.fallbackLocale.value;\n _messages.value = composer.messages.value;\n _datetimeFormats.value = composer.datetimeFormats.value;\n _numberFormats.value = composer.numberFormats.value;\n }\n else if (isLocalScope) {\n sync(composer);\n }\n });\n return wrapper;\n}\nconst globalExportProps = [\n 'locale',\n 'fallbackLocale',\n 'availableLocales'\n];\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm', 'te']\n ;\nfunction injectGlobalFields(app, composer) {\n const i18n = Object.create(null);\n globalExportProps.forEach(prop => {\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\n if (!desc) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const wrap = isRef(desc.value) // check computed props\n ? {\n get() {\n return desc.value.value;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(val) {\n desc.value.value = val;\n }\n }\n : {\n get() {\n return desc.get && desc.get();\n }\n };\n Object.defineProperty(i18n, prop, wrap);\n });\n app.config.globalProperties.$i18n = i18n;\n globalExportMethods.forEach(method => {\n const desc = Object.getOwnPropertyDescriptor(composer, method);\n if (!desc || !desc.value) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\n });\n const dispose = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete app.config.globalProperties.$i18n;\n globalExportMethods.forEach(method => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete app.config.globalProperties[`$${method}`];\n });\n };\n return dispose;\n}\n\n{\n initFeatureFlags();\n}\n// register message compiler at vue-i18n\nif (__INTLIFY_JIT_COMPILATION__) {\n registerMessageCompiler(compile);\n}\nelse {\n registerMessageCompiler(compileToFunction);\n}\n// register message resolver at vue-i18n\nregisterMessageResolver(resolveValue);\n// register fallback locale at vue-i18n\nregisterLocaleFallbacker(fallbackWithLocaleChain);\n// NOTE: experimental !!\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n const target = getGlobalThis();\n target.__INTLIFY__ = true;\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\n}\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nD, I18nInjectionKey, I18nN, I18nT, NumberFormat, Translation, VERSION, castToVueI18n, createI18n, useI18n, vTDirective };\n","import { createI18n } from \"vue-i18n\";\nimport { LS, LSKeys } from \"@/utils/localStorage\";\nimport it from \"./translations/it.json\";\n\nconst messages = { it };\n\nexport function getEnabledLocale(defaultLocale: string, availableLocales: Array) {\n if (!(defaultLocale in messages)) throw new Error(\"Default locale is not loaded by default!\");\n\n let selectedLocale = defaultLocale;\n // see if the navigator language is in the available languages\n let browserLocale = navigator.language;\n if (browserLocale) {\n browserLocale = browserLocale.toLowerCase().split(\"-\")[0];\n if (availableLocales.includes(browserLocale)) {\n selectedLocale = browserLocale;\n }\n }\n // see if a language was selected before (and make sure it is an available language)\n if (LS.get(LSKeys.LOCALE) !== null && LS.get(LSKeys.LOCALE) !== \"null\") {\n const savedLocale = LS.get(LSKeys.LOCALE);\n if (savedLocale && availableLocales.includes(savedLocale)) {\n selectedLocale = savedLocale;\n }\n }\n return selectedLocale;\n}\n\nexport const i18n = createI18n({\n legacy: false,\n mode: 'composition',\n global: true,\n globalInjection: true,\n locale: \"it\",\n fallbackLocale: \"it\",\n messages\n});\n","import { getProfile } from \"@/api/User\";\nimport type { User } from \"@/models\";\nimport { ref } from \"vue\";\nimport type { NullRef } from \"@/utils\";\nimport { getFidelityCardMovementsHistory } from \"@/api/User\";\nimport type { FidelityCardMovement } from \"@/models/User\";\n\nconst user: NullRef = ref();\nconst fidelityCardMovements: NullRef = ref();\n\nexport function useUser() {\n const refreshUser = async () => {\n user.value = await getProfile();\n };\n\n const loadFidelityCardMovements = async () => {\n fidelityCardMovements.value = await getFidelityCardMovementsHistory();\n };\n\n return { user, fidelityCardMovements, refreshUser, loadFidelityCardMovements };\n}\n\n","export function getQueryParam(key: string) {\n /* STEP 1: Recupera e uniforma tutte le query strings sotto forma di URLSearchParams */\n\n // Gestisce il caso in cui l'url abbia il pattern \"webappdev.ipratico.it?orderId=order-123123123123#/pagamento/successo\"\n // Nel caso in cui il pattern dell'url fosse \"webappdev.ipratico.it?orderId=order-13241234123/#/pagamento/successo\" rimuovo lo slash di troppo prima del #\n const realQueryStrings =\n window.location.search.match(/.*(?=\\/)/)?.toString() || window.location.search;\n const realSearchParams = realQueryStrings ? new URLSearchParams(realQueryStrings) : null;\n // Gestisce il caso in cui l'url di redirect abbia il pattern \"webappdev.ipratico.it/#/pagamento/successo?orderId=order-123123123123\"\n const hashQueryStrings = location.hash.match(/\\?.*/)?.toString() || null;\n const hashSearchParams = hashQueryStrings ? new URLSearchParams(hashQueryStrings) : null;\n\n /* STEP 2: Merge degli UrlSearchParams */\n let searchParams: Record = {};\n if (realSearchParams) {\n searchParams = {\n ...Object.fromEntries(realSearchParams)\n };\n }\n if (hashSearchParams) {\n searchParams = {\n ...searchParams,\n ...Object.fromEntries(hashSearchParams)\n };\n }\n\n /* STEP 3: Recupera il valore della chiave passata alla funzione */\n const urlSearchParams = new URLSearchParams(searchParams);\n return urlSearchParams.get(key) || \"\";\n}\n","import type { Menu } from \"@/models\";\nimport { Saletype } from \"@/models/App\";\nimport { get as apiGet } from \"./API\";\n\nexport async function get(service: Saletype, priceList?: string | null): Promise {\n const options = {\n params: {\n saletype: service,\n pricelistid: priceList\n }\n };\n\n const menu: Menu = {\n saletype: service,\n categories: []\n };\n menu.categories = await apiGet(\"/menu\", options);\n\n return menu;\n}\n","import type { Category, Menu, Product } from \"@/models\";\nimport { Saletype } from \"@/models/App\";\nimport { computed, ref, type Ref } from \"vue\";\nimport { get as getMenu } from \"@/api/Menu\";\n\nconst menus = ref>>({});\nconst priceLists = ref>>({});\nconst searchText = ref(\"\");\nconst selectedTags: Ref = ref([]);\n\nexport const usePriceLists = () => {\n const setPriceList = (saletype: Saletype, priceList: string) => {\n priceLists.value[saletype] = priceList;\n };\n\n const getPriceList = (saletype: Saletype) => {\n return priceLists.value[saletype] || \"\";\n };\n\n return {\n setPriceList,\n getPriceList\n };\n};\n\nexport const useMenuFilters = () => {\n const onSelectedTagsChange = (tags: string[]) => {\n selectedTags.value = tags;\n };\n const onSearchTextChange = (text: string) => {\n searchText.value = text.trim().toLowerCase();\n };\n\n const toggleSelectedTag = (tag: string) => {\n const index = selectedTags.value.findIndex(selectedTag => selectedTag === tag);\n if (index >= 0) {\n selectedTags.value.splice(index, 1);\n } else {\n selectedTags.value.push(tag);\n }\n };\n\n return {\n onSelectedTagsChange,\n onSearchTextChange,\n toggleSelectedTag,\n searchText: searchText as Readonly,\n selectedTags: selectedTags as Readonly\n };\n};\n\nexport const useMenu = (saletype: Saletype | undefined) => {\n const { getPriceList } = usePriceLists();\n\n const categories = ref([]);\n const fetchMenu = async (delay = 0) => {\n if (!saletype) return;\n if (!menus.value[saletype]) {\n menus.value[saletype] = await getMenu(saletype, getPriceList(saletype));\n } else {\n await new Promise(resolve => setTimeout(() => resolve(true), delay));\n }\n categories.value = menus.value[saletype]?.categories || [];\n };\n\n const refreshMenu = async () => {\n if (!saletype) return;\n menus.value[saletype] = undefined;\n await fetchMenu();\n };\n\n const tags = computed(() => {\n const products = categories.value?.map(category => category.products).flat() || [];\n const tags = new Set(products.map(product => product.tags || []).flat());\n return Array.from(tags);\n });\n\n const productHasTags = (product: Product): boolean => {\n return selectedTags.value.every(tag => !!product.tags?.includes(tag)); //filtro per tags\n };\n\n const productHasText = (product: Product): boolean => {\n if (!searchText.value?.length) return true;\n if (product.name.toLowerCase().includes(searchText.value)) return true; //filtro per name\n if (product.description?.toLowerCase().includes(searchText.value)) return true; //filtro per description\n if (product.category.toLowerCase().includes(searchText.value)) return true; //filtro per category\n return false;\n };\n\n const filteredCategories = computed(() => {\n return categories.value.reduce((categories, category) => {\n const filteredProducts = category.products.filter(\n product => productHasTags(product) && productHasText(product)\n );\n\n if (filteredProducts.length) {\n const filteredCategory: Category = { ...category, products: filteredProducts };\n categories.push(filteredCategory);\n }\n\n return categories;\n }, [] as Category[]);\n });\n\n const getCategoriesByIds = (ids: string[]) => {\n return categories.value.filter(category => ids.includes(category.id));\n };\n\n return {\n categories,\n tags,\n filteredCategories,\n getCategoriesByIds,\n fetchMenu,\n refreshMenu\n };\n};\n","import { useApp } from \"../app\";\nimport { CartPrefix } from \"@/models/Cart\";\nimport type { Auth } from \"@/plugins/auth\";\nimport { Saletype } from \"@/models/App\";\nimport { useCart } from \"../cart\";\nimport { useDeliveryAddresses } from \"../delivery/deliveryAddresses\";\nimport { LS } from \"@/utils/localStorage\";\nimport { useUser } from \"../user\";\nimport { getQueryParam } from \"@/utils/queryParams\";\nimport { usePriceLists } from \"../menu\";\n\nexport async function initData(saletype: Saletype, auth: Auth) {\n const { cart, loadCart, cartPrefix, loadRestaurantCart } = useCart();\n const { initLocalStorageAddressService } = useDeliveryAddresses(auth);\n const { setPriceList, getPriceList } = usePriceLists();\n const { app, activeSaletypes, hasOnlyExternalOrder } = useApp();\n const { refreshUser } = useUser();\n\n const prefix = cartPrefix.value;\n const channel = app.value?.channel;\n\n if (prefix && channel) {\n LS.init(cartPrefix.value || CartPrefix.RESTAURANT, app.value?.channel || \"\");\n } else {\n throw Error(\"This should never happen\");\n }\n\n await initLocalStorageAddressService();\n\n // Recupero il carrello o ne genero uno nuovo con impostazioni di default\n if (cartPrefix.value === CartPrefix.RESTAURANT) {\n\n if(!hasOnlyExternalOrder.value) {\n const defaultSaletype = app.value?.defaultService || Saletype.TAKEAWAY;\n if (activeSaletypes.value.includes(defaultSaletype)) {\n saletype = defaultSaletype;\n } else {\n if(activeSaletypes.value.includes(Saletype.DELIVERY)) {\n saletype = Saletype.DELIVERY;\n } else if(activeSaletypes.value.includes(Saletype.TAKEAWAY)) {\n saletype = Saletype.TAKEAWAY;\n }\n }\n \n if(saletype) {\n await loadRestaurantCart(saletype);\n if(cart.value?.saletype && !activeSaletypes.value.includes(cart.value?.saletype)) {\n loadCart({ prefix: cartPrefix.value, saletype });\n }\n }\n }\n\n } else {\n //Permette di indicare nell'url quale listino prezzi mostrare\n const priceList = getQueryParam(\"priceList\");\n if (priceList) setPriceList(saletype, priceList);\n if (cartPrefix.value) loadCart({ prefix: cartPrefix.value, saletype, priceList: getPriceList(saletype) });\n }\n\n if (auth.check()) await refreshUser();\n}\n","import type { Category, Product } from \"@/models\";\nimport type { CartItem } from \"@/models/Cart\";\nimport { computed } from \"vue\";\nimport { useCart } from \"../cart\";\nimport type { AppliedPromoCode } from \"@/models/PromoCode\";\nimport type { CartPriceVariation, ItemPriceVariation } from \"@/models/PriceVariation\";\n\nexport function useCartItems() {\n const {\n cart,\n setCartSubtotalVariation,\n setCartMembershipDiscount,\n setCartPromoCodes\n } = useCart();\n\n const addPromoCode = (\n promoCodes: AppliedPromoCode[],\n itemsVariation: ItemPriceVariation[],\n subtotalVariation: CartPriceVariation | null\n ) => {\n if (!cart.value) throw new Error(\"Cart can't be null\");\n if (itemsVariation?.length) {\n cart.value.items.map(item => {\n item.variation =\n itemsVariation.find(variation => variation.productId === item.product.id) || undefined;\n return item;\n });\n }\n\n if (subtotalVariation) {\n setCartSubtotalVariation(subtotalVariation);\n setCartMembershipDiscount(null);\n }\n setCartPromoCodes(promoCodes);\n };\n\n const clearPromoCodes = () => {\n if (!cart.value) throw new Error(\"Cart can't be null\");\n\n for (const item of cart.value.items) {\n item.variation = undefined;\n }\n\n if (cart.value.subtotalVariation?.promoCode?.code) cart.value.subtotalVariation = null;\n setCartPromoCodes([]);\n };\n\n const removePromoCodeById = (id: string) => {\n if (!cart.value) throw new Error(\"Cart can't be null\");\n\n for (const item of cart.value.items) {\n if (item.variation?.promoCode?.promoCodeId === id) item.variation = undefined;\n }\n if (cart.value.subtotalVariation?.promoCode?.promoCodeId === id) {\n setCartSubtotalVariation(null);\n }\n setCartPromoCodes(cart.value.promoCodes.filter(promoCode => promoCode.promoCodeId !== id));\n };\n\n const removePromoCodeByCode = (code: string) => {\n if (!cart.value) throw new Error(\"Cart can't be null\");\n\n for (const item of cart.value.items) {\n if (item.variation?.promoCode?.code === code) item.variation = undefined;\n }\n\n if (cart.value.subtotalVariation?.promoCode?.code === code) cart.value.subtotalVariation = null;\n setCartPromoCodes(cart.value.promoCodes.filter(promoCode => promoCode.code !== code));\n };\n\n const clearCartItems = () => {\n if (!cart.value) throw new Error(\"Cart can't be null\");\n\n clearPromoCodes();\n\n cart.value.items = [];\n };\n\n const updateCartItems = (items: CartItem[]) => {\n if (!cart.value) throw new Error(\"Cart can't be null\");\n cart.value.items = items;\n clearPromoCodes();\n };\n\n const addToCart = (itemToAdd: CartItem) => {\n if (!cart.value) throw new Error(\"Cart can't be null\");\n\n const itemIndex = cart.value.items.findIndex(item => {\n return (\n JSON.stringify(itemToAdd.configuration) == JSON.stringify(item.configuration) &&\n JSON.stringify(itemToAdd.product) == JSON.stringify(item.product)\n );\n });\n\n if (itemIndex >= 0) {\n cart.value.items[itemIndex].quantity += itemToAdd.quantity;\n } else {\n cart.value.items.push(itemToAdd);\n }\n\n cart.value = JSON.parse(JSON.stringify(cart.value));\n clearPromoCodes();\n };\n\n const removeFromCart = (itemToRemove: CartItem) => {\n if (!cart.value) throw new Error(\"Cart can't be null\");\n\n cart.value.items.splice(cart.value.items.indexOf(itemToRemove), 1);\n clearPromoCodes();\n };\n\n const updateQuantity = (itemToEdit: CartItem, newQuantity: number) => {\n if (!cart.value) throw new Error(\"Cart can't be null\");\n\n cart.value.items = cart.value.items.map(item => {\n if (item == itemToEdit) {\n item.quantity = newQuantity;\n }\n return item;\n });\n\n clearPromoCodes();\n };\n\n const getSameProductCartItems = (product: Product) => {\n return cart.value?.items.filter(item => item.product.id === product.id) || null;\n };\n\n const flattenedProductsInCart = computed(() => {\n if (!cart.value) return {};\n const productsQuantities: { [productId: string]: number } = {};\n\n for (const item of cart.value?.items) {\n if (item.product.isModular) {\n const products = [\n ...Object.values(item.configuration.modules).flat(),\n ...Object.values(item.configuration.upsellingModules).flat()\n ];\n for (const product of products) {\n const productQuantity = productsQuantities[product.id];\n if (productQuantity) {\n productsQuantities[product.id] += item.quantity;\n } else {\n productsQuantities[product.id] = item.quantity;\n }\n }\n } else {\n const productQuantity = productsQuantities[item.product.id];\n if (productQuantity) {\n productsQuantities[item.product.id] += item.quantity;\n } else {\n productsQuantities[item.product.id] = item.quantity;\n }\n }\n }\n return productsQuantities;\n });\n\n const isCategoryOverloaded = (category: Category) => {\n if (!category.productionRate) return false;\n let productionRate = category.productionRate;\n for (const item of cart.value?.items || []) {\n if (item.product.categoryId === category.id) productionRate -= item.quantity;\n }\n if (productionRate < 0) return true;\n else return false;\n };\n\n const getOverloadedCategories = (categories: Category[]) => {\n if (!cart.value) return [] as Category[];\n return categories.filter(category => isCategoryOverloaded(category));\n };\n\n return {\n flattenedProductsInCart,\n getOverloadedCategories,\n clearCartItems,\n addToCart,\n removeFromCart,\n updateQuantity,\n getSameProductCartItems,\n updateCartItems,\n isCategoryOverloaded,\n addPromoCode,\n removePromoCodeById,\n removePromoCodeByCode\n };\n}\n","import type { Auth } from \"@/plugins/auth\";\nimport { useCart } from \"./cart\";\nimport { useDeliveryAddresses } from \"./delivery/deliveryAddresses\";\nimport { initData } from \"./init/initData\";\nimport { useCartItems } from \"./cart/cartItems\";\n\nconst useLoginLogout = () => {\n const logout = async (auth: Auth) => {\n const { cart, cartPrefix } = useCart();\n const { removePromoCodeById } = useCartItems();\n const { onLogoutKeepCartDeliveryPrice } = useDeliveryAddresses();\n\n for (const promoCode of cart.value?.promoCodes || []) {\n removePromoCodeById(promoCode.promoCodeId);\n }\n auth.logout();\n onLogoutKeepCartDeliveryPrice();\n if (cartPrefix.value && cart.value?.saletype) {\n await initData(cart.value.saletype, auth);\n }\n };\n\n return { logout };\n};\n\nexport default useLoginLogout;\n","import type { APIError } from \"@/api/API\";\nimport config from \"@/config\";\nimport { setErrorSnackbar } from \"@/store/layout/snackbar\";\nimport useLoginLogout from \"@/store/loginLogout\";\nimport axios, { type AxiosInstance, type InternalAxiosRequestConfig } from \"axios\";\nimport { DateTime } from \"luxon\";\nimport { type Router } from \"vue-router\";\nimport { ref, type App } from \"vue\";\n/**\n * Compute the clientId for a certain hostname\n * @param hostname Hostname for which to compute the client ID\n */\nexport function getClientId(location: Location): string {\n const testHostnames = [\"localhost\", \"0.0.0.0\", \"127.0.0.1\", \"192.168.0.230\"];\n\n if (testHostnames.includes(location.hostname)) {\n if (location.pathname.includes(\"multilocation\")) return \"webappdevcompany\";\n else return \"webappdev\";\n }\n\n const parts = location.hostname.split(\".\");\n while (parts.length > 3) {\n parts.shift();\n }\n return parts[0];\n}\n\n/**\n * Generate OAuth base token to be used for requesting the other tokens.\n * It is computed as the base64(clientId:someSecret)\n */\nexport function getOAuthBaseToken(): string {\n const clientId = getClientId(window.location);\n const oauthToken = btoa(`${clientId}:${config.oauthClientSecret}`);\n return oauthToken;\n}\n\ninterface AuthOptions {\n oauthURL: string;\n baseToken: string;\n appAuthScope: string;\n}\n\nenum AuthLocalStorage {\n AuthUserToken = \"Auth_userToken\",\n AuthUserTokenRefreshToken = \"Auth_userTokenRefreshToken\",\n AuthUserTokenExpiresAt = \"Auth_userTokenExpiresAt\"\n}\n/**\n * Class to manage the authentication stuff\n */\nexport class Auth {\n clientToken?: string;\n userToken?: string;\n private appAuthScope: string;\n private userTokenRefreshToken?: string;\n private userTokenExpiresAt?: DateTime;\n private oauthURL: string;\n private baseToken: string;\n ready: boolean;\n private checkExpiredUserTokenInterval?: number | undefined = undefined;\n private refreshClientTokenInterval?: number | undefined = undefined;\n\n CHECK_EXPIRED_USER_TOKEN_INTERVAL_MS = 2 * 60 * 1000;\n REFRESH_CLIENT_TOKEN_INTERVAL_MS = 10 * 60 * 1000;\n\n constructor({ oauthURL, baseToken, appAuthScope }: AuthOptions) {\n this.ready = false;\n\n this.oauthURL = oauthURL;\n this.baseToken = baseToken;\n this.appAuthScope = appAuthScope;\n\n const userToken = localStorage.getItem(AuthLocalStorage.AuthUserToken) || null;\n const userTokenRefreshToken =\n localStorage.getItem(AuthLocalStorage.AuthUserTokenRefreshToken) || null;\n const userTokenExpiresAtISO =\n localStorage.getItem(AuthLocalStorage.AuthUserTokenExpiresAt) || null;\n if (userToken && userTokenRefreshToken && userTokenExpiresAtISO) {\n this.userToken = userToken;\n this.userTokenRefreshToken = userTokenRefreshToken;\n this.userTokenExpiresAt = DateTime.fromISO(userTokenExpiresAtISO);\n }\n }\n\n async start() {\n // Setup things for client token\n this.refreshClientTokenInterval = setInterval(\n this.refreshClientToken.bind(this),\n this.REFRESH_CLIENT_TOKEN_INTERVAL_MS\n ) as unknown as number;\n await this.refreshClientToken();\n\n // Setup things for user token\n if (this.userToken) {\n this.checkExpiredUserTokenInterval = setInterval(\n this.checkExpiredUserToken.bind(this),\n this.CHECK_EXPIRED_USER_TOKEN_INTERVAL_MS\n ) as unknown as number;\n await this.checkExpiredUserToken();\n }\n this.ready = true;\n }\n\n private async checkExpiredUserToken() {\n if (this.userTokenExpiresAt) {\n const now = DateTime.local();\n if (now > this.userTokenExpiresAt) {\n await this.refreshUserToken();\n }\n }\n }\n\n setUserToken(userToken: string) {\n this.userToken = userToken;\n }\n\n check() {\n return this.userToken != null;\n }\n\n async login(username: string, password: string) {\n const params = {\n grant_type: \"password\", // eslint-disable-line @typescript-eslint/camelcase\n scope: \"app-user:user\", //app-user:app\n username,\n password\n };\n const queryString = new URLSearchParams();\n for(const [param, value] of Object.entries(params)) {\n queryString.append(param, value);\n }\n const response = await axios.post(\n this.oauthURL,\n queryString.toString(),\n {\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Authorization: `Basic ${this.baseToken}`\n }\n }\n );\n this.checkExpiredUserTokenInterval = setInterval(\n this.checkExpiredUserToken.bind(this),\n this.CHECK_EXPIRED_USER_TOKEN_INTERVAL_MS\n ) as unknown as number;\n localStorage.setItem(AuthLocalStorage.AuthUserToken, response.data.access_token);\n this.userToken = response.data.access_token;\n localStorage.setItem(AuthLocalStorage.AuthUserTokenRefreshToken, response.data.refresh_token);\n this.userTokenRefreshToken = response.data.refresh_token;\n localStorage.setItem(AuthLocalStorage.AuthUserTokenExpiresAt, response.data.expires_at);\n this.userTokenExpiresAt = DateTime.fromISO(response.data.expires_at);\n return response;\n }\n\n private async refreshUserToken() {\n try {\n const params = {\n grant_type: \"refresh_token\",\n refresh_token: this.userTokenRefreshToken\n };\n const queryString = new URLSearchParams();\n for(const [param, value] of Object.entries(params)) {\n queryString.append(param, value || '');\n }\n const response = await axios\n .post(\n this.oauthURL,\n queryString.toString(),\n {\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Authorization: `Basic ${this.baseToken}`\n }\n }\n )\n .catch(e => {\n const error = e as APIError;\n if (\n error?.response?.status &&\n error.response.status >= 400 &&\n error.response.status < 500\n ) {\n setErrorSnackbar(error as Error);\n this.logout();\n //Timeout di 2 secondi per mostrare l'errore nella snackbar prima che venga ricaricata l'immagine\n setTimeout(() => window.location.reload(), 2000);\n }\n });\n if (response) {\n localStorage.setItem(AuthLocalStorage.AuthUserToken, response.data.access_token);\n this.userToken = response.data.access_token;\n localStorage.setItem(\n AuthLocalStorage.AuthUserTokenRefreshToken,\n response.data.refresh_token\n );\n this.userTokenRefreshToken = response.data.refresh_token;\n localStorage.setItem(AuthLocalStorage.AuthUserTokenExpiresAt, response.data.expires_at);\n this.userTokenExpiresAt = DateTime.fromISO(response.data.expires_at);\n }\n } catch (error) {\n this.logout();\n throw error;\n }\n }\n\n private async refreshClientToken() {\n const params = {\n grant_type: \"client_credentials\",\n scope: this.appAuthScope\n };\n const queryString = new URLSearchParams();\n for(const [param, value] of Object.entries(params)) {\n queryString.append(param, value || '');\n }\n const response = await axios.post(\n this.oauthURL,\n queryString.toString(),\n {\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Authorization: `Basic ${this.baseToken}`\n }\n }\n );\n this.clientToken = response.data.access_token;\n }\n\n async logout() {\n this.userToken = undefined;\n localStorage.removeItem(AuthLocalStorage.AuthUserToken);\n this.userTokenRefreshToken = undefined;\n localStorage.removeItem(AuthLocalStorage.AuthUserTokenRefreshToken);\n this.userTokenExpiresAt = undefined;\n localStorage.removeItem(AuthLocalStorage.AuthUserTokenExpiresAt);\n clearInterval(this.checkExpiredUserTokenInterval);\n }\n}\n\n/*\n Vue plugin definition\n*/\ninterface AuthPluginOptions {\n router: Router;\n axios: AxiosInstance;\n}\nlet pluginInstalled = false;\nexport const AuthPlugin = {\n install(\n app: App,\n {\n authOptions,\n pluginOptions: { router, axios }\n }: { authOptions: AuthOptions; pluginOptions: AuthPluginOptions }\n ): void {\n if (pluginInstalled) return;\n pluginInstalled = true;\n const auth = new Auth(authOptions);\n \n app.provide('auth', ref(auth));\n app.config.globalProperties.$auth = auth;\n\n axios.interceptors.request.use((request: InternalAxiosRequestConfig) => {\n if (request.headers && !request.headers?.Authorization) {\n // @ts-ignore\n if (request.requiresAuth) { \n request.headers.Authorization = `Bearer ${auth.userToken}`;\n } else {\n request.headers.Authorization = `Bearer ${auth.clientToken}`;\n }\n }\n return request;\n });\n\n axios.interceptors.response.use(\n function(response) {\n return response;\n },\n function(e) {\n const error = e as APIError;\n if (error?.response?.status === 401) {\n setErrorSnackbar(error as Error);\n const { logout } = useLoginLogout();\n logout(auth);\n //Timeout di 2 secondi per mostrare l'errore nella snackbar prima che venga ricaricata la pagina\n setTimeout(() => router.go(0), 2000);\n }\n return Promise.reject(error);\n }\n );\n }\n};\n","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","const reWords = /[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*/g\n\nconst words = (str) => str.match(reWords) || []\n\nconst upperFirst = (str) => str[0].toUpperCase() + str.slice(1)\n\nconst join = (str, d) => words(str).join(d).toLowerCase()\n\nconst camelCase = (str) =>\n words(str).reduce(\n (acc, next) =>\n `${acc}${\n !acc\n ? next.toLowerCase()\n : next[0].toUpperCase() + next.slice(1).toLowerCase()\n }`,\n '',\n )\n\nconst pascalCase = (str) => upperFirst(camelCase(str))\n\nconst snakeCase = (str) => join(str, '_')\n\nconst kebabCase = (str) => join(str, '-')\n\nconst sentenceCase = (str) => upperFirst(join(str, ' '))\n\nconst titleCase = (str) => words(str).map(upperFirst).join(' ')\n\nmodule.exports = {\n words,\n upperFirst,\n camelCase,\n pascalCase,\n snakeCase,\n kebabCase,\n sentenceCase,\n titleCase,\n}\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","import { getter, forEach, split, normalizePath, join } from 'property-expr';\nimport { camelCase, snakeCase } from 'tiny-case';\nimport toposort from 'toposort';\n\nconst toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\nfunction printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\nfunction toArray(value) {\n return value == null ? [] : [].concat(value);\n}\n\nlet _Symbol$toStringTag;\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\n_Symbol$toStringTag = Symbol.toStringTag;\nclass ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = Object.assign({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n constructor(errorOrErrors, value, field, type, disableStack) {\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.errors = void 0;\n this.params = void 0;\n this.inner = void 0;\n this[_Symbol$toStringTag] = 'Error';\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n const innerErrors = err.inner.length ? err.inner : [err];\n this.inner.push(...innerErrors);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n if (!disableStack && Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n }\n}\n\nlet mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n defined: '${path} must be defined',\n notNull: '${path} cannot be null',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n const castMsg = originalValue != null && originalValue !== value ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.';\n return type !== 'mixed' ? `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + castMsg : `${path} must match the configured type. ` + `The validated value was: \\`${printValue(value, true)}\\`` + castMsg;\n }\n};\nlet string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nlet number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nlet date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nlet boolean = {\n isValue: '${path} field must be ${value}'\n};\nlet object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nlet array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nlet tuple = {\n notType: params => {\n const {\n path,\n value,\n spec\n } = params;\n const typeLen = spec.types.length;\n if (Array.isArray(value)) {\n if (value.length < typeLen) return `${path} tuple value has too few items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n if (value.length > typeLen) return `${path} tuple value has too many items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n }\n return ValidationError.formatError(mixed.notType, params);\n }\n};\nvar locale = Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean,\n tuple\n});\n\nconst isSchema = obj => obj && obj.__isYupSchema__;\n\nclass Condition {\n static fromOptions(refs, config) {\n if (!config.then && !config.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = config;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n return new Condition(refs, (values, schema) => {\n var _branch;\n let branch = check(...values) ? then : otherwise;\n return (_branch = branch == null ? void 0 : branch(schema)) != null ? _branch : schema;\n });\n }\n constructor(refs, builder) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n this.fn = builder;\n }\n resolve(base, options) {\n let values = this.refs.map(ref =>\n // TODO: ? operator here?\n ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn(values, base, options);\n if (schema === undefined ||\n // @ts-ignore this can be base\n schema === base) {\n return base;\n }\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n}\n\nconst prefixes = {\n context: '$',\n value: '.'\n};\nfunction create$9(key, options) {\n return new Reference(key, options);\n}\nclass Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n resolve() {\n return this;\n }\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n toString() {\n return `Ref(${this.key})`;\n }\n static isRef(value) {\n return value && value.__isYupRef;\n }\n}\n\n// @ts-ignore\nReference.prototype.__isYupRef = true;\n\nconst isAbsent = value => value == null;\n\nfunction createValidation(config) {\n function validate({\n value,\n path = '',\n options,\n originalValue,\n schema\n }, panic, next) {\n const {\n name,\n test,\n params,\n message,\n skipAbsent\n } = config;\n let {\n parent,\n context,\n abortEarly = schema.spec.abortEarly,\n disableStackTrace = schema.spec.disableStackTrace\n } = options;\n function resolve(item) {\n return Reference.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n function createError(overrides = {}) {\n var _overrides$disableSta;\n const nextParams = Object.assign({\n value,\n originalValue,\n label: schema.spec.label,\n path: overrides.path || path,\n spec: schema.spec\n }, params, overrides.params);\n for (const key of Object.keys(nextParams)) nextParams[key] = resolve(nextParams[key]);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name, (_overrides$disableSta = overrides.disableStackTrace) != null ? _overrides$disableSta : disableStackTrace);\n error.params = nextParams;\n return error;\n }\n const invalid = abortEarly ? panic : next;\n let ctx = {\n path,\n parent,\n type: name,\n from: options.from,\n createError,\n resolve,\n options,\n originalValue,\n schema\n };\n const handleResult = validOrError => {\n if (ValidationError.isError(validOrError)) invalid(validOrError);else if (!validOrError) invalid(createError());else next(null);\n };\n const handleError = err => {\n if (ValidationError.isError(err)) invalid(err);else panic(err);\n };\n const shouldSkip = skipAbsent && isAbsent(value);\n if (shouldSkip) {\n return handleResult(true);\n }\n let result;\n try {\n var _result;\n result = test.call(ctx, value, ctx);\n if (typeof ((_result = result) == null ? void 0 : _result.then) === 'function') {\n if (options.sync) {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n return Promise.resolve(result).then(handleResult, handleError);\n }\n } catch (err) {\n handleError(err);\n return;\n }\n handleResult(result);\n }\n validate.OPTIONS = config;\n return validate;\n}\n\nfunction getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug;\n\n // root path: ''\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? _part.slice(1, _part.length - 1) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n let isTuple = schema.type === 'tuple';\n let idx = isArray ? parseInt(part, 10) : 0;\n if (schema.innerType || isTuple) {\n if (isTuple && !isArray) throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part \"${lastPartDebug}\" must contain an index to the tuple element, e.g. \"${lastPartDebug}[0]\"`);\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n parent = value;\n value = value && value[idx];\n schema = isTuple ? schema.spec.types[idx] : schema.innerType;\n }\n\n // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema.type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\nfunction reach(obj, path, value, context) {\n return getIn(obj, path, value, context).schema;\n}\n\nclass ReferenceSet extends Set {\n describe() {\n const description = [];\n for (const item of this.values()) {\n description.push(Reference.isRef(item) ? item.describe() : item);\n }\n return description;\n }\n resolveAll(resolve) {\n let result = [];\n for (const item of this.values()) {\n result.push(resolve(item));\n }\n return result;\n }\n clone() {\n return new ReferenceSet(this.values());\n }\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.forEach(value => next.add(value));\n removeItems.forEach(value => next.delete(value));\n return next;\n }\n}\n\n// tweaked from https://github.com/Kelin2025/nanoclone/blob/0abeb7635bda9b68ef2277093f76dbe3bf3948e1/src/index.js\nfunction clone(src, seen = new Map()) {\n if (isSchema(src) || !src || typeof src !== 'object') return src;\n if (seen.has(src)) return seen.get(src);\n let copy;\n if (src instanceof Date) {\n // Date\n copy = new Date(src.getTime());\n seen.set(src, copy);\n } else if (src instanceof RegExp) {\n // RegExp\n copy = new RegExp(src);\n seen.set(src, copy);\n } else if (Array.isArray(src)) {\n // Array\n copy = new Array(src.length);\n seen.set(src, copy);\n for (let i = 0; i < src.length; i++) copy[i] = clone(src[i], seen);\n } else if (src instanceof Map) {\n // Map\n copy = new Map();\n seen.set(src, copy);\n for (const [k, v] of src.entries()) copy.set(k, clone(v, seen));\n } else if (src instanceof Set) {\n // Set\n copy = new Set();\n seen.set(src, copy);\n for (const v of src) copy.add(clone(v, seen));\n } else if (src instanceof Object) {\n // Object\n copy = {};\n seen.set(src, copy);\n for (const [k, v] of Object.entries(src)) copy[k] = clone(v, seen);\n } else {\n throw Error(`Unable to clone ${src}`);\n }\n return copy;\n}\n\n// If `CustomSchemaMeta` isn't extended with any keys, we'll fall back to a\n// loose Record definition allowing free form usage.\nclass Schema {\n constructor(options) {\n this.type = void 0;\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this.internalTests = {};\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this._typeCheck = void 0;\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(mixed.notType);\n });\n this.type = options.type;\n this._typeCheck = options.check;\n this.spec = Object.assign({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n disableStackTrace: false,\n nullable: false,\n optional: true,\n coerce: true\n }, options == null ? void 0 : options.spec);\n this.withMutation(s => {\n s.nonNullable();\n });\n }\n\n // TODO: remove\n get _type() {\n return this.type;\n }\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n }\n\n // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n const next = Object.create(Object.getPrototypeOf(this));\n\n // @ts-expect-error this is readonly\n next.type = this.type;\n next._typeCheck = this._typeCheck;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.internalTests = Object.assign({}, this.internalTests);\n next.exclusiveTests = Object.assign({}, this.exclusiveTests);\n\n // @ts-expect-error this is readonly\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = clone(Object.assign({}, this.spec, spec));\n return next;\n }\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n const mergedSpec = Object.assign({}, base.spec, combined.spec);\n combined.spec = mergedSpec;\n combined.internalTests = Object.assign({}, base.internalTests, combined.internalTests);\n\n // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist);\n\n // start with the current tests\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests;\n\n // manually add the new tests to ensure\n // the deduping logic is consistent\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n isType(v) {\n if (v == null) {\n if (this.spec.nullable && v === null) return true;\n if (this.spec.optional && v === undefined) return true;\n return false;\n }\n return this._typeCheck(v);\n }\n resolve(options) {\n let schema = this;\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((prevSchema, condition) => condition.resolve(prevSchema, options), schema);\n schema = schema.resolve(options);\n }\n return schema;\n }\n resolveOptions(options) {\n var _options$strict, _options$abortEarly, _options$recursive, _options$disableStack;\n return Object.assign({}, options, {\n from: options.from || [],\n strict: (_options$strict = options.strict) != null ? _options$strict : this.spec.strict,\n abortEarly: (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly,\n recursive: (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive,\n disableStackTrace: (_options$disableStack = options.disableStackTrace) != null ? _options$disableStack : this.spec.disableStackTrace\n });\n }\n\n /**\n * Run the configured transform pipeline over an input value.\n */\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(Object.assign({\n value\n }, options));\n let allowOptionality = options.assert === 'ignore-optionality';\n let result = resolvedSchema._cast(value, options);\n if (options.assert !== false && !resolvedSchema.isType(result)) {\n if (allowOptionality && isAbsent(result)) {\n return result;\n }\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema.type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n return result;\n }\n _cast(rawValue, options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((prevValue, fn) => fn.call(this, prevValue, rawValue, this), rawValue);\n if (value === undefined) {\n value = this.getDefault(options);\n }\n return value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n path,\n originalValue = _value,\n strict = this.spec.strict\n } = options;\n let value = _value;\n if (!strict) {\n value = this._cast(value, Object.assign({\n assert: false\n }, options));\n }\n let initialTests = [];\n for (let test of Object.values(this.internalTests)) {\n if (test) initialTests.push(test);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: initialTests\n }, panic, initialErrors => {\n // even if we aren't ending early we can't proceed further if the types aren't correct\n if (initialErrors.length) {\n return next(initialErrors, value);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: this.tests\n }, panic, next);\n });\n }\n\n /**\n * Executes a set of validations, either schema, produced Tests or a nested\n * schema validate result.\n */\n runTests(runOptions, panic, next) {\n let fired = false;\n let {\n tests,\n value,\n originalValue,\n path,\n options\n } = runOptions;\n let panicOnce = arg => {\n if (fired) return;\n fired = true;\n panic(arg, value);\n };\n let nextOnce = arg => {\n if (fired) return;\n fired = true;\n next(arg, value);\n };\n let count = tests.length;\n let nestedErrors = [];\n if (!count) return nextOnce([]);\n let args = {\n value,\n originalValue,\n path,\n options,\n schema: this\n };\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, panicOnce, function finishTestRun(err) {\n if (err) {\n Array.isArray(err) ? nestedErrors.push(...err) : nestedErrors.push(err);\n }\n if (--count <= 0) {\n nextOnce(nestedErrors);\n }\n });\n }\n }\n asNestedTest({\n key,\n index,\n parent,\n parentPath,\n originalParent,\n options\n }) {\n const k = key != null ? key : index;\n if (k == null) {\n throw TypeError('Must include `key` or `index` for nested validations');\n }\n const isIndex = typeof k === 'number';\n let value = parent[k];\n const testOptions = Object.assign({}, options, {\n // Nested validations fields are always strict:\n // 1. parent isn't strict so the casting will also have cast inner values\n // 2. parent is strict in which case the nested values weren't cast either\n strict: true,\n parent,\n value,\n originalValue: originalParent[k],\n // FIXME: tests depend on `index` being passed around deeply,\n // we should not let the options.key/index bleed through\n key: undefined,\n // index: undefined,\n [isIndex ? 'index' : 'key']: k,\n path: isIndex || k.includes('.') ? `${parentPath || ''}[${value ? k : `\"${k}\"`}]` : (parentPath ? `${parentPath}.` : '') + key\n });\n return (_, panic, next) => this.resolve(testOptions)._validate(value, testOptions, panic, next);\n }\n validate(value, options) {\n var _options$disableStack2;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let disableStackTrace = (_options$disableStack2 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack2 : schema.spec.disableStackTrace;\n return new Promise((resolve, reject) => schema._validate(value, options, (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n reject(error);\n }, (errors, validated) => {\n if (errors.length) reject(new ValidationError(errors, validated, undefined, undefined, disableStackTrace));else resolve(validated);\n }));\n }\n validateSync(value, options) {\n var _options$disableStack3;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let result;\n let disableStackTrace = (_options$disableStack3 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack3 : schema.spec.disableStackTrace;\n schema._validate(value, Object.assign({}, options, {\n sync: true\n }), (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n throw error;\n }, (errors, validated) => {\n if (errors.length) throw new ValidationError(errors, value, undefined, undefined, disableStackTrace);\n result = validated;\n });\n return result;\n }\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n _getDefault(options) {\n let defaultValue = this.spec.default;\n if (defaultValue == null) {\n return defaultValue;\n }\n return typeof defaultValue === 'function' ? defaultValue.call(this, options) : clone(defaultValue);\n }\n getDefault(options\n // If schema is defaulted we know it's at least not undefined\n ) {\n let schema = this.resolve(options || {});\n return schema._getDefault(options);\n }\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n let next = this.clone({\n default: def\n });\n return next;\n }\n strict(isStrict = true) {\n return this.clone({\n strict: isStrict\n });\n }\n nullability(nullable, message) {\n const next = this.clone({\n nullable\n });\n next.internalTests.nullable = createValidation({\n message,\n name: 'nullable',\n test(value) {\n return value === null ? this.schema.spec.nullable : true;\n }\n });\n return next;\n }\n optionality(optional, message) {\n const next = this.clone({\n optional\n });\n next.internalTests.optionality = createValidation({\n message,\n name: 'optionality',\n test(value) {\n return value === undefined ? this.schema.spec.optional : true;\n }\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n defined(message = mixed.defined) {\n return this.optionality(false, message);\n }\n nullable() {\n return this.nullability(true);\n }\n nonNullable(message = mixed.notNull) {\n return this.nullability(false, message);\n }\n required(message = mixed.required) {\n return this.clone().withMutation(next => next.nonNullable(message).defined(message));\n }\n notRequired() {\n return this.clone().withMutation(next => next.nullable().optional());\n }\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n test(...args) {\n let opts;\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n if (opts.message === undefined) opts.message = mixed.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n let next = this.clone();\n let deps = toArray(keys).map(key => new Reference(key));\n deps.forEach(dep => {\n // @ts-ignore readonly array\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(typeof options === 'function' ? new Condition(deps, options) : Condition.fromOptions(deps, options));\n return next;\n }\n typeError(message) {\n let next = this.clone();\n next.internalTests.typeError = createValidation({\n message,\n name: 'typeError',\n skipAbsent: true,\n test(value) {\n if (!this.schema._typeCheck(value)) return this.createError({\n params: {\n type: this.schema.type\n }\n });\n return true;\n }\n });\n return next;\n }\n oneOf(enums, message = mixed.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n next._blacklist.delete(val);\n });\n next.internalTests.whiteList = createValidation({\n message,\n name: 'oneOf',\n skipAbsent: true,\n test(value) {\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: Array.from(valids).join(', '),\n resolved\n }\n });\n }\n });\n return next;\n }\n notOneOf(enums, message = mixed.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n next._whitelist.delete(val);\n });\n next.internalTests.blacklist = createValidation({\n message,\n name: 'notOneOf',\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: Array.from(invalids).join(', '),\n resolved\n }\n });\n return true;\n }\n });\n return next;\n }\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n /**\n * Return a serialized description of the schema including validations, flags, types etc.\n *\n * @param options Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).\n */\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const {\n label,\n meta,\n optional,\n nullable\n } = next.spec;\n const description = {\n meta,\n label,\n optional,\n nullable,\n default: next.getDefault(options),\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n}\n// @ts-expect-error\nSchema.prototype.__isYupSchema__ = true;\nfor (const method of ['validate', 'validateSync']) Schema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], Object.assign({}, options, {\n parent,\n path\n }));\n};\nfor (const alias of ['equals', 'is']) Schema.prototype[alias] = Schema.prototype.oneOf;\nfor (const alias of ['not', 'nope']) Schema.prototype[alias] = Schema.prototype.notOneOf;\n\nconst returnsTrue = () => true;\nfunction create$8(spec) {\n return new MixedSchema(spec);\n}\nclass MixedSchema extends Schema {\n constructor(spec) {\n super(typeof spec === 'function' ? {\n type: 'mixed',\n check: spec\n } : Object.assign({\n type: 'mixed',\n check: returnsTrue\n }, spec));\n }\n}\ncreate$8.prototype = MixedSchema.prototype;\n\nfunction create$7() {\n return new BooleanSchema();\n}\nclass BooleanSchema extends Schema {\n constructor() {\n super({\n type: 'boolean',\n check(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (ctx.spec.coerce && !ctx.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n return value;\n });\n });\n }\n isTrue(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n test(value) {\n return isAbsent(value) || value === true;\n }\n });\n }\n isFalse(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n test(value) {\n return isAbsent(value) || value === false;\n }\n });\n }\n default(def) {\n return super.default(def);\n }\n defined(msg) {\n return super.defined(msg);\n }\n optional() {\n return super.optional();\n }\n required(msg) {\n return super.required(msg);\n }\n notRequired() {\n return super.notRequired();\n }\n nullable() {\n return super.nullable();\n }\n nonNullable(msg) {\n return super.nonNullable(msg);\n }\n strip(v) {\n return super.strip(v);\n }\n}\ncreate$7.prototype = BooleanSchema.prototype;\n\n// Taken from HTML spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nlet rEmail =\n// eslint-disable-next-line\n/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nlet rUrl =\n// eslint-disable-next-line\n/^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\n\n// eslint-disable-next-line\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\nlet objStringTag = {}.toString();\nfunction create$6() {\n return new StringSchema();\n}\nclass StringSchema extends Schema {\n constructor() {\n super({\n type: 'string',\n check(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce || ctx.isType(value)) return value;\n\n // don't ever convert arrays\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n\n // no one wants plain objects converted to [Object object]\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n required(message) {\n return super.required(message).withMutation(schema => schema.test({\n message: message || mixed.required,\n name: 'required',\n skipAbsent: true,\n test: value => !!value.length\n }));\n }\n notRequired() {\n return super.notRequired().withMutation(schema => {\n schema.tests = schema.tests.filter(t => t.OPTIONS.name !== 'required');\n return schema;\n });\n }\n length(length, message = string.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message = string.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message = string.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n return this.test({\n name: name || 'matches',\n message: message || string.matches,\n params: {\n regex\n },\n skipAbsent: true,\n test: value => value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n email(message = string.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n url(message = string.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n uuid(message = string.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n }\n\n //-- transforms --\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n trim(message = string.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n lowercase(message = string.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n uppercase(message = string.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n}\ncreate$6.prototype = StringSchema.prototype;\n\n//\n// String Interfaces\n//\n\nlet isNaN$1 = value => value != +value;\nfunction create$5() {\n return new NumberSchema();\n}\nclass NumberSchema extends Schema {\n constructor() {\n super({\n type: 'number',\n check(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN$1(value);\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce) return value;\n let parsed = value;\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN;\n // don't use parseFloat to avoid positives on alpha-numeric strings\n parsed = +parsed;\n }\n\n // null -> NaN isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (ctx.isType(parsed) || parsed === null) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n min(min, message = number.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(min);\n }\n });\n }\n max(max, message = number.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(max);\n }\n });\n }\n lessThan(less, message = number.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n skipAbsent: true,\n test(value) {\n return value < this.resolve(less);\n }\n });\n }\n moreThan(more, message = number.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n skipAbsent: true,\n test(value) {\n return value > this.resolve(more);\n }\n });\n }\n positive(msg = number.positive) {\n return this.moreThan(0, msg);\n }\n negative(msg = number.negative) {\n return this.lessThan(0, msg);\n }\n integer(message = number.integer) {\n return this.test({\n name: 'integer',\n message,\n skipAbsent: true,\n test: val => Number.isInteger(val)\n });\n }\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n round(method) {\n var _method;\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round';\n\n // this exists for symemtry with the new Math.trunc\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n}\ncreate$5.prototype = NumberSchema.prototype;\n\n//\n// Number Interfaces\n//\n\n/**\n * This file is a modified version of the file from the following repository:\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover \n * Released under MIT license.\n */\n\n// prettier-ignore\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nconst isoReg = /^(\\d{4}|[+-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,.](\\d{1,}))?)?(?:(Z)|([+-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nfunction toNumber(str, defaultValue = 0) {\n return Number(str) || defaultValue;\n}\nfunction parseIsoDate(date) {\n const regexResult = isoReg.exec(date);\n if (!regexResult) return Date.parse ? Date.parse(date) : Number.NaN;\n\n // use of toNumber() avoids NaN timestamps caused by “undefined”\n // values being passed to Date constructor\n const struct = {\n year: toNumber(regexResult[1]),\n month: toNumber(regexResult[2], 1) - 1,\n day: toNumber(regexResult[3], 1),\n hour: toNumber(regexResult[4]),\n minute: toNumber(regexResult[5]),\n second: toNumber(regexResult[6]),\n millisecond: regexResult[7] ?\n // allow arbitrary sub-second precision beyond milliseconds\n toNumber(regexResult[7].substring(0, 3)) : 0,\n z: regexResult[8] || undefined,\n plusMinus: regexResult[9] || undefined,\n hourOffset: toNumber(regexResult[10]),\n minuteOffset: toNumber(regexResult[11])\n };\n\n // timestamps without timezone identifiers should be considered local time\n if (struct.z === undefined && struct.plusMinus === undefined) {\n return new Date(struct.year, struct.month, struct.day, struct.hour, struct.minute, struct.second, struct.millisecond).valueOf();\n }\n let totalMinutesOffset = 0;\n if (struct.z !== 'Z' && struct.plusMinus !== undefined) {\n totalMinutesOffset = struct.hourOffset * 60 + struct.minuteOffset;\n if (struct.plusMinus === '+') totalMinutesOffset = 0 - totalMinutesOffset;\n }\n return Date.UTC(struct.year, struct.month, struct.day, struct.hour, struct.minute + totalMinutesOffset, struct.second, struct.millisecond);\n}\n\nlet invalidDate = new Date('');\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\nfunction create$4() {\n return new DateSchema();\n}\nclass DateSchema extends Schema {\n constructor() {\n super({\n type: 'date',\n check(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n // null -> InvalidDate isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (!ctx.spec.coerce || ctx.isType(value) || value === null) return value;\n value = parseIsoDate(value);\n\n // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n return !isNaN(value) ? new Date(value) : DateSchema.INVALID_DATE;\n });\n });\n }\n prepareParam(ref, name) {\n let param;\n if (!Reference.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n return param;\n }\n min(min, message = date.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(limit);\n }\n });\n }\n max(max, message = date.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(limit);\n }\n });\n }\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate$4.prototype = DateSchema.prototype;\ncreate$4.INVALID_DATE = invalidDate;\n\n// @ts-expect-error\nfunction sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n for (const key of Object.keys(fields)) {\n let value = fields[key];\n nodes.add(key);\n if (Reference.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n return toposort.array(Array.from(nodes), edges).reverse();\n}\n\nfunction findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n if ((_err$path = err.path) != null && _err$path.includes(key)) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\nfunction sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}\n\nconst parseJson = (value, _, ctx) => {\n if (typeof value !== 'string') {\n return value;\n }\n let parsed = value;\n try {\n parsed = JSON.parse(value);\n } catch (err) {\n /* */\n }\n return ctx.isType(parsed) ? parsed : value;\n};\n\n// @ts-ignore\nfunction deepPartial(schema) {\n if ('fields' in schema) {\n const partial = {};\n for (const [key, fieldSchema] of Object.entries(schema.fields)) {\n partial[key] = deepPartial(fieldSchema);\n }\n return schema.setFields(partial);\n }\n if (schema.type === 'array') {\n const nextArray = schema.optional();\n if (nextArray.innerType) nextArray.innerType = deepPartial(nextArray.innerType);\n return nextArray;\n }\n if (schema.type === 'tuple') {\n return schema.optional().clone({\n types: schema.spec.types.map(deepPartial)\n });\n }\n if ('optional' in schema) {\n return schema.optional();\n }\n return schema;\n}\nconst deepHas = (obj, p) => {\n const path = [...normalizePath(p)];\n if (path.length === 1) return path[0] in obj;\n let last = path.pop();\n let parent = getter(join(path), true)(obj);\n return !!(parent && last in parent);\n};\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\nconst defaultSort = sortByKeyOrder([]);\nfunction create$3(spec) {\n return new ObjectSchema(spec);\n}\nclass ObjectSchema extends Schema {\n constructor(spec) {\n super({\n type: 'object',\n check(value) {\n return isObject(value) || typeof value === 'function';\n }\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n if (spec) {\n this.shape(spec);\n }\n });\n }\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n let value = super._cast(_value, options);\n\n //should ignore nulls here\n if (value === undefined) return this.getDefault(options);\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n let props = [].concat(this._nodes, Object.keys(value).filter(v => !this._nodes.includes(v)));\n let intermediateValue = {}; // is filled during the transform below\n let innerOptions = Object.assign({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n let isChanged = false;\n for (const prop of props) {\n let field = fields[prop];\n let exists = (prop in value);\n if (field) {\n let fieldValue;\n let inputValue = value[prop];\n\n // safe to mutate since this is fired in sequence\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop;\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = field instanceof Schema ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n if (fieldSpec != null && fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n fieldValue = !options.__validating || !strict ?\n // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n if (exists !== prop in intermediateValue || intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n return isChanged ? intermediateValue : value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n from = [],\n originalValue = _value,\n recursive = this.spec.recursive\n } = options;\n options.from = [{\n schema: this,\n value: originalValue\n }, ...from];\n // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n options.__validating = true;\n options.originalValue = originalValue;\n super._validate(_value, options, panic, (objectErrors, value) => {\n if (!recursive || !isObject(value)) {\n next(objectErrors, value);\n return;\n }\n originalValue = originalValue || value;\n let tests = [];\n for (let key of this._nodes) {\n let field = this.fields[key];\n if (!field || Reference.isRef(field)) {\n continue;\n }\n tests.push(field.asNestedTest({\n options,\n key,\n parent: value,\n parentPath: options.path,\n originalParent: originalValue\n }));\n }\n this.runTests({\n tests,\n value,\n originalValue,\n options\n }, panic, fieldErrors => {\n next(fieldErrors.sort(this._sortErrors).concat(objectErrors), value);\n });\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n next.fields = Object.assign({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n nextFields[field] = target === undefined ? schemaOrRef : target;\n }\n return next.withMutation(s =>\n // XXX: excludes here is wrong\n s.setFields(nextFields, [...this._excludedEdges, ...schema._excludedEdges]));\n }\n _getDefault(options) {\n if ('default' in this.spec) {\n return super._getDefault(options);\n }\n\n // if there is no default set invent one\n if (!this._nodes.length) {\n return undefined;\n }\n let dft = {};\n this._nodes.forEach(key => {\n var _innerOptions;\n const field = this.fields[key];\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n dft[key] = field && 'getDefault' in field ? field.getDefault(innerOptions) : undefined;\n });\n return dft;\n }\n setFields(shape, excludedEdges) {\n let next = this.clone();\n next.fields = shape;\n next._nodes = sortFields(shape, excludedEdges);\n next._sortErrors = sortByKeyOrder(Object.keys(shape));\n // XXX: this carries over edges which may not be what you want\n if (excludedEdges) next._excludedEdges = excludedEdges;\n return next;\n }\n shape(additions, excludes = []) {\n return this.clone().withMutation(next => {\n let edges = next._excludedEdges;\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n edges = [...next._excludedEdges, ...excludes];\n }\n\n // XXX: excludes here is wrong\n return next.setFields(Object.assign(next.fields, additions), edges);\n });\n }\n partial() {\n const partial = {};\n for (const [key, schema] of Object.entries(this.fields)) {\n partial[key] = 'optional' in schema && schema.optional instanceof Function ? schema.optional() : schema;\n }\n return this.setFields(partial);\n }\n deepPartial() {\n const next = deepPartial(this);\n return next;\n }\n pick(keys) {\n const picked = {};\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n return this.setFields(picked, this._excludedEdges.filter(([a, b]) => keys.includes(a) && keys.includes(b)));\n }\n omit(keys) {\n const remaining = [];\n for (const key of Object.keys(this.fields)) {\n if (keys.includes(key)) continue;\n remaining.push(key);\n }\n return this.pick(remaining);\n }\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (!obj) return obj;\n let newObj = obj;\n if (deepHas(obj, from)) {\n newObj = Object.assign({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n return newObj;\n });\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n noUnknown(noAllow = true, message = object.noUnknown) {\n if (typeof noAllow !== 'boolean') {\n message = noAllow;\n noAllow = true;\n }\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n unknown(allow = true, message = object.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n transformKeys(fn) {\n return this.transform(obj => {\n if (!obj) return obj;\n const result = {};\n for (const key of Object.keys(obj)) result[fn(key)] = obj[key];\n return result;\n });\n }\n camelCase() {\n return this.transformKeys(camelCase);\n }\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.fields = {};\n for (const [key, value] of Object.entries(next.fields)) {\n var _innerOptions2;\n let innerOptions = options;\n if ((_innerOptions2 = innerOptions) != null && _innerOptions2.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n base.fields[key] = value.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$3.prototype = ObjectSchema.prototype;\n\nfunction create$2(type) {\n return new ArraySchema(type);\n}\nclass ArraySchema extends Schema {\n constructor(type) {\n super({\n type: 'array',\n spec: {\n types: type\n },\n check(v) {\n return Array.isArray(v);\n }\n });\n\n // `undefined` specifically means uninitialized, as opposed to \"no subtype\"\n this.innerType = void 0;\n this.innerType = type;\n }\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts);\n\n // should ignore nulls here\n if (!this._typeCheck(value) || !this.innerType) {\n return value;\n }\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, Object.assign({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n if (castElement !== v) {\n isChanged = true;\n }\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n var _options$recursive;\n // let sync = options.sync;\n // let path = options.path;\n let innerType = this.innerType;\n // let endEarly = options.abortEarly ?? this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n options.originalValue != null ? options.originalValue : _value;\n super._validate(_value, options, panic, (arrayErrors, value) => {\n var _options$originalValu2;\n if (!recursive || !innerType || !this._typeCheck(value)) {\n next(arrayErrors, value);\n return;\n }\n\n // #950 Ensure that sparse array empty slots are validated\n let tests = new Array(value.length);\n for (let index = 0; index < value.length; index++) {\n var _options$originalValu;\n tests[index] = innerType.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(arrayErrors), value));\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n return next;\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n concat(schema) {\n let next = super.concat(schema);\n\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n if (schema.innerType)\n // @ts-expect-error readonly\n next.innerType = next.innerType ?\n // @ts-expect-error Lazy doesn't have concat and will break\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema));\n\n // @ts-expect-error readonly\n next.innerType = schema;\n next.spec = Object.assign({}, next.spec, {\n types: schema\n });\n return next;\n }\n length(length, message = array.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message) {\n message = message || array.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n // FIXME(ts): Array\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message) {\n message = message || array.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n if (next.innerType) {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[0]\n });\n }\n base.innerType = next.innerType.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$2.prototype = ArraySchema.prototype;\n\n// @ts-ignore\nfunction create$1(schemas) {\n return new TupleSchema(schemas);\n}\nclass TupleSchema extends Schema {\n constructor(schemas) {\n super({\n type: 'tuple',\n spec: {\n types: schemas\n },\n check(v) {\n const types = this.spec.types;\n return Array.isArray(v) && v.length === types.length;\n }\n });\n this.withMutation(() => {\n this.typeError(tuple.notType);\n });\n }\n _cast(inputValue, options) {\n const {\n types\n } = this.spec;\n const value = super._cast(inputValue, options);\n if (!this._typeCheck(value)) {\n return value;\n }\n let isChanged = false;\n const castArray = types.map((type, idx) => {\n const castElement = type.cast(value[idx], Object.assign({}, options, {\n path: `${options.path || ''}[${idx}]`\n }));\n if (castElement !== value[idx]) isChanged = true;\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n let itemTypes = this.spec.types;\n super._validate(_value, options, panic, (tupleErrors, value) => {\n var _options$originalValu2;\n // intentionally not respecting recursive\n if (!this._typeCheck(value)) {\n next(tupleErrors, value);\n return;\n }\n let tests = [];\n for (let [index, itemSchema] of itemTypes.entries()) {\n var _options$originalValu;\n tests[index] = itemSchema.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(tupleErrors), value));\n });\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.innerType = next.spec.types.map((schema, index) => {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[index]\n });\n }\n return schema.describe(innerOptions);\n });\n return base;\n }\n}\ncreate$1.prototype = TupleSchema.prototype;\n\nfunction create(builder) {\n return new Lazy(builder);\n}\nclass Lazy {\n constructor(builder) {\n this.type = 'lazy';\n this.__isYupSchema__ = true;\n this.spec = void 0;\n this._resolve = (value, options = {}) => {\n let schema = this.builder(value, options);\n if (!isSchema(schema)) throw new TypeError('lazy() functions must return a valid schema');\n if (this.spec.optional) schema = schema.optional();\n return schema.resolve(options);\n };\n this.builder = builder;\n this.spec = {\n meta: undefined,\n optional: false\n };\n }\n clone(spec) {\n const next = new Lazy(this.builder);\n next.spec = Object.assign({}, this.spec, spec);\n return next;\n }\n optionality(optional) {\n const next = this.clone({\n optional\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n resolve(options) {\n return this._resolve(options.value, options);\n }\n cast(value, options) {\n return this._resolve(value, options).cast(value, options);\n }\n asNestedTest(config) {\n let {\n key,\n index,\n parent,\n options\n } = config;\n let value = parent[index != null ? index : key];\n return this._resolve(value, Object.assign({}, options, {\n value,\n parent\n })).asNestedTest(config);\n }\n validate(value, options) {\n return this._resolve(value, options).validate(value, options);\n }\n validateSync(value, options) {\n return this._resolve(value, options).validateSync(value, options);\n }\n validateAt(path, value, options) {\n return this._resolve(value, options).validateAt(path, value, options);\n }\n validateSyncAt(path, value, options) {\n return this._resolve(value, options).validateSyncAt(path, value, options);\n }\n isValid(value, options) {\n return this._resolve(value, options).isValid(value, options);\n }\n isValidSync(value, options) {\n return this._resolve(value, options).isValidSync(value, options);\n }\n describe(options) {\n return options ? this.resolve(options).describe(options) : {\n type: 'lazy',\n meta: this.spec.meta,\n label: undefined\n };\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n}\n\nfunction setLocale(custom) {\n Object.keys(custom).forEach(type => {\n // @ts-ignore\n Object.keys(custom[type]).forEach(method => {\n // @ts-ignore\n locale[type][method] = custom[type][method];\n });\n });\n}\n\nfunction addMethod(schemaType, name, fn) {\n if (!schemaType || !isSchema(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');\n if (typeof name !== 'string') throw new TypeError('A Method name must be provided');\n if (typeof fn !== 'function') throw new TypeError('Method function must be provided');\n schemaType.prototype[name] = fn;\n}\n\nexport { ArraySchema, BooleanSchema, DateSchema, MixedSchema, NumberSchema, ObjectSchema, Schema, StringSchema, TupleSchema, ValidationError, addMethod, create$2 as array, create$7 as bool, create$7 as boolean, create$4 as date, locale as defaultLocale, getIn, isSchema, create as lazy, create$8 as mixed, create$5 as number, create$3 as object, printValue, reach, create$9 as ref, setLocale, create$6 as string, create$1 as tuple };\n","import \"core-js\";\nimport config from \"./config\";\nimport { setup as apiSetup } from \"./api/API\";\nimport { setErrorSnackbar } from \"./store/layout/snackbar\";\nimport { setup as setupRouterHistory } from \"./store/routerHistory\";\nimport { EAT_UP_PAGES, type EatUpPage } from './types';\n\n// Components\nimport icons from \"@/assets/icons\";\nimport EatIcon from \"@/components/utils/EatIcon.vue\";\nimport EatIconBtn from \"@/components/utils/EatIconBtn.vue\";\nimport EatImage from \"@/components/EatImage.vue\";\nimport Loading from \"@/components/utils/Loading.vue\";\nimport EatView from \"@/layout/EatView.vue\";\nimport FormView from \"@/layout/FormView.vue\";\nimport EatCta from \"@/layout/partials/EatCta.vue\";\nimport EatCtaButton from \"@/layout/partials/EatCtaButton.vue\";\nimport SimpleFormView from \"@/layout/SimpleFormView.vue\";\nimport EatBtn from \"@/components/buttons/EatBtn.vue\";\nimport EatFloatBtn from \"@/components/buttons/EatFloatBtn.vue\";\nimport EatUl from \"@/components/utils/EatUl.vue\";\nimport EatLi from \"@/components/utils/EatLi.vue\";\nimport EatField from \"@/components/inputs/EatField.vue\";\nimport EatFieldMessage from \"@/components/inputs/EatFieldMessage.vue\";\nimport EatSelect from \"@/components/inputs/EatSelect.vue\";\nimport EatSelector from \"@/components/inputs/EatSelector.vue\";\nimport EatTextInput from \"@/components/inputs/EatTextInput.vue\";\nimport EatTextArea from \"@/components/inputs/EatTextArea.vue\";\nimport EatStepper from \"@/components/inputs/EatStepper.vue\";\nimport EatNumberInput from \"@/components/inputs/EatNumberInput.vue\";\nimport EatCheckbox from \"@/components/inputs/EatCheckbox.vue\";\nimport EatToggleButton from \"@/components/inputs/EatToggleButton.vue\";\nimport EatToggleIcon from \"@/components/inputs/EatToggleIcon.vue\";\nimport EatRecaptcha from \"@/components/inputs/EatRecaptcha.vue\";\nimport RoundedContainer from \"@/components/utils/RoundedContainer.vue\";\nimport AddressFormatted from \"@/components/utils/AddressFormatted.vue\";\n\nimport { scrollableDirectiveOptions } from \"./store/layout/scrollables\";\nimport {\n animatableDirectiveOptions,\n scrollTriggerDirectiveOptions\n} from \"./store/animations/animations\";\n\n// Vue\nimport { createApp, type Component } from 'vue';\nimport { createPinia } from 'pinia';\nimport { type Router, isNavigationFailure, NavigationFailureType } from 'vue-router';\n\n// GTag\nimport VueGtag from \"vue-gtag\";\n\n// Gsap\nimport { gsap } from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\nimport { MotionPathPlugin } from \"gsap/MotionPathPlugin\";\nimport { ScrollToPlugin } from \"gsap/ScrollToPlugin\";\n\n// Axios\nimport { type AxiosInstance } from \"axios\";\n\n// IWC\nimport 'ipratico-web-components/dist/style.css';\n\n// i18n\nimport { i18n } from \"./i18n\";\nimport { AuthPlugin, getOAuthBaseToken } from './plugins/auth';\nimport { VueRecaptchaPlugin } from 'vue-recaptcha/head';\n\n// Vee validate\nimport { setLocale } from 'yup';\nimport { configure } from 'vee-validate';\n\nconfigure({ \n validateOnInput: true,\n validateOnBlur: true,\n});\nsetLocale({\n mixed: {\n default: ({ label }) => ({ key: 'form.errors.invalid', params: { label } }),\n required: ({ label }) => ({ key: 'form.errors.required', params: { label } }),\n },\n string: {\n email: ({ label }) => ({ key: 'form.errors.string.email', params: { label } }),\n length: ({ length, label }) => ({ key: 'form.errors.string.length', params: { length, label } }),\n min: ({ min, label }) => ({ key: 'form.errors.string.min', params: { min, label } }),\n max: ({ max, label }) => ({ key: 'form.errors.string.max', params: { max, label } })\n },\n number: {\n min: ({ min, label }) => ({ key: 'form.errors.number.min', params: { min, label } }),\n max: ({ max, label }) => ({ key: 'form.errors.number.max', params: { max, label } }),\n },\n});\n\ngsap.registerPlugin(MotionPathPlugin);\ngsap.registerPlugin(ScrollTrigger);\ngsap.registerPlugin(ScrollToPlugin);\n\nif (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.register(\"/service-worker.js\");\n}\n\nlet apiAxios: AxiosInstance | null = null;\n\nexport default function createEatUp(\n component: Component,\n router: Router,\n page: EatUpPage\n) {\n\n // Per retrocompatibilità gestisco i QRCode che rimandano all'url /tavolo/#/paga?tavolo=table%3A2d698622-a895-4e6b-ac0a-794d056bc996\n if(location.href.match(/tavolo\\/#\\/paga/)) page = EAT_UP_PAGES.PAYMENT_FROM_TABLE;\n apiAxios = apiSetup(`${config.apiURL}/api/v1/${page}`);\n \n const app = createApp(component);\n\n // Componenti\n for (const [name, { component }] of Object.entries(icons.values)) {\n app.component(`icon-${name}`, component);\n }\n app.component(\"EatIcon\", EatIcon);\n app.component(\"EatIconBtn\", EatIconBtn);\n app.component(\"EatImage\", EatImage);\n app.component(\"Loading\", Loading);\n app.component(\"EatBtn\", EatBtn);\n app.component(\"EatView\", EatView);\n app.component(\"FormView\", FormView);\n app.component(\"EatCta\", EatCta);\n app.component(\"EatCtaButton\", EatCtaButton);\n app.component(\"SimpleFormView\", SimpleFormView);\n app.component(\"EatUl\", EatUl);\n app.component(\"EatLi\", EatLi);\n app.component(\"EatField\", EatField);\n app.component(\"EatFieldMessage\", EatFieldMessage);\n app.component(\"EatSelect\", EatSelect);\n app.component(\"EatSelector\", EatSelector);\n app.component(\"EatTextInput\", EatTextInput);\n app.component(\"EatTextArea\", EatTextArea);\n app.component(\"EatFloatBtn\", EatFloatBtn);\n app.component(\"EatStepper\", EatStepper);\n app.component(\"EatNumberInput\", EatNumberInput);\n app.component(\"EatCheckbox\", EatCheckbox);\n app.component(\"EatToggleIcon\", EatToggleIcon);\n app.component(\"EatToggleButton\", EatToggleButton);\n app.component(\"EatRecaptcha\", EatRecaptcha);\n app.component(\"RoundedContainer\", RoundedContainer);\n app.component(\"AddressFormatted\", AddressFormatted);\n\n app.directive(\"scrollable\", scrollableDirectiveOptions);\n app.directive(\"animatable\", animatableDirectiveOptions);\n app.directive(\"scroll-trigger\", scrollTriggerDirectiveOptions);\n\n app.config.errorHandler = (error, instance, info) => {\n setErrorSnackbar(error as Error);\n console.log(error);\n /* throw error; */\n }\n window.addEventListener(\"error\", event => {\n setErrorSnackbar(event.error as Error);\n throw event.error;\n });\n window.addEventListener(\"unhandledrejection\", event => {\n if (isNavigationFailure(event.reason, NavigationFailureType.aborted)) {\n console.log(event.reason);\n } else if (isNavigationFailure(event.reason, NavigationFailureType.cancelled)) {\n console.log(event.reason);\n } else if (isNavigationFailure(event.reason, NavigationFailureType.duplicated)) {\n console.log(event.reason);\n } else {\n throw event.reason;\n }\n });\n\n /* app.use(createPinia()); */\n\n setupRouterHistory(router);\n app.use(router);\n\n app.use(i18n);\n\n app.use(VueRecaptchaPlugin, {\n v2SiteKey: '6Lc_fKIUAAAAAF4bXjFfkT655LuVSyVlMzhGHYui',\n });\n\n app.use(AuthPlugin, {\n authOptions: {\n oauthURL: `${config.authURL}/oauth2/token`,\n baseToken: getOAuthBaseToken(),\n appAuthScope: page === EAT_UP_PAGES.MULTILOCATION ? \"app-user:company\" : \"app-user:app\"\n },\n pluginOptions: {\n router,\n axios: apiAxios\n }\n });\n\n // Setup vue-gtag to auto-track the router\n app.use(\n VueGtag,\n {\n bootstrap: false\n },\n router\n );\n \n app.mount('#app');\n\n}\n\nexport { apiAxios };","\n\n\n\n\n","\n\n\n\n\n","import { noop, makeDestructurable, camelize, toValue, isClient, isObject, tryOnScopeDispose, isIOS, tryOnMounted, computedWithControl, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, createSingletonPromise, useTimeoutFn, pausableWatch, toRef, createEventHook, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, toRefs, notNullish, useIntervalFn, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, tryOnBeforeUnmount, identity, isDef, isWorker } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, readonly, nextTick, reactive, markRaw, unref, getCurrentScope, isVue2, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n timeout = setTimeout(\n () => handler(ev),\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], clear, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = computedWithControl(\n () => null,\n () => getDeepActiveElement()\n );\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n if (getCurrentInstance()) {\n onMounted(() => {\n isMounted.value = true;\n });\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n const delta = timestamp - (previousFrameTimestamp || timestamp);\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n fn({ delta, timestamp });\n previousFrameTimestamp = timestamp;\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n !animate.value && update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n el && update();\n });\n watch(() => keyframes, (value) => {\n !animate.value && update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => {\n nextTick(() => update(true));\n });\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (commitStyles)\n animate.value.commitStyles();\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetify = {\n xs: 600,\n sm: 960,\n md: 1264,\n lg: 1904\n};\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 600,\n sm: 1024,\n md: 1440,\n lg: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[k]);\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => greaterOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n return Object.assign(shortcutMethods, {\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n greaterOrEqual,\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n smallerOrEqual(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && permissionRead.value !== \"denied\") {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && permissionWrite.value !== \"denied\")\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = ref([]);\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n return data;\n function write(v) {\n try {\n if (v == null) {\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n const oldValue = storage.getItem(key);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue: serialized,\n storageArea: storage\n }\n }));\n }\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n style.appendChild(document.createTextNode(styleString));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(toValue(prop), val);\n }\n );\n return variable;\n}\n\nfunction useCurrentElement() {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), containerRect.width - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), containerRect.height - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...toRefs(position),\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n let isDataTypeIncluded = true;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener(target, \"dragenter\", (event) => {\n var _a, _b;\n const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === \"file\" ? i.type : null).filter(notNullish);\n if (_options.dataTypes && event.dataTransfer) {\n const dataTypes = unref(_options.dataTypes);\n isDataTypeIncluded = typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n if (!isDataTypeIncluded)\n return;\n }\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragover\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragleave\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]);\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\", deep: true }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n useMutationObserver(target, update, {\n attributeFilter: [\"style\", \"class\"]\n });\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = Number.parseFloat(styles.width);\n height.value = Number.parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold: 0\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const {\n withCredentials = false\n } = options;\n const close = () => {\n if (eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n }\n };\n const es = new EventSource(url, { withCredentials });\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n eventSource,\n event,\n data,\n status,\n error,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries([...headers.entries()]);\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished,\n statusCode,\n response,\n error,\n data,\n isFetching,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input) {\n input.value = \"\";\n trigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...toValue(options), ..._options });\n fileHandle.value = handle;\n await updateFile();\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateFile();\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n ...gamepad,\n id: gamepad.id,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad) {\n const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n if (index > -1)\n gamepads.value[index] = stateFromGamepad(gamepad);\n }\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n if (_gamepads) {\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad)\n onGamepadConnected(gamepad);\n }\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = target.document ? target.document.documentElement : (_a = target.documentElement) != null ? _a : target;\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return shallowReactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page)) {\n syncRef(page, currentPage, {\n direction: isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (isRef(pageSize)) {\n syncRef(pageSize, currentPageSize, {\n direction: isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = -orientation.beta / 90;\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = orientation.gamma / 90;\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument, pointerLockOptions } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e, options2) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions);\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, initialOverflow);\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n var _a;\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n el.style.overflow = (_a = elInitialOverflow.get(el)) != null ? _a : \"\";\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...toValue(shareOptions),\n ...toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const textareaScrollHeight = ref(1);\n function triggerResize() {\n var _a, _b;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style.height = \"1px\";\n textareaScrollHeight.value = (_a = textarea.value) == null ? void 0 : _a.scrollHeight;\n if (options == null ? void 0 : options.styleTarget)\n toValue(options.styleTarget).style.height = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style.height = height;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const permissionGranted = ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n tryOnMounted(ensurePermissions);\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n wsRef.value = void 0;\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (isClient)\n useEventListener(\"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n if (!isClient && !isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps) {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n}\n\nfunction createWorkerBlobUrl(fn, deps) {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const internalX = ref(window.scrollX);\n const internalY = ref(window.scrollY);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","\n\n\n\n\n","\n\n\n\n\n","/**\n * vee-validate v4.12.4\n * (c) 2023 Abdelrahman Awad\n * @license MIT\n */\nfunction isCallable(fn) {\n return typeof fn === 'function';\n}\nfunction isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\n// Reference: https://github.com/lodash/lodash/blob/master/isPlainObject.js\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || getTag(value) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n let proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n}\nfunction merge(target, source) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) && isPlainObject(target[key])) {\n if (!target[key]) {\n target[key] = {};\n }\n merge(target[key], source[key]);\n return;\n }\n target[key] = source[key];\n });\n return target;\n}\n\n/**\n * Replaces placeholder values in a string with their actual values\n */\nfunction interpolate(template, values) {\n return template.replace(/(\\d:)?{([^}]+)}/g, function (_, param, placeholder) {\n if (!param || !values.params) {\n return placeholder in values\n ? values[placeholder]\n : values.params && placeholder in values.params\n ? values.params[placeholder]\n : `{${placeholder}}`;\n }\n // Handles extended object params format\n if (!Array.isArray(values.params)) {\n return placeholder in values.params ? values.params[placeholder] : `{${placeholder}}`;\n }\n // Extended Params exit in the format of `paramIndex:{paramName}` where the index is optional\n const paramIndex = Number(param.replace(':', ''));\n return paramIndex in values.params ? values.params[paramIndex] : `${param}{${placeholder}}`;\n });\n}\n\nclass Dictionary {\n constructor(locale, dictionary) {\n this.container = {};\n this.locale = locale;\n this.merge(dictionary);\n }\n resolve(ctx) {\n return this.format(this.locale, ctx);\n }\n getLocaleDefault(locale, field) {\n var _a, _b, _c, _d, _e;\n return ((_c = (_b = (_a = this.container[locale]) === null || _a === void 0 ? void 0 : _a.fields) === null || _b === void 0 ? void 0 : _b[field]) === null || _c === void 0 ? void 0 : _c._default) || ((_e = (_d = this.container[locale]) === null || _d === void 0 ? void 0 : _d.messages) === null || _e === void 0 ? void 0 : _e._default);\n }\n resolveLabel(locale, name, label) {\n var _a, _b, _c, _d;\n if (label) {\n return ((_b = (_a = this.container[locale]) === null || _a === void 0 ? void 0 : _a.names) === null || _b === void 0 ? void 0 : _b[label]) || label;\n }\n return ((_d = (_c = this.container[locale]) === null || _c === void 0 ? void 0 : _c.names) === null || _d === void 0 ? void 0 : _d[name]) || name;\n }\n format(locale, ctx) {\n var _a, _b, _c, _d, _e;\n let message;\n const { rule, form, label, name } = ctx;\n const fieldName = this.resolveLabel(locale, name, label);\n if (!rule) {\n message = this.getLocaleDefault(locale, name) || `${fieldName} is not valid`;\n return isCallable(message) ? message(ctx) : interpolate(message, Object.assign(Object.assign({}, form), { field: fieldName }));\n }\n // find if specific message for that field was specified.\n message = ((_c = (_b = (_a = this.container[locale]) === null || _a === void 0 ? void 0 : _a.fields) === null || _b === void 0 ? void 0 : _b[name]) === null || _c === void 0 ? void 0 : _c[rule.name]) || ((_e = (_d = this.container[locale]) === null || _d === void 0 ? void 0 : _d.messages) === null || _e === void 0 ? void 0 : _e[rule.name]);\n if (!message) {\n message = this.getLocaleDefault(locale, name) || `${fieldName} is not valid`;\n }\n return isCallable(message)\n ? message(ctx)\n : interpolate(message, Object.assign(Object.assign({}, form), { field: fieldName, params: rule.params }));\n }\n merge(dictionary) {\n merge(this.container, dictionary);\n }\n}\nconst DICTIONARY = new Dictionary('en', {});\nfunction localize(locale, dictionary) {\n const generateMessage = ctx => {\n return DICTIONARY.resolve(ctx);\n };\n if (typeof locale === 'string') {\n DICTIONARY.locale = locale;\n if (dictionary) {\n DICTIONARY.merge({ [locale]: dictionary });\n }\n return generateMessage;\n }\n DICTIONARY.merge(locale);\n return generateMessage;\n}\n/**\n * Sets the locale\n */\nfunction setLocale(locale) {\n DICTIONARY.locale = locale;\n}\n/**\n * Loads a locale file from URL and merges it with the current dictionary\n */\nasync function loadLocaleFromURL(url) {\n try {\n const locale = await fetch(url, {\n headers: {\n 'content-type': 'application/json',\n },\n }).then(res => res.json());\n if (!locale.code) {\n console.error('Could not identify locale, ensure the locale file contains `code` field');\n return;\n }\n localize({ [locale.code]: locale });\n }\n catch (err) {\n console.error(`Failed to load locale `);\n }\n}\n\nexport { loadLocaleFromURL, localize, setLocale };\n","import { setStaticSnackbar } from \"@/store/layout/snackbar\";\nimport { getEnabledLocale } from \"@/i18n\";\nimport { setLocale as setValidateLocale } from \"@vee-validate/i18n\";\nimport type { App } from \"@/models\";\nimport type { NullRef } from \".\";\nimport { LS, LSKeys } from \"./localStorage\";\nimport { apiAxios } from \"@/app\";\nimport type { Composer } from \"vue-i18n\";\nimport it from \"@/i18n/translations/it.json\";\nimport en from \"@/i18n/translations/en.json\";\nimport de from \"@/i18n/translations/de.json\";\nimport fr from \"@/i18n/translations/fr.json\";\nimport CalendarGenerator from \"./calendar\";\n\nasync function loadAppLocale(i18n: Composer, locale: string) {\n let messages = {};\n if(locale === 'it') messages = it;\n if(locale === 'en') messages = en;\n if(locale === 'de') messages = de;\n if(locale === 'fr') messages = fr;\n\n i18n.locale.value = locale;\n i18n.setLocaleMessage(locale, messages);\n}\n\nconst loadLocale = async (i18n: any, locale: string) => {\n await loadAppLocale(i18n, locale);\n};\n\nconst setLocale = (i18n: Composer, locale: string) => {\n i18n.locale.value = locale;\n document.querySelector(\"html\")?.setAttribute(\"lang\", locale);\n if (apiAxios) apiAxios.defaults.headers[\"Accept-Language\"] = locale;\n setValidateLocale(locale);\n};\n\nexport function saveLocaleToLocalStorage(locale: string) {\n LS.set(LSKeys.LOCALE, locale);\n}\n\nexport async function setNewLanguage(locale: string) {\n saveLocaleToLocalStorage(locale);\n location.reload();\n}\n\nexport async function chooseLocale(i18n: any, locale: string) {\n try {\n await loadLocale(i18n, locale);\n setLocale(i18n, locale);\n CalendarGenerator.setLocale(locale);\n } catch {\n try {\n // Fallback to English in case of errors\n locale = \"it\";\n await loadLocale(i18n, locale);\n setLocale(i18n, locale);\n } catch {\n setStaticSnackbar(i18n.t(\"app.snackbar.errorLoading\").toString());\n }\n }\n saveLocaleToLocalStorage(locale);\n}\n\nexport async function setAppLocale(i18n: Composer, app: NullRef) {\n // set locale for the app, depending on the available languages and browser\n if (app.value) {\n const locale = getEnabledLocale(i18n.locale.value, app.value.availableLanguages);\n await chooseLocale(i18n, locale);\n }\n}\n","import type { MaybeRef, NullRef } from \"@/utils\";\nimport { ref } from \"vue\";\n\nconst appTitle: NullRef = ref(null);\n\nexport function useAppTitle() {\n return appTitle;\n}\n\nexport function setAppTitle(newAppTitle: MaybeRef = null) {\n newAppTitle = ref(newAppTitle);\n appTitle.value = newAppTitle.value;\n}\n","import { ref } from \"vue\";\n\nconst appHeight = ref(0);\n\nexport function useAppHeight() {\n return appHeight;\n}\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + (content || \"\"));\n };\n return fileReader.readAsDataURL(data);\n};\nfunction toArray(data) {\n if (data instanceof Uint8Array) {\n return data;\n }\n else if (data instanceof ArrayBuffer) {\n return new Uint8Array(data);\n }\n else {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n }\n}\nlet TEXT_ENCODER;\nexport function encodePacketToBinary(packet, callback) {\n if (withNativeBlob && packet.data instanceof Blob) {\n return packet.data\n .arrayBuffer()\n .then(toArray)\n .then(callback);\n }\n else if (withNativeArrayBuffer &&\n (packet.data instanceof ArrayBuffer || isView(packet.data))) {\n return callback(toArray(packet.data));\n }\n encodePacket(packet, false, encoded => {\n if (!TEXT_ENCODER) {\n TEXT_ENCODER = new TextEncoder();\n }\n callback(TEXT_ENCODER.encode(encoded));\n });\n}\nexport { encodePacket };\n","// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nexport const decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n if (data instanceof Blob) {\n // from WebSocket + binaryType \"blob\"\n return data;\n }\n else {\n // from HTTP long-polling or WebTransport\n return new Blob([data]);\n }\n case \"arraybuffer\":\n default:\n if (data instanceof ArrayBuffer) {\n // from HTTP long-polling (base64) or WebSocket + binaryType \"arraybuffer\"\n return data;\n }\n else {\n // from WebTransport (Uint8Array)\n return data.buffer;\n }\n }\n};\n","import { encodePacket, encodePacketToBinary } from \"./encodePacket.js\";\nimport { decodePacket } from \"./decodePacket.js\";\nimport { ERROR_PACKET } from \"./commons.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport function createPacketEncoderStream() {\n return new TransformStream({\n transform(packet, controller) {\n encodePacketToBinary(packet, encodedPacket => {\n const payloadLength = encodedPacket.length;\n let header;\n // inspired by the WebSocket format: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#decoding_payload_length\n if (payloadLength < 126) {\n header = new Uint8Array(1);\n new DataView(header.buffer).setUint8(0, payloadLength);\n }\n else if (payloadLength < 65536) {\n header = new Uint8Array(3);\n const view = new DataView(header.buffer);\n view.setUint8(0, 126);\n view.setUint16(1, payloadLength);\n }\n else {\n header = new Uint8Array(9);\n const view = new DataView(header.buffer);\n view.setUint8(0, 127);\n view.setBigUint64(1, BigInt(payloadLength));\n }\n // first bit indicates whether the payload is plain text (0) or binary (1)\n if (packet.data && typeof packet.data !== \"string\") {\n header[0] |= 0x80;\n }\n controller.enqueue(header);\n controller.enqueue(encodedPacket);\n });\n }\n });\n}\nlet TEXT_DECODER;\nfunction totalLength(chunks) {\n return chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n}\nfunction concatChunks(chunks, size) {\n if (chunks[0].length === size) {\n return chunks.shift();\n }\n const buffer = new Uint8Array(size);\n let j = 0;\n for (let i = 0; i < size; i++) {\n buffer[i] = chunks[0][j++];\n if (j === chunks[0].length) {\n chunks.shift();\n j = 0;\n }\n }\n if (chunks.length && j < chunks[0].length) {\n chunks[0] = chunks[0].slice(j);\n }\n return buffer;\n}\nexport function createPacketDecoderStream(maxPayload, binaryType) {\n if (!TEXT_DECODER) {\n TEXT_DECODER = new TextDecoder();\n }\n const chunks = [];\n let state = 0 /* READ_HEADER */;\n let expectedLength = -1;\n let isBinary = false;\n return new TransformStream({\n transform(chunk, controller) {\n chunks.push(chunk);\n while (true) {\n if (state === 0 /* READ_HEADER */) {\n if (totalLength(chunks) < 1) {\n break;\n }\n const header = concatChunks(chunks, 1);\n isBinary = (header[0] & 0x80) === 0x80;\n expectedLength = header[0] & 0x7f;\n if (expectedLength < 126) {\n state = 3 /* READ_PAYLOAD */;\n }\n else if (expectedLength === 126) {\n state = 1 /* READ_EXTENDED_LENGTH_16 */;\n }\n else {\n state = 2 /* READ_EXTENDED_LENGTH_64 */;\n }\n }\n else if (state === 1 /* READ_EXTENDED_LENGTH_16 */) {\n if (totalLength(chunks) < 2) {\n break;\n }\n const headerArray = concatChunks(chunks, 2);\n expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);\n state = 3 /* READ_PAYLOAD */;\n }\n else if (state === 2 /* READ_EXTENDED_LENGTH_64 */) {\n if (totalLength(chunks) < 8) {\n break;\n }\n const headerArray = concatChunks(chunks, 8);\n const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);\n const n = view.getUint32(0);\n if (n > Math.pow(2, 53 - 32) - 1) {\n // the maximum safe integer in JavaScript is 2^53 - 1\n controller.enqueue(ERROR_PACKET);\n break;\n }\n expectedLength = n * Math.pow(2, 32) + view.getUint32(4);\n state = 3 /* READ_PAYLOAD */;\n }\n else {\n if (totalLength(chunks) < expectedLength) {\n break;\n }\n const data = concatChunks(chunks, expectedLength);\n controller.enqueue(decodePacket(isBinary ? data : TEXT_DECODER.decode(data), binaryType));\n state = 0 /* READ_HEADER */;\n }\n if (expectedLength === 0 || expectedLength > maxPayload) {\n controller.enqueue(ERROR_PACKET);\n break;\n }\n }\n }\n });\n}\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nimport { encode } from \"./contrib/parseqs.js\";\nexport class TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n */\n open() {\n this.readyState = \"opening\";\n this.doOpen();\n return this;\n }\n /**\n * Closes the transport.\n */\n close() {\n if (this.readyState === \"opening\" || this.readyState === \"open\") {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(packets) {\n if (this.readyState === \"open\") {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(onPause) { }\n createUri(schema, query = {}) {\n return (schema +\n \"://\" +\n this._hostname() +\n this._port() +\n this.opts.path +\n this._query(query));\n }\n _hostname() {\n const hostname = this.opts.hostname;\n return hostname.indexOf(\":\") === -1 ? hostname : \"[\" + hostname + \"]\";\n }\n _port() {\n if (this.opts.port &&\n ((this.opts.secure && Number(this.opts.port !== 443)) ||\n (!this.opts.secure && Number(this.opts.port) !== 80))) {\n return \":\" + this.opts.port;\n }\n else {\n return \"\";\n }\n }\n _query(query) {\n const encodedQuery = encode(query);\n return encodedQuery.length ? \"?\" + encodedQuery : \"\";\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\nexport function createCookieJar() { }\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { createCookieJar, XHR as XMLHttpRequest, } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false,\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n if (this.opts.withCredentials) {\n this.cookieJar = createCookieJar();\n }\n }\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @protected\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n * @package\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(data) {\n const callback = (packet) => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, (data) => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"https\" : \"http\";\n const query = this.query || {};\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, cookieJar: this.cookieJar }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data,\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n create() {\n var _a;\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, true);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n var _a;\n if (xhr.readyState === 3) {\n (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.parseCookies(xhr);\n }\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return (cb) => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { nextTick, usingBrowserWebSocket, WebSocket, } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @param {Object} opts - connection options\n * @protected\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n get name() {\n return \"websocket\";\n }\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = (closeEvent) => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent,\n });\n this.ws.onmessage = (ev) => this.onData(ev.data);\n this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, (data) => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n const query = this.query || {};\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @private\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"./websocket-constructor.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\nexport class WT extends Transport {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n // @ts-ignore\n if (typeof WebTransport !== \"function\") {\n return;\n }\n // @ts-ignore\n this.transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n this.transport.closed\n .then(() => {\n this.onClose();\n })\n .catch((err) => {\n this.onError(\"webtransport error\", err);\n });\n // note: we could have used async/await, but that would require some additional polyfills\n this.transport.ready.then(() => {\n this.transport.createBidirectionalStream().then((stream) => {\n const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType);\n const reader = stream.readable.pipeThrough(decoderStream).getReader();\n const encoderStream = createPacketEncoderStream();\n encoderStream.readable.pipeTo(stream.writable);\n this.writer = encoderStream.writable.getWriter();\n const read = () => {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n return;\n }\n this.onPacket(value);\n read();\n })\n .catch((err) => {\n });\n };\n read();\n const packet = { type: \"open\" };\n if (this.query.sid) {\n packet.data = `{\"sid\":\"${this.query.sid}\"}`;\n }\n this.writer.write(packet).then(() => this.onOpen());\n });\n });\n }\n write(packets) {\n this.writable = false;\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n this.writer.write(packet).then(() => {\n if (lastPacket) {\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n var _a;\n (_a = this.transport) === null || _a === void 0 ? void 0 : _a.close();\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n websocket: WS,\n webtransport: WT,\n polling: Polling,\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n if (str.length > 2000) {\n throw \"URI too long\";\n }\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nimport { defaultBinaryType } from \"./transports/websocket-constructor.js\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(uri, opts = {}) {\n super();\n this.binaryType = defaultBinaryType;\n this.writeBuffer = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\n \"polling\",\n \"websocket\",\n \"webtransport\",\n ];\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n addTrailingSlash: true,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024,\n },\n transportOptions: {},\n closeOnBeforeunload: false,\n }, opts);\n this.opts.path =\n this.opts.path.replace(/\\/$/, \"\") +\n (this.opts.addTrailingSlash ? \"/\" : \"\");\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\",\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port,\n }, this.opts.transportOptions[name]);\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", (reason) => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", (msg) => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = (err) => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n if (this.upgrades.indexOf(\"webtransport\") !== -1 &&\n name !== \"webtransport\") {\n // favor WebTransport\n this.setTimeoutFn(() => {\n if (!failed) {\n transport.open();\n }\n }, 200);\n }\n else {\n transport.open();\n }\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState && this.opts.upgrade) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n this.resetPingTimeout();\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} callback function.\n * @return {Socket} for chaining.\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} type: packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options,\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * These strings must not be used as event names, as they have a special meaning.\n */\nconst RESERVED_EVENTS = [\n \"connect\",\n \"connect_error\",\n \"disconnect\",\n \"disconnecting\",\n \"newListener\",\n \"removeListener\", // used by the Node.js EventEmitter\n];\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id,\n });\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript\nfunction isObject(value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return isObject(payload);\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || isObject(payload);\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return (Array.isArray(payload) &&\n (typeof payload[0] === \"number\" ||\n (typeof payload[0] === \"string\" &&\n RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n * be transmitted by the server.\n */\n this.recovered = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n /**\n * The queue of packets to be sent with retry in case of failure.\n *\n * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n * @private\n */\n this._queue = [];\n /**\n * A sequence to generate the ID of the {@link QueuedPacket}.\n * @private\n */\n this._queueSeq = 0;\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n this._opts = Object.assign({}, opts);\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n this._addToQueue(args);\n return this;\n }\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n var _a;\n const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Emits an event and waits for an acknowledgement\n *\n * @example\n * // without timeout\n * const response = await socket.emitWithAck(\"hello\", \"world\");\n *\n * // with a specific timeout\n * try {\n * const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n * } catch (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n *\n * @return a Promise that will be fulfilled when the server acknowledges the event\n */\n emitWithAck(ev, ...args) {\n // the timeout flag is optional\n const withErr = this.flags.timeout !== undefined || this._opts.ackTimeout !== undefined;\n return new Promise((resolve, reject) => {\n args.push((arg1, arg2) => {\n if (withErr) {\n return arg1 ? reject(arg1) : resolve(arg2);\n }\n else {\n return resolve(arg1);\n }\n });\n this.emit(ev, ...args);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(args) {\n let ack;\n if (typeof args[args.length - 1] === \"function\") {\n ack = args.pop();\n }\n const packet = {\n id: this._queueSeq++,\n tryCount: 0,\n pending: false,\n args,\n flags: Object.assign({ fromQueue: true }, this.flags),\n };\n args.push((err, ...responseArgs) => {\n if (packet !== this._queue[0]) {\n // the packet has already been acknowledged\n return;\n }\n const hasError = err !== null;\n if (hasError) {\n if (packet.tryCount > this._opts.retries) {\n this._queue.shift();\n if (ack) {\n ack(err);\n }\n }\n }\n else {\n this._queue.shift();\n if (ack) {\n ack(null, ...responseArgs);\n }\n }\n packet.pending = false;\n return this._drainQueue();\n });\n this._queue.push(packet);\n this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @param force - whether to resend a packet that has not been acknowledged yet\n *\n * @private\n */\n _drainQueue(force = false) {\n if (!this.connected || this._queue.length === 0) {\n return;\n }\n const packet = this._queue[0];\n if (packet.pending && !force) {\n return;\n }\n packet.pending = true;\n packet.tryCount++;\n this.flags = packet.flags;\n this.emit.apply(this, packet.args);\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this._sendConnectPacket(data);\n });\n }\n else {\n this._sendConnectPacket(this.auth);\n }\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(data) {\n this.packet({\n type: PacketType.CONNECT,\n data: this._pid\n ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n : data,\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n this.onconnect(packet.data.sid, packet.data.pid);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n this._lastOffset = args[args.length - 1];\n }\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id, pid) {\n this.id = id;\n this.recovered = pid && this._pid === pid;\n this._pid = pid; // defined only if connection state recovery is enabled\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n this._drainQueue(true);\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n const onError = (err) => {\n this.cleanup();\n this._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n this.maybeReconnectOnOpen();\n }\n };\n // emit `error`\n const errorSub = on(socket, \"error\", onError);\n if (false !== this._timeout) {\n const timeout = this._timeout;\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n onError(new Error(\"timeout\"));\n socket.close();\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n else if (this._autoConnect && !socket.active) {\n socket.connect();\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import type { PaidItem } from \"@/store/table\";\nimport { PaymentMethod, Saletype } from \"@/models/App\";\nimport type { Order } from \"@/models/Order\";\nimport type { ArticleAttributeValue } from \"@/models/Product\";\nimport { get as apiGet, post as apiPost } from \"./API\";\n\nexport async function callWaiter(tableId: string) {\n return apiPost(`tables/${tableId}/call-waiter`, null);\n}\n\nexport enum TableStatus {\n AVAILABLE = \"AVAILABLE\",\n TAKEN = \"TAKEN\",\n PAYING = \"PAYING\"\n}\n\nexport interface TableData {\n orderId: string;\n currentSittings: number;\n maxSittings: number;\n name: string;\n status: TableStatus;\n priceLists: Array<{\n id: string;\n name: string;\n }>;\n}\nexport async function check(tableID: string): Promise {\n return apiGet(`tables/${tableID}/check`);\n}\n\ninterface CloseData {\n paymentMethod: PaymentMethod;\n paidAmount?: number | undefined;\n dutchDivider?: number | undefined;\n dutchPaying?: number | undefined;\n payingItems?: PaidItem[] | undefined;\n isDeposit: boolean;\n isSplit: boolean;\n isDutch: boolean;\n}\nexport interface CloseResponse {\n paymentGateway?: PaymentMethod;\n id: string;\n qrCode: string;\n paymentUrl?: string;\n paymentBody?: Record;\n sdkApiUrl?: string;\n easyApiKey?: string;\n paymentId?: string;\n}\nexport async function close(tableID: string, data: CloseData): Promise {\n return apiPost(`tables/${tableID}/close`, data, { requiresAuth: true });\n}\n\nexport async function closeUnauthenticated(tableID: string, data: CloseData): Promise {\n return apiPost(`tables/${tableID}/close/unauthenticated`, data);\n}\n\nexport async function getOrderInfo(tableID: string): Promise {\n return apiGet(`tables/${tableID}/order`);\n}\n\ninterface OpenData {\n currentSittings: number;\n}\nexport async function open(tableID: string, data: OpenData): Promise {\n return apiPost(`tables/${tableID}/open`, data);\n}\n\ninterface CreateTableOrderData {\n saleType: Saletype;\n note: string | null;\n priceListId: string;\n orderItems: Array<{\n productId: string;\n quantity: number;\n removedComponents: string[];\n addedComponents: string[];\n modules: Array<{\n name: string;\n choosenProducts: string[];\n upsellingProducts: string[];\n }>;\n articleAttributes: Array<{\n attributeTypeId: string;\n attributeValue: ArticleAttributeValue;\n }>;\n }>;\n}\nexport async function order(tableID: string, data: CreateTableOrderData): Promise {\n return apiPost(`tables/${tableID}/order`, data);\n}\n","import type { PaymentFlow } from \"@/models/App\";\nimport { computed } from \"vue\";\nimport { type PaidItem, useGlobalState } from \"..\";\n\nexport const usePaymentGetters = () => {\n const paymentFlow = computed(() => {\n const { payment } = useGlobalState();\n return payment.value.flow;\n });\n const payingAmount = computed(() => {\n const { payment } = useGlobalState();\n return payment.value.payingAmount;\n });\n const dutch = computed(() => {\n const { payment } = useGlobalState();\n return payment.value.dutch;\n });\n const split = computed(() => {\n const { payment } = useGlobalState();\n return payment.value.split;\n });\n\n return {\n paymentFlow,\n payingAmount,\n dutch,\n split\n };\n};\n\nconst usePaymentMutations = () => {\n const SET_PAYMENT_FLOW = (newPaymentFlow: PaymentFlow | null) => {\n const { payment } = useGlobalState();\n payment.value.flow = newPaymentFlow;\n };\n\n const UPDATE_DUTCH = (dutchDivider: number, dutchPaying: number) => {\n const { payment } = useGlobalState();\n payment.value.dutch = {\n dutchDivider: dutchDivider,\n dutchPaying: dutchPaying\n };\n };\n\n const UPDATE_SPLIT = (payingItems: PaidItem[]) => {\n const { payment } = useGlobalState();\n payment.value.split = { payingItems };\n };\n\n const CLEAR_PAYMENT = () => {\n const { payment } = useGlobalState();\n payment.value.payingAmount = 0;\n payment.value.flow = null;\n payment.value.dutch = null;\n payment.value.errors = null;\n };\n\n const UPDATE_PAYING_AMOUNT = (amount: number) => {\n const { payment } = useGlobalState();\n if (amount > 0) payment.value.payingAmount = amount;\n };\n\n return {\n SET_PAYMENT_FLOW,\n UPDATE_DUTCH,\n UPDATE_SPLIT,\n UPDATE_PAYING_AMOUNT,\n CLEAR_PAYMENT\n };\n};\n\nexport const usePaymentActions = () => {\n const setPaymentFlow = (paymentFlow: PaymentFlow | null) => {\n const { SET_PAYMENT_FLOW } = usePaymentMutations();\n SET_PAYMENT_FLOW(paymentFlow);\n };\n\n const clearPayment = () => {\n const { CLEAR_PAYMENT } = usePaymentMutations();\n CLEAR_PAYMENT();\n };\n\n const updatePayingAmount = (amount: number) => {\n const { UPDATE_PAYING_AMOUNT } = usePaymentMutations();\n UPDATE_PAYING_AMOUNT(amount);\n };\n\n const updateDutchPayment = (dutchDivider: number, dutchPaying: number, amount: number) => {\n const { UPDATE_DUTCH, UPDATE_PAYING_AMOUNT } = usePaymentMutations();\n UPDATE_DUTCH(dutchDivider, dutchPaying);\n UPDATE_PAYING_AMOUNT(amount);\n };\n\n const updateSplitPayment = (itemsPaying: PaidItem[], payingAmount: number) => {\n const { UPDATE_SPLIT, UPDATE_PAYING_AMOUNT } = usePaymentMutations();\n UPDATE_SPLIT(itemsPaying);\n UPDATE_PAYING_AMOUNT(payingAmount);\n };\n\n return {\n setPaymentFlow,\n clearPayment,\n updatePayingAmount,\n updateDutchPayment,\n updateSplitPayment\n };\n};\n","import { open as openTable, check as checkTable } from \"@/api/Table\";\nimport { type TableData, TableStatus } from \"@/api/Table\";\nimport { Saletype } from \"@/models/App\";\nimport { CartPrefix } from \"@/models/Cart\";\nimport type { Auth } from \"@/plugins/auth\";\nimport { useCart } from \"@/store/cart\";\nimport { LS, LSKeys } from \"@/utils/localStorage\";\nimport { getQueryParam } from \"@/utils/queryParams\";\nimport { computed } from \"vue\";\nimport type { Router } from \"vue-router\";\nimport { useGlobalState } from \"..\";\nimport { useSyncActions } from \"./sync\";\n\nexport const useTableGetters = () => {\n const id = computed(() => {\n const { table } = useGlobalState();\n return table.value.id;\n });\n const name = computed(() => {\n const { table } = useGlobalState();\n return table.value.data?.name;\n });\n const maxSittings = computed(() => {\n const { table } = useGlobalState();\n return table.value.data?.maxSittings;\n });\n const currentSittings = computed(() => {\n const { table } = useGlobalState();\n return table.value.data?.currentSittings;\n });\n const priceList = computed(() => {\n const { table } = useGlobalState();\n return table.value.data?.priceLists.length ? table.value.data?.priceLists[0].id : null;\n });\n const status = computed(() => {\n const { table } = useGlobalState();\n return table.value.data?.status || null;\n });\n\n return {\n id,\n status,\n name,\n maxSittings,\n currentSittings,\n priceList\n };\n};\n\nconst useTableMutations = () => {\n const SET_TABLE_ID = (id: string) => {\n const { table } = useGlobalState();\n table.value.id = id;\n };\n const CLEAR_TABLE = () => {\n const { table } = useGlobalState();\n table.value.id = null;\n table.value.data = null;\n };\n const SET_TABLE_DATA = (data: TableData) => {\n if (!data) return CLEAR_TABLE();\n const { table } = useGlobalState();\n table.value.data = data;\n };\n\n return {\n SET_TABLE_ID,\n CLEAR_TABLE,\n SET_TABLE_DATA\n };\n};\n\nexport const useTableActions = () => {\n const getLSTable = () => {\n return LS.get(LSKeys.TABLE) as { id: string } | null;\n };\n\n const clearTable = () => {\n const { CLEAR_TABLE } = useTableMutations();\n LS.remove(LSKeys.TABLE);\n CLEAR_TABLE();\n };\n\n const setTableId = () => {\n const LSTable = getLSTable();\n const id = getQueryParam(\"tavolo\") || LSTable?.id || null;\n const { SET_TABLE_ID } = useTableMutations();\n if (id) {\n LS.set(LSKeys.TABLE, { id });\n SET_TABLE_ID(id);\n } else {\n clearTable();\n }\n };\n\n const joinTable = async (data: { currentSittings: number }) => {\n const { table } = useGlobalState();\n if (!table.value.id) return;\n await openTable(table.value.id, data);\n };\n\n const isTableClosed = (tableData: TableData | null, router: Router) => {\n return (\n tableData?.status === TableStatus.AVAILABLE && !/(start)/.test(router.currentRoute.value.name as string || \"\")\n );\n };\n\n const mustNewOrdersBeAvoided = (tableData: TableData | null, router: Router) => {\n return (\n tableData?.status === TableStatus.PAYING &&\n !/(checkout|payment)/.test(router.currentRoute.value.name as string || \"\")\n );\n };\n\n const handleTableChanges = (router: Router, auth: Auth) => {\n const { startAutoAPISync, stopAutoAPISync } = useSyncActions();\n stopAutoAPISync();\n startAutoAPISync(router, auth);\n const { table } = useGlobalState();\n const { cart, clearCart, initCart } = useCart();\n if (!cart.value) throw new Error(\"This should never happen\");\n const priceList = table.value.data?.priceLists[0].id || \"\";\n cart.value.priceList = priceList;\n\n if (isTableClosed(table.value.data, router)) {\n clearCart();\n initCart({ prefix: CartPrefix.TABLE, saletype: Saletype.ORDER_FROM_TABLE, priceList });\n return router.push({ name: \"tableClosed\" });\n }\n if (mustNewOrdersBeAvoided(table.value.data, router)) {\n clearCart();\n initCart({ prefix: CartPrefix.TABLE, saletype: Saletype.ORDER_FROM_TABLE, priceList });\n return router.push({ name: \"checkout\" });\n }\n };\n\n const updateTableData = (tableData: TableData, router: Router, auth: Auth) => {\n const { SET_TABLE_DATA } = useTableMutations();\n SET_TABLE_DATA(tableData);\n handleTableChanges(router, auth);\n };\n\n const setTableData = async (router: Router, auth: Auth) => {\n const { table } = useGlobalState();\n if (!table.value.id) {\n if (!/(noTable)/.test(router.currentRoute.value.name as string || \"\")) router.push({ name: \"noTable\" });\n return;\n }\n const tableData = await checkTable(table.value.id);\n updateTableData(tableData, router, auth);\n };\n\n return {\n setTableId,\n clearTable,\n joinTable,\n updateTableData,\n setTableData\n };\n};\n","import { getOrderInfo, type TableData, TableStatus } from \"@/api/Table\";\nimport { PaymentFlow, PaymentMethod, Saletype } from \"@/models/App\";\nimport { CartPrefix } from \"@/models/Cart\";\nimport type { Order } from \"@/models/Order\";\nimport type { Auth } from \"@/plugins/auth\";\nimport { useCart } from \"@/store/cart\";\nimport { computed } from \"vue\";\nimport type { Router } from \"vue-router\";\nimport { useGlobalState } from \"..\";\nimport { usePaymentGetters } from \"./payment\";\nimport { useSyncActions } from \"./sync\";\nimport { useTableGetters } from \"./table\";\n\nexport const useOrderGetters = () => {\n const order = computed(() => {\n const { order } = useGlobalState();\n return order.value;\n });\n const items = computed(() => {\n const { order } = useGlobalState();\n return order.value?.orderItems || [];\n });\n const payments = computed(() => {\n const { order } = useGlobalState();\n return order.value?.payments || [];\n });\n const leftToPayAmount = computed(() => {\n const { order } = useGlobalState();\n return order.value?.leftToPayAmount || 0;\n });\n const finalPrice = computed(() => {\n const { order } = useGlobalState();\n return order.value?.finalPrice || 0;\n });\n const serviceChargeItem = computed(() => {\n const { order } = useGlobalState();\n return order.value?.serviceChargeItem || null;\n });\n const subtotalItem = computed(() => {\n const { order } = useGlobalState();\n return order.value?.subtotalItem || null;\n });\n const status = computed(() => {\n const { order } = useGlobalState();\n return order.value?.status || null;\n });\n const saletype = computed(() => {\n const { order } = useGlobalState();\n return order.value?.saleType || null;\n });\n const paymentFlow = computed(() => {\n const { order } = useGlobalState();\n let orderPaymentFlow = null;\n if (order.value?.isDeposit) orderPaymentFlow = PaymentFlow.DEPOSIT;\n if (order.value?.isDutch) orderPaymentFlow = PaymentFlow.DUTCH;\n if (order.value?.isSplit) orderPaymentFlow = PaymentFlow.SPLIT;\n return orderPaymentFlow;\n });\n const dutchDivider = computed(() => {\n const { order } = useGlobalState();\n return order.value?.dutchDivider || null;\n });\n const dutchPaid = computed(() => {\n const { order } = useGlobalState();\n return order.value?.dutchPaying || null;\n });\n\n return {\n order,\n saletype,\n items,\n status,\n serviceChargeItem,\n subtotalItem,\n payments,\n leftToPayAmount,\n finalPrice,\n paymentFlow,\n dutchDivider,\n dutchPaid\n };\n};\n\nconst useOrderMutations = () => {\n const UPDATE_TABLE_ORDER = (newOrder: Order) => {\n const { order } = useGlobalState();\n order.value = newOrder;\n };\n\n return {\n UPDATE_TABLE_ORDER\n };\n};\n\nexport const useOrderActions = () => {\n const mustNewOrdersBeAvoided = (order: Order, router: Router) => {\n return order.payments?.length && !/(checkout|payment)/.test(router.currentRoute.value.name as string || \"\");\n };\n\n const mustFurtherPaymentsBeAvoided = (order: Order, router: Router) => {\n const { payments, orderItems, leftToPayAmount } = order;\n const isOrderPaid = orderItems.length && payments.length && leftToPayAmount === 0;\n const isPaymentsCompletionDipendentRoute = !/(payment|checkout(?!\\.))/.test(\n router.currentRoute.value.name as string || \"\"\n );\n return isOrderPaid && isPaymentsCompletionDipendentRoute;\n };\n\n const mustCurrentPaymentFlowBeDiscarded = (router: Router) => {\n const { paymentFlow: orderPaymentFlow } = useOrderGetters();\n const { paymentFlow } = usePaymentGetters();\n if (!(orderPaymentFlow.value && paymentFlow.value)) return false;\n const paymentFlowMismatch = orderPaymentFlow.value !== paymentFlow.value;\n const isPaymentFlowDipendentRoute = /(splitPayment|dutchPayment|personalizedAmount|paymentMethod)/.test(\n router.currentRoute.value.name as string || \"\"\n );\n return paymentFlowMismatch && isPaymentFlowDipendentRoute;\n };\n\n const isTableClosed = (order: Order, tableData: TableData | null) => {\n return (\n tableData?.status === TableStatus.PAYING &&\n order.paymentMethod === PaymentMethod.CASH_ON_DELIVERY\n );\n };\n\n const handleOrderChanges = (router: Router, auth: Auth) => {\n const { startAutoAPISync, stopAutoAPISync } = useSyncActions();\n const { table, order } = useGlobalState();\n const { cart, clearCart, initCart } = useCart();\n if (!cart.value) throw new Error(\"This should never happen\");\n if (!order.value || !Object.keys(order.value).length) return;\n\n stopAutoAPISync();\n if (isTableClosed(order.value, table.value.data)) return router.push({ name: \"tableClosed\" });\n startAutoAPISync(router, auth);\n\n if (mustNewOrdersBeAvoided(order.value, router)) {\n clearCart();\n const priceList = table.value.data?.priceLists[0].id || \"\";\n initCart({ prefix: CartPrefix.TABLE, saletype: Saletype.ORDER_FROM_TABLE, priceList });\n return router.push({ name: \"checkout\" });\n } else if (mustFurtherPaymentsBeAvoided(order.value, router)) {\n return router.push({ name: \"checkout\" });\n } else if (mustCurrentPaymentFlowBeDiscarded(router)) {\n setTimeout(() => {\n throw new Error(\n \"Un utente al tavolo o in cassa ha iniziato un'altra tipologia di pagamento\"\n );\n }, 500);\n return router.push({ name: \"checkout\" });\n }\n };\n\n const updateOrder = (order: Order, router: Router, auth: Auth) => {\n const { UPDATE_TABLE_ORDER } = useOrderMutations();\n UPDATE_TABLE_ORDER(order);\n handleOrderChanges(router, auth);\n };\n\n const setTableOrder = async (router: Router, auth: Auth) => {\n const { id } = useTableGetters();\n if (!id.value) return;\n const order = await getOrderInfo(id.value);\n updateOrder(order, router, auth);\n };\n\n return {\n setTableOrder,\n updateOrder\n };\n};\n","import config from \"@/config\";\nimport { io } from \"socket.io-client\";\nimport type { Router } from \"vue-router\";\nimport type { Auth } from \"@/plugins/auth\";\nimport type { APIError } from \"@/api/API\";\nimport type { Order } from \"@/models/Order\";\nimport { type TableData, TableStatus } from \"@/api/Table\";\nimport { useGlobalState } from \"..\";\nimport { useOrderActions } from \"./order\";\nimport { useTableActions } from \"./table\";\n\nexport const useSyncActions = () => {\n const stopAutoAPISync = () => {\n const {\n sync: { interval }\n } = useGlobalState();\n if (interval.value) {\n clearInterval(interval.value);\n }\n interval.value = null;\n };\n\n const stopSocketSync = () => {\n const {\n sync: { socket }\n } = useGlobalState();\n socket.value?.disconnect();\n };\n\n const stopSync = () => {\n stopAutoAPISync();\n stopSocketSync();\n };\n\n const syncData = async (router: Router, auth: Auth) => {\n const { table } = useGlobalState();\n const { setTableData } = useTableActions();\n const { setTableOrder } = useOrderActions();\n\n try {\n await setTableData(router, auth);\n if (table.value.data?.status !== TableStatus.AVAILABLE) {\n await setTableOrder(router, auth);\n }\n } catch (e) {\n const error = e as APIError;\n if (error?.response?.status == 403) {\n stopSync();\n router.push({ name: \"serviceUnavailable\" });\n } else {\n throw error;\n }\n }\n };\n\n const startAutoAPISync = async (router: Router, auth: Auth) => {\n const {\n sync: { interval, initialized }\n } = useGlobalState();\n interval.value = setInterval(async () => {\n await syncData(router, auth);\n }, 30000) as unknown as number;\n if (!initialized.value) {\n initialized.value = true;\n await syncData(router, auth);\n }\n };\n\n const startSocketSync = (router: Router, auth: Auth) => {\n const {\n table,\n sync: { socket }\n } = useGlobalState();\n const { updateTableData } = useTableActions();\n const { updateOrder } = useOrderActions();\n\n if (!table.value.id) return;\n socket.value = io(config.apiURL, {\n transports: [\"websocket\"],\n upgrade: false,\n query: {\n tableId: table.value.id\n },\n auth: {\n token: `Bearer ${auth.clientToken}`\n },\n autoConnect: false\n });\n\n socket.value.on(\"connect_error\", err => console.log(`connect_error due to ${err.message}`));\n /* socket.value.on(\"connect\", () => { console.log(\"is connected: \" + socket.value?.connected); }); */\n\n socket.value.connect();\n\n socket.value.on(\"table-updated\", (tableData: TableData) =>\n updateTableData(tableData, router, auth)\n );\n socket.value.on(\"order-updated\", (order: Order) => {\n updateOrder(order, router, auth);\n });\n\n socket.value.on(\"disconnect\", () => {\n socket.value?.removeAllListeners();\n });\n };\n\n const startSync = async (router: Router, auth: Auth) => {\n await startAutoAPISync(router, auth);\n startSocketSync(router, auth);\n };\n\n return {\n startAutoAPISync,\n stopAutoAPISync,\n startSocketSync,\n stopSocketSync,\n startSync,\n stopSync\n };\n};\n","import type { Socket } from \"socket.io-client\";\nimport type { TableData } from \"@/api/Table\";\nimport type { Order } from \"@/models/Order\";\nimport type { Auth } from \"@/plugins/auth\";\nimport { ref, type Ref } from \"vue\";\nimport type { Router } from \"vue-router\";\nimport { useSyncActions } from \"./modules/sync\";\nimport { useTableActions } from \"./modules/table\";\nimport type { PaymentFlow } from \"@/models/App\";\ninterface Table {\n id: string | null;\n data: TableData | null;\n}\n\ninterface ServerToClientEvents {\n \"table-updated\": (response: TableData) => void;\n \"order-updated\": (order: Order) => void;\n}\n\ninterface ClientToServerEvents {\n hi: () => void;\n}\n\nexport interface CartState {\n note: string;\n isSendingOrder: boolean;\n}\n\nexport enum PaymentErrors {\n REMAINING_CENTS_TO_PAY = \"remainingCentsToPay\",\n PAYMENT_EXEEDS_TOTAL = \"paymentExceedsTotal\",\n PAYMENT_FLOW_MISMATCH = \"paymentFlowMismatch\",\n DUTCH_DIVIDER_MISMATCH = \"dutchDividerMismatch\",\n ORDER_ITEMS_ALREADY_PAID = \"orderItemsAlreadyPaid\"\n}\n\nexport interface PaymentErrorsState {\n remainingCents?: number;\n dutchDividerMismatch?: boolean;\n}\n\nexport interface PaidItem {\n orderItemId: string;\n quantity: number;\n}\n\nexport interface State {\n table: Ref;\n order: Ref;\n sync: {\n interval: Ref;\n socket: Ref | null>;\n initialized: Ref;\n };\n payment: Ref<{\n flow: PaymentFlow | null;\n errors: PaymentErrorsState | null;\n payingAmount: number;\n dutch: {\n dutchDivider: number;\n dutchPaying: number;\n } | null;\n split: {\n payingItems: PaidItem[];\n } | null;\n }>;\n cart: Ref;\n}\n\nconst state: State = {\n table: ref({\n id: null,\n data: null\n }),\n order: ref(null),\n sync: {\n interval: ref(null),\n socket: ref(null),\n initialized: ref(false)\n },\n cart: ref({\n note: \"\",\n isSendingOrder: false\n }),\n payment: ref({\n flow: null,\n errors: null,\n payingAmount: 0,\n dutch: null,\n split: null\n })\n};\n\nexport const useGlobalState = () => {\n return state;\n};\n\nexport const useGlobalActions = () => {\n const initTable = async (router: Router, auth: Auth) => {\n const { startSync } = useSyncActions();\n const { setTableId } = useTableActions();\n setTableId();\n await startSync(router, auth);\n };\n\n return {\n initTable\n };\n};\n","const colors = [\n {\n base: '#1abc9c',\n lighten: {\n '1': '#31c3a6',\n '2': '#48c9b0',\n '3': '#5fd0ba',\n '4': '#76d7c4',\n '5': '#8ddece'\n },\n darken: {\n '1': '#17a98c',\t\n '2': '#15967d',\t\n '3': '#12846d',\t\n '4': '#10715e',\t\n '5': '#0d5e4e'\n },\n contrast: '#ffffff',\n selected: '#e8f8f5'\n },\n {\n base: '#2ecc71',\n lighten: {\n '1': '#43d17f',\n '2': '#58d68d',\n '3': '#6ddb9c',\n '4': '#82e0aa',\n '5': '#97e6b8'\n },\n darken: {\n '1': '#29b866',\n '2': '#25a35a',\n '3': '#208f4f',\n '4': '#1c7a44',\n '5': '#176639'\n },\n contrast: '#000000',\n selected: '#eafaf1'\n },\n {\n base: '#3498db',\n lighten: {\n '1': '#48a2df',\n '2': '#5dade2',\n '3': '#71b7e6',\n '4': '#85c1e9',\n '5': '#9acced'\n },\n darken: {\n '1': '#2f89c5',\n '2': '#2a7aaf',\n '3': '#246a99',\n '4': '#1f5b83',\n '5': '#1a4c6e'\n },\n contrast: '#ffffff',\n selected: '#ebedef'\n },\n {\n base: '#9b59b6',\n lighten: {\n '1': '#a56abd',\n '2': '#af7ac5',\n '3': '#b98bcc',\n '4': '#c39bd3',\n '5': '#cdacdb'\n },\n darken: {\n '1': '#8c50a4',\n '2': '#7c4792',\n '3': '#6d3e7f',\n '4': '#5d356d',\n '5': '#4e2d5b'\n },\n contrast: '#ffffff',\n selected: '#f5eef8'\n },\n {\n base: '#34495e',\n lighten: {\n '1': '#485b6e',\n '2': '#5d6d7e',\n '3': '#71808e',\n '4': '#85929e',\n '5': '#9aa4af'\n },\n darken: {\n '1': '#2f4255',\n '2': '#2a3a4b',\n '3': '#243342',\n '4': '#1f2c38',\n '5': '#1a252f'\n },\n contrast: '#ffffff',\n selected: '#ebedef'\n },\n {\n base: '#16a085',\n lighten: {\n '1': '#2daa91',\n '2': '#45b39d',\n '3': '#5cbdaa',\n '4': '#73c6b6',\n '5': '#8bd0c2'\n },\n darken: {\n '1': '#149078',\n '2': '#12806a',\n '3': '#0f705d',\n '4': '#0d6050',\n '5': '#0b5043'\n },\n contrast: '#000000',\n selected: '#e8f6f3'\n },\n {\n base: '#27ae60',\n lighten: {\n '1': '#3db670',\n '2': '#52be80',\n '3': '#68c690',\n '4': '#7dcea0',\n '5': '#93d7b0'\n },\n darken: {\n '1': '#239d56',\n '2': '#1f8b4d',\n '3': '#1b7a43',\n '4': '#17683a',\n '5': '#145730'\n },\n contrast: '#000000',\n selected: '#e9f7ef'\n },\n {\n base: '#2980b9',\n lighten: {\n '1': '#3e8dc0',\n '2': '#5499c7',\n '3': '#69a6ce',\n '4': '#7fb3d5',\n '5': '#94c0dc'\n },\n darken: {\n '1': '#2573a7',\n '2': '#216694',\n '3': '#1d5a82',\n '4': '#194d6f',\n '5': '#15405d'\n },\n contrast: '#000000',\n selected: '#eaf2f8'\n },\n {\n base: '#8e44ad',\n lighten: {\n '1': '#9957b5',\n '2': '#a569bd',\n '3': '#b07cc6',\n '4': '#bb8fce',\n '5': '#c7a2d6'\n },\n darken: {\n '1': '#803d9c',\n '2': '#72368a',\n '3': '#633079',\n '4': '#552968',\n '5': '#472257'\n },\n contrast: '#ffffff',\n selected: '#f4ecf7'\n },\n {\n base: '#2c3e50',\n lighten: {\n '1': '#415162',\n '2': '#566573',\n '3': '#6b7885',\n '4': '#808b96',\n '5': '#969fa8'\n },\n darken: {\n '1': '#283848',\n '2': '#233240',\n '3': '#1f2b38',\n '4': '#1a2530',\n '5': '#161f28'\n },\n contrast: '#ffffff',\n selected: '#eaecee'\n },\n {\n base: '#f1c40f',\n lighten: {\n '1': '#f2ca27',\n '2': '#f4d03f',\n '3': '#f5d657',\n '4': '#f7dc6f',\n '5': '#f8e287'\n },\n darken: {\n '1': '#d9b00e',\n '2': '#c19d0c',\n '3': '#a9890b',\n '4': '#917609',\n '5': '#796208'\n },\n contrast: '#000000',\n selected: '#fef9e7'\n },\n {\n base: '#e67e22',\n lighten: {\n '1': '#e98b38',\n '2': '#eb984e',\n '3': '#eea564',\n '4': '#f0b27a',\n '5': '#f3bf91'\n },\n darken: {\n '1': '#cf711f',\n '2': '#b8651b',\n '3': '#a15818',\n '4': '#8a4c14',\n '5': '#733f11'\n },\n contrast: '#000000',\n selected: '#fdf2e9'\n },\n {\n base: '#bfaf80',\n lighten: {\n '1': '#c5b78d',\n '2': '#ccbf99',\n '3': '#d2c7a6',\n '4': '#d9cfb3',\n '5': '#dfd7c0'\n },\n darken: {\n '1': '#ac9e73',\n '2': '#998c66',\n '3': '#867a5a',\n '4': '#73694d',\n '5': '#605840'\n },\n contrast: '#000000',\n selected: '#f9f7f2'\n },\n {\n base: '#59323c',\n lighten: {\n '1': '#6a4750',\n '2': '#7a5b63',\n '3': '#8b7077',\n '4': '#9b848a',\n '5': '#ac999e'\n },\n darken: {\n '1': '#502d36',\n '2': '#472830',\n '3': '#3e232a',\n '4': '#351e24',\n '5': '#2d191e'\n },\n contrast: '#ffffff',\n selected: '#eeebec'\n },\n {\n base: '#f39c12',\n lighten: {\n '1': '#f4a62a',\n '2': '#f5b041',\n '3': '#f7ba59',\n '4': '#f8c471',\n '5': '#f9ce89'\n },\n darken: {\n '1': '#db8c10',\n '2': '#c27d0e',\n '3': '#aa6d0d',\n '4': '#925e0b',\n '5': '#7a4e09'\n },\n contrast: '#000000',\n selected: '#fef5e7'\n },\n {\n base: '#d35400',\n lighten: {\n '1': '#d7651a',\n '2': '#dc7633',\n '3': '#e0874d',\n '4': '#e59866',\n '5': '#e9aa80'\n },\n darken: {\n '1': '#be4c00',\n '2': '#a94300',\n '3': '#943b00',\n '4': '#7f3200',\n '5': '#6a2a00'\n },\n contrast: '#000000',\n selected: '#fbeee6'\n },\n {\n base: '#c0392b',\n lighten: {\n '1': '#c64d40',\n '2': '#cd6155',\n '3': '#d3746b',\n '4': '#d98880',\n '5': '#e09c95'\n },\n darken: {\n '1': '#ad3327',\n '2': '#9a2e22',\n '3': '#86281e',\n '4': '#73221a',\n '5': '#601d16'\n },\n contrast: '#ffffff',\n selected: '#f9ebea'\n },\n {\n base: '#8c6954',\n lighten: {\n '1': '#987865',\n '2': '#a38776',\n '3': '#af9687',\n '4': '#baa598',\n '5': '#c6b4aa'\n },\n darken: {\n '1': '#7e5f4c',\n '2': '#705443',\n '3': '#624a3b',\n '4': '#543f32',\n '5': '#46352a'\n },\n contrast: '#ffffff',\n selected: '#f4f0ee'\n },\n {\n base: '#260126',\n lighten: {\n '1': '#3c1a3c',\n '2': '#513451',\n '3': '#674d67',\n '4': '#7d677d',\n '5': '#938093'\n },\n darken: {\n '1': '#220122',\n '2': '#1e011e',\n '3': '#1b011b',\n '4': '#170117',\n '5': '#130113'\n },\n contrast: '#ffffff',\n selected: '#e9e6e9'\n },\n {\n base: '#000000',\n lighten: {\n '1': '#1a1a1a',\n '2': '#333333',\n '3': '#4d4d4d',\n '4': '#666666',\n '5': '#808080'\n },\n darken: {\n '1': '#000000',\n '2': '#000000',\n '3': '#000000',\n '4': '#000000',\n '5': '#000000'\n },\n contrast: '#ffffff',\n selected: '#e6e6e6'\n },\n];\n\nexport function setupColors(primary: string, secondary: string) {\n\n let primaryColors = '';\n let selectedColors = '';\n let secondaryColors = '';\n\n const defaultPrimarySet = colors.find(colorSet => colorSet.base.toLowerCase() === '#f39c12');\n const primarySet = colors.find(colorSet => colorSet.base.toLowerCase() === primary?.toLowerCase()) || defaultPrimarySet;\n if(primarySet) {\n const primaryBase = `--clr-primary: ${primarySet.base};`\n const primaryLighten = Object.entries(primarySet.lighten || {}).map(([index, value]) => {\n return `--clr-primary--lighten-${index}: ${value};`;\n }).join('\\n');\n const primaryDarken = Object.entries(primarySet.darken || {}).map(([index, value]) => {\n return `--clr-primary--darken-${index}: ${value};`;\n }).join('\\n');\n const primaryContrast = `--clr-primary-contrast: ${primarySet.contrast};`;\n\n primaryColors = [primaryBase, primaryLighten, primaryDarken, primaryContrast].join('\\n');\n\n const selectedBase = `--clr-selected: ${primarySet.selected};`\n const selectedLighten = Object.entries(primarySet.lighten || {}).map(([index]) => {\n return `--clr-selected--lighten-${index}: ${primarySet?.selected};`;\n }).join('\\n');\n const selectedDarken = Object.entries(primarySet.darken || {}).map(([index]) => {\n return `--clr-selected--darken-${index}: ${primarySet.selected};`;\n }).join('\\n');\n const selectedContrast = `--clr-selected-contrast: ${primarySet.base};`;\n selectedColors = [selectedBase, selectedLighten, selectedDarken, selectedContrast].join('\\n');\n }\n\n const defaultSecondarySet = colors.find(colorSet => colorSet.base.toLowerCase() === '#2c3e50');\n const secondarySet = colors.find(colorSet => colorSet.base.toLowerCase() === secondary?.toLowerCase()) || defaultSecondarySet;\n if(secondarySet) {\n const secondaryBase = `--clr-secondary: ${secondarySet.base};`\n const secondaryLighten = Object.entries(secondarySet.lighten || {}).map(([index, value]) => {\n return `--clr-secondary--lighten-${index}: ${value};`;\n }).join('\\n');\n const secondaryDarken = Object.entries(secondarySet.darken || {}).map(([index, value]) => {\n return `--clr-secondary--darken-${index}: ${value};`;\n }).join('\\n');\n const secondaryContrast = `--clr-secondary-contrast: ${secondarySet.contrast};`;\n secondaryColors = [secondaryBase, secondaryLighten, secondaryDarken, secondaryContrast].join('\\n');\n }\n\n const css = `:root { \n ${primaryColors}\n ${selectedColors}\n ${secondaryColors}\n }`;\n\n const style = document.createElement('style');\n style.type = 'text/css';\n style.appendChild(document.createTextNode(css));\n \n const head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(style);\n \n}\n","\n \n\n\n","import { ref } from \"vue\";\n\nconst showMoreDialog = ref(false);\n\nexport function useShowMoreDialog() {\n return showMoreDialog;\n}\n","\n\n\n\n\n","\n\n\n\n\n"],"names":["check","it","global","this","fails","exec","error","require$$0","descriptors","test","NATIVE_BIND","call","$propertyIsEnumerable","getOwnPropertyDescriptor","createPropertyDescriptor","value","FunctionPrototype","uncurryThis","toString","stringSlice","classofRaw","require$$1","classof","require$$2","$Object","split","isNullOrUndefined","$TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","isCallable","isObject","getBuiltIn","userAgent","process","Deno","match","version","V8_VERSION","$String","NATIVE_SYMBOL","isPrototypeOf","USE_SYMBOL_AS_UID","require$$3","isSymbol","$Symbol","tryToString","aCallable","getMethod","ordinaryToPrimitive","defineProperty","defineGlobalProperty","store","sharedModule","toObject","hasOwnProperty","id","uid","shared","hasOwn","require$$4","require$$5","Symbol","WellKnownSymbolsStore","wellKnownSymbol","TO_PRIMITIVE","toPrimitive","toPropertyKey","document","EXISTS","documentCreateElement","DESCRIPTORS","createElement","propertyIsEnumerableModule","require$$6","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","anObject","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","CONFIGURABLE","definePropertyModule","createNonEnumerableProperty","object","functionToString","inspectSource","WeakMap","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","TypeError","set","get","has","getterFor","state","metadata","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","replace","join","makeBuiltIn","makeBuiltInModule","defineBuiltIn","simple","ceil","floor","n","trunc","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","length","toLength","lengthOfArrayLike","createMethod","indexOf","push","i","enumBugKeys","internalObjectKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptorModule","copyConstructorProperties","isForced","normalize","string","FORCED","TO_STRING_TAG","TO_STRING_TAG_SUPPORT","objectKeys","html","definePropertiesModule","PROTOTYPE","IE_PROTO","activeXDocument","objectCreate","arraySlice","$getOwnPropertyNames","getOwnPropertyNames","defineBuiltInAccessor","path","wrappedWellKnownSymbolModule","NAME","SymbolPrototype","setToStringTag","bind","isArray","noop","construct","INCORRECT_TO_STRING","isConstructor","SPECIES","$Array","arraySpeciesConstructor","arraySpeciesCreate","self","create","$","require$$8","require$$9","require$$10","require$$11","require$$12","$toString","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","defineWellKnownSymbol","require$$32","defineSymbolToPrimitive","require$$33","require$$34","require$$35","$forEach","require$$36","setInternalState","ObjectPrototype","RangeError","nativeGetOwnPropertyDescriptor","nativeDefineProperty","wrap","defineProperties","propertyIsEnumerable","NATIVE_SYMBOL_REGISTRY","SymbolToStringRegistry","apply","functionApply","replacer","root","getReplacerFunction","$stringify","charAt","charCodeAt","numberToString","offset","prev","next","stringify","$getOwnPropertySymbols","thisSymbolValue","isPossiblePrototype","aPossiblePrototype","uncurryThisAccessor","objectSetPrototypeOf","setPrototypeOf","proxyAccessor","inheritIfRequired","normalizeStringArgument","installErrorCause","$Error","stack","clearErrorStack","ERROR_STACK_INSTALLABLE","installErrorStack","wrapErrorConstructorWithCause","wrapper","init","Error","ReferenceError","SyntaxError","errorToString","ErrorPrototype","CORRECT_PROTOTYPE_GETTER","objectGetPrototypeOf","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","iteratorClose","iterate","getPrototypeOf","$AggregateError","AggregateError","addToUnscopables","doesNotExceedSafeInteger","createProperty","arrayMethodHasSpeciesSupport","array","E","deletePropertyOrThrow","from","inc","copyWithin","arrayMethodIsStrict","$every","STRICT_METHOD","arrayFill","fill","$filter","HAS_SPECIES_SUPPORT","$find","SKIPS_HOLES","$findIndex","$findLast","$findLastIndex","flattenIntoArray","forEach","callWithSafeIterationClosing","ENTRIES","arrayFrom","checkCorrectnessOfIteration","$includes","$indexOf","NEGATIVE_ZERO","BUGGY_SAFARI_ITERATORS","IteratorPrototype","arrayIterator","returnThis","IteratorConstructor","FunctionName","createIteratorConstructor","PROPER_FUNCTION_NAME","values","entries","createIterResultObject","defineIterator","$lastIndexOf","lastIndexOf","$map","setArrayLength","properErrorOnNonWritableLength","$reduce","CHROME_VERSION","IS_NODE","CHROME_BUG","$reduceRight","Constructor","$some","sort","arraySort","webkit","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","STABLE_SORT","code","getSortCompare","setSpecies","arrayToReversed","arrayFromConstructorAndList","getBuiltInPrototypeMethod","CONSTRUCTOR","Prototype","$RangeError","arrayWith","defineBuiltIns","anInstance","toIndex","sign","abs","s","floatRound","pow","log","LN2","buffer","NATIVE_ARRAY_BUFFER","fround","ARRAY_BUFFER","WRONG_LENGTH","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","DataViewPrototype","Array","reverse","packIEEE754","unpackIEEE754","addGetter","pack","ArrayBuffer","byteLength","DataView","getInt8","getUint8","getUint16","setInt8","setUint8","setUint16","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","TypedArray","TypedArrayPrototype","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","isView","getTypedArrayConstructor","isTypedArray","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","error2","exportTypedArrayStaticMethod","ArrayBufferViewCore","aConstructor","speciesConstructor","ArrayBufferModule","slice","thisTimeValue","DatePrototype","$repeat","repeat","padStart","$isFinite","date","toISOString","dateToPrimitive","TO_STRING","hex","regExpExec","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","isExtensible","FREEZING","METADATA","fastKey","getWeakData","onFreeze","splice","internalMetadataModule","InternalMetadataModule","collection","add","REPLACE","internalStateGetterFor","collectionStrong","clear","getInternalIteratorState","Map","MapPrototype","MapHelpers","IS_PURE","map","log1p","sqrt","exp","expm1","log10","thisNumberValue","whitespaces","trim","toNumber","Number","numberIsFinite","isFinite","isIntegralNumber","isNaN","$parseFloat","parseFloat","$parseInt","parseInt","round","l","data","alphabet","assign","__defineSetter__","groupBy","sameValue","is","objectToString","validateArgumentsLength","IS_IOS","Function","String","queue","channel","event","setImmediate","clearImmediate","task","safeGetBuiltIn","Queue","MutationObserver","Promise","microtask","notify","hostReportErrors","perform","IS_DENO","NativePromiseConstructor","IS_BROWSER","NATIVE_PROMISE_REJECTION_EVENT","FORCED_PROMISE_CONSTRUCTOR","promise","resolve","reject","newPromiseCapability","newPromiseCapabilityModule","NativePromisePrototype","PENDING","isThenable","then","PROMISE_STATICS_INCORRECT_ITERATION","counter","method","promiseResolve","isFunction","isDataDescriptor","prototype","preventExtensions","MATCH","isRegExp","regexpFlags","regExpFlags","RegExpPrototype","$RegExp","UNSUPPORTED_Y","re","MISSED_STICKY","getRegExpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","stringIndexOf","RegExp","re1","re2","raw","group","regexpExec","key","Set","at","size","codeAt","notARegExp","correctIsRegExpLogic","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","fromCharCode","includes","STRING_ITERATOR","SYMBOL","DELEGATES_TO_EXEC","advanceStringIndex","fixRegExpWellKnownSymbolLogic","WEBKIT_BUG","getSubstitution","replacement","nativeReplace","p","forcedStringTrimMethod","trimEnd","trimStart","createHTML","forcedStringHTMLMethod","url","toPositiveInteger","toOffset","toUint8Clamped","isBigIntArray","toBigInt","typedArrayFrom","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","isArrayBuffer","typedArrayConstructorModule","createTypedArrayConstructor","Uint8Array","Uint16Array","every","typedArraySpeciesConstructor","fromSpeciesAndList","filter","find","findIndex","findLast","findLastIndex","of","reduce","reduceRight","some","toReversed","toSorted","PROPER_ORDER","unescape","collectionWeak","isFrozen","isSealed","freeze","seal","WeakMapPrototype","WeakSet","SuppressedError","ASYNC_ITERATOR","AsyncIteratorPrototype","AsyncFromSyncIterator","AsyncIterator","getIteratorDirect","getAsyncIterator","closeAsyncIteration","toArray","arrayFromAsync","fromAsync","$filterReject","$group","mapGet","mapHas","mapSet","$groupToMap","iterateSimple","arrayUniqueBy","uniqueBy","arrayBufferByteLength","isDetached","tryNodeRequire","structuredClone","clone","PROPER_STRUCTURED_CLONE_TRANSFER","detachTransferable","arrayBuffer","$transfer","ASYNC_DISPOSE","DISPOSE","addDisposableResource","$ReferenceError","HINT","DISPOSED","internalState","handleError","defer","AsyncIteratorProxy","createAsyncIteratorProxy","callback","indexed","notANaN","getAsyncIteratorFlattenable","flatMap","WrapAsyncIterator","NumericRangeIterator","range","Node","initializer","getCompositeKeyNode","compositeKey","aDataView","f16round","use","adopt","move","disposed","demethodize","IteratorProxy","Iterator","createIteratorProxy","drop","getIteratorFlattenable","take","NATIVE_RAW_JSON","isRawJSON","$SyntaxError","parseJSONString","JSON","IS_WHITESPACE","context","Context","node","parse","aMap","remove","createCollectionFrom","sameValueZero","createCollectionOf","upsert","radians","scale","degrees","seed","parts","ObjectIterator","$$OBSERVABLE","closed","getOrCreateMetadataMap","ordinaryHasOwnMetadata","ordinaryGetOwnMetadata","ordinaryDefineOwnMetadata","ordinaryOwnMetadataKeys","toMetadataKey","ReflectMetadataModule","$arrayUniqueBy","escape","SetPrototype","aSet","deleteAll","SetHelpers","setIterate","getSetRecord","iterateSet","setMethodAcceptSetLike","difference","isIterable","toSetLike","intersection","isDisjointFrom","isSubsetOf","isSupersetOf","symmetricDifference","union","cooked","codePoints","fromCodePoint","WeakMapHelpers","descriptor","keyFor","isRegisteredSymbol","isWellKnownSymbol","filterOut","filterReject","toSpliced","anObjectOrUndefined","aString","base64Alphabet","base64UrlAlphabet","base64Map","getAlphabetOption","shift","anUint8Array","aWeakMap","emplace","aWeakSet","addAll","WeakSetHelpers","BASIC","NO_ARG_RECEIVING_CHECK","WRONG_ARITY","btoa","DOMTokenListPrototype","DOMIterables","handlePrototype","COLLECTION_NAME","DOMExceptionConstants","DOM_EXCEPTION","NativeDOMException","MessageChannel","$DOMException","DOMExceptionPrototype","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","DOMException","schedulersFix","timeout","params","Object","Date","set2","transfer","setInterval","setTimeout","params2","toLowerCase","encode","USE_NATIVE_URL","decodeURIComponent","encodeURIComponent","query","URLSearchParams","URLSearchParamsPrototype","fetch","Request","unshift","ALPHA","DIGIT","EOF","base","port","protocol","URL","toJSON","$URLSearchParams","append","getAll","config","cache","isUndefined","isString","isNumber","isBoolean","isPlainObject","isDate","isFile","findKey","merge","extend","endsWith","matchAll","delimiter","utils","h","FormData","Blob","platform","parser","isFormData","isFileList","transitional","format","computed","transform","validateStatus","isURLSameOrigin","now","adapters","config2","VERSION","validators","validator","all","apiAxios","setup","toTypeString","isPromise","capitalize","_globalThis","getGlobalThis","equal","toDisplayString","effect","trigger","track","isReadonly","isShallow","has2","get2","ref2","toValue","toRef","warn$1","postfix","open","close","nextTick","diff","isModelListener","raw2","emit","render","render2","isShallow$1","enterCbKey","callHook","isVNode","register","mergeOptions","createApp","app","plugin","mixin","isAbsent","normalizeSlot","ref","_isString","anchor","update","remove2","isFlushing","anchor2","compile","warn","selector","prefixes","addEventListener","removeEventListener","TypeSnackbar","history","router","_hoisted_1","_hoisted_2","_createElementVNode","_hoisted_3","_hoisted_4","_hoisted_5","Info","apiGet","Saletype","PaymentMethod","PaymentFlow","OptionalUserFields","OptionalUserFieldsValues","CartPrefix","cart","singleton","locale","fixed","English.formatRelativeTime","English.months","English.weekdays","English.meridiems","English.eras","defaultZone","isInteger","pick","Formats.DATE_SHORT","Formats.DATE_MED","Formats.DATE_FULL","Formats.DATE_HUGE","Formats.TIME_SIMPLE","Formats.TIME_WITH_SECONDS","Formats.TIME_WITH_SHORT_OFFSET","Formats.TIME_WITH_LONG_OFFSET","Formats.TIME_24_SIMPLE","Formats.TIME_24_WITH_SECONDS","Formats.TIME_24_WITH_SHORT_OFFSET","Formats.TIME_24_WITH_LONG_OFFSET","Formats.DATETIME_SHORT","Formats.DATETIME_MED","Formats.DATETIME_FULL","Formats.DATETIME_HUGE","Formats.DATETIME_SHORT_WITH_SECONDS","Formats.DATETIME_MED_WITH_SECONDS","Formats.DATETIME_FULL_WITH_SECONDS","Formats.DATETIME_HUGE_WITH_SECONDS","formatOffset","English.meridiemForDateTime","English.monthForDateTime","English.weekdayForDateTime","English.eraForDateTime","English.monthsShort","English.weekdaysLong","English.weekdaysShort","INVALID","orderedUnits","mixed","e","post","Formats.DATE_MED_WITH_WEEKDAY","Formats.DATETIME_MED_WITH_WEEKDAY","_a","months","apiPost","reserveTodaysCalendarDate","LoaderStatus","load","link","mergeDeep","isBrowser","validateScreenviewShape","getDefaultParams","setOptions","getOptions","_window","assignGlobalProperty","setRouter","getRouter","attachApi","mergeDefaultParams","isRouteExcluded","install","location","user","apiPut","LSKeys","cartPrefix","SSKeys","deliveryPrice","deliveryAddress","getDefaultDeliveryAddress","AllergenType","priceList","isValid","getApp","moneyTypes","paymentMethods","isObjectLike","getTag","isClient","def","normalizeParams","errors","messages","setState","meta","resolveInitialValue","normalizeOptions","opts","defaults","_b","validate","isEmptyObject","vueWarn","on","invoke","countriesList","ScrollTriggerRoles","parseQuery","stringifyQuery","NavigationType","NavigationDirection","NavigationFailureType","decode","valid","matchedRoute","href","failure","_config","_defaults","_suppressOverwrites","_reverting","_context","_bigNum","_sqrt","_cos","_sin","_isFunction","_isNumber","_isUndefined","_isObject","_isNotFalse","_windowExists","_isFuncOrString","_numExp","_win","_coreInitted","_doc","_install","gsap","_missingPlugin","_warn","_addGlobal","_emptyFunc","_harness","_getCache","_getProperty","_forEachName","_round","_roundPrecise","_parseRelative","_arrayContainsAny","_lazyRender","_lazySafeRender","time","_numericIfPossible","_passThrough","_setDefaults","_setKeyframeDefaults","_merge","_mergeDeep","_copyExcluding","_inheritDefaults","_arraysMatch","_addLinkedListItem","_removeLinkedListItem","_removeFromParent","_uncache","_recacheAncestors","_rewindStartAt","_hasNoPausedAncestors","_elapsedCycleDuration","_animationCycle","_parentToChildTotalTime","_setEnd","_alignPlayhead","_postAddChecks","timeline","_clamp","_addToTimeline","_parsePosition","_scrollTrigger","_attemptInitTween","_parentPlayheadIsBeforeStart","_isFromOrFromStart","_renderZeroDurationTween","_callback","_findNextPauseTween","_setDuration","_onUpdateTotalDuration","_createTweenType","_conditionalReturn","getUnit","clamp","_isArrayLike","_flatten","shuffle","distribute","_roundModifier","snap","random","pipe","unitize","_wrapArray","wrapYoyo","_replaceRandom","mapRange","interpolate","func","_getLabelInDirection","_interrupt","_createPlugin","PropTween","_hue","splitColor","_colorOrderData","v","_formatColors","colors","_colorStringFilter","_getTime","_listeners","_i","_tick","_wake","_parseObjectInString","_valueInParentheses","_configEaseFromString","_invertEase","_propagateYoyoEase","_parseEase","_insertEase","easeOut","easeInOut","_easeInOutFromOut","_configElastic","amplitude","period","_configBack","overshoot","n2","GSCache","Animation","_resolve","kill","Timeline","getById","animations","getTweensOf","_addComplexStringPropTween","_addPropTween","_processVars","_checkPlugin","_initTween","_updatePropTweens","lookup","_addAliasesToVars","_parseKeyframe","_parseFuncOrString","Tween","a","_setterPlain","_setterFunc","_setterFuncWithParam","_setterAttribute","_getSetter","_renderPlain","_renderBoolean","_renderComplexString","_renderPropTweens","_addPluginModifier","_killPropTweensOf","_setterWithModifier","_sortPropTweensByPriority","renderer","_emptyArray","_dispatch","_onMediaChange","f","matchMedia","t","MatchMedia","property","unit","uncache","_merge2","_getPluginPropTween","_addModifiers","_buildModifierPlugin","tween","name","_docElement","_RAD2DEG","_DEG2RAD","_atan2","_capsExp","_renderCSSProp","_renderPropWithEnd","_renderCSSPropWithBeginning","_renderRoundedCSSProp","_renderNonTweeningValue","_renderNonTweeningValueOnlyAtEnd","_setterCSSStyle","_setterCSSProp","_setterTransform","_setterScale","_setterScaleWithRender","_setterTransformWithRender","_transformProp","_transformOriginProp","_saveStyle","_removeIndependentTransforms","_revertStyle","_getStyleSaver","_createElement","_getComputedProperty","_checkPropPrefix","_initCore","_getBBoxHack","_getAttributeFallbacks","_getBBox","_isSVG","_removeProperty","_addNonTweeningPT","_convertToUnit","_get","_tweenComplexCSSString","_convertKeywordsToPercentages","_renderClearProps","_isNullTransform","_getComputedTransformMatrixAsArray","_getMatrix","_applySVGOrigin","_parseTransform","_firstTwoOnly","_addPxTranslate","_renderNon3DTransforms","_renderCSSTransforms","_renderSVGTransforms","_addRotationalPropTween","_assign","_addRawTransformPTs","_docEl","_body","ScrollTrigger","_root","_normalizer","_getGSAP","_startup","_bridge","_integrate","_getProxyProp","_isViewport","_addListener","_removeListener","_onScroll","_scrollCacheFunc","cachingFunc","_getTarget","_getScrollFunc","_getVelocityProp","reset","getVelocity","_getEvent","_getAbsoluteMax","_setScrollTrigger","Observer","clickCapture","_ignoreCheck","onStopFunc","onDelta","onTouchOrPointerDelta","_onDrag","_onGestureStart","_onGestureEnd","onScroll","_onWheel","_onMove","_onHover","_onHoverEnd","_onClick","_toArray","_parseClamp","_keepClamp","_rafBugFix","_pointerDownHandler","_pointerUpHandler","_getViewportDimension","_getBoundsFunc","_getSizeFunc","_getOffsetsFunc","_maxScroll","_iterateAutoRefresh","_endAnimation","_abs","_getComputedStyle","_makePositionable","_getBounds","_getSize","_getLabelRatioArray","_getClosestLabel","_snapDirectional","_getLabelAtDirection","_multiListener","_wheelListener","_offsetToPx","_createMarker","_positionMarker","_sync","_setBaseDimensions","_onResize","_softRefresh","_revertRecorded","_revertAll","_clearScrollMemory","_queueRefreshAll","_refresh100vh","_hideAllMarkers","_refreshAll","_updateAll","_swapPinOut","_swapPinIn","_setState","_getState","_copyState","_reparent","_interruptionTracker","_shiftMarker","_getTweenCreator","getTween","snap2","cs","prevProgress","disable","enable","proxyCallback","_clampScrollAndGetDurationMultiplier","_allowNativePanning","_nestedScroll","_inputObserver","_captureInputs","_getScrollNormalizer","resumeTouchMove","updateClamps","removeContentOffset","ignoreDrag","onResize","_wrapProgress","_splitSegment","_getSampleIndex","_reverseRawPath","_copyMetaData","_appendOrMerge","_createPath","_attrToObj","line","_setDoc","doc","_forceNonZeroScale","_getDocScrollTop","_getDocScrollLeft","_svgOwner","_isFixed","_createSibling","_consolidate","_getCTM","_placeSiblings","_setMatrix","Matrix2D","inverse","multiply","_populateSegmentFromArray","_getPropNum","_relativize","_segmentToRawPath","_originToPoint","_getAlignMatrix","_originToPoint2","_align","_addDimensionalPropTween","_sliceModifier","convertToPath","_convertToPath","_max","_buildGetter","_clean","_getOffset","_parseVal","src","des","index","ch","baseCompile","initFeatureFlags","type","i18n","resolveValue","msg","source","message","locales","options","composer","dispose","defaultLocale","getMenu","tags","categories","axios","toposortModule","result","getter","isIndex","toposort","normalizePath","camelCase","snakeCase","setLocale","apiSetup","component","EatIcon","EatImage","EatView","FormView","EatField","EatFieldMessage","EatCheckbox","EatToggleIcon","EatToggleButton","EatRecaptcha","AddressFormatted","setupRouterHistory","VueRecaptchaPlugin","VueGtag","events","window","navigator","snackbar","setValidateLocale","withNativeBlob","withNativeArrayBuffer","isBinary","globalThis","XMLHttpRequest","Socket","RESERVED_EVENTS","PacketType","Engine","socket","TableStatus","openTable","checkTable","order","io","PaymentErrors","appTitle","appHeight","localValue"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,810,811,812,813,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,948,949,964,976,977,978,979,980,981,982,983,984,985,986,987,988,989,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1017,1018,1019,1020,1024,1027,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059]}